Catmandu-1.10/000755 000765 000024 00000000000 13341726377 014160 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/benchmark/000755 000765 000024 00000000000 13341726377 016112 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/misc/000755 000765 000024 00000000000 13341726377 015113 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/Build.PL000644 000765 000024 00000005103 13341726377 015453 0ustar00nsteenlastaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.008. use strict; use warnings; use Module::Build 0.28; my %module_build_args = ( "build_requires" => { "Module::Build" => "0.28" }, "configure_requires" => { "Module::Build" => "0.28" }, "dist_abstract" => "a data toolkit", "dist_author" => [ "Nicolas Steenlant, C<< >>" ], "dist_name" => "Catmandu", "dist_version" => "1.10", "license" => "perl", "module_name" => "Catmandu", "recommends" => { "Log::Any::Adapter::Log4perl" => "0.06", "Log::Log4perl" => "1.44" }, "recursive_test_files" => 1, "requires" => { "Any::URI::Escape" => 0, "App::Cmd" => "0.33", "CGI::Expand" => "2.02", "Clone" => "0.31", "Config::Onion" => "1.004", "Cpanel::JSON::XS" => "3.0213", "Data::Compare" => "1.22", "Data::UUID" => "1.217", "Data::Util" => "0.66", "Hash::Merge::Simple" => 0, "IO::Handle::Util" => "0.01", "LWP::UserAgent" => 0, "List::MoreUtils" => "0.33", "List::MoreUtils::XS" => 0, "Log::Any" => 0, "Log::Any::Adapter" => 0, "MIME::Types" => 0, "Module::Info" => 0, "Moo" => "1.004006", "MooX::Aliases" => "0.001006", "Parser::MGC" => "0.15", "Path::Iterator::Rule" => 0, "Path::Tiny" => 0, "String::CamelCase" => 0, "Sub::Exporter" => "0.982", "Sub::Quote" => 0, "Text::CSV" => "1.21", "Text::Hogan::Compiler" => "1.02", "Throwable" => "0.200004", "Time::HiRes" => 0, "Try::Tiny::ByClass" => "0.01", "URI" => 0, "URI::Template" => "0.22", "Unicode::Normalize" => 0, "YAML::XS" => "0.41", "asa" => 0, "namespace::clean" => "0.24", "perl" => "v5.10.1" }, "script_files" => [ "bin/catmandu" ], "test_requires" => { "Log::Any::Adapter::Log4perl" => 0, "Log::Any::Test" => "1.03", "Log::Log4perl" => 0, "Test::Deep" => "0.112", "Test::Exception" => "0.43", "Test::LWP::UserAgent" => 0, "Test::More" => "0.99", "Test::Pod" => 0 } ); my %fallback_build_requires = ( "Log::Any::Adapter::Log4perl" => 0, "Log::Any::Test" => "1.03", "Log::Log4perl" => 0, "Module::Build" => "0.28", "Test::Deep" => "0.112", "Test::Exception" => "0.43", "Test::LWP::UserAgent" => 0, "Test::More" => "0.99", "Test::Pod" => 0 ); unless ( eval { Module::Build->VERSION(0.4004) } ) { delete $module_build_args{test_requires}; $module_build_args{build_requires} = \%fallback_build_requires; } my $build = Module::Build->new(%module_build_args); $build->create_build_script; Catmandu-1.10/docker/000755 000765 000024 00000000000 13341726377 015427 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/LICENSE000644 000765 000024 00000043674 13341726377 015203 0ustar00nsteenlastaff000000 000000 This software is copyright (c) 2018 by Nicolas Steenlant. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2018 by Nicolas Steenlant. This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2018 by Nicolas Steenlant. This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Catmandu-1.10/cpanfile000644 000765 000024 00000003500 13341726377 015662 0ustar00nsteenlastaff000000 000000 requires 'perl', 'v5.10.1'; on 'test', sub { requires 'Log::Any::Adapter::Log4perl', 0; requires 'Log::Any::Test', '1.03'; requires 'Log::Log4perl' , 0; requires 'Test::Deep', '0.112'; requires 'Test::Exception', '0.43'; requires 'Test::LWP::UserAgent' , 0; requires 'Test::More', '0.99'; requires 'Test::Pod', 0; }; on 'develop', sub { requires 'Code::TidyAll', 0; requires 'Perl::Tidy', 0; requires 'Test::Code::TidyAll', '0.20'; requires 'Text::Diff', 0; # undeclared Test::Code::TidyAll plugin dependency }; requires 'List::MoreUtils::XS', 0; requires 'Any::URI::Escape', 0; requires 'App::Cmd', '0.33'; requires 'asa', 0; # undeclared dependency? requires 'CGI::Expand', '2.02'; requires 'String::CamelCase', 0; requires 'Clone', '0.31'; requires 'Config::Onion', '1.004'; requires 'Cpanel::JSON::XS', '3.0213'; requires 'Data::Compare', '1.22'; requires 'Data::Util', '0.66'; requires 'Data::UUID', '1.217'; requires 'Path::Iterator::Rule','0'; requires 'Path::Tiny', '0'; requires 'Hash::Merge::Simple', 0; requires 'IO::Handle::Util', '0.01'; requires 'List::MoreUtils', '0.33'; requires 'Log::Any', 0; requires 'Log::Any::Adapter', 0; requires 'LWP::UserAgent', 0; requires 'MIME::Types',0; requires 'Module::Info', 0; requires 'Moo', '>=1.004006'; requires 'MooX::Aliases', '>=0.001006'; requires 'namespace::clean', '0.24'; requires 'Parser::MGC', '0.15'; requires 'Sub::Exporter', '0.982'; requires 'Sub::Quote', 0; requires 'Text::Hogan::Compiler', '1.02'; requires 'Text::CSV', '1.21'; requires 'Time::HiRes', 0; # not always installed? requires 'Throwable', '0.200004'; requires 'Try::Tiny::ByClass', '0.01'; requires 'Unicode::Normalize', '0'; requires 'URI', 0; requires 'URI::Template', 0.22; requires 'YAML::XS', '0.41'; recommends 'Log::Log4perl', '1.44'; recommends 'Log::Any::Adapter::Log4perl', '0.06'; Catmandu-1.10/bin/000755 000765 000024 00000000000 13341726377 014730 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/Dockerfile000644 000765 000024 00000001462 13341726377 016155 0ustar00nsteenlastaff000000 000000 # Minimal Dockerfile of a base image with Catmandu core on Debian stretch FROM debian:stretch-slim MAINTAINER LibreCat community ADD docker/apt.txt . # Perl packages used by Catmandu (if available as Debian package) and cpanm RUN apt-get update && apt-get install -y --no-install-recommends \ $(grep -vE "^\s*#" apt.txt | tr "\n" " ") cpanminus \ && rm -rf /var/lib/apt/lists/* ADD . /tmp/catmandu WORKDIR /tmp/catmandu # install from source RUN cpanm -n -q --installdeps --skip-satisfied . RUN perl Build.PL && ./Build && ./Build install # cleanup sources WORKDIR / RUN rm -rf /tmp/catmandu # make user feel home RUN adduser --home /home/catmandu --uid 1000 --disabled-password --gecos "" catmandu WORKDIR /home/catmandu USER catmandu # Default command CMD ["bash"] Catmandu-1.10/Makefile000644 000765 000024 00000001142 13341726377 015616 0ustar00nsteenlastaff000000 000000 usage: @echo "usage: make TARGET" @echo @echo "targets:" @echo " test" @echo " travis [FILE=<...>]" # Parallel testing test: carton exec "prove -l -j 4 -r t" # Travis like test/cover travis: carton exec 'cpanm --notest Perl::Tidy' carton exec 'cpanm --quiet --notest --skip-satisfied Devel::Cover' carton exec 'perl Build.PL && ./Build build' if [ -d cover_db ]; then rm -rf cover_db/ ; fi ifeq ($(strip $(FILE)),) carton exec 'cover -test' else carton exec "PERL5OPT=-MDevel::Cover env perl -Ilib $(FILE)" endif if [ -d cover_db ]; then rm -rf cover_db/ ; fi carton exec './Build realclean' Catmandu-1.10/Changes000644 000765 000024 00000047741 13341726377 015470 0ustar00nsteenlastaff000000 000000 Revision history for Catmandu 1.10 2018-08-30 10:38:16 CEST - split off Catmandu::FileStore - bring Dockerfile back to this repository - include fix now accepts glob patterns - the export and convert commands get a new --id-file option 1.09 2018-03-06 11:24:35 CET - add validator method to Catmandu - new Mock validator - new validate fix and valid fix condition - JSON importer byte buffer size is now configurable to optimize performance - command line help improvements 1.08 2018-02-02 14:48:51 CET - fix language gets support for namespaces - fix language gets support lexical blocks - filter fix gets a new invert option - Iterable map method can now return multiple values (or none) - cleanup cli error handling code - file store tests are now threadsafe 1.07 2017-11-09 10:03:51 CET - new Readonly plugin - new DKVP importer for delimited key-value pairs - new Store bags method - new Store default_options for bag 1.0606 2017-09-26 10:42:35 CEST - fix bug with numeric strings in fix preprocessing 1.0605 2017-09-21 10:58:21 CEST - fix touch command pod 1.0604 2017-09-21 10:35:26 CEST - new touch command and bag touch method - new Util::now function - remove dependency on LWP::UserAgent::Determined - add a basic vim syntax definiton for fix files - add, copy, join, move, remove, set, sort and split fix shortcuts 1.0603 2017-09-04 10:16:55 CEST - bags can have default plugins applied - add hard dependency on List::MoreUtils::XS 1.0602 2017-06-23 10:16:48 CEST - fix filestore permission bug on Windows 1.0601 2017-06-21 14:49:30 CEST - bugfix release 1.06 2017-06-20 15:48:00 CEST - new FileStores for handling binary data - new iterator bind - better bind performance - more pod 1.0507 2017-05-19 17:32:57 CEST - correctly handle escapes in fix langauge quoted strings 1.0506 2017-05-12 16:36:03 CEST - Catmandu gets new define_importer, define_exporter, define_store and define_fixer convenience methods - Versioning plugin get_version can now also return the current version 1.0505 2017-05-12 12:52:18 CEST - new compact fix - bag gets a convenience exists method - Versioning plugin get_version($id, 1) behaves correctly if no versions have been created yet 1.0504 2017-04-21 12:22:59 CEST - new string fix - new int fix - Datestamps plugin field names are now configurable 1.0503 2017-04-06 15:20:58 CEST - the store wide id_key is also aliased as id_field 1.0502 2017-04-06 15:15:57 CEST - id_key is now also a store wide option 1.0501 2017-04-06 14:34:00 CEST - id_key and version_key aliased as id_field and version_field 1.05 2017-03-31 13:51:48 CEST - Windows build was broken since 1.0304, should now build again - fix language has new elsif statement - fix language has new boolean keywords - fix language do statement aliased as bind - config is now reloadable - Plugin::Datestamps datetime format is now configurable - pod corrections 1.04 2017-03-23 13:56:32 CET - new error fix - new rename fix - new search_in_store fix - new import_from_string fix - new export_to_string fix - new valid fix condition ties Validator to fixes - new CQLSearchable role - new Iterable run method - relevant commands get new transaction, sort and sru-sortkeys options - remove deprecated data command - improved info command - inline use of fixes is now cached by default and much faster - solved memory leak in Fix::Base - the perl code generated by Fix is now a reusable standalone sub - more pod 1.0306 2017-02-09 15:22:04 CET - config command has new fix and preprocess options - memoize loggers 1.0305 2017-01-26 09:32:09 CET - fix command line repeated argument bug 1.0304 2016-11-23 11:21:32 CET - new index fix - fix command line argument utf8 bug 1.0303 2016-10-18 14:45:49 CEST - convert and export commands get a new id option 1.0302 2016-10-04 10:43:51 CEST - Hash store is now transactional for testing purposes 1.0301 2016-09-22 09:33:53 CEST - fix hashmap bind tests 1.03 2016-09-21 10:32:51 CEST - specialized id generators for bags - rewrite of the fix parser using Parser::MGC - Catmandu->fixer($fixer) echoes the $fixer back as expected 1.0201_02 2016-05-27 09:46:53 CEST - rewrite of the fix parser using Parser::MGC - Catmandu->fixer($fixer) echoes the $fixer back as expected 1.0201_01 2016-05-26 14:45:25 CEST - rewrite of the fix parser using Parser::MGC - Catmandu->fixer($fixer) echoes the $fixer back as expected 1.0201 2016-05-23 14:25:25 CEST - faster, simpler vacuum fix - update required version of Marpa 1.02 2016-05-20 11:33:38 CEST - all fixes and fix conditions can be used inline now - more fast type tests - fix type check bug 1.01 2016-05-10 13:03:58 CEST - configurable prefixes for internal store data keys (_id, _version, ...) - fix file or inline fix preprocessing with moustache templates - faster type tests with Ref::Util - is_true and is_false fix conditions have a new strict mode - new is_array, is_object, is_string, is_number and is_null fix conditions - new Importer http_timing and http_retry options - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002_03 2016-04-28 10:00:55 CEST - fix file or inline fix preprocessing with moustache templates - faster type tests with Ref::Util - is_true and is_false fix conditions have a new strict mode - new is_array, is_object, is_string, is_number and is_null fix conditions - new Importer http_timing and http_retry options - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002_02 2016-04-22 09:38:41 CEST - is_true and is_false fix conditions have a new strict mode - new is_array, is_object, is_string, is_number and is_null fix conditions - new Importer http_timing and http_retry options - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002_01 2016-04-14 14:19:42 CEST - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002 2016-04-01 13:36:28 CEST - fix debug mode dying if Perl::Tidy is missing - error messages now default to empty string - improved Importer::TSV and Exporter::TSV 1.0001 2016-03-03 16:28:16 CET - fix some pod typos - fix handling multivalued response http headers in Importer 1.00 2016-02-22 16:16:07 CET - fix os-dependent paths in tests - throw an error if an Importer file path doesn't exist - bump required version of URI::Template because we need variable names returned in order - pod fixes - lots of pod - lots of tests - new Exporter::Mock - new Importer::TSV and Exporter::TSV - new 'uri_decode' and 'uri_encode' fixes - new Droppable and Transactional roles for stores - new 'drop' command - switch to MooX::Role::Logger for logging - smarter CSV::Importer - new specialized TabularExporter base role - fix bug in 'array_to_sentence' helper function - fix $append bug in 'data_at' helper function - the 'data' command is deprecated. All it's functionality is now provided by the 'import', 'export', 'convert' and 'copy' commands - rename the 'move' command to the more accurate 'copy' - line delimited JSON is no longer the default for Importer::JSON and Exporter:JSON 1.00_03 2016-02-10 14:34:07 CET - fix os-dependent paths in tests - throw an error if an Importer file path doesn't exist 1.00_02 2016-02-09 10:17:58 CET - bump required version of URI::Template because we need variable names returned in order - pod fixes 1.00_01 2016-02-04 16:30:11 CET - lots of pod - lots of tests - new Exporter::Mock - new Importer::TSV and Exporter::TSV - new 'uri_decode' and 'uri_encode' fixes - new Droppable and Transactional roles for stores - new 'drop' command - switch to MooX::Role::Logger for logging - smarter CSV::Importer - new specialized TabularExporter base role - fix bug in 'array_to_sentence' helper function - fix $append bug in 'data_at' helper function - the 'data' command is deprecated. All it's functionality is now provided by the 'import', 'export', 'convert' and 'copy' commands - rename the 'move' command to the more accurate 'copy' - line delimited JSON is no longer the default for Importer::JSON and Exporter:JSON 0.9505 2015-12-02 10:36:58 CET - expand, collapse and vacuum fixes handle large arrays - more pod 0.9504 2015-11-03 11:30:48 CET - fix dereferencing bug in Util::is_string - move Dockerfile to it's own repository 0.9503 2015-10-29 16:32:28 CET - VERSION for all packages and cleanup 0.9502 2015-10-28 16:48:10 CET - new Store::Multi - new Exporter::Multi - new Importer::Multi - new MultiIterator - remove dependency on Data::Util so we can support perl 5.22 - fix typos - fix Fix::Bind::list single execution bug - .mailmap file 0.9501 2015-10-15 16:30:28 CEST - 'trim' fix remove diacritics mode 0.95 2015-10-08 11:46:02 CEST - Importer can now fetch remote data over http(s) - catmandu run command and executable fixes - catmandu interactive fix interpreter - 'importer' bind - more powerful 'list' and 'hashmap' bind - autocommit option on all addables (Exporter,Store,...) - 'expand_date' fix replaced by 'split_date' in the Catmandu-Fix-Date distribution - more pod and tests 0.9403 2015-09-17 16:44:45 CEST - make 'include' fix load path aware 0.9402 2015-09-16 14:30:07 CEST - rename Iterable 'sort' to 'sorted' to fix name conflict 0.9401 2015-09-15 11:19:57 CEST - new 'uniq' fix - new 'flatten' fix - new 'include' fix to load other fix files - Importer has a new 'data_path' option to import data substructure(s) instead - fix emitted null bug in the 'reject' and 'select' fixes - more pod and many typos corrected 0.94 2015-07-10 13:26:34 CEST - lots more pod and many typos corrected - more fix tests - new Text importer to import data similar to sed and awk - Modules importer supports multiple namespaces and module description - 'help' command now shows importer and exporter options - new utility functions 'pod_section' and 'array_split' - empty path now refers to the root in fixes - new 'assoc' fix - new 'perlcode' fix - new 'with' and 'visitor' binds - new 'in' fix condition - new 'any_equal', 'all_equal' fix conditions - new 'is_bool', 'is_true', 'is_false' fix conditions - utf8 support tests - more robust header detection in CSV exporter - more robust 'copy_field' fix - 'expand' and 'collapse' fixes have a new 'sep_char' option - add .dockerignore file - fix travis.yml - more robust 'lookup' and 'lookup_in_store' fixes - Iterable 'select' method aliased as 'grep' - Hash store has a new 'init_data' option - remove conflicting VERSION sub from CLI 0.9301 2015-02-24 11:17:36 CET - Cmd output test failed sometimes 0.93 2015-02-24 09:54:04 CET - Iterable can now behave like an external iterator (see next and rewind methods) - better Fix::Parser error handling - new hash_merge fix - fix Versioning bugs - more consistent Importer::JSON and Exporter::JSON parameter naming - fix regex bug in emit - new set_array and set_hash fixes - new filter fix - Iterable stop_if method - pod fixes 0.9210 2015-01-06 09:28:23 CET - fix log tests 0.9209 2014-12-04 13:58:02 CET - info command - ignore installed but depreciated commands - improved retain fix will replace retain_field - simple emitting fixes require a bit less boilerplate - JSON::XS is now required to avoid bugs in other implementations 0.9208 2014-11-20 09:50:56 CET - lazy and more robust fix building in Fix.pm 0.9207 2014-11-06 09:53:08 CET - greater_than, less_than fix conditions - fix bug in Paged - Exporter::JSON pod - sort_field fix handles undef values 0.9206 2014-10-07 09:06:43 CEST - remove orphan test 0.9205 2014-10-06 14:09:06 CEST - more pod - combine the various info modules in Importer::Modules - Bind::hashmap fix 0.9204 2014-06-13 09:44:48 CEST - fix issue #93 octal number bug 0.9203 2014-06-13 09:27:54 CEST - fix counting bugs 0.9202 2014-06-10 09:30:24 CEST - fix Logger bug 0.9201 2014-06-06 14:44:33 CEST - Iterable benchmark and format method pod 0.92 2014-06-06 13:06:01 CEST - catmandu debug flag and more informative error messages - more pod - bump required version of Moo - require YAML::XS to avoid YAML weirdness - fix CLI include path load order - MooX::Log::Any replaced by Catmandu::Logger because it doesn't set the correct category - config command can use any Exporter - Importer::JSON multiline is more robust - Exporter::JSON supports canonical, indent, space_before, space_after options - info commands and matching importers 0.9103 2014-05-23 10:24:52 CEST - fix script dir in build script - Fix::Parser handles empty comments - Exporter pod 0.9102 2014-05-20 14:07:46 CEST - Marpa requires Time::Piece 0.9101 2014-05-20 11:58:46 CEST - less_than, greater_than conditions 0.91 2014-05-20 09:29:01 CEST - adding monads in disguise Catmandu::Fix::Bind - much more pod - make travis a bit happier 0.9 2014-05-12 10:18:40 CEST - switch to Dist::Milla - Marpa based fix parser - Config::Onion based config loader - :up load path - move documentation to the Github wiki - Validators 0.8014 2014-04-03 - fix Paged bugs - more tests 0.8013 2014-03-27 - Importer::JSON multiline switch - Importer pod 0.8012 2014-03-24 - add missing List::MoreUtils dependency 0.8011 2014-03-18 - fix Paged bugs - array and hash fixes - more tests - more pod 0.8010 2014-03-11 - bump required version of YAML::Any - use List::Util::sum instead of List::Util::sum0 (not present in older versions) 0.8009 2014-03-07 - sort_field fix - fix undefined lib_path 0.8008 2014-03-05 - split off Catmandu::Exporter::Template 0.8007 2014-03-04 - rewrite Catmandu::Serializer - split off Catmandu::Serializer::storable - split off Catmandu::Serializer::messagepack - tests for Catmandu::Serializer 0.8006 2014-03-04 - expand_date fix - CLI --lib-path option - more tests - remove dependency on Data::SpreadPagination - Importer encoding is now an attribute - fixes inheriting from Fix::Base can now export their functionality as a function 0.8005 2013-12-20 - Catmandu::Plugin:: pod 0.8004 2013-12-18 - Exporter::CSV always_quote option 0.8003 2013-12-18 - fix bug in Store::bags 0.8002 2013-12-09 - fix pod 0.8001 2013-11-19 - add one step install to pod 0.8 2013-11-14 - Fix::Condition now supports otherwise clause - Fix, Fix::Condition bugfixes - TY RIS tag needs to come first for some exporters - fix version command 0.7002 2013-09-12 - sort keys extracted from a hash in Exporter::CSV and Importer::CSV 0.7001 2013-09-09 - fix bug in data command with option values evaling to false 0.7 2013-09-02 - JSON Exporter array option 0.6 2013-09-02 - Util::trim also removes vertical whitespace - updated introduction, developers guide - more tests - sum fix - travis - pod links 0.5004 2013-07-01 - lookup, lookup_in_store fixes handle -delete option with wildcard correctly 0.5003 2013-06-28 - lookup_in_store fix 0.5002 2013-06-26 - count fix - nothing fix 0.5001 2013-06-25 - trim fix nonword option 0.5 2013-06-12 - ArrayIterator pod - split off Store::DBI, - split off Importer::Atom - split off Exporter::Atom - split off Exporter::BibTeX - split off Exporter::XLS - remove dependency on Module::Info 0.4001 2013-06-20 - lookup fix tests, -default, -delete options 0.4 2013-06-19 - to_json fix - from_json fix 0.3 2013-06-18 - Exporter::JSON pod - lookup fix 0.2003 2013-05-27 - remove given/when statements (experimental since perl 5.16) - fix endless loop if iterators returned by Iterable group method are not consumed 0.2002 2013-05-08 - revert to IO::String because open with scalar ref has binmode bugs 0.2001 2013-05-07 - ArrayIterator - fix Util::is_instance() - avoid using IO::String 0.2 2013-04-24 - better config command - convert command - count command - delete command - export command - import command - move command 0.1003 2013-04-16 - fix Exporter::Template dynamic scope 0.1002 2013-04-02 - missing Env::fixers 0.1001 2013-03-28 - don't throw empty messages - bump required version of Throwable 0.1 2013-03-26 - logging with MooX::Log::Any - error hierarchy - Store forwards all Bag methods to the default Bag - make Perl::Tidy optional - namespace::clean - Sane exports Try::Tiny::ByClass - Sane no longer exports confess, use the Error classes - a new Env class takes care of loading the config and other environment related tasks - Buffer and Counter have better encapsulation - Iterable has a new benchmark method - Exporter::RIS AR tag - Exporter::BibTeX articleno field - rename Pager to Paged 0.0901 2013-03-07 - fix makefile 0.09 2013-03-06 - Exporter::Atom - fix pod 0.08 2013-02-26 - compile fixes to perl closure - tests for all fixes - fix typo in Importer::RIS - add doi field to Exporter::BibTeX 0.07 2013-02-07 - conditionals in fixes - append, prepend fixes 0.06 2013-02-05 - Util::io() can now take a callback to read to or write from - fixer method enables named fixers in config - default fixers, importers, exporters equivalent to default store 0.05 2012-12-04 - split off Catmandu::Store::ElasticSearch - split off Catmandu::Store::Solr - split off Plack::Session::Store::Catmandu - split off Dancer::Plugin::Catmandu::OAI - split off Dancer::Plugin::Catmandu::SRU - split off Dancer::Session::Catmandu - Exporter::Template dies if template isn't found - fix accidental creation of non-existing keys in Util::set_data() 0.0402 2012-11-12 - Store::Hash is no longer Searchable - remove dependency on Data::Visitor::Callback - bump required version of Moo to 1.0 - Util::write_file() - Util::join_path() - Util::normalize_path() - Util::segmented_path() - Util prefer io(binmode => ...) to io(encoding => ...) 0.0401 2012-10-24 - split off Store::SBCatDB - more Util docs 0.04 2012-10-24 - Util human output functions - Util xml functions - Util docs 0.0303 2012-10-15 - pass limit option in Store::ElasticSearch::Searcher and Store::Solr::Searcher - fix Exporter::CSV docs - custom header labels in Exporter::CSV and Exporter::XLS 0.0302 2012-09-25 - fix POST support in Dancer::Plugin::Catmandu::OAI - optimize Util::require_package 0.0301 2012-07-09 - fix typo in Catmandu->load 0.03 2012-07-06 - iterative version of CQL::ElasticSearch - Store::ElasticSearch searcher supports sort - faster Datestamps - Iterable->interleave() - Iterable->detect/select/reject(key => ['val', ...]) - Iterable->detect/select/reject(key => 'val') - fix Dancer::Plugin::Catmandu::SRU recordPosition - Cmd::config can take a key to show only a subset 0.02 2012-06-12 - remove guard feature from fixes - load split config files - Catmandu->roots() - support for nested object queries in CQL::ElasticSearch - improve Plugin::Versioning - more docs 0.0106 2012-05-29 - fix Store::DBI transaction method 0.0105 2012-05-21 - more docs 0.0104 2012-05-16 - more docs 0.0103 2012-05-14 - improve Plugin::Versioning - more docs - fix split on \r in tests - fix dependencies: parent.pm is only bundled with perl >= 5.10.1 0.0102 2012-05-09 - pass data to Bag->generate_id() - fix typo in Cmd::data - fix YAML loading 0.0101 2012-05-08 - fix dependencies 0.01 2012-05-05 - initial release Catmandu-1.10/MANIFEST000644 000765 000024 00000025446 13341726377 015324 0ustar00nsteenlastaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.008. Build.PL Changes Dockerfile LICENSE MANIFEST META.json META.yml Makefile README benchmark/clone.pl benchmark/data.json benchmark/util_vs_data_util.pl bin/catmandu cpanfile dist.ini docker/apt.txt lib/Catmandu.pm lib/Catmandu/Addable.pm lib/Catmandu/ArrayIterator.pm lib/Catmandu/Bag.pm lib/Catmandu/Bag/IdGenerator.pm lib/Catmandu/Bag/IdGenerator/Mock.pm lib/Catmandu/Bag/IdGenerator/UUID.pm lib/Catmandu/Buffer.pm lib/Catmandu/CLI.pm lib/Catmandu/CQLSearchable.pm lib/Catmandu/Cmd.pm lib/Catmandu/Cmd/compile.pm lib/Catmandu/Cmd/config.pm lib/Catmandu/Cmd/convert.pm lib/Catmandu/Cmd/copy.pm lib/Catmandu/Cmd/count.pm lib/Catmandu/Cmd/delete.pm lib/Catmandu/Cmd/drop.pm lib/Catmandu/Cmd/export.pm lib/Catmandu/Cmd/help.pm lib/Catmandu/Cmd/import.pm lib/Catmandu/Cmd/info.pm lib/Catmandu/Cmd/run.pm lib/Catmandu/Cmd/touch.pm lib/Catmandu/Counter.pm lib/Catmandu/Droppable.pm lib/Catmandu/Env.pm lib/Catmandu/Error.pm lib/Catmandu/Expander.pm lib/Catmandu/Exporter.pm lib/Catmandu/Exporter/CSV.pm lib/Catmandu/Exporter/Count.pm lib/Catmandu/Exporter/JSON.pm lib/Catmandu/Exporter/Mock.pm lib/Catmandu/Exporter/Multi.pm lib/Catmandu/Exporter/Null.pm lib/Catmandu/Exporter/TSV.pm lib/Catmandu/Exporter/Text.pm lib/Catmandu/Exporter/YAML.pm lib/Catmandu/Fix.pm lib/Catmandu/Fix/Base.pm lib/Catmandu/Fix/Bind.pm lib/Catmandu/Fix/Bind/Group.pm lib/Catmandu/Fix/Bind/benchmark.pm lib/Catmandu/Fix/Bind/each.pm lib/Catmandu/Fix/Bind/hashmap.pm lib/Catmandu/Fix/Bind/identity.pm lib/Catmandu/Fix/Bind/importer.pm lib/Catmandu/Fix/Bind/iterate.pm lib/Catmandu/Fix/Bind/list.pm lib/Catmandu/Fix/Bind/maybe.pm lib/Catmandu/Fix/Bind/timeout.pm lib/Catmandu/Fix/Bind/visitor.pm lib/Catmandu/Fix/Bind/with.pm lib/Catmandu/Fix/Condition.pm lib/Catmandu/Fix/Condition/SimpleAllTest.pm lib/Catmandu/Fix/Condition/SimpleAnyTest.pm lib/Catmandu/Fix/Condition/SimpleCompareTest.pm lib/Catmandu/Fix/Condition/all_equal.pm lib/Catmandu/Fix/Condition/all_match.pm lib/Catmandu/Fix/Condition/any_equal.pm lib/Catmandu/Fix/Condition/any_match.pm lib/Catmandu/Fix/Condition/exists.pm lib/Catmandu/Fix/Condition/greater_than.pm lib/Catmandu/Fix/Condition/in.pm lib/Catmandu/Fix/Condition/is_array.pm lib/Catmandu/Fix/Condition/is_false.pm lib/Catmandu/Fix/Condition/is_null.pm lib/Catmandu/Fix/Condition/is_number.pm lib/Catmandu/Fix/Condition/is_object.pm lib/Catmandu/Fix/Condition/is_string.pm lib/Catmandu/Fix/Condition/is_true.pm lib/Catmandu/Fix/Condition/less_than.pm lib/Catmandu/Fix/Condition/valid.pm lib/Catmandu/Fix/Has.pm lib/Catmandu/Fix/Inlineable.pm lib/Catmandu/Fix/Namespace.pm lib/Catmandu/Fix/Namespace/perl.pm lib/Catmandu/Fix/Parser.pm lib/Catmandu/Fix/SimpleGetValue.pm lib/Catmandu/Fix/add.pm lib/Catmandu/Fix/add_field.pm lib/Catmandu/Fix/add_to_exporter.pm lib/Catmandu/Fix/add_to_store.pm lib/Catmandu/Fix/append.pm lib/Catmandu/Fix/array.pm lib/Catmandu/Fix/assoc.pm lib/Catmandu/Fix/capitalize.pm lib/Catmandu/Fix/clone.pm lib/Catmandu/Fix/code.pm lib/Catmandu/Fix/collapse.pm lib/Catmandu/Fix/compact.pm lib/Catmandu/Fix/copy.pm lib/Catmandu/Fix/copy_field.pm lib/Catmandu/Fix/count.pm lib/Catmandu/Fix/downcase.pm lib/Catmandu/Fix/error.pm lib/Catmandu/Fix/expand.pm lib/Catmandu/Fix/expand_date.pm lib/Catmandu/Fix/export_to_string.pm lib/Catmandu/Fix/filter.pm lib/Catmandu/Fix/flatten.pm lib/Catmandu/Fix/format.pm lib/Catmandu/Fix/from_json.pm lib/Catmandu/Fix/hash.pm lib/Catmandu/Fix/import.pm lib/Catmandu/Fix/import_from_string.pm lib/Catmandu/Fix/include.pm lib/Catmandu/Fix/index.pm lib/Catmandu/Fix/int.pm lib/Catmandu/Fix/join.pm lib/Catmandu/Fix/join_field.pm lib/Catmandu/Fix/log.pm lib/Catmandu/Fix/lookup.pm lib/Catmandu/Fix/lookup_in_store.pm lib/Catmandu/Fix/move.pm lib/Catmandu/Fix/move_field.pm lib/Catmandu/Fix/nothing.pm lib/Catmandu/Fix/parse_text.pm lib/Catmandu/Fix/paste.pm lib/Catmandu/Fix/perlcode.pm lib/Catmandu/Fix/prepend.pm lib/Catmandu/Fix/random.pm lib/Catmandu/Fix/reject.pm lib/Catmandu/Fix/remove.pm lib/Catmandu/Fix/remove_field.pm lib/Catmandu/Fix/rename.pm lib/Catmandu/Fix/replace_all.pm lib/Catmandu/Fix/retain.pm lib/Catmandu/Fix/retain_field.pm lib/Catmandu/Fix/reverse.pm lib/Catmandu/Fix/search_in_store.pm lib/Catmandu/Fix/set.pm lib/Catmandu/Fix/set_array.pm lib/Catmandu/Fix/set_field.pm lib/Catmandu/Fix/set_hash.pm lib/Catmandu/Fix/sleep.pm lib/Catmandu/Fix/sort.pm lib/Catmandu/Fix/sort_field.pm lib/Catmandu/Fix/split.pm lib/Catmandu/Fix/split_field.pm lib/Catmandu/Fix/string.pm lib/Catmandu/Fix/substring.pm lib/Catmandu/Fix/sum.pm lib/Catmandu/Fix/to_json.pm lib/Catmandu/Fix/trim.pm lib/Catmandu/Fix/uniq.pm lib/Catmandu/Fix/upcase.pm lib/Catmandu/Fix/uri_decode.pm lib/Catmandu/Fix/uri_encode.pm lib/Catmandu/Fix/vacuum.pm lib/Catmandu/Fix/validate.pm lib/Catmandu/Fixable.pm lib/Catmandu/Hits.pm lib/Catmandu/IdGenerator.pm lib/Catmandu/IdGenerator/Mock.pm lib/Catmandu/IdGenerator/UUID.pm lib/Catmandu/Importer.pm lib/Catmandu/Importer/CSV.pm lib/Catmandu/Importer/DKVP.pm lib/Catmandu/Importer/JSON.pm lib/Catmandu/Importer/Mock.pm lib/Catmandu/Importer/Modules.pm lib/Catmandu/Importer/Multi.pm lib/Catmandu/Importer/Null.pm lib/Catmandu/Importer/TSV.pm lib/Catmandu/Importer/Text.pm lib/Catmandu/Importer/YAML.pm lib/Catmandu/Interactive.pm lib/Catmandu/Introduction.pod lib/Catmandu/Iterable.pm lib/Catmandu/Iterator.pm lib/Catmandu/Logger.pm lib/Catmandu/MultiIterator.pm lib/Catmandu/Paged.pm lib/Catmandu/Pluggable.pm lib/Catmandu/Plugin/Datestamps.pm lib/Catmandu/Plugin/Readonly.pm lib/Catmandu/Plugin/Versioning.pm lib/Catmandu/Sane.pm lib/Catmandu/Searchable.pm lib/Catmandu/Serializer.pm lib/Catmandu/Serializer/json.pm lib/Catmandu/Store.pm lib/Catmandu/Store/Hash.pm lib/Catmandu/Store/Hash/Bag.pm lib/Catmandu/Store/Multi.pm lib/Catmandu/Store/Multi/Bag.pm lib/Catmandu/TabularExporter.pm lib/Catmandu/Transactional.pm lib/Catmandu/Util.pm lib/Catmandu/Validator.pm lib/Catmandu/Validator/Mock.pm lib/Catmandu/Validator/Simple.pm misc/vim/syntax/catmandu-fix.vim t/Catmandu-Addable.t t/Catmandu-ArrayIterator.t t/Catmandu-Bag.t t/Catmandu-Buffer.t t/Catmandu-CLI.t t/Catmandu-CQLSearchable.t t/Catmandu-Cmd-compile.t t/Catmandu-Cmd-config.t t/Catmandu-Cmd-convert.t t/Catmandu-Cmd-copy.t t/Catmandu-Cmd-count.t t/Catmandu-Cmd-delete.t t/Catmandu-Cmd-export.t t/Catmandu-Cmd-help.t t/Catmandu-Cmd-import.t t/Catmandu-Cmd-info.t t/Catmandu-Cmd-run.t t/Catmandu-Cmd-touch.t t/Catmandu-Cmd.t t/Catmandu-Counter.t t/Catmandu-Env.t t/Catmandu-Error.t t/Catmandu-Exporter-CSV.t t/Catmandu-Exporter-Count.t t/Catmandu-Exporter-JSON.t t/Catmandu-Exporter-Mock.t t/Catmandu-Exporter-Multi.t t/Catmandu-Exporter-Null.t t/Catmandu-Exporter-TSV.t t/Catmandu-Exporter-Text.t t/Catmandu-Exporter-YAML.t t/Catmandu-Exporter.t t/Catmandu-Fix-Base.t t/Catmandu-Fix-Bind-Group.t t/Catmandu-Fix-Bind-benchmark.t t/Catmandu-Fix-Bind-each.t t/Catmandu-Fix-Bind-hashmap.t t/Catmandu-Fix-Bind-identity.t t/Catmandu-Fix-Bind-importer.t t/Catmandu-Fix-Bind-iterate.t t/Catmandu-Fix-Bind-list.t t/Catmandu-Fix-Bind-maybe.t t/Catmandu-Fix-Bind-timeout.t t/Catmandu-Fix-Bind-visitor.t t/Catmandu-Fix-Bind-with.t t/Catmandu-Fix-Bind.t t/Catmandu-Fix-Condition-all_equal.t t/Catmandu-Fix-Condition-all_match.t t/Catmandu-Fix-Condition-any_equal.t t/Catmandu-Fix-Condition-any_match.t t/Catmandu-Fix-Condition-exists.t t/Catmandu-Fix-Condition-greater_than.t t/Catmandu-Fix-Condition-in.t t/Catmandu-Fix-Condition-is_array.t t/Catmandu-Fix-Condition-is_false.t t/Catmandu-Fix-Condition-is_null.t t/Catmandu-Fix-Condition-is_number.t t/Catmandu-Fix-Condition-is_object.t t/Catmandu-Fix-Condition-is_string.t t/Catmandu-Fix-Condition-is_true.t t/Catmandu-Fix-Condition-less_than.t t/Catmandu-Fix-Condition-valid.t t/Catmandu-Fix-Condition.t t/Catmandu-Fix-Inlineable.t t/Catmandu-Fix-Parser.t t/Catmandu-Fix-add_field.t t/Catmandu-Fix-add_to_exporter.t t/Catmandu-Fix-add_to_store.t t/Catmandu-Fix-append.t t/Catmandu-Fix-array.t t/Catmandu-Fix-assoc.t t/Catmandu-Fix-capitalize.t t/Catmandu-Fix-clone.t t/Catmandu-Fix-code.t t/Catmandu-Fix-collapse.t t/Catmandu-Fix-compact.t t/Catmandu-Fix-copy_field.t t/Catmandu-Fix-count.t t/Catmandu-Fix-downcase.t t/Catmandu-Fix-error.t t/Catmandu-Fix-expand.t t/Catmandu-Fix-expand_date.t t/Catmandu-Fix-export_to_string.t t/Catmandu-Fix-filter.t t/Catmandu-Fix-flatten.t t/Catmandu-Fix-format.t t/Catmandu-Fix-from_json.t t/Catmandu-Fix-hash.t t/Catmandu-Fix-import_from_string.t t/Catmandu-Fix-include.t t/Catmandu-Fix-index.t t/Catmandu-Fix-int.t t/Catmandu-Fix-join_field.t t/Catmandu-Fix-log.t t/Catmandu-Fix-lookup.t t/Catmandu-Fix-lookup_in_store.t t/Catmandu-Fix-move_field.t t/Catmandu-Fix-nothing.t t/Catmandu-Fix-parse_text.t t/Catmandu-Fix-paste.t t/Catmandu-Fix-perlcode.t t/Catmandu-Fix-prepend.t t/Catmandu-Fix-random.t t/Catmandu-Fix-reject.t t/Catmandu-Fix-remove_field.t t/Catmandu-Fix-rename.t t/Catmandu-Fix-replace_all.t t/Catmandu-Fix-retain.t t/Catmandu-Fix-retain_field.t t/Catmandu-Fix-reverse.t t/Catmandu-Fix-search_in_store.t t/Catmandu-Fix-set_array.t t/Catmandu-Fix-set_field.t t/Catmandu-Fix-set_hash.t t/Catmandu-Fix-sleep.t t/Catmandu-Fix-sort_field.t t/Catmandu-Fix-split_field.t t/Catmandu-Fix-string.t t/Catmandu-Fix-substring.t t/Catmandu-Fix-sum.t t/Catmandu-Fix-to_json.t t/Catmandu-Fix-trim.t t/Catmandu-Fix-uniq.t t/Catmandu-Fix-upcase.t t/Catmandu-Fix-uri_decode.t t/Catmandu-Fix-uri_encode.t t/Catmandu-Fix-uri_encode_decode.t t/Catmandu-Fix-vacuum.t t/Catmandu-Fix-validate.t t/Catmandu-Fix.t t/Catmandu-Fixable.t t/Catmandu-Hits.t t/Catmandu-IdGenerator-Mock.t t/Catmandu-IdGenerator-UUID.t t/Catmandu-IdGenerator.t t/Catmandu-Importer-CSV.t t/Catmandu-Importer-JSON.t t/Catmandu-Importer-Mock.t t/Catmandu-Importer-Modules.t t/Catmandu-Importer-Multi.t t/Catmandu-Importer-TSV.t t/Catmandu-Importer-Text.t t/Catmandu-Importer-YAML.t t/Catmandu-Importer.t t/Catmandu-Interactive.t t/Catmandu-Iterable.t t/Catmandu-Iterator.t t/Catmandu-MultiIterator.t t/Catmandu-Paged.t t/Catmandu-Pluggable.t t/Catmandu-Plugin-Datestamps.t t/Catmandu-Plugin-Readonly.t t/Catmandu-Plugin-Versioning.t t/Catmandu-Sane.t t/Catmandu-Searchable.t t/Catmandu-Serializer.t t/Catmandu-Store-Hash.t t/Catmandu-Store-Multi-Bag.t t/Catmandu-Store-Multi.t t/Catmandu-Store.t t/Catmandu-Util.t t/Catmandu-Validator-Mock.t t/Catmandu-Validator-Simple.t t/Catmandu-Validator.t t/Catmandu.t t/author-pod-syntax.t t/catmandu.yml t/csv_test.json t/data2/000/000/001/test.txt t/data2/000/000/002/test.pdf t/data2/000/000/002/test.txt t/data2/000/000/003/test.txt t/fix-include-glob/fix-1.fix t/fix-include-glob/fix-2.fix t/fix-include-glob/fix-3.fix t/fix-level-1.fix t/fix-level-2.fix t/fix-level-3.fix t/lib/Catmandu/Fix/undef_error.pm t/lib/Catmandu/Importer/Values.pm t/lib/Catmandu/Serializer/dumper.pm t/lib/T/Fix/Condition/is_42.pm t/lib/T/Fix/test.pm t/log4perl.conf t/myfixes.fix t/non_ascii.json t/non_ascii.yaml t/planet_ids.txt t/planets.csv t/planets.tab t/release-perltidy.t t/run.fix t/russian.txt t/script.pl t/small.json t/small.yaml t/variables.fix Catmandu-1.10/t/000755 000765 000024 00000000000 13341726377 014423 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/README000644 000765 000024 00000041667 13341726377 015056 0ustar00nsteenlastaff000000 000000 NAME Catmandu - a data toolkit SYNOPSIS # From the command line # Convert data from one format to another $ catmandu convert JSON to CSV < data.json $ catmandu convert CSV to YAML < data.csv $ catmandu convert MARC to YAML < data.mrc # Fix data, add, delete, change fields $ catmandu convert JSON --fix 'move_field(title,my_title)' < data.json $ catmandu convert JSON --fix all_my_fixes.txt < data.json # Use a moustache preprocessor on the fix script $ catmandu convert JSON --fix all_my_fixes.txt --var opt1=foo --var opt2=bar < data.json # Import data into a database # Requires: Catmandu::MongoDB and Catmandu::ElasticSearch $ catmandu import YAML to MongoDB --database_name bibliography < data.yml $ catmandu import CSV to ElasticSearch --index_name mystuff < data.csv # Export data from a database # Requires: Catmandu::MongoDB and Catmandu::ElasticSearch $ catmandu export MongoDB --database_name bibliography to YAML > data.yml $ catmandu export ElasticSearch --index_name mystuff to CSV > data.csv # Copy data from one store to another $ catmandu copy MongoDB --database_name mydb to ElasticSearch --index_name mydb # Show the contents of catmandu.yml $ catmandu config # Count items in a store $ catmandu count test1 # Delete items from store $ catmandu delete test1 --query 'title:"My Rabbit"' # run a fix script $ catmandu run myfixes.fix # or, create an executable fix script $ cat myfixes.fix #!/usr/local/bin/catmandu run do importer(OAI,url:"http://biblio.ugent.be/oai") retain(_id) end $ chmod 755 myfixes.fix $ ./myfixes.fix # From Perl use Catmandu; # If you have Catmandu::OAI and Catmandu::MongoDB installed my $importer = Catmandu->importer('OAI',url => 'https://biblio.ugent.be/oai') my $store = Catmandu->store('MongoDB',database_name => 'test'); # Import all the OAI records into MongoDB $store->add_many($importer); # Export all the MongoDB records to YAML and apply some fixes # myfixes.txt: # upcase(title.*) # remove_field(_metadata) # join_field(creator,'; ') # join_field(subject,'-- ') my $fixer = Catmandu->fixer('myfixes.txt'); my $exporter = Catmandu->exporter('YAML'); $exporter->add_many( $fixer->fix($store) ); $exporter->commit; DESCRIPTION Catmandu provides a command line client and a Perl API to ease the export (E) transformation (T) and loading (L) of data into databases or data file, ETL in short. Most of the daily work processing structured data can be done on the command line executing the catmandu command. With our catmandu command ETL processing is available in a Perl context. Catmandu is different from other ETL tools by its focus on command line processing with much support for dataformats available in (academic) libraries: MARC, MODS, OAI and SRU. But, also generic formats such as JSON, YAML, CVS, Excel, XML, RDF, Atom are supported. Read : * Catmandu::Introduction for a primer on the command line capabilities of Catmandu. * Catmandu::Importer for the basics of importing * Catmandu::Fix for the basics of transformations * Catmandu::Exporter for the basics of exporting * Catmandu::Store for the basics of storing information * Or, visit our website at http://librecat.org/ and our blog https://librecatproject.wordpress.com/ for many tutorials The documentation below describes the methods available when including Catmandu as part of a Perl script. For an overview of the command line tool itself read the documentation on catmandu. USE To include Catmandu in a Perl script it should be loaded with a use command: use Catmandu; By default no methods are imported into the Perl context. To import all or some Catmandu methods, provide them as a list to the use command: use Catmandu -all; use Catmandu qw(config store exporter); Catmandu can load configuration options for exports, importers, fixers via configuration files (see the CONFIG section below). When adding the --load option (optionally with a path) to the use command, these configuration files will be loaded at the start of your script. use Catmandu -load; use Catmandu --load => ['/my/config/directory']; # or use all the options use Catmandu -all -load => [qw(/config/path' '/another/config/path)]; CLASS METHODS log Return the current Log::Any logger. use Catmandu; use Log::Any::Adapter; use Log::Log4perl; Log::Any::Adapter->set('Log4perl'); # requires Log::Any::Adapter::Log4perl Log::Log4perl::init('./log4perl.conf'); my $logger = Catmandu->log; $logger->info("Starting main program"); with log4perl.conf like: # Send a copy of all logging messages to STDERR log4perl.rootLogger=DEBUG,STDERR # Logging specific for your main program log4perl.category.myprog=INFO,STDERR # Logging specific for on part of Catmandu log4perl.category.Catmandu::Fix=DEBUG,STDERR # Where to send the STDERR output log4perl.appender.STDERR=Log::Log4perl::Appender::Screen log4perl.appender.STDERR.stderr=1 log4perl.appender.STDERR.utf8=1 log4perl.appender.STDERR.layout=PatternLayout log4perl.appender.STDERR.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n default_load_path(['/default/path']) Returns the default location where Catmandu looks for configuration and lib when called with no argument. Sets the default location if a path is given. The default load path is the script directory or it's parent if the script directory is bin. load Load all the configuration options in the catmandu.yml configuration file. See CONFIG below for extended examples of configuration options. load('/path', '/another/path') Load all the configuration options stored at alternative paths. A load path ':up' will search upwards from your program for configuration. See CONFIG below for extended examples of configuration options. roots Returns an ARRAYREF of paths where configuration was found. Note that this list is empty before load. root Returns the first path where configuration was found. Note that this is undef before load. config Returns the current configuration as a HASHREF. config($config) Set a new configuration and reload the environment. default_store Return the name of the default store. store([NAME]) Return an instance of Catmandu::Store. The NAME is a name of a Catmandu::Store or the name of a store configured in a catmandu.yml configuration file. When no NAME is given, the 'default' store in the configuration file will be used. E.g. if the configuration file 'catmandu.yml' contains: store: default: package: ElasticSearch options: index_name: blog test: package: Mock then in your program: # This will use ElasticSearch my $store = Catmandu->store('ElasticSearch', index_name => 'blog'); # or because we have a 'default' set in the configuration file my $store = Catmandu->store('default'); # or because 'default' will be used when no name was provided my $store = Catmandu->store; # This will use Mock my $store = Catmandu->store('test'); Configuration settings can be overwritten by the store command: my $store2 = Catmandu->store('default', index_name => 'test2'); default_fixer Return the name of the default fixer. fixer(NAME) fixer(FIX,FIX) fixer([FIX]) Return an instance of Catmandu::Fix. NAME can be the name of a fixer section in a catmandu.yml file. Or, one or more Catmandu::Fix-es can be provided inline. E.g. if the configuration file 'catmandu.yml' contains: fixer: default: - do_this() - do_that() then in your program al these lines below will create the same fixer: my $fixer = Catmandu->fixer('do_this()', 'do_that()'); my $fixer = Catmandu->fixer(['do_this()', 'do_that()']); my $fixer = Catmandu->fixer('default'); my $fixer = Catmandu->fixer(); # The default name is 'default' FIX-es can be also written to a Fix script. E.g. if myfixes.txt contains: do_this() do_that() then the above code will even be equivalent to: my $fixer = Catmandu->fixer('myfixes.txt'); default_importer Return the name of the default importer. default_importer_package Return the name of the default importer package if no package name is given in the config or as a param. importer(NAME) Return an instance of Catmandu::Importer. The NAME is a name of a Catmandu::Importer or the name of a importer configured in a catmandu.yml configuration file. When no NAME is given, the 'default' importer in the configuration file will be used. E.g. if the configuration file 'catmandu.yml' contains: importer: default: package: OAI options: url: http://www.instute.org/oai/ then in your program all these lines will be equivalent: my $importer = Catmandu->importer('OAI', url => 'http://www.instute.org/oai/'); my $importer = Catmandu->importer('default'); my $importer = Catmandu->importer(); # The default name is 'default' Configuration settings can be overwritten by the importer command: my $importer2 = Catmandu->importer('default', url => 'http://other.institute.org'); default_exporter Return the name of the default exporter. default_exporter_package Return the name of the default exporter package if no package name is given in the config or as a param. exporter([NAME]) Return an instance of Catmandu::Exporter with name NAME (or the default when no name is given). The NAME can be in a configuration file (see 'importer'). validator([NAME]) Return an instance of Catmandu::Validator with name NAME (or the default when no name is given). The NAME can be in a configuration file (see 'importer'). export($data,[NAME]) Export data using a default or named exporter or exporter instance. Catmandu->export({ foo=>'bar'}); my $importer = Catmandu::Importer::Mock->new; Catmandu->export($importer, 'YAML', file => '/my/file'); Catmandu->export($importer, 'my_exporter'); Catmandu->export($importer, 'my_exporter', exporter_option => '...' , ...); Catmantu->export($importer, Catmandu::Exporter::YAML->new); export_to_string Export data using a default or named exporter to a string. my $importer = Catmandu::Importer::Mock->new; my $yaml = Catmandu->export_to_string($importer, 'YAML'); # is the same as my $yaml = ""; Catmandu->export($importer, 'YAML', file => \$yaml); import_from_string Import data from a string using a default or named importer. Return value should be an array of hashes. my $json = qq([{"name":"Nicolas"}]); { my $record = Catmandu->import_from_string( $json, "JSON" ); } # is the same as { my $record = Catmandu->importer('JSON', file => \$json)->to_array() } define_importer Configure a new named importer. Catmandu->define_importer(books => CSV => (fields => 'title,author,publisher')); Catmandu->importer(books => (file => 'mybooks.csv'))->each(sub { my $book = shift; say $book->{title}; }); # this is equivalent to Catmandu->config->{importer}{books} = { package => 'CSV', options => { fields => 'title,author,publisher', }, } define_exporter Configure a new named exporter. Catmandu->define_exporter('books', 'CSV', fix => 'capitalize(title)'); my $csv = Catmandu->export_to_string({title => 'nexus'}, 'books'); # this is equivalent to Catmandu->config->{exporter}{books} = { package => 'CSV', options => { fix => 'capitalize(title)', }, } define_store Configure a new named store. Catmandu->define_store(mydb => MongoDB => (database_name => 'mydb')); Catmandu->store->bag('books')->get(1234); # this is equivalent to Catmandu->config->{store}{mydb} = { package => 'MongoDB', options => { database_name => 'mydb', }, } define_fixer Configure a new named fixer. Catmandu->define_fixer('cleanup', [ 'trim(title)', 'capitalize(title)', 'remove_field(junk)', # ... ]); Catmandu->fixer('cleanup')->fix($record); EXPORTS config Same as Catmandu->config. store Same as Catmandu->store. importer Same as Catmandu->importer. exporter Same as Catmandu->exporter. validator Same as Catmandu->validator. export Same as Catmandu->export. export_to_string Same as Catmandu->export_to_string. import_from_string Same as Catmandu->import_from_string. fixer Same as Catmandu->fixer. log Same as Catmandu->log. -all/:all Import everything. -load/:load use Catmandu -load; use Catmandu -load => []; # is the same as Catmandu->load; use Catmandu -load => ['/config/path']; # is the same as Catmandu->load('/config/path'); CONFIG Catmandu configuration options can be stored in files in the root directory of your programming project. The file can be YAML, JSON or Perl and is called catmandu.yml, catmandu.json or catmandu.pl. In this file you can set the default Catmandu stores and exporters to be used. Here is an example of a catmandu.yml file: store: default: package: ElasticSearch options: index_name: myrepository exporter: default: package: YAML Split config For large configs it's more convenient to split the config into several files. You can do so by having multiple config files starting with catmandu*. catmandu.general.yml catmandu.db.yml ... Split config files are processed and merged by Config::Onion. Deeply nested config structures Config files can indicate a path under which their keys will be nested. This makes your configuration more readable by keeping indentation to a minimum. A config file containing _prefix: foo: bar: baz: 1 will be loaded as foo: bar: baz: 1 See Config::Onion for more information on how this works. SEE ALSO documentation http://librecat.org/Catmandu/ blog https://librecatproject.wordpress.com/ step-by-step introduction from basics https://librecatproject.wordpress.com/2014/12/01/day-1-getting-catmandu/ command line client catmandu core modules Catmandu::Importer Catmandu::Exporter, Catmandu::Store, Catmandu::Fix, Catmandu::Iterable extended features Catmandu::Validator AUTHOR Nicolas Steenlant, CONTRIBUTORS Magnus Enger, magnus at enger.priv.no Nicolas Franck, nicolas.franck at ugent.be Patrick Hochstenbach, patrick.hochstenbach at ugent.be Vitali Peil, vitali.peil at uni-bielefeld.de Christian Pietsch, christian.pietsch at uni-bielefeld.de Dave Sherohman, dave.sherohman at ub.lu.se Jakob Voss, nichtich at cpan.org Snorri Briem, snorri.briem at ub.lu.se Johann Rolschewski, jorol at cpan.org Pieter De Praetere, pieter.de.praetere at helptux.be Doug Bell Upsana, me at upasana.me Stefan Weil Tom Hukins QUESTIONS, ISSUES & BUG REPORTS For any questions on the use of our modules please join our mailing list at: librecat-dev@lists.uni-bielefeld.de or send in your bug reports or feature requests to our issue tracker at: https://github.com/LibreCat/Catmandu/issues LICENSE AND COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information. Catmandu-1.10/META.yml000644 000765 000024 00000005550 13341726377 015436 0ustar00nsteenlastaff000000 000000 --- abstract: 'a data toolkit' author: - 'Nicolas Steenlant, C<< >>' build_requires: Log::Any::Adapter::Log4perl: '0' Log::Any::Test: '1.03' Log::Log4perl: '0' Module::Build: '0.28' Test::Deep: '0.112' Test::Exception: '0.43' Test::LWP::UserAgent: '0' Test::More: '0.99' Test::Pod: '0' configure_requires: Module::Build: '0.28' dynamic_config: 0 generated_by: 'Dist::Milla version v1.0.17, Dist::Zilla version 6.008, CPAN::Meta::Converter version 2.150005' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Catmandu no_index: directory: - eg - examples - inc - share - t - xt recommends: Log::Any::Adapter::Log4perl: '0.06' Log::Log4perl: '1.44' requires: Any::URI::Escape: '0' App::Cmd: '0.33' CGI::Expand: '2.02' Clone: '0.31' Config::Onion: '1.004' Cpanel::JSON::XS: '3.0213' Data::Compare: '1.22' Data::UUID: '1.217' Data::Util: '0.66' Hash::Merge::Simple: '0' IO::Handle::Util: '0.01' LWP::UserAgent: '0' List::MoreUtils: '0.33' List::MoreUtils::XS: '0' Log::Any: '0' Log::Any::Adapter: '0' MIME::Types: '0' Module::Info: '0' Moo: '1.004006' MooX::Aliases: '0.001006' Parser::MGC: '0.15' Path::Iterator::Rule: '0' Path::Tiny: '0' String::CamelCase: '0' Sub::Exporter: '0.982' Sub::Quote: '0' Text::CSV: '1.21' Text::Hogan::Compiler: '1.02' Throwable: '0.200004' Time::HiRes: '0' Try::Tiny::ByClass: '0.01' URI: '0' URI::Template: '0.22' Unicode::Normalize: '0' YAML::XS: '0.41' asa: '0' namespace::clean: '0.24' perl: v5.10.1 resources: bugtracker: https://github.com/LibreCat/Catmandu/issues homepage: https://github.com/LibreCat/Catmandu repository: https://github.com/LibreCat/Catmandu.git version: '1.10' x_contributors: - 'Christian Pietsch ' - 'Dave Sherohman ' - 'Doug Bell ' - 'EC2 Default User ' - 'EC2 Default User ' - 'EC2 Default User ' - 'EC2 Default User ' - 'Jakob Voß ' - 'Johann Rolschewski ' - 'Magnus Enger ' - 'Matthias Vandermaesen ' - 'Nicolas Franck ' - 'Nicolas Franck ' - 'Nicolas Steenlant ' - 'Patrick Hochstenbach ' - 'Pieter De Praetere ' - 'Snorri Briem ' - 'Stefan Weil ' - 'Tom Hukins ' - 'Upasana Shukla ' - 'Vitali Peil ' x_serialization_backend: 'YAML::Tiny version 1.69' Catmandu-1.10/lib/000755 000765 000024 00000000000 13341726377 014726 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/META.json000644 000765 000024 00000011013 13341726377 015575 0ustar00nsteenlastaff000000 000000 { "abstract" : "a data toolkit", "author" : [ "Nicolas Steenlant, C<< >>" ], "dynamic_config" : 0, "generated_by" : "Dist::Milla version v1.0.17, Dist::Zilla version 6.008, CPAN::Meta::Converter version 2.150005", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Catmandu", "no_index" : { "directory" : [ "eg", "examples", "inc", "share", "t", "xt" ] }, "prereqs" : { "build" : { "requires" : { "Module::Build" : "0.28" } }, "configure" : { "requires" : { "Module::Build" : "0.28" } }, "develop" : { "requires" : { "Code::TidyAll" : "0", "Dist::Milla" : "v1.0.17", "Perl::Tidy" : "0", "Test::Code::TidyAll" : "0.20", "Test::Pod" : "1.41", "Text::Diff" : "0" } }, "runtime" : { "recommends" : { "Log::Any::Adapter::Log4perl" : "0.06", "Log::Log4perl" : "1.44" }, "requires" : { "Any::URI::Escape" : "0", "App::Cmd" : "0.33", "CGI::Expand" : "2.02", "Clone" : "0.31", "Config::Onion" : "1.004", "Cpanel::JSON::XS" : "3.0213", "Data::Compare" : "1.22", "Data::UUID" : "1.217", "Data::Util" : "0.66", "Hash::Merge::Simple" : "0", "IO::Handle::Util" : "0.01", "LWP::UserAgent" : "0", "List::MoreUtils" : "0.33", "List::MoreUtils::XS" : "0", "Log::Any" : "0", "Log::Any::Adapter" : "0", "MIME::Types" : "0", "Module::Info" : "0", "Moo" : "1.004006", "MooX::Aliases" : "0.001006", "Parser::MGC" : "0.15", "Path::Iterator::Rule" : "0", "Path::Tiny" : "0", "String::CamelCase" : "0", "Sub::Exporter" : "0.982", "Sub::Quote" : "0", "Text::CSV" : "1.21", "Text::Hogan::Compiler" : "1.02", "Throwable" : "0.200004", "Time::HiRes" : "0", "Try::Tiny::ByClass" : "0.01", "URI" : "0", "URI::Template" : "0.22", "Unicode::Normalize" : "0", "YAML::XS" : "0.41", "asa" : "0", "namespace::clean" : "0.24", "perl" : "v5.10.1" } }, "test" : { "requires" : { "Log::Any::Adapter::Log4perl" : "0", "Log::Any::Test" : "1.03", "Log::Log4perl" : "0", "Test::Deep" : "0.112", "Test::Exception" : "0.43", "Test::LWP::UserAgent" : "0", "Test::More" : "0.99", "Test::Pod" : "0" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/LibreCat/Catmandu/issues" }, "homepage" : "https://github.com/LibreCat/Catmandu", "repository" : { "type" : "git", "url" : "https://github.com/LibreCat/Catmandu.git", "web" : "https://github.com/LibreCat/Catmandu" } }, "version" : "1.10", "x_contributors" : [ "Christian Pietsch ", "Dave Sherohman ", "Doug Bell ", "EC2 Default User ", "EC2 Default User ", "EC2 Default User ", "EC2 Default User ", "Jakob Vo\u00df ", "Johann Rolschewski ", "Magnus Enger ", "Matthias Vandermaesen ", "Nicolas Franck ", "Nicolas Franck ", "Nicolas Steenlant ", "Patrick Hochstenbach ", "Pieter De Praetere ", "Snorri Briem ", "Stefan Weil ", "Tom Hukins ", "Upasana Shukla ", "Vitali Peil " ], "x_serialization_backend" : "Cpanel::JSON::XS version 3.0239" } Catmandu-1.10/dist.ini000644 000765 000024 00000000407 13341726377 015625 0ustar00nsteenlastaff000000 000000 name = Catmandu author = Nicolas Steenlant [@Milla] installer = ModuleBuild [ExecDir] dir = bin [ReadmeAnyFromPod / ReadmePodInRoot] type = markdown filename = README.md location = root source_filename = lib/Catmandu/Introduction.pod Catmandu-1.10/lib/Catmandu.pm000644 000765 000024 00000051041 13341726377 017021 0ustar00nsteenlastaff000000 000000 package Catmandu; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Env; use Catmandu::Util qw(:is); use File::Spec; use namespace::clean; use Sub::Exporter::Util qw(curry_method); use Sub::Exporter -setup => { exports => [ config => curry_method, log => curry_method, store => curry_method, fixer => curry_method, importer => curry_method, exporter => curry_method, validator => curry_method, export => curry_method, export_to_string => curry_method, import_from_string => curry_method ], collectors => {'-load' => \'_import_load', ':load' => \'_import_load',}, }; sub _import_load { my ($self, $value, $data) = @_; if (is_array_ref $value) { $self->load(@$value); } else { $self->load; } 1; } sub _env { my ($class, $env) = @_; state $loaded_env; $loaded_env = $env if defined $env; $loaded_env ||= Catmandu::Env->new(load_paths => $class->default_load_path); } sub log {$_[0]->_env->log} sub default_load_path { # TODO move to Catmandu::Env my ($class, $path) = @_; state $default_path; $default_path = $path if defined $path; $default_path //= do { my $script = File::Spec->rel2abs($0); my ($script_vol, $script_path, $script_name) = File::Spec->splitpath($script); my @dirs = grep length, File::Spec->splitdir($script_path); if ($dirs[-1] eq 'bin') { pop @dirs; File::Spec->catdir(File::Spec->rootdir, @dirs); } else { $script_path; } }; } sub load { my $class = shift; my $paths = [@_ ? @_ : $class->default_load_path]; my $env = Catmandu::Env->new(load_paths => $paths); $class->_env($env); $class; } sub roots { $_[0]->_env->roots; } sub root { $_[0]->_env->root; } sub config { my ($class, $config) = @_; if ($config) { my $env = Catmandu::Env->new(load_paths => $class->_env->load_paths); $env->_set_config($config); $class->_env($env); } $class->_env->config; } sub default_store {$_[0]->_env->default_store} sub store { my $class = shift; $class->_env->store(@_); } sub default_fixer {$_[0]->_env->default_fixer} sub fixer { my $class = shift; $class->_env->fixer(@_); } sub default_importer {$_[0]->_env->default_importer} sub default_importer_package {$_[0]->_env->default_importer_package} sub importer { my $class = shift; $class->_env->importer(@_); } sub default_exporter {$_[0]->_env->default_exporter} sub default_exporter_package {$_[0]->_env->default_exporter_package} sub exporter { my $class = shift; $class->_env->exporter(@_); } sub validator { my $class = shift; $class->_env->validator(@_); } sub export { my $class = shift; my $data = shift; my $exporter = $class->_env->exporter(@_); is_hash_ref($data) ? $exporter->add($data) : $exporter->add_many($data); $exporter->commit; return; } sub export_to_string { my $class = shift; my $data = shift; my $name = shift; my %opts = ref $_[0] ? %{$_[0]} : @_; my $str = ""; my $exporter = $class->_env->exporter($name, %opts, file => \$str); is_hash_ref($data) ? $exporter->add($data) : $exporter->add_many($data); $exporter->commit; $str; } sub import_from_string { my $class = shift; my $str = shift; my $name = shift; my %opts = ref $_[0] ? %{$_[0]} : @_; $class->_env->importer($name, %opts, file => \$str)->to_array(); } sub define_importer { my $class = shift; my $name = shift; my $package = shift; my $options = ref $_[0] ? $_[0] : {@_}; $class->config->{importer}{$name} = {package => $package, options => $options}; } sub define_exporter { my $class = shift; my $name = shift; my $package = shift; my $options = ref $_[0] ? $_[0] : {@_}; $class->config->{exporter}{$name} = {package => $package, options => $options}; } sub define_store { my $class = shift; my $name = shift; my $package = shift; my $options = ref $_[0] ? $_[0] : {@_}; $class->config->{store}{$name} = {package => $package, options => $options}; } sub define_fixer { my $class = shift; my $name = shift; my $fixes = ref $_[0] ? $_[0] : [@_]; $class->config->{fixer}{$name} = $fixes; } 1; __END__ =pod =head1 NAME Catmandu - a data toolkit =head1 SYNOPSIS # From the command line # Convert data from one format to another $ catmandu convert JSON to CSV < data.json $ catmandu convert CSV to YAML < data.csv $ catmandu convert MARC to YAML < data.mrc # Fix data, add, delete, change fields $ catmandu convert JSON --fix 'move_field(title,my_title)' < data.json $ catmandu convert JSON --fix all_my_fixes.txt < data.json # Use a moustache preprocessor on the fix script $ catmandu convert JSON --fix all_my_fixes.txt --var opt1=foo --var opt2=bar < data.json # Import data into a database # Requires: Catmandu::MongoDB and Catmandu::ElasticSearch $ catmandu import YAML to MongoDB --database_name bibliography < data.yml $ catmandu import CSV to ElasticSearch --index_name mystuff < data.csv # Export data from a database # Requires: Catmandu::MongoDB and Catmandu::ElasticSearch $ catmandu export MongoDB --database_name bibliography to YAML > data.yml $ catmandu export ElasticSearch --index_name mystuff to CSV > data.csv # Copy data from one store to another $ catmandu copy MongoDB --database_name mydb to ElasticSearch --index_name mydb # Show the contents of catmandu.yml $ catmandu config # Count items in a store $ catmandu count test1 # Delete items from store $ catmandu delete test1 --query 'title:"My Rabbit"' # run a fix script $ catmandu run myfixes.fix # or, create an executable fix script $ cat myfixes.fix #!/usr/local/bin/catmandu run do importer(OAI,url:"http://biblio.ugent.be/oai") retain(_id) end $ chmod 755 myfixes.fix $ ./myfixes.fix # From Perl use Catmandu; # If you have Catmandu::OAI and Catmandu::MongoDB installed my $importer = Catmandu->importer('OAI',url => 'https://biblio.ugent.be/oai') my $store = Catmandu->store('MongoDB',database_name => 'test'); # Import all the OAI records into MongoDB $store->add_many($importer); # Export all the MongoDB records to YAML and apply some fixes # myfixes.txt: # upcase(title.*) # remove_field(_metadata) # join_field(creator,'; ') # join_field(subject,'-- ') my $fixer = Catmandu->fixer('myfixes.txt'); my $exporter = Catmandu->exporter('YAML'); $exporter->add_many( $fixer->fix($store) ); $exporter->commit; =head1 DESCRIPTION Catmandu provides a command line client and a Perl API to ease the export (E) transformation (T) and loading (L) of data into databases or data file, ETL in short. Most of the daily work processing structured data can be done on the command line executing the C command. With our catmandu command ETL processing is available in a Perl context. Catmandu is different from other ETL tools by its focus on command line processing with much support for dataformats available in (academic) libraries: MARC, MODS, OAI and SRU. But, also generic formats such as JSON, YAML, CVS, Excel, XML, RDF, Atom are supported. Read : =over =item * L for a primer on the command line capabilities of Catmandu. =item * L for the basics of importing =item * L for the basics of transformations =item * L for the basics of exporting =item * L for the basics of storing information =item * Or, visit our website at L and our blog L for many tutorials =back The documentation below describes the methods available when including Catmandu as part of a Perl script. For an overview of the command line tool itself read the documentation on L. =head1 USE To include Catmandu in a Perl script it should be loaded with a C command: use Catmandu; By default no methods are imported into the Perl context. To import all or some Catmandu methods, provide them as a list to the C command: use Catmandu -all; use Catmandu qw(config store exporter); Catmandu can load configuration options for exports, importers, fixers via configuration files (see the CONFIG section below). When adding the --load option (optionally with a path) to the C command, these configuration files will be loaded at the start of your script. use Catmandu -load; use Catmandu --load => ['/my/config/directory']; # or use all the options use Catmandu -all -load => [qw(/config/path' '/another/config/path)]; =head1 CLASS METHODS =head2 log Return the current L logger. use Catmandu; use Log::Any::Adapter; use Log::Log4perl; Log::Any::Adapter->set('Log4perl'); # requires Log::Any::Adapter::Log4perl Log::Log4perl::init('./log4perl.conf'); my $logger = Catmandu->log; $logger->info("Starting main program"); with log4perl.conf like: # Send a copy of all logging messages to STDERR log4perl.rootLogger=DEBUG,STDERR # Logging specific for your main program log4perl.category.myprog=INFO,STDERR # Logging specific for on part of Catmandu log4perl.category.Catmandu::Fix=DEBUG,STDERR # Where to send the STDERR output log4perl.appender.STDERR=Log::Log4perl::Appender::Screen log4perl.appender.STDERR.stderr=1 log4perl.appender.STDERR.utf8=1 log4perl.appender.STDERR.layout=PatternLayout log4perl.appender.STDERR.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n =head2 default_load_path(['/default/path']) Returns the default location where L looks for configuration and lib when called with no argument. Sets the default location if a path is given. The default load path is the script directory or it's parent if the script directory is C. =head2 load Load all the configuration options in the catmandu.yml configuration file. See CONFIG below for extended examples of configuration options. =head2 load('/path', '/another/path') Load all the configuration options stored at alternative paths. A load path C<':up'> will search upwards from your program for configuration. See CONFIG below for extended examples of configuration options. =head2 roots Returns an ARRAYREF of paths where configuration was found. Note that this list is empty before C. =head2 root Returns the first path where configuration was found. Note that this is C before C. =head2 config Returns the current configuration as a HASHREF. =head2 config($config) Set a new configuration and reload the environment. =head2 default_store Return the name of the default store. =head2 store([NAME]) Return an instance of L. The NAME is a name of a L or the name of a store configured in a catmandu.yml configuration file. When no NAME is given, the 'default' store in the configuration file will be used. E.g. if the configuration file 'catmandu.yml' contains: store: default: package: ElasticSearch options: index_name: blog test: package: Mock then in your program: # This will use ElasticSearch my $store = Catmandu->store('ElasticSearch', index_name => 'blog'); # or because we have a 'default' set in the configuration file my $store = Catmandu->store('default'); # or because 'default' will be used when no name was provided my $store = Catmandu->store; # This will use Mock my $store = Catmandu->store('test'); Configuration settings can be overwritten by the store command: my $store2 = Catmandu->store('default', index_name => 'test2'); =head2 default_fixer Return the name of the default fixer. =head2 fixer(NAME) =head2 fixer(FIX,FIX) =head2 fixer([FIX]) Return an instance of L. NAME can be the name of a fixer section in a catmandu.yml file. Or, one or more L-es can be provided inline. E.g. if the configuration file 'catmandu.yml' contains: fixer: default: - do_this() - do_that() then in your program al these lines below will create the same fixer: my $fixer = Catmandu->fixer('do_this()', 'do_that()'); my $fixer = Catmandu->fixer(['do_this()', 'do_that()']); my $fixer = Catmandu->fixer('default'); my $fixer = Catmandu->fixer(); # The default name is 'default' FIX-es can be also written to a Fix script. E.g. if myfixes.txt contains: do_this() do_that() then the above code will even be equivalent to: my $fixer = Catmandu->fixer('myfixes.txt'); =head2 default_importer Return the name of the default importer. =head2 default_importer_package Return the name of the default importer package if no package name is given in the config or as a param. =head2 importer(NAME) Return an instance of L. The NAME is a name of a L or the name of a importer configured in a catmandu.yml configuration file. When no NAME is given, the 'default' importer in the configuration file will be used. E.g. if the configuration file 'catmandu.yml' contains: importer: default: package: OAI options: url: http://www.instute.org/oai/ then in your program all these lines will be equivalent: my $importer = Catmandu->importer('OAI', url => 'http://www.instute.org/oai/'); my $importer = Catmandu->importer('default'); my $importer = Catmandu->importer(); # The default name is 'default' Configuration settings can be overwritten by the importer command: my $importer2 = Catmandu->importer('default', url => 'http://other.institute.org'); =head2 default_exporter Return the name of the default exporter. =head2 default_exporter_package Return the name of the default exporter package if no package name is given in the config or as a param. =head2 exporter([NAME]) Return an instance of L with name NAME (or the default when no name is given). The NAME can be in a configuration file (see 'importer'). =head2 validator([NAME]) Return an instance of L with name NAME (or the default when no name is given). The NAME can be in a configuration file (see 'importer'). =head2 export($data,[NAME]) Export data using a default or named exporter or exporter instance. Catmandu->export({ foo=>'bar'}); my $importer = Catmandu::Importer::Mock->new; Catmandu->export($importer, 'YAML', file => '/my/file'); Catmandu->export($importer, 'my_exporter'); Catmandu->export($importer, 'my_exporter', exporter_option => '...' , ...); Catmantu->export($importer, Catmandu::Exporter::YAML->new); =head2 export_to_string Export data using a default or named exporter to a string. my $importer = Catmandu::Importer::Mock->new; my $yaml = Catmandu->export_to_string($importer, 'YAML'); # is the same as my $yaml = ""; Catmandu->export($importer, 'YAML', file => \$yaml); =head2 import_from_string Import data from a string using a default or named importer. Return value should be an array of hashes. my $json = qq([{"name":"Nicolas"}]); { my $record = Catmandu->import_from_string( $json, "JSON" ); } # is the same as { my $record = Catmandu->importer('JSON', file => \$json)->to_array() } =head2 define_importer Configure a new named importer. Catmandu->define_importer(books => CSV => (fields => 'title,author,publisher')); Catmandu->importer(books => (file => 'mybooks.csv'))->each(sub { my $book = shift; say $book->{title}; }); # this is equivalent to Catmandu->config->{importer}{books} = { package => 'CSV', options => { fields => 'title,author,publisher', }, } =head2 define_exporter Configure a new named exporter. Catmandu->define_exporter('books', 'CSV', fix => 'capitalize(title)'); my $csv = Catmandu->export_to_string({title => 'nexus'}, 'books'); # this is equivalent to Catmandu->config->{exporter}{books} = { package => 'CSV', options => { fix => 'capitalize(title)', }, } =head2 define_store Configure a new named store. Catmandu->define_store(mydb => MongoDB => (database_name => 'mydb')); Catmandu->store->bag('books')->get(1234); # this is equivalent to Catmandu->config->{store}{mydb} = { package => 'MongoDB', options => { database_name => 'mydb', }, } =head2 define_fixer Configure a new named fixer. Catmandu->define_fixer('cleanup', [ 'trim(title)', 'capitalize(title)', 'remove_field(junk)', # ... ]); Catmandu->fixer('cleanup')->fix($record); =head1 EXPORTS =over =item config Same as C<< Catmandu->config >>. =item store Same as C<< Catmandu->store >>. =item importer Same as C<< Catmandu->importer >>. =item exporter Same as C<< Catmandu->exporter >>. =item validator Same as C<< Catmandu->validator >>. =item export Same as C<< Catmandu->export >>. =item export_to_string Same as C<< Catmandu->export_to_string >>. =item import_from_string Same as C<< Catmandu->import_from_string >>. =item fixer Same as C<< Catmandu->fixer >>. =item log Same as C<< Catmandu->log >>. =item -all/:all Import everything. =item -load/:load use Catmandu -load; use Catmandu -load => []; # is the same as Catmandu->load; use Catmandu -load => ['/config/path']; # is the same as Catmandu->load('/config/path'); =back =head1 CONFIG Catmandu configuration options can be stored in files in the root directory of your programming project. The file can be YAML, JSON or Perl and is called C, C or C. In this file you can set the default Catmandu stores and exporters to be used. Here is an example of a C file: store: default: package: ElasticSearch options: index_name: myrepository exporter: default: package: YAML =head2 Split config For large configs it's more convenient to split the config into several files. You can do so by having multiple config files starting with catmandu*. catmandu.general.yml catmandu.db.yml ... Split config files are processed and merged by L. =head2 Deeply nested config structures Config files can indicate a path under which their keys will be nested. This makes your configuration more readable by keeping indentation to a minimum. A config file containing _prefix: foo: bar: baz: 1 will be loaded as foo: bar: baz: 1 See L for more information on how this works. =head1 SEE ALSO =over 4 =item documentation L =item blog L =item step-by-step introduction from basics L =item command line client L =item core modules L L, L, L, L =item extended features L =back =head1 AUTHOR Nicolas Steenlant, C<< >> =head1 CONTRIBUTORS Magnus Enger, C<< magnus at enger.priv.no >> Nicolas Franck, C<< nicolas.franck at ugent.be >> Patrick Hochstenbach, C<< patrick.hochstenbach at ugent.be >> Vitali Peil, C<< vitali.peil at uni-bielefeld.de >> Christian Pietsch, C<< christian.pietsch at uni-bielefeld.de >> Dave Sherohman, C<< dave.sherohman at ub.lu.se >> Jakob Voss, C<< nichtich at cpan.org >> Snorri Briem, C<< snorri.briem at ub.lu.se >> Johann Rolschewski, C<< jorol at cpan.org >> Pieter De Praetere, C<< pieter.de.praetere at helptux.be >> Doug Bell Upsana, C<< me at upasana.me >> Stefan Weil Tom Hukins =head1 QUESTIONS, ISSUES & BUG REPORTS For any questions on the use of our modules please join our mailing list at: librecat-dev@lists.uni-bielefeld.de or send in your bug reports or feature requests to our issue tracker at: https://github.com/LibreCat/Catmandu/issues =head1 LICENSE AND COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See L for more information. =cut Catmandu-1.10/lib/Catmandu/000755 000765 000024 00000000000 13341726377 016462 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/lib/Catmandu/Iterable.pm000644 000765 000024 00000050331 13341726377 020551 0ustar00nsteenlastaff000000 000000 package Catmandu::Iterable; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(:is :check); use Time::HiRes qw(gettimeofday tv_interval); use Hash::Util::FieldHash qw(fieldhash); use Role::Tiny; use namespace::clean; # delay loading these because of circular dependency require Catmandu::Iterator; require Catmandu::ArrayIterator; requires 'generator'; { # can't use Moo attribute because of circular dependency fieldhash my %_generators; sub next { my ($self) = @_; ($_generators{$self} ||= $self->generator)->(); } sub rewind { my ($self) = @_; $_generators{$self} = $self->generator; } } sub to_array { my ($self) = @_; my $next = $self->generator; my @a; my $data; while (defined($data = $next->())) { push @a, $data; } \@a; } sub count { my ($self) = @_; my $next = $self->generator; my $n = 0; while ($next->()) { $n++; } $n; } sub slice { my ($self, $start, $total) = @_; $start //= 0; Catmandu::Iterator->new( sub { sub { if (defined $total) { $total || return; } state $next = $self->generator; state $data; while (defined($data = $next->())) { if ($start > 0) { $start--; next; } if (defined $total) { $total--; } return $data; } return; } } ); } sub each { my ($self, $sub) = @_; my $next = $self->generator; my $n = 0; my $data; while (defined($data = $next->())) { $sub->($data); $n++; } $n; } sub each_until { my ($self, $sub) = @_; my $next = $self->generator; my $n = 0; my $data; while (defined($data = $next->())) { $sub->($data) || last; $n++; } $n; } sub tap { my ($self, $sub) = @_; Catmandu::Iterator->new( sub { sub { state $next = $self->generator; state $data; if (defined($data = $next->())) { $sub->($data); return $data; } return; } } ); } sub any { my ($self, $sub) = @_; my $next = $self->generator; my $data; while (defined($data = $next->())) { $sub->($data) && return 1; } return 0; } sub many { my ($self, $sub) = @_; my $next = $self->generator; my $n = 0; my $data; while (defined($data = $next->())) { $sub->($data) && ++$n > 1 && return 1; } return 0; } sub all { my ($self, $sub) = @_; my $next = $self->generator; my $data; while (defined($data = $next->())) { $sub->($data) || return 0; } return 1; } sub map { my ($self, $sub) = @_; Catmandu::Iterator->new( sub { sub { state $next = $self->generator; state @buff; @buff = $sub->($next->() // return) unless @buff; shift @buff; } } ); } sub reduce { my $self = shift; my $memo_set = @_ > 1; my $sub = pop; my $memo = shift; my $next = $self->generator; my $data; while (defined($data = $next->())) { if ($memo_set) { $memo = $sub->($memo, $data); } else { $memo = $data; $memo_set = 1; } } $memo; } sub first { $_[0]->generator->(); } sub rest { $_[0]->slice(1); } sub take { $_[0]->slice(0, $_[1]); } { my $to_sub = sub { my ($arg1, $arg2) = @_; if (is_string($arg1)) { if (is_regex_ref($arg2)) { return sub { is_hash_ref($_[0]) || return 0; my $val = $_[0]->{$arg1}; is_value($val) && $val =~ $arg2; }; } if (is_array_ref($arg2)) { return sub { is_hash_ref($_[0]) || return 0; is_value(my $val = $_[0]->{$arg1}) || return 0; for my $v (@$arg2) { return 1 if $val eq $v; } 0; }; } return sub { is_hash_ref($_[0]) || return 0; my $val = $_[0]->{$arg1}; is_value($val) && $val eq $arg2; }; } if (is_regex_ref($arg1)) { return sub { my $val = $_[0]; is_value($val) && $val =~ $arg1; }; } $arg1; }; sub detect { my $self = shift; my $sub = $to_sub->(@_); my $next = $self->generator; my $data; while (defined($data = $next->())) { $sub->($data) && return $data; } return; } sub select { my $self = shift; my $sub = $to_sub->(@_); Catmandu::Iterator->new( sub { sub { state $next = $self->generator; state $data; while (defined($data = $next->())) { $sub->($data) && return $data; } return; } } ); } sub grep {goto &select} sub reject { my $self = shift; my $sub = $to_sub->(@_); Catmandu::Iterator->new( sub { sub { state $next = $self->generator; state $data; while (defined($data = $next->())) { $sub->($data) || return $data; } return; } } ); } }; sub sorted { my ($self, $cmp) = @_; if (!defined $cmp) { Catmandu::ArrayIterator->new([sort @{$self->to_array}]); } elsif (ref $cmp) { Catmandu::ArrayIterator->new( [sort {$cmp->($a, $b)} @{$self->to_array}]); } else { # TODO: use Schwartzian transform for more complex key Catmandu::ArrayIterator->new( [sort {$a->{$cmp} cmp $b->{$cmp}} @{$self->to_array}]); } } sub pluck { my ($self, $key) = @_; $self->map( sub { $_[0]->{$key}; } ); } sub invoke { my ($self, $method, @args) = @_; $self->map( sub { $_[0]->$method(@args); } ); } sub contains {goto &includes} sub includes { my ($self, $data) = @_; $self->any( sub { is_same($data, $_[0]); } ); } sub group { my ($self, $size) = @_; Catmandu::Iterator->new( sub { sub { state $next = $self->generator; my $group = []; for (my $i = 0; $i < $size; $i++) { push @$group, $next->() // last; } unless (@$group) { return; } Catmandu::ArrayIterator->new($group); } } ); } sub interleave { my @iterators = @_; Catmandu::Iterator->new( sub { sub { state @generators; state $n = @iterators; state $i = 0; while ($n) { $i = 0 if $i == $n; my $next = $generators[$i] ||= $iterators[$i]->generator; if (defined(my $data = $next->())) { $i++; return $data; } else { splice @generators, $i, 1; $n--; } } return; } } ); } sub max { my ($self, $sub) = @_; $self->reduce( undef, sub { my ($memo, $data) = @_; my $val = defined $sub ? $sub->($data) : $data; return $val > $memo ? $val : $memo if is_number($memo) && is_number($val); return $memo if is_number($memo); return $val if is_number($val); return; } ); } sub min { my ($self, $sub) = @_; $_[0]->reduce( undef, sub { my ($memo, $data) = @_; my $val = defined $sub ? $sub->($data) : $data; return $val < $memo ? $val : $memo if is_number($memo) && is_number($val); return $memo if is_number($memo); return $val if is_number($val); return; } ); } sub benchmark { my ($self) = @_; $self->tap( sub { state $n = 0; state $t = [gettimeofday]; if (++$n % 100 == 0) { printf STDERR "added %9d (%d/sec)\n", $n, $n / tv_interval($t); } } ); } sub format { my ($self, %opts) = @_; $opts{header} //= 1; $opts{col_sep} //= " | "; my @cols = $opts{cols} ? @{$opts{cols}} : (); my @col_lengths = map length, @cols; my $rows = $self->map( sub { my $data = $_[0]; my $row = []; for (my $i = 0; $i < @cols; $i++) { my $col = $data->{$cols[$i]} // ""; my $len = length $col; $col_lengths[$i] = $len if $len > $col_lengths[$i]; push @$row, $col; } $row; } )->to_array; my @indices = 0 .. @cols - 1; my $pattern = join($opts{col_sep}, map {"%-$col_lengths[$_]s"} @indices) . "\n"; if ($opts{header}) { printf $pattern, @cols; my $sep = $opts{col_sep}; $sep =~ s/[^|]/-/g; print join($sep, map {'-' x $col_lengths[$_]} @indices) . "\n"; } for my $row (@$rows) { printf $pattern, @$row; } } sub stop_if { my ($self, $sub) = @_; Catmandu::Iterator->new( sub { sub { state $next = $self->generator; my $data = $next->() // return; $sub->($data) && return; $data; } } ); } sub run { my ($self) = @_; my $next = $self->generator; my $run = 0; while (defined($next->())) { $run ||= 1; } $run; } 1; __END__ =pod =head1 NAME Catmandu::Iterable - Base class for all iterable Catmandu classes =head1 SYNOPSIS # Create an example Iterable using the Catmandu::Importer::Mock class my $it = Catmandu::Importer::Mock->new(size => 10); my $array_ref = $it->to_array; my $num = $it->count; # Loop functions $it->each(sub { print shift->{n} }); my $item = $it->first; $it->rest ->each(sub { print shift->{n} }); $it->slice(3,2) ->each(sub { print shift->{n} }); $it->take(5) ->each(sub { print shift->{n} }); $it->group(5) ->each(sub { printf "group of %d items\n" , shift->count}); $it->tap(\&logme)->tap(\&printme)->tap(\&mailme) ->each(sub { print shift->{n} }); my $titles = $it->pluck('title')->to_array; # Select and loop my $item = $it->detect(sub { shift->{n} > 5 }); $it->select(sub { shift->{n} > 5}) ->each(sub { print shift->{n} }); $it->reject(sub { shift->{n} > 5}) ->each(sub { print shift->{n} }); # Boolean if ($it->any(sub { shift->{n} > 5}) { .. at least one n > 5 .. } if ($it->many(sub { shift->{n} > 5}) { .. at least two n > 5 .. } if ($it->all(sub { shift->{n} > 5}) { .. all n > 5 .. } # Modify and summary my $it2 = $it->map(sub { shift->{n} * 2 }); my $sum = $it2->reduce(0,sub { my ($prev,$this) = @_; $prev + $this; }); my $it3 = $it->group(2)->invoke('to_array'); # Calculate maximum of 'n' field my $max = $it->max(sub { shift->{n}; }); # Calculate minimum of 'n' field my $in = $it->min(sub { shift->{n}; }); =head1 DESCRIPTION The Catmandu::Iterable class provides many list methods to Iterators such as Importers and Exporters. Most of the methods are lazy if the underlying datastream supports it. Beware of idempotence: many iterators contain state information and calls will give different results on a second invocation. =head1 METHODS =head2 to_array Return all the items in the Iterator as an ARRAY ref. =head2 count Return the count of all the items in the Iterator. =head3 LOOPING =head2 each(\&callback) For each item in the Iterator execute the callback function with the item as first argument. Returns the number of items in the Iterator. =head2 first Return the first item from the Iterator. =head2 rest Returns an Iterator containing everything except the first item. =head2 slice(INDEX,LENGTH) Returns an Iterator starting at the item at INDEX returning at most LENGTH results. =head2 take(NUM) Returns an Iterator with the first NUM results. =head2 group(NUM) Splitting the Iterator into NUM parts and returning an Iterator for each part. =head2 interleave(@iterators) Returns an Iterator which returns the first item of each iterator then the second of each and so on. =head2 contains($data) Alias for C. =head2 includes($data) return true if any item in the collection is deeply equal to C<$data>. =head2 tap(\&callback) Returns a copy of the Iterator and executing callback on each item. This method works like the Unix L command. Use this command to peek into an iterable while it is processing results. E.g. you are writing code to process an iterable and wrote something like: $it->each(sub { # Very complicated routine ... }); Now you would like to benchmark this piece of code (how fast are we processing). This can be done by tapping into the iterator and calling a 'benchmark' subroutine in your program that for instance counts the number of items divided by the execution time. $it->tap(\&benchmark)->each(sub { # Very complicated routine ... }); sub benchmark { my $item = shift; $start ||= time; $count++; printf "%d recs/sec\n" , $count/(time - $start + 1) if $count % 100 == 0; } Note that the C method already implements this common case. =head2 detect(\&callback) Returns the first item for which callback returns a true value. =head2 detect(qr/..../) If the iterator contains STRING values, then return the first item which matches the regex. =head2 detect($key => $val) If the iterator contains HASH values, then return the first item where the value of C<$key> is equal to val. =head2 detect($key => qr/..../) If the iterator contains HASH values, then return the first item where the value of C<$key> matches the regex. =head2 detect($key => [$val, ...]) If the iterator contains HASH values, then return the first item where the value of C<$key> is equal to any of the vals given. =head2 pluck($key) Return an Iterator that only contains the values of the given C<$key>. =head2 select(\&callback) Returns an Iterator for each item for which callback returns a true value. =head2 select(qr/..../) If the iterator contains STRING values, then return each item which matches the regex. =head2 select($key => $val) If the iterator contains HASH values, then return each item where the value of C<$key> is equal to val. =head2 select($key => qr/..../) If the iterator contains HASH values, then return each item where the value of C<$key> matches the regex. =head2 select($key => [$val, ...]) If the iterator contains HASH values, then return each item where the value of C<$key> is equal to any of the vals given. =head2 grep( ... ) Alias for C. =head2 reject(\&callback) Returns an Iterator for each item for which callback returns a false value. =head2 reject(qr/..../) If the iterator contains STRING values, then reject every item except those matching the regex. =head2 reject($key => qr/..../) If the iterator contains HASH values, then reject every item for where the value of $key DOESN'T match the regex. =head2 reject($key => $val) If the iterator contains HASH values, then return each item where the value of $key is NOT equal to val. =head2 reject($key => [$val, ...]) If the iterator contains HASH values, then return each item where the value of $key is NOT equal to any of the vals given. =head2 sorted Returns an Iterator with items sorted lexically. Note that sorting requires memory because all items are buffered in a L. =head2 sorted(\&callback) Returns an Iterator with items sorted by a callback. The callback is expected to returns an integer less than, equal to, or greater than C<0>. The following code snippets result in the equal arrays: $iterator->sorted(\&callback)->to_array [ sort \&callback @{ $iterator->to_array } ] =head2 sorted($key) Returns an Iterator with items lexically sorted by a key. This is equivalent to sorting with the following callback: $iterator->sorted(sub { $_[0]->{$key} cmp $_[1]->{$key} }) =head3 EXTERNAL ITERATOR L behaves like an internal iterator. C and C allow you to use it like an external iterator. =head2 next Each call to C will return the next item until the iterator is exhausted, then it will keep returning C. while (my $data = $it->next) { # do stuff } $it->next; # returns undef =head2 rewind Rewind the external iterator to the first item. $it->next; # => {n => 1} $it->next; # => {n => 2} $it->next; # => {n => 3} $it->rewind $it->next; # => {n => 1} Note the the iterator must support this behavior. Many importers are not rewindable. =head3 BOOLEAN FUNCTIONS =head2 any(\&callback) Returns true if at least one item generates a true value when executing callback. =head2 many(\&callback) Alias for C. =head2 many(\&callback) Returns true if at least two items generate a true value when executing callback. =head2 all(\&callback) Returns true if all the items generate a true value when executing callback. =head3 MAP & REDUCE =head2 map(\&callback) Returns a new Iterator containing for each item the result of the callback. If the callback returns multiple or no items, the resulting iterator will grow or shrink. =head2 reduce([START],\&callback) Alias for C. =head2 reduce([START],\&callback) For each item in the Iterator execute &callback($prev,$item) where $prev is the option START value or the result of the previous call to callback. Returns the final result of the callback function. =head2 invoke(NAME) Returns an interator were the method NAME is called on every object in the iterable. This is a shortcut for $it->map(sub { $_[0]->NAME }). =head2 max() Returns the maximum of an iterator containing only numbers. =head2 max(\&callback) Returns the maximum of the numbers returned by executing callback. =head2 min() Returns the minimum of an iterator containing only numbers. =head2 min(\&callback) Returns the minimum of the numbers returned by executing callback. =head2 benchmark() Prints the number of records processed per second to STDERR. =head2 format(cols => ['key', ...], col_sep => ' | ', header => 1|0) Print the iterator data formatted as a spreadsheet like table. Note that this method will load the whole dataset in memory to calculate column widths. See also L for a more elaborated method of printing iterators in tabular form. =head2 stop_if(\&callback) Returns a new iterator thats stops processing if the callback returns false. # stop after encountering 3 frobnitzes my $frobnitzes = 0; $iterator->stop_if(sub { my $rec = shift; $frobnitzes++ if $rec->{title} =~ /frobnitz/; $frobnitzes > 3; })->each(sub { my $rec = shift; ... }); =head2 run Simply invokes the iterator and returns 1 if any records were processed, 0 otherwise. $it = $it->tap(sub { # do something }); $it = $it->tap(sub { # do another thing }); $it->run print 'not empty' if $it->run; =head1 SEE ALSO L. =cut Catmandu-1.10/lib/Catmandu/ArrayIterator.pm000644 000765 000024 00000002766 13341726377 021623 0ustar00nsteenlastaff000000 000000 package Catmandu::ArrayIterator; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(check_array_ref); use Role::Tiny::With; use namespace::clean; with 'Catmandu::Iterable'; sub new { bless check_array_ref($_[1]), $_[0]; } sub generator { my ($self) = @_; my $i = 0; sub { $self->[$i++]; }; } sub to_array { [@{$_[0]}]; } sub count { scalar @{$_[0]}; } sub each { my ($self, $cb) = @_; $cb->($_) for @$self; $self->count; } sub first { $_[0]->[0]; } 1; __END__ =pod =head1 NAME Catmandu::ArrayIterator - Convert an arrayref to an Iterable object =head1 SYNOPSIS use Catmandu::ArrayIterator; my $it = Catmandu::ArrayIterator->new([{n => 1}, {n => 2}, {n => 3}]); $it->each( sub { my $item = $_[0]; # Very complicated routine ... }); $it->[0]; # => {n => 1} $it->first; # => {n => 1} $it->map(sub { $_[0]->{n} + 1 })->to_array; # => [2, 3, 4] $it->count # => 3 =head1 METHODS =head2 new($arrayRef) Create a new iterator object from $arrayRef. =head2 to_array Return all the items in the Iterator as an ARRAY ref. =head2 each(\&callback) For each item in the Iterator execute the callback function with the item as first argument. Returns the number of items in the Iterator. =head2 count Return the count of all the items in the Iterator. =head2 first Return the first item from the Iterator. =head1 SEE ALSO L, L =cut Catmandu-1.10/lib/Catmandu/Cmd/000755 000765 000024 00000000000 13341726377 017165 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/lib/Catmandu/Bag.pm000644 000765 000024 00000012041 13341726377 017507 0ustar00nsteenlastaff000000 000000 package Catmandu::Bag; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(:check is_string require_package now); use Catmandu::Bag::IdGenerator::UUID; use Moo::Role; use MooX::Aliases; use namespace::clean; with 'Catmandu::Logger'; with 'Catmandu::Pluggable'; with 'Catmandu::Iterable'; with 'Catmandu::Addable'; requires 'get'; requires 'delete'; requires 'delete_all'; has store => (is => 'ro', required => 1); has name => (is => 'ro', required => 1); has id_key => (is => 'lazy', alias => 'id_field'); has id_generator => ( is => 'lazy', coerce => sub { if (is_string($_[0])) { require_package($_[0], 'Catmandu::Bag::IdGenerator')->new; } else { $_[0]; } }, ); sub _build_id_key { $_[0]->store->id_key; } sub _build_id_generator { state $uuid = Catmandu::Bag::IdGenerator::UUID->new; } before get => sub { check_value($_[1]); }; before add => sub { my ($self, $data) = @_; check_hash_ref($data); check_value($data->{$self->id_key} //= $self->generate_id($data)); }; before delete => sub { check_value($_[1]); }; around delete_all => sub { my ($orig, $self) = @_; $orig->($self); return; }; sub generate_id { my ($self) = @_; $self->id_generator->generate($self); } sub exists { my ($self, $id) = @_; defined $self->get($id) ? 1 : 0; } sub get_or_add { my ($self, $id, $data) = @_; check_value($id); check_hash_ref($data); $self->get($id) // do { $data->{$self->id_key} = $id; $self->add($data); }; } sub to_hash { my ($self) = @_; $self->reduce( {}, sub { my ($hash, $data) = @_; $hash->{$data->{$self->id_key}} = $data; $hash; } ); } sub touch { my ($self, $key, $format) = @_; $self->add_many($self->tap(sub {$_[0]->{$key} = now($format)})); $self->commit; } 1; __END__ =pod =head1 NAME Catmandu::Bag - A Catmandu::Store compartment to persist data =head1 SYNOPSIS my $store = Catmandu::Store::DBI->new(data_source => 'DBI:mysql:database=test'); my $store = Catmandu::Store::DBI->new( data_source => 'DBI:mysql:database=test', bags => { journals => { fix => [ ... ] , autocommit => 1 , plugins => [ ... ] , id_generator => Catmandu::IdGenerator::UUID->new , } }, bag_class => Catmandu::Bag->with_plugins('Datestamps') ); # Use the default bag... my $bag = $store->bag; # Or a named bag... my $bag = $store->bag('journals'); # Every bag is an iterator... $bag->each(sub { ... }); $bag->take(10)->each(sub { ... }); $bag->add($hash); $bag->add_many($iterator); $bag->add_many([ $hash, $hash , ...]); # Commit changes... $bag->commit; if ($bag->exists($id)) { # ... } my $obj = $bag->get($id); $bag->delete($id); $bag->delete_all; =head1 CONFIGURATION =over =item fix Contains an array of fixes (or Fix files) to be applied before importing data into the bag. =item plugins An array of Catmandu::Pluggable to apply to the bag items. =item autocommit When set to a true value an commit automatically gets executed when the bag goes out of scope. =item id_generator A L or name of an IdGenerator class. By default L is used. =item id_key Use a custom key to hold id's in this bag. See L for the default or store wide value. Also aliased as C. =back =head1 METHODS =head2 add($hash) Add a hash to the bag or updates an existing hash by using its '_id' key. Returns the stored hash on success or undef on failure. =head2 add_many($array) =head2 add_many($iterator) Add or update one or more items to the bag. =head2 get($id) Retrieves the item with identifier $id from the bag. =head2 exists($id) Returns C<1> if the item with identifier $id exists in the bag. =head2 get_or_add($id, $hash) Retrieves the item with identifier $id from the store or adds C<$hash> with _id C<$id> if it's not found. =head2 delete($id) Deletes the item with C<$id> from the bag. =head2 delete_all Clear the bag. =head2 touch($key, $format) Add the current datetime to each record. $bag->touch('date_updated', 'iso_date_time'); See L for possible format values. =head2 commit Commit changes. =head2 log Return the current logger. =head1 CLASS METHODS =head2 with_plugins($plugin) =head2 with_plugins(\@plugins) Plugins are a kind of fixes that should be available for each bag. E.g. the Datestamps plugin will automatically store into each bag item the fields 'date_updated' and 'date_created'. The with_plugins accept one or an array of plugin classnames and returns a subclass of the Bag with the plugin methods implemented. =head1 SEE ALSO L, L, L, L =cut Catmandu-1.10/lib/Catmandu/Store.pm000644 000765 000024 00000012224 13341726377 020115 0ustar00nsteenlastaff000000 000000 package Catmandu::Store; use Catmandu::Sane; our $VERSION = '1.10'; use Hash::Util::FieldHash qw(fieldhash); use Catmandu::Util qw(require_package); use Moo::Role; use MooX::Aliases; use namespace::clean; with 'Catmandu::Logger'; has bag_class => (is => 'ro', default => sub {ref($_[0]) . '::Bag'},); has default_bag => (is => 'lazy'); has default_plugins => (is => 'ro', default => sub {[]},); has default_options => (is => 'ro', default => sub {+{}},); has bag_options => (is => 'ro', init_arg => 'bags', default => sub {+{}},); has key_prefix => (is => 'lazy', default => sub {'_'},); has id_key => (is => 'lazy', alias => 'id_field'); sub key_for { $_[0]->key_prefix . $_[1]; } sub _build_id_key { $_[0]->key_for('id'); } sub _build_default_bag { 'data'; } sub new_bag { my ($self, $name, $opts) = @_; $opts ||= {}; $opts->{store} = $self; $opts->{name} = $name // $self->default_bag; my $default_opts = $self->default_options; my $bag_opts = $self->bag_options->{$opts->{name}} //= {}; $opts = {%$default_opts, %$bag_opts, %$opts}; my $pkg = require_package(delete($opts->{class}) // $self->bag_class); my $default_plugins = $self->default_plugins; my $plugins = delete($opts->{plugins}) // []; if (@$default_plugins || @$plugins) { $pkg = $pkg->with_plugins(@$default_plugins, @$plugins); } $pkg->new($opts); } { fieldhash my %bag_instances; sub bags { my ($self) = @_; $bag_instances{$self} ||= {}; } sub bag { my ($self, $name) = @_; $name ||= $self->default_bag; $self->bags->{$name} ||= $self->new_bag($name); } } 1; __END__ =pod =head1 NAME Catmandu::Store - Namespace for packages that can make data persistent =head1 SYNOPSIS # From the command line $ catmandu import JSON into MongoDB --database_name 'bibliography' < data.json $ catmandu export MongoDB --database_name 'bibliography' to YAML $ catmandu export MongoDB --database_name 'bibliography' --query '{"PublicationYear": "1937"}' $ catmandu count MongoDB --database_name 'bibliography' --query '{"PublicationYear": "1937"}' # From Perl use Catmandu; my $store = Catmandu->store('MongoDB',database_name => 'bibliography'); my $obj1 = $store->bag->add({ name => 'Patrick' }); printf "obj1 stored as %s\n" , $obj1->{_id}; # Force an id in the store my $obj2 = $store->bag->add({ _id => 'test123' , name => 'Nicolas' }); my $obj3 = $store->bag->get('test123'); $store->bag->delete('test123'); $store->bag->delete_all; # Some stores can be searched my $hits = $store->bag->search(query => 'name:Patrick'); =head1 DESCRIPTION A Catmandu::Store is a stub for Perl packages that can store data into databases or search engines. The database as a whole is called a 'store'. Databases also have compartments (e.g. tables) called L-s. Some stores can be searched using L methods. =head1 CONFIGURATION =over =item default_plugins Specify plugins that will be applied to every bag in the store. my $store = Catmandu::Store::MyDB->new(default_plugins => ['Datestamps']); =item default_bag The name of the bag to use if no explicit bag is given. Default is 'data'. my $store = Catmandu::Store::MyDB->new(default_bag => 'stuff'); # this will return the stuff bag my $bag = $store->bag; =item bags Specify configuration for individual bags. my $store = Catmandu::Store::Hash->new( bags => {stuff => {plugins => ['Datestamps']}}); # this bag will use the L role $store->bag('stuff') # this bag won't $store->bag('otherbag') =item bag_class An optional custom class to use for bags. Default is C in the store's namespace. This class should consume the L role. # this will use the Catmandu::Store::MyDB::Bag class for bags Catmandu::Store::MyDB->new() # this will use MyBag Catmandu::Store::MyDB->new(bag_class => 'MyBag') =item key_prefix Use a custom prefix to mark the reserved or special keys that the store uses. By default an underscore gets prependend. The only special key in a normal store is '_id'. L will also use '_version'. Other plugins or stores may add their own special keys. # this store will use the my_id key to hold id's Catmandu::Store::MyDB->new(key_prefix => 'my_') =item id_key Define a custom key to hold id's for all bags of this store. See C for the default value. Also aliased as C. Note that this can also be overriden on a per bag basis. =back =head1 METHODS =head2 bag($name) Create or retieve a bag with name C<$name>. Returns a L. =head2 key_for($key) Helper method that applies C to the C<$key> given. =head2 log Return the current logger. Can be used when creating your own Stores. E.g. package Catmandu::Store::Hash; ... sub generator { my ($self) = @_; $self->log->debug("generating record"); ... } See also: L for activating the logger in your main code. =head1 SEE ALSO L, L =cut Catmandu-1.10/lib/Catmandu/Validator.pm000644 000765 000024 00000013164 13341726377 020752 0ustar00nsteenlastaff000000 000000 package Catmandu::Validator; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(:is); use Moo::Role; use namespace::clean; requires 'validate_data'; has 'last_errors' => (is => 'rwp', clearer => '_clear_last_errors', init_arg => undef,); has 'after_callback' => (is => 'ro', clearer => 1,); has 'error_callback' => (is => 'ro', clearer => 1,); has 'error_field' => (is => 'ro', clearer => 1,); has ['valid_count', 'invalid_count'] => (is => 'rwp', init_arg => undef, default => sub {0},); sub is_valid { my ($self, $data) = @_; if (!is_hash_ref($data)) { Catmandu::BadArg->throw('Cannot validate data of this type'); } $self->_clear_last_errors; $self->_set_valid_count(0); $self->_set_invalid_count(0); my $errors = $self->validate_data($data); if ($errors) { $self->_set_last_errors($errors); $self->_set_invalid_count(1); return 0; } else { $self->_set_valid_count(1); } 1; } sub validate { my ($self, $data) = @_; $self->_set_valid_count(0); $self->_set_invalid_count(0); # handle a single record if (is_hash_ref($data)) { return $self->_process_record($data); } # handle arrayref, returns a new arrayref if (is_array_ref($data)) { return [grep {defined} map {$self->_process_record($_)} @$data]; } # handle iterators, returns a new iterator if (is_invocant($data)) { return $data->select(sub {$self->_process_record($_[0])}); } Catmandu::BadArg->throw('Cannot validate data of this type'); } sub _process_record { my ($self, $data) = @_; my $error_field = ($self->error_field || 0) eq '1' ? '_validation_errors' : $self->error_field; $self->_clear_last_errors; my $errors = $self->validate_data($data); $self->_set_last_errors($errors); if ($errors) { $self->_set_invalid_count(1 + $self->invalid_count); } else { $self->_set_valid_count(1 + $self->valid_count); } if ($errors && $error_field) { $data->{$error_field} = $errors; } if ($self->after_callback) { return $self->after_callback->($data, $errors); } if ($errors && $self->error_callback) { $self->error_callback->($data, $errors); return; } return if $errors && !$error_field; $data; } 1; __END__ =pod =head1 NAME Catmandu::Validator - Namespace for packages that can validate items in Catmandu =head1 SYNOPSIS use Catmandu::Validator::Simple; my $validator = Catmandu::Validator::Simple->new( handler => sub { $data = shift; return "error" unless $data->{title} =~ m/good title/; return; } ); if ( $validator->is_valid($hashref) ) { save_record_in_database($hashref); } else { reject_form($validator->last_errors); } my $validator = Catmandu::Validator::Simple->new( handler => sub { ...}, error_callback => sub { my ($data, $errors) = @_; print "Validation errors for record $data->{_id}:\n"; print "$_\n" for @{$errors}; } }; my $validated_arrayref = $validator->validate($arrayref); $validator->validate($iterator, { after_callback => sub { my ($record, $errors) = @_; if ($errors) { add_to_failure_report($rec, $errors); #omit the invalid record from the result return undef; } return $rec; } })->each( sub { my $record = shift; publish_record($record); }); See L and L to use validators in fixes (L). =head1 DESCRIPTION A Catmandu::Validator is a base class for Perl packages that can validate data. =head1 METHODS =head2 new() Create a new Catmandu::Validator. =head2 new( after_callback => \&callback ) The after_callback is called after each record has been validated. The callback function should take $hashref to each data record, and $arrayref to list of validation errors for the record as arguments. =head2 new( error_field => $field_name ) If the error_field parameter is set, then during validation each record that fails validation will get an extra field added containing an arrayref to the validation errors. The name of the key will be the value passed or '_validation_errors' if 1 is passed. By default it is not set. =head2 is_valid( \%hash ) Validates a single record. Returns 1 success and 0 on failure. Information about the validation errors can be retrieved with the L method. =head2 validate( \%hash ) =head2 validate( $iterator ) =head2 validate( \@array ) Validates a single record or multiple records in an iterator or an array. Returns validated records in the same type of container for multiple records or the record itself for a single record. The default behaviour is to return the records that passed validation unchanged and omit the invalid records. This behaviour can be changed by setting the I or the I in the constructor. Returns undef on validation failure for single records. =head2 last_errors() Returns arrayref of errors from the record that was last validated if that record failed validation or undef if there were no errors. =head2 valid_count() Returns the number of valid records from last validate operation. =head2 invalid_count() Returns the number of invalid records from the last validate operation. =head1 SEE ALSO L and L. L =cut Catmandu-1.10/lib/Catmandu/Serializer/000755 000765 000024 00000000000 13341726377 020573 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/lib/Catmandu/CQLSearchable.pm000644 000765 000024 00000003353 13341726377 021415 0ustar00nsteenlastaff000000 000000 package Catmandu::CQLSearchable; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; with 'Catmandu::Searchable'; requires 'translate_sru_sortkeys'; requires 'translate_cql_query'; my $AROUND_SEARCH = sub { my ($orig, $self, %args) = @_; if (my $sru_sortkeys = delete $args{sru_sortkeys}) { $args{sort} = $self->translate_sru_sortkeys($sru_sortkeys); } if (my $cql_query = delete $args{cql_query}) { $args{query} = $self->translate_cql_query($cql_query); } $orig->($self, %args); }; around search => $AROUND_SEARCH; around searcher => $AROUND_SEARCH; around delete_by_query => sub { my ($orig, $self, %args) = @_; if (my $cql = delete $args{cql_query}) { $args{query} = $self->translate_cql_query($cql); } $orig->($self, %args); return; }; 1; __END__ =pod =head1 NAME Catmandu::CQLSearchable - Optional role for CQL searchable stores =head1 SYNOPSIS my $hits = $store->bag->search( cql_query => 'keyword any dna', sru_sortkeys => 'title', limit => 100, ); =head1 METHODS =head2 search(cql_query => $cql, sru_sortkeys => $sort, ...) This method behaves exactly like the C method in L but with extra C and C arguments. =head2 searcher(cql_query => $cql, sru_sortkeys => $sort, ...) This method behaves exactly like the C method in L but with extra C and C arguments. =head2 delete_by_query(cql_query => $cql, ...) This method behaves exactly like the C method in L but with an extra C argument. =head1 SEE ALSO L =cut Catmandu-1.10/lib/Catmandu/Importer/000755 000765 000024 00000000000 13341726377 020263 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/lib/Catmandu/Validator/000755 000765 000024 00000000000 13341726377 020407 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/lib/Catmandu/Addable.pm000644 000765 000024 00000004751 13341726377 020343 0ustar00nsteenlastaff000000 000000 package Catmandu::Addable; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(:is :check); use Moo::Role; use namespace::clean; with 'Catmandu::Fixable'; requires 'add'; has autocommit => (is => 'ro', default => sub {0}); has _commit => (is => 'rw', default => sub {0}); around add => sub { my ($orig, $self, $data) = @_; return unless defined $data; $data = $self->_fixer->fix($data) if $self->_fixer; $orig->($self, $data) if defined $data; $data; }; around commit => sub { my ($orig, $self) = @_; my (@res) = $orig->($self); $self->_commit(1); @res; }; sub add_many { my ($self, $many) = @_; if (is_hash_ref($many)) { $self->add($many); return 1; } if (is_array_ref($many)) { $self->add($_) for @$many; return scalar @$many; } if (is_invocant($many)) { $many = check_able($many, 'generator')->generator; } check_code_ref($many); my $data; my $n = 0; while (defined($data = $many->())) { $self->add($data); $n++; } $n; } sub commit { } sub DESTROY { my ($self) = shift; $self->commit if $self->autocommit && !$self->_commit; } 1; __END__ =pod =head1 NAME Catmandu::Addable - Base class for all Catmandu modules need to implement add =head1 SYNOPSIS package My::Adder; use Moo; use Data::Dumper; with 'Catmandu::Addable'; sub add { my ($self,$object) = @_; print "So you want to add:\n"; print Dumper($object); 1; } sub commit { my $self = shift; print "And now you are done?\n"; } package main; my $adder = My::Adder->new(fix => ['upcase(foo)']); # prints foo => BAR $adder->add({ foo => 'bar' }); # prints: # foo => BAR # foo => BAR $adder->add_many([ { foo => 'bar' } , { foo => 'bar' }]); # prints a commit statement $adder->commit; =head1 OPTIONS =over =item autocommit Autocommit when the exporter gets out of scope. Default 0. =back =head1 METHODS =head2 add($hash) Receives a Perl hash and should return true or false. =head2 commit This method is usually called at the end of many add or add_many operations. =head1 INHERIT If you provide an 'add' method, then automatically your package gets a add_many method, plus a fix attribute which transforms all Perl hashes provided to the add method. =head1 SEE ALSO L, L , L =cut Catmandu-1.10/lib/Catmandu/Pluggable.pm000644 000765 000024 00000003333 13341726377 020724 0ustar00nsteenlastaff000000 000000 package Catmandu::Pluggable; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; sub plugin_namespace {'Catmandu::Plugin'} sub with_plugins { my $class = shift; $class = ref $class || $class; my @plugins = ref $_[0] eq 'ARRAY' ? @{$_[0]} : @_; @plugins = split /,/, join ',', @plugins; @plugins || return $class; my $ns = $class->plugin_namespace; Moo::Role->create_class_with_roles( $class, map { my $pkg = $_; if ($pkg !~ s/^\+// && $pkg !~ /^$ns/) { $pkg = "${ns}::${pkg}"; } $pkg; } @plugins ); } 1; __END__ =pod =head1 NAME Catmandu::Pluggable - A role for classes that need plugin capabilities =head1 SYNOPSIS package My::Foo::Bar; use Role::Tiny; before foo => sub { print "Before foo!\n"; }; after foo => sub { print "After foo!\n"; }; sub extra { print "I can do extra too\n"; } package My::Foo; use Moo; with 'Catmandu::Pluggable'; sub plugin_namespace { 'My::Foo'; } sub foo { print "Foo!\n"; } package main; my $x = My::Foo->with_plugins('Bar')->new; # prints: # Before foo! # Foo! # After foo! $x->foo; # prints: # I can do extra too $x->extra; =head1 METHODS =head2 plugin_namespace Returns the namespace where all plugins for your class can be found. =head2 with_plugins(NAME) =head2 with_plugins(NAME,NAME,...) This class method returns a subclass of your class with all provided plugins NAME-s implemented. =head1 SEE ALSO L, L, L =cut Catmandu-1.10/lib/Catmandu/Searchable.pm000644 000765 000024 00000006506 13341726377 021060 0ustar00nsteenlastaff000000 000000 package Catmandu::Searchable; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_natural is_positive); use Moo::Role; use namespace::clean; with 'Catmandu::Logger'; requires 'search'; requires 'searcher'; requires 'delete_by_query'; has default_limit => (is => 'ro', builder => 'default_default_limit'); has maximum_limit => (is => 'ro', builder => 'default_maximum_limit'); sub default_default_limit {10} sub default_maximum_limit {1000} sub normalize_query {$_[1]} sub normalize_sort {$_[1]} my $AROUND_SEARCH = sub { my ($orig, $self, %args) = @_; $args{limit} = $self->default_limit unless is_natural($args{limit}); $args{start} = 0 unless is_natural($args{start}); $args{start} += 0; $args{limit} += 0; if ($args{limit} > $self->maximum_limit) { $args{limit} = $self->maximum_limit; } if (is_positive(my $page = delete $args{page})) { $args{start} = ($page - 1) * $args{limit}; } $args{query} = $self->normalize_query($args{query}); $args{sort} = $self->normalize_sort($args{sort}); defined $args{$_} || delete $args{$_} for keys %args; $self->log->debugf("called with params %s", [%args]); $orig->($self, %args); }; around search => $AROUND_SEARCH; around searcher => $AROUND_SEARCH; around delete_by_query => sub { my ($orig, $self, %args) = @_; $args{query} = $self->normalize_query($args{query}); $self->log->debugf("called with params %s", [%args]); $orig->($self, %args); return; }; 1; __END__ =pod =head1 NAME Catmandu::Searchable - Optional role for searchable stores =head1 SYNOPSIS my $store = Catmandu::Store::Solr->new(); # Return one page of search results (page size = 1000) my $hits = $store->bag->search( query => 'dna' , start => 0 , limit => 100 , sort => 'title desc', ); # Return all the search results as iterator my $it = $store->bag->searcher(query => 'dna'); $it->each(sub { ...}); $store->bag->delete_by_query(query => 'dna'); =head1 METHODS =head2 search(query => $query, start => $start, page => $page, limit => $num, sort => $sort) Search the database and returns a L on success. The Hits represents one result page of at most $num results. The $query and $sort should implement the query and sort syntax of the underlying search engine. Optionally provide the index of the first result using the C option, or the starting page using the C option. The number of records in a result page can be set using the C option. Sorting options are being sent verbatim to the underlying search engine. =head2 searcher(query => $query, start => $start, limit => $num, sort => $sort, cql_query => $cql) Search the database and return a L on success. This iterator can be used to loop over the complete result set. The $query and $sort should implement the query and sort syntax of the underlying search engine. Optionally provide the index of the first result using the C option. The number of records in a page can be set using the C option. Sorting options are being sent verbatim to the underlying search engine. =head2 delete_by_query(query => $query) Delete items from the database that match $query =head1 SEE ALSO L, L =cut Catmandu-1.10/lib/Catmandu/Importer.pm000644 000765 000024 00000031437 13341726377 020631 0ustar00nsteenlastaff000000 000000 package Catmandu::Importer; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(io data_at is_value is_string is_array_ref is_hash_ref); use LWP::UserAgent; use HTTP::Request (); use URI (); use URI::Template (); use Moo::Role; use namespace::clean; with 'Catmandu::Logger'; with 'Catmandu::Iterable'; with 'Catmandu::Fixable'; with 'Catmandu::Serializer'; around generator => sub { my ($orig, $self) = @_; my $generator = $orig->($self); if (my $fixer = $self->_fixer) { $generator = $fixer->fix($generator); } if (defined(my $path = $self->data_path)) { return sub { state @buf; while (1) { return shift @buf if @buf; # TODO use something faster than data_at @buf = data_at($path, $generator->() // return); next; } }; } $generator; }; has file => (is => 'lazy', init_arg => undef); has _file_template => (is => 'ro', predicate => 'has_file', init_arg => 'file'); has variables => (is => 'ro', predicate => 1); has fh => (is => 'ro', lazy => 1, builder => 1); has encoding => (is => 'ro', builder => 1); has data_path => (is => 'ro'); has user_agent => (is => 'ro'); has http_method => (is => 'lazy'); has http_headers => (is => 'lazy'); has http_agent => (is => 'ro', predicate => 1); has http_max_redirect => (is => 'ro', predicate => 1); has http_timeout => (is => 'ro', default => sub {180}); # LWP default has http_verify_hostname => (is => 'ro', default => sub {1}); has http_retry => (is => 'ro', predicate => 1); has http_timing => (is => 'ro', predicate => 1); has http_body => (is => 'ro', predicate => 1); has _http_client => ( is => 'ro', lazy => 1, builder => '_build_http_client', init_arg => 'user_agent' ); has _http_timing_tries => (is => 'lazy'); has ignore_404 => (is => 'ro'); sub _build_encoding { ':utf8'; } sub _build_file { my ($self) = @_; return \*STDIN unless $self->has_file; my $file = $self->_file_template; if (is_string($file) && $self->has_variables) { my $template = URI::Template->new($file); my $vars = $self->variables; if (is_value($vars)) { $vars = [split ',', $vars]; } if (is_array_ref($vars)) { my @keys = $template->variables; my @vals = @$vars; $vars = {}; $vars->{shift @keys} = shift @vals while @keys && @vals; } $file = $template->process_to_string(%$vars); } if (is_string($file) && $file !~ m!^https?://! && !-r $file) { Catmandu::BadArg->throw("file '$file' doesn't exist"); } $file; } sub _build_fh { my ($self) = @_; my $file = $self->file; # get remote content if (is_string($file) && $file =~ m!^https?://!) { my $body; if ($self->has_http_body) { $body = $self->http_body; if (ref $body) { $body = $self->serialize($body); } if ($self->has_variables) { my $vars = $self->variables; if (is_hash_ref($vars)) { # named variables for my $key (keys %$vars) { my $var = $vars->{$key}; $body =~ s/{$key}/$var/; } } else { # positional variables if (is_value($vars)) { $vars = [split ',', $vars]; } for my $var (@$vars) { $body =~ s/{\w+}/$var/; } } } } my $content = $self->_http_request( $self->http_method, $file, $self->http_headers, $body, $self->_http_timing_tries, ); return io(\$content, mode => 'r', binmode => $_[0]->encoding); } io($file, mode => 'r', binmode => $_[0]->encoding); } sub _build_http_headers { []; } sub _build_http_method { 'GET'; } sub _build__http_timing_tries { my ($self) = @_; if ($self->has_http_timing) { my @timing_tries = $self->http_timing =~ /(\d+(?:\.\d+)*)/g; return \@timing_tries; } elsif ($self->has_http_retry) { my @timing_tries = (1) x $self->http_retry; return \@timing_tries; } return; } sub _build_http_client { my ($self) = @_; my $ua = LWP::UserAgent->new; $ua->timeout($self->http_timeout); $ua->agent($self->http_agent) if $self->has_http_agent; $ua->max_redirect($self->http_max_redirect) if $self->has_http_max_redirect; $ua->ssl_opts(verify_hostname => $self->http_verify_hostname); $ua->protocols_allowed([qw(http https)]); $ua->env_proxy; $ua; } sub _http_request { my ($self, $method, $url, $headers, $body, $timing_tries) = @_; my $client = $self->_http_client; my $req = HTTP::Request->new($method, $url, $headers || []); $req->content($body) if defined $body; my $res = $client->request($req); if ($res->code =~ /^408|500|502|503|504$/ && $timing_tries) { my @tries = @$timing_tries; while (my $sleep = shift @tries) { sleep $sleep; $res = $client->request($req->clone); last if $res->code !~ /^408|500|502|503|504$/; } } my $res_body = $res->decoded_content; unless ($res->is_success) { my $res_headers = []; for my $header ($res->header_field_names) { my $val = $res->header($header); push @$res_headers, $header, $val; } Catmandu::HTTPError->throw( { code => $res->code, message => $res->status_line, url => $url, method => $method, request_headers => $headers, request_body => $body, response_headers => $res_headers, response_body => $res_body, } ); } $res_body; } sub readline { warnings::warnif("deprecated", "readline is deprecated, fh->getline instead"); $_[0]->fh->getline; } sub readall { warnings::warnif("deprecated", "readall is deprecated, join('',fh->getlines) instead"); join '', $_[0]->fh->getlines; } 1; __END__ =pod =head1 NAME Catmandu::Importer - Namespace for packages that can import =head1 SYNOPSIS # From the command line # JSON is an importer and YAML an exporter $ catmandu convert JSON to YAML < data.json # OAI is an importer and JSON an exporter $ catmandu convert OAI --url http://biblio.ugent.be/oai to JSON # Fetch remote content $ catmandu convert JSON --file http://example.com/data.json to YAML # From Perl use Catmandu; use Data::Dumper; my $importer = Catmandu->importer('JSON', file => 'data.json'); $importer->each(sub { my $item = shift; print Dumper($item); }); my $num = $importer->count; my $first_item = $importer->first; # Convert OAI to JSON in Perl my $importer = Catmandu->importer('OAI', url => 'http://biblio.ugent.be/oai'); my $exporter = Catmandu->exporter('JSON'); $exporter->add_many($importer); =head1 DESCRIPTION A Catmandu::Importer is a Perl package that can generate structured data from sources such as JSON, YAML, XML, RDF or network protocols such as Atom, OAI-PMH, SRU and even DBI databases. Given an Catmandu::Importer a programmer can read data from using one of the many L methods: $importer->to_array; $importer->count; $importer->each(\&callback); $importer->first; $importer->rest; ...etc... Every Catmandu::Importer is also L and thus inherits a 'fix' parameter that can be set in the constructor. When given a 'fix' parameter, then each item returned by the generator will be automatically Fixed using one or more Les. E.g. my $importer = Catmandu->importer('JSON',fix => ['upcase(title)']); $importer->each( sub { my $item = shift ; # Every $item->{title} is now upcased... }); # or via a Fix file my $importer = Catmandu->importer('JSON',fix => ['/my/fixes.txt']); $importer->each( sub { my $item = shift ; # Every $item->{title} is now upcased... }); =head1 CONFIGURATION =over =item file Read input from a local file given by its path. If the path looks like a url, the content will be fetched first and then passed to the importer. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L. If not specified, L is used to create the input stream from the C argument or by using STDIN. =item encoding Binmode of the input stream C. Set to C<:utf8> by default. =item fix An ARRAY of one or more Fix-es or Fix scripts to be applied to imported items. =item data_path The data at C is imported instead of the original data. # given this imported item: {abc => [{a=>1},{b=>2},{c=>3}]} # with data_path 'abc', this item gets imported instead: [{a=>1},{b=>2},{c=>3}] # with data_path 'abc.*', 3 items get imported: {a=>1} {b=>2} {c=>3} =item variables Variables given here will interpolate the C and C options. The syntax is the same as L. # named arguments my $importer = Catmandu->importer('JSON', file => 'http://{server}/{path}', variables => {server => 'biblio.ugent.be', path => 'file.json'}, ); # positional arguments my $importer = Catmandu->importer('JSON', file => 'http://{server}/{path}', variables => 'biblio.ugent.be,file.json', ); # or my $importer = Catmandu->importer('JSON', url => 'http://{server}/{path}', variables => ['biblio.ugent.be','file.json'], ); # or via the command line $ catmandu convert JSON --file 'http://{server}/{path}' --variables 'biblio.ugent.be,file.json' =back =head1 HTTP CONFIGURATION These options are only relevant if C is a url. See L for details about these options. =over =item http_body Set the GET/POST message body. =item http_method Set the type of HTTP request 'GET', 'POST' , ... =item http_headers A reference to a HTTP::Headers objects. =back =head2 Set an own HTTP client =over =item user_agent(LWP::UserAgent->new(...)) Set an own HTTP client =back =head2 Alternative set the parameters of the default client =over =item http_agent A string containing the name of the HTTP client. =item http_max_redirect Maximum number of HTTP redirects allowed. =item http_timeout Maximum execution time. =item http_verify_hostname Verify the SSL certificate. =item http_retry Maximum times to retry the HTTP request if it temporarily fails. Default is not to retry. See L for the HTTP status codes that initiate a retry. =item http_timing Maximum times and timeouts to retry the HTTP request if it temporarily fails. Default is not to retry. See L for the HTTP status codes that initiate a retry and the format of the timing value. =back =head1 METHODS =head2 first, each, rest , ... See L for all inherited methods. =head1 CODING Create your own importer by creating a Perl package in the Catmandu::Importer namespace that implements C. Basically, you need to create a method 'generate' which returns a callback that creates one Perl hash for each call: my $importer = Catmandu::Importer::Hello->new; $importer->generate(); # record $importer->generate(); # next record $importer->generate(); # undef = end of stream Here is an example of a simple C importer: package Catmandu::Importer::Hello; use Catmandu::Sane; use Moo; with 'Catmandu::Importer'; sub generator { my ($self) = @_; state $fh = $self->fh; my $n = 0; return sub { $self->log->debug("generating record " . ++$n); my $name = $self->fh->readline; return defined $name ? { "hello" => $name } : undef; }; } 1; This importer can be called via the command line as: $ catmandu convert Hello to JSON < /tmp/names.txt $ catmandu convert Hello to YAML < /tmp/names.txt $ catmandu import Hello to MongoDB --database_name test < /tmp/names.txt Or, via Perl use Catmandu; my $importer = Catmandu->importer('Hello', file => '/tmp/names.txt'); $importer->each(sub { my $items = shift; }); =head1 SEE ALSO L , L , L, L , L =cut Catmandu-1.10/lib/Catmandu/Env.pm000644 000765 000024 00000015640 13341726377 017556 0ustar00nsteenlastaff000000 000000 package Catmandu::Env; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(require_package use_lib read_yaml read_json :is :check); use Catmandu::Fix; use Config::Onion; use File::Spec; use Moo; require Catmandu; use namespace::clean; with 'Catmandu::Logger'; sub _search_up { my $dir = $_[0]; my @dirs = grep length, File::Spec->splitdir(Catmandu->default_load_path); for (; @dirs; pop @dirs) { my $path = File::Spec->catdir(File::Spec->rootdir, @dirs); opendir my $dh, $path or last; return $path if grep {-r File::Spec->catfile($path, $_)} grep /^catmandu.+(?:yaml|yml|json|pl)$/, readdir $dh; } Catmandu->default_load_path; } has load_paths => ( is => 'ro', default => sub {[]}, coerce => sub { [ map {File::Spec->canonpath($_)} map {$_ eq ':up' ? _search_up($_) : $_} split /,/, join ',', ref $_[0] ? @{$_[0]} : $_[0] ]; }, ); has config => (is => 'rwp', default => sub {+{}}); has stores => (is => 'ro', default => sub {+{}}); has validators => (is => 'ro', default => sub {+{}}); has fixers => (is => 'ro', default => sub {+{}}); has default_store => (is => 'ro', default => sub {'default'}); has default_importer => (is => 'ro', default => sub {'default'}); has default_exporter => (is => 'ro', default => sub {'default'}); has default_validator => (is => 'ro', default => sub {'default'}); has default_fixer => (is => 'ro', default => sub {'default'}); has default_store_package => (is => 'ro'); has default_importer_package => (is => 'ro', default => sub {'JSON'}); has default_exporter_package => (is => 'ro', default => sub {'JSON'}); has default_validator_package => (is => 'ro'); has store_namespace => (is => 'ro', default => sub {'Catmandu::Store'}); has importer_namespace => (is => 'ro', default => sub {'Catmandu::Importer'}); has exporter_namespace => (is => 'ro', default => sub {'Catmandu::Exporter'}); has validator_namespace => (is => 'ro', default => sub {'Catmandu::Validator'}); sub BUILD { my ($self) = @_; my @config_dirs = @{$self->load_paths}; my @lib_dirs; for my $dir (@config_dirs) { if (!-d $dir) { Catmandu::Error->throw("load path $dir doesn't exist"); } my $lib_dir = File::Spec->catdir($dir, 'lib'); if (-d $lib_dir && -r $lib_dir) { push @lib_dirs, $lib_dir; } } if (@config_dirs) { my @globs = map { my $dir = $_; map {File::Spec->catfile($dir, "catmandu*.$_")} qw(yaml yml json pl) } reverse @config_dirs; my $config = Config::Onion->new(prefix_key => '_prefix'); $config->load_glob(@globs); if ($self->log->is_debug) { use Data::Dumper; $self->log->debug(Dumper($config->get)); } $self->_set_config($config->get); } if (@lib_dirs) { lib->import(@lib_dirs); } } sub load_path { $_[0]->load_paths->[0]; } sub roots { goto &load_paths; } sub root { goto &load_path; } sub fixer { my $self = shift; # it's already a fixer if (is_instance($_[0], 'Catmandu::Fix')) { return $_[0]; } # an array ref of fixes if (is_array_ref($_[0])) { return Catmandu::Fix->new(fixes => $_[0]); } # a single fix if (is_able($_[0], 'fix')) { return Catmandu::Fix->new(fixes => [$_[0]]); } # try to load from config my $key = $_[0] || $self->default_fixer; my $fixers = $self->fixers; $fixers->{$key} || do { if (my $fixes = $self->config->{fixer}{$key}) { return $fixers->{$key} = Catmandu::Fix->new(fixes => $fixes); } return Catmandu::Fix->new(fixes => [@_]); }; } sub store { my $self = shift; $self->_named_package('store', $self->store_namespace, $self->default_store, $self->default_store_package, $self->stores, @_); } sub importer { my $self = shift; $self->_named_package('importer', $self->importer_namespace, $self->default_importer, $self->default_importer_package, undef, @_); } sub exporter { my $self = shift; $self->_named_package('exporter', $self->exporter_namespace, $self->default_exporter, $self->default_exporter_package, undef, @_); } sub validator { my $self = shift; $self->_named_package( 'validator', $self->validator_namespace, $self->default_validator, $self->default_validator_package, $self->validators, @_ ); } sub _named_package { my $self = shift; my $type = shift; my $ns = shift; my $default_name = shift; my $default_package = shift; my $cache = shift; my $name = shift; my $key = $name || $default_name; return $name if is_instance($name) && index(ref($name), $ns) == 0; # return cached instance if no arguments are given if ($cache && !@_ and my $instance = $cache->{$key}) { return $instance; } if (exists $self->config->{$type}) { if (my $c = $self->config->{$type}{$key}) { check_hash_ref($c); check_string(my $package = $c->{package} || $default_package); my $opts = check_hash_ref($c->{options} || {}); if (@_ > 1) { $opts = {%$opts, @_}; } elsif (@_ == 1) { $opts = {%$opts, %{$_[0]}}; } my $instance = require_package($package, $ns)->new($opts); # cache this instance if no arguments are given if ($cache && !@_) { $cache->{$key} = $instance; } return $instance; } } check_string(my $package = $name || $default_package); require_package($package, $ns)->new(@_); } 1; __END__ =pod =head1 NAME Catmandu::Env - A catmandu configuration file loader =head1 SYNOPSIS use Catmandu::Env; my $env = Catmandu::Env->new(load_paths => [ '/etc/catmandu '] ); my $env = Catmandu::Env->new(load_paths => [ ':up'] ); my $store = $env->store('mongodb'); my $importer = $env->importer('loc'); my $exporter = $env->exporter('europeana'); my $fixer = $env->fixer('my_fixes'); my $conf = $env->config; =head1 DESCRIPTION This class loads the catmandu.*.pl, catmandu.*.json, catmandu.*.yml and catmandu.*.yaml file from all provided load_paths. Programmers are advised I to use this class directly but use the equivalent functionality provided in the Catmandu package: Catmandu->load('/etc/catmandu'); Catmandu->load(':up'); my $store = Catmandu->store('mongodb'); my $importer = Catmandu->importer('loc'); my $exporter = Catmandu->exporter('europeana'); my $fixer = Catmandu->fixer('my_fixes'); my $conf = Catmandu->config; =head1 SEE ALSO L =cut Catmandu-1.10/lib/Catmandu/Error.pm000644 000765 000024 00000015164 13341726377 020120 0ustar00nsteenlastaff000000 000000 package Catmandu::Error; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Throwable::Error'; with 'Catmandu::Logger'; has message => ( is => 'ro', default => sub {""}, coerce => sub { my $msg = $_[0] // ""; $msg =~ s/\s+$//; $msg; } ); sub BUILD { my ($self) = @_; my $msg = $self->log_message; if ($self->log->is_debug) { $msg .= "\n\n" . $self->stack_trace->as_string; } $self->log->error($msg); } sub log_message { $_[0]->message; } package Catmandu::Error::Source; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use Catmandu::Util qw(is_string); use namespace::clean; has source => (is => 'rw', writer => 'set_source'); sub _source_log_message { my $msg = ""; if (is_string(my $source = $_[0]->source)) { $msg .= "\nSource:"; for (split(/\n/, $source)) { $msg .= "\n\t$_"; } } $msg; } package Catmandu::BadVal; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Error'; package Catmandu::BadArg; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::BadVal'; package Catmandu::NotImplemented; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Error'; package Catmandu::NoSuchPackage; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Error'; has package_name => (is => 'ro'); sub log_message { my ($self) = @_; my $err = $self->message; my $pkg_name = $self->package_name; my $msg = "Failed to load $pkg_name"; if (my ($type, $name) = $pkg_name =~ /^Catmandu::(Importer|Exporter|Store)::(\S+)/) { $msg = "Can't find the " . lc($type) . " '$name' in your configuration file or $pkg_name is not installed."; } elsif ($pkg_name =~ /^Catmandu::Fix::\S+/) { my ($fix_name) = $pkg_name =~ /([^:]+)$/; if ($fix_name =~ /^[a-z]/) { $msg = "Tried to execute the fix '$fix_name' but can't find $pkg_name on your system."; } } $msg .= "\nError: $err"; $msg .= "\nPackage name: $pkg_name"; $msg; } package Catmandu::FixParseError; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Error'; with 'Catmandu::Error::Source'; sub log_message { my ($self) = @_; my $err = $self->message; my $msg = "Syntax error in your fixes..."; $msg .= "\nError: $err"; $msg .= $self->_source_log_message; $msg; } package Catmandu::NoSuchFixPackage; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::NoSuchPackage'; with 'Catmandu::Error::Source'; has fix_name => (is => 'ro'); around log_message => sub { my ($orig, $self) = @_; my $fix_name = $self->fix_name; my $msg = $orig->($self); $msg .= "\nFix name: $fix_name" if $fix_name; $msg .= $self->_source_log_message; $msg; }; package Catmandu::BadFixArg; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::BadArg'; with 'Catmandu::Error::Source'; has package_name => (is => 'ro'); has fix_name => (is => 'ro'); sub log_message { my ($self) = @_; my $err = $self->message; my $fix_name = $self->fix_name; my $msg = "The fix '$fix_name' was called with missing or wrong arguments."; $msg .= "\nError: $err"; $msg .= $self->_source_log_message; $msg; } package Catmandu::FixError; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Data::Dumper; use namespace::clean; extends 'Catmandu::Error'; has data => (is => 'ro'); has fix => (is => 'ro'); sub log_message { my ($self) = @_; my $err = $self->message; my $fix = $self->fix; my $data = $self->data; my $msg = "One of your fixes threw an error..."; $msg .= "\nError: $err"; $msg .= "\nSource: $fix" if $fix; $msg .= "\nInput:\n" . Dumper($data) if defined $data; $msg; } package Catmandu::HTTPError; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Data::Dumper; use namespace::clean; # avoid circular dependencies require Catmandu::Util; extends 'Catmandu::Error'; has code => (is => 'ro'); has url => (is => 'ro'); has method => (is => 'ro'); has request_headers => (is => 'ro'); has request_body => (is => 'ro'); has response_headers => (is => 'ro'); has response_body => (is => 'ro'); sub log_message { my ($self) = @_; my $err = $self->message; my $code = $self->code; my $url = $self->url; my $method = $self->method; my $request_body = $self->request_body; my $response_body = $self->response_body; my $request_headers = $self->request_headers; my $response_headers = $self->response_headers; my $msg = "Got a HTTP error..."; $msg .= "\nError: $err"; $msg .= "\nCode: $code"; $msg .= "\nURL: $url"; $msg .= "\nMethod: $method"; $msg .= "\nRequest headers: " . $self->_headers_to_string($request_headers); if (Catmandu::Util::is_string($request_body)) { $msg .= "\nRequest body: \n" . $self->_indent($request_body); } $msg .= "\nResponse headers: " . $self->_headers_to_string($response_headers); if (Catmandu::Util::is_string($response_body)) { $msg .= "\nResponse body: \n" . $self->_indent($response_body); } $msg; } sub _headers_to_string { my ($self, $headers) = @_; my $str = ""; for (my $i = 0; $i < @$headers; $i++) { $str .= "\n\t" . $headers->[$i++] . ": " . $headers->[$i]; } $str; } sub _indent { my ($self, $str) = @_; $str =~ s/([^\r\n]+)/\t$1/g; $str; } 1; __END__ =pod =head1 NAME Catmandu::Error - Catmandu error hierarchy =head1 SYNOPSIS use Catmandu::Sane; sub be_naughty { Catmandu::BadArg->throw("very naughty") if shift; } try { be_naughty(1); } catch_case [ 'Catmandu::BadArg' => sub { say "sorry"; } ]; =head1 CURRRENT ERROR HIERARCHY Throwable::Error Catmandu::Error Catmandu::BadVal Catmandu::BadArg Catmandu::BadFixArg Catmandu::NotImplemented Catmandu::NoSuchPackage Catmandu::NoSuchFixPackage Catmandu::FixParseError Catmandu::FixError Catmandu::HTTPError =head1 SEE ALSO L =cut Catmandu-1.10/lib/Catmandu/Cmd.pm000644 000765 000024 00000011302 13341726377 017520 0ustar00nsteenlastaff000000 000000 package Catmandu::Cmd; use Catmandu::Sane; our $VERSION = '1.10'; use parent qw(App::Cmd::Command); use Catmandu::Util qw(is_array_ref pod_section); use Catmandu::Fix; use Encode qw(decode); use namespace::clean; # Internal required by App::Cmd; sub prepare { my ($self, $app, @args) = @_; # not always available eval { require I18N::Langinfo; I18N::Langinfo->import(qw(langinfo CODESET)); my $codeset = langinfo(CODESET()); @args = map {decode $codeset, $_} @args; }; $self->SUPER::prepare($app, @args); } # Internal required by App::Cmd sub opt_spec { my ($class, $cli) = @_; ( ['help|h|?', "print this usage screen"], $cli->global_opt_spec, $class->command_opt_spec($cli), ); } # Internal required by App::Cmd sub execute { my ($self, $opts, $args) = @_; if ($opts->{version}) { print $Catmandu::VERSION; exit; } if ($opts->{help}) { print $self->usage->text; exit; } $self->command($opts, $args); } # show examples, if available in POD sub description { my $class = ref shift; my $s = pod_section($class, "name"); $s =~ s/.*\s+-\s+//; $s = ucfirst($s); $s .= "\n"; for (pod_section($class, "examples")) { $s .= "Examples:\n\n$_"; } "$s\nOptions:"; } # These should be implemented by the Catmandu::Cmd's sub command_opt_spec { } sub command { } # helpers sub _parse_options { my ($self, $args, %opts) = @_; $opts{separator} //= 'to'; my $a = my $lft_args = []; my $o = my $lft_opts = {}; my $rgt_args = []; my $rgt_opts = {}; for (my $i = 0; $i < @$args; $i++) { my $arg = $args->[$i]; if ($arg eq $opts{separator}) { $a = $rgt_args; $o = $rgt_opts; } elsif ($arg =~ s/^-+//) { $arg =~ s/-/_/g; if (exists $o->{$arg}) { if (is_array_ref($o->{$arg})) { push @{$o->{$arg}}, $args->[++$i]; } else { $o->{$arg} = [$o->{$arg}, $args->[++$i]]; } } else { $o->{$arg} = $args->[++$i]; } } else { push @$a, $arg; } } return $lft_args, $lft_opts, $rgt_args, $rgt_opts; } sub _build_fixer { my ($self, $opts) = @_; if ($opts->var) { return Catmandu::Fix->new( preprocess => 1, fixes => $opts->fix, variables => $opts->var, ); } Catmandu::Fix->new( preprocess => $opts->preprocess ? 1 : 0, fixes => $opts->fix, ); } 1; __END__ =pod =head1 NAME Catmandu::Cmd - A base class for extending the Catmandu command line =head1 SYNOPSIS # to create a command: $ catmandu hello_world # you need a package: package Catmandu::Cmd::hello_world; use parent 'Catmandu::Cmd'; sub command_opt_spec { ( [ "greeting|g=s", "provide a greeting text" ], ); } sub description { <greeting // 'Hello'; print "$greeting, World!\n" } =head1 NAME Catmandu::Cmd::hello_world - prints a funny line =cut =head1 DESCRIPTION Catmandu:Cmd is a base class to extend the commands that can be provided for the 'catmandu' command line tools. New catmandu commands should be defined in the Catmandu::Cmd namespace and extend Catmandu::Cmd. Every command needs to implement 4 things: * command_opt_spec - which should return an array of command options with documentation * description - a long description of the command * command - the body which is executed * head1 NAME - a short description of the command =head1 METHODS =head2 command_opt_spec() This method should be overridden to provide option specifications. (This is list of arguments passed to describe_options from Getopt::Long::Descriptive, after the first.) If not overridden, it returns an empty list. =head2 description() This method should return a string containing the long documentation of the command =head2 command() This method does whatever it is the command should do! It is passed a hash reference of the parsed command-line options and an array reference of left over arguments. =head1 DOCUMENTATION At least provide for every command a NAME documentation =head1 SEE ALSO L , L , L , L , L , L, L , L , L =cut Catmandu-1.10/lib/Catmandu/Exporter.pm000644 000765 000024 00000010144 13341726377 020630 0ustar00nsteenlastaff000000 000000 package Catmandu::Exporter; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(io); use Moo::Role; use namespace::clean; with 'Catmandu::Logger'; with 'Catmandu::Addable'; with 'Catmandu::Counter'; has file => (is => 'ro', lazy => 1, default => sub {\*STDOUT},); has fh => ( is => 'ro', lazy => 1, default => sub {io($_[0]->file, mode => 'w', binmode => $_[0]->encoding)}, ); after add => sub { $_[0]->inc_count; }; sub encoding {':utf8'} 1; __END__ =pod =head1 NAME Catmandu::Exporter - Namespace for packages that can export =head1 SYNOPSIS # From the command line # JSON is an importer and YAML an exporter $ catmandu convert JSON to YAML < data.json # OAI is an importer and JSON an exporter $ catmandu convert OAI --url http://biblio.ugent.be/oai to JSON # From Perl use Catmandu; my $importer = Catmandu->importer('JSON', file => 'data.json'); my $exporter = Catmandu->exporter('YAML'); $exporter->add({ record => "one"}); $exporter->add_many([ { record => "one" } , { record => "two" } ]); $exporter->add_many($importer); $exporter->commit; undef($exporter); # Clean up memory =head1 DESCRIPTION A Catmandu::Exporter is a Perl package that can export data into JSON, YAML, XML or many other formats. By default, data is to STDOUT. Optionally provide a C or C parameter to write to a file, string, or handle. Every Catmandu::Exporter is a L thus provides a C parameter and method to apply fixes to exported items: my $exporter = Catmandu->exporter('JSON', fix => ['upcase(title)']); # This will be printed to STDOUT like: {"title":"MY TITLE"} $exporter->add({ title => "my title"}); Every Catmandu::Exporter is a L thus inherits the methods C and C. =head1 CONFIGURATION =over =item file Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function. =item fh Write the output to an L. If not specified, L is used to create the output handle from the C argument or by using STDOUT. It is the task of the Perl programmer to close any opened IO::Handles. Catmandu will not do this by itself. =item encoding Binmode of the output stream C. Set to "C<:utf8>" by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to exported items. =back =head1 METHODS =head2 add Adds one item to be exported. =head2 add_many Adds many items to be exported. This can be either an ARRAY-ref or an L. Returns a true value when the export was successful or undef on error. =head2 count Returns the number of items exported by this Catmandu::Exporter. =head2 log Returns the current logger. =head2 commit Commit all buffers to the output handle. =head1 CODING Create your own exporter by creating a Perl package in the Catmandu::Exporter namespace that implements C. Basically, you need to create a method add which writes a Perl hash to a file handle: package Catmandu::Exporter::Foo; use Catmandu::Sane; use Moo; with 'Catmandu::Exporter' sub add { my ($self, $data) = @_; my $fh = $self->fh; $fh->print( "Hello, World!"); } sub commit { my ($self) = @_; # this will be called at the end of the record stream } 1; This exporter can be called from the command line as: $ catmandu convert JSON to Foo < data.json Or, via Perl use Catmandu; my $exporter = Catmandu->exporter('Foo', file => "/tmp/output.txt"); $exporter->add({test => 123}); $exporter->commit; undef($exporter); =head1 SEE ALSO See function L in module L. The exporters L, L, L, and L are included in Catmandu core. See L for the opposite action. =cut Catmandu-1.10/lib/Catmandu/Droppable.pm000644 000765 000024 00000000626 13341726377 020734 0ustar00nsteenlastaff000000 000000 package Catmandu::Droppable; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; requires 'drop'; 1; __END__ =pod =head1 NAME Catmandu::Droppable - Optional role for droppable stores or bags =head1 SYNOPSIS # delete a store $store->drop; # delete a single bag $store->bag('sessions')->drop; =head1 METHODS =head2 drop Drop the store or bag. =cut Catmandu-1.10/lib/Catmandu/Util.pm000644 000765 000024 00000070644 13341726377 017750 0ustar00nsteenlastaff000000 000000 package Catmandu::Util; use Catmandu::Sane; our $VERSION = '1.10'; use Exporter qw(import); use Sub::Quote (); use Scalar::Util (); use List::Util (); use Data::Util (); use Data::Compare (); use IO::File; use IO::Handle::Util (); use File::Spec; use YAML::XS (); use Cpanel::JSON::XS (); use Hash::Merge::Simple (); use MIME::Types; use POSIX (); use Time::HiRes (); our %EXPORT_TAGS = ( io => [ qw(io read_file read_io write_file read_yaml read_json join_path normalize_path segmented_path content_type) ], data => [qw(parse_data_path get_data set_data delete_data data_at)], array => [ qw(array_exists array_group_by array_pluck array_to_sentence array_sum array_includes array_any array_rest array_uniq array_split) ], hash => [qw(hash_merge)], string => [qw(as_utf8 trim capitalize)], is => [qw(is_same is_different)], check => [qw(check_same check_different)], human => [qw(human_number human_content_type human_byte_size)], xml => [qw(xml_declaration xml_escape)], misc => [qw(require_package use_lib pod_section)], date => [qw(now)], ); our @EXPORT_OK = map {@$_} values %EXPORT_TAGS; $EXPORT_TAGS{all} = \@EXPORT_OK; my $HUMAN_CONTENT_TYPES = { # txt 'text/plain' => 'Text', 'application/txt' => 'Text', # pdf 'application/pdf' => 'PDF', 'application/x-pdf' => 'PDF', 'application/acrobat' => 'PDF', 'applications/vnd.pdf' => 'PDF', 'text/pdf' => 'PDF', 'text/x-pdf' => 'PDF', # doc 'application/doc' => 'Word', 'application/vnd.msword' => 'Word', 'application/vnd.ms-word' => 'Word', 'application/winword' => 'Word', 'application/word' => 'Word', 'application/x-msw6' => 'Word', 'application/x-msword' => 'Word', # docx 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'Word', # xls 'application/vnd.ms-excel' => 'Excel', 'application/msexcel' => 'Excel', 'application/x-msexcel' => 'Excel', 'application/x-ms-excel' => 'Excel', 'application/vnd.ms-excel' => 'Excel', 'application/x-excel' => 'Excel', 'application/x-dos_ms_excel' => 'Excel', 'application/xls' => 'Excel', # xlsx 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'Excel', # ppt 'application/vnd.ms-powerpoint' => 'PowerPoint', 'application/mspowerpoint' => 'PowerPoint', 'application/ms-powerpoint' => 'PowerPoint', 'application/mspowerpnt' => 'PowerPoint', 'application/vnd-mspowerpoint' => 'PowerPoint', 'application/powerpoint' => 'PowerPoint', 'application/x-powerpoint' => 'PowerPoint', # pptx 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'PowerPoint', # csv 'text/comma-separated-values' => 'CSV', 'text/csv' => 'CSV', 'application/csv' => 'CSV', # zip 'application/zip' => 'ZIP archive', }; my $XML_DECLARATION = qq(\n); sub TIESCALAR { } sub io { my ($arg, %opts) = @_; my $binmode = $opts{binmode} || $opts{encoding} || ':encoding(UTF-8)'; my $mode = $opts{mode} || 'r'; my $io; if (is_scalar_ref($arg)) { $io = IO::Handle::Util::io_from_scalar_ref($arg); defined($io) && binmode $io, $binmode; } elsif (is_glob_ref(\$arg) || is_glob_ref($arg)) { $io = IO::Handle->new_from_fd($arg, $mode) // $arg; defined($io) && binmode $io, $binmode; } elsif (is_string($arg)) { $io = IO::File->new($arg, $mode); defined($io) && binmode $io, $binmode; } elsif (is_code_ref($arg) && $mode eq 'r') { $io = IO::Handle::Util::io_from_getline($arg); } elsif (is_code_ref($arg) && $mode eq 'w') { $io = IO::Handle::Util::io_from_write_cb($arg); } elsif (is_instance($arg, 'IO::Handle')) { $io = $arg; defined($io) && binmode $io, $binmode; } else { Catmandu::BadArg->throw("can't make io from argument"); } $io; } # Deprecated use tools like File::Slurp::Tiny sub read_file { my ($path) = @_; local $/; open my $fh, "<:encoding(UTF-8)", $path or Catmandu::Error->throw(qq(can't open "$path" for reading)); my $str = <$fh>; close $fh; $str; } sub read_io { my ($io) = @_; $io->binmode("encoding(UTF-8)") if ($io->can('binmode')); my @lines = (); while (<$io>) { push @lines, $_; } $io->close(); join "", @lines; } # Deprecated use tools like File::Slurp::Tiny sub write_file { my ($path, $str) = @_; open my $fh, ">:encoding(UTF-8)", $path or Catmandu::Error->throw(qq(can't open "$path" for writing)); print $fh $str; close $fh; $path; } sub read_yaml { # dies on error YAML::XS::LoadFile($_[0]); } sub read_json { my $text = read_file($_[0]); # dies on error Cpanel::JSON::XS->new->decode($text); } ## # Split a path on . or /, but not on \/ or \. sub split_path { my ($path) = @_; return [map {s/\\(?=[\.\/])//g; $_} split /(?catfile(@_); $path =~ s!/\./!/!g; while ($path =~ s![^/]*/\.\./!!) { } $path; } sub normalize_path { # taken from Dancer::FileUtils my ($path) = @_; $path =~ s!/\./!/!g; while ($path =~ s![^/]*/\.\./!!) { } File::Spec->catfile($path); } sub segmented_path { my ($id, %opts) = @_; my $segment_size = $opts{segment_size} || 3; my $base_path = $opts{base_path}; $id =~ s/[^0-9a-zA-Z]+//g; my @path = unpack "(A$segment_size)*", $id; defined $base_path ? File::Spec->catdir($base_path, @path) : File::Spec->catdir(@path); } my $MIME_TYPES; sub content_type { my ($filename) = @_; $MIME_TYPES ||= MIME::Types->new(only_complete => 1); return undef unless $filename; my ($ext) = $filename =~ /\.(.+?)$/; my $type = 'application/octet-stream'; my $mime = $MIME_TYPES->mimeTypeOf($ext); # Require explicit stringification! $type = sprintf "%s", $mime->type if $mime; $type; } sub parse_data_path { my ($path) = @_; check_string($path); $path = split_path($path); my $key = pop @$path; return $path, $key; } sub get_data { my ($data, $key) = @_; if (is_array_ref($data)) { if ($key eq '$first') {return unless @$data; $key = 0} elsif ($key eq '$last') {return unless @$data; $key = @$data - 1} elsif ($key eq '*') {return @$data} if (array_exists($data, $key)) { return $data->[$key]; } return; } if (is_hash_ref($data) && exists $data->{$key}) { return $data->{$key}; } return; } sub set_data { my ($data, $key, @vals) = @_; return unless @vals; if (is_array_ref($data)) { if ($key eq '$first') {return unless @$data; $key = 0} elsif ($key eq '$last') {return unless @$data; $key = @$data - 1} elsif ($key eq '$prepend') { unshift @$data, $vals[0]; return $vals[0]; } elsif ($key eq '$append') {push @$data, $vals[0]; return $vals[0]} elsif ($key eq '*') {return splice @$data, 0, @$data, @vals} return $data->[$key] = $vals[0] if is_natural($key); return; } if (is_hash_ref($data)) { return $data->{$key} = $vals[0]; } return; } sub delete_data { my ($data, $key) = @_; if (is_array_ref($data)) { if ($key eq '$first') {return unless @$data; $key = 0} elsif ($key eq '$last') {return unless @$data; $key = @$data - 1} elsif ($key eq '*') {return splice @$data, 0, @$data} if (array_exists($data, $key)) { return splice @$data, $key, 1; } return; } if (is_hash_ref($data) && exists $data->{$key}) { return delete $data->{$key}; } return; } sub data_at { my ($path, $data, %opts) = @_; if (ref $path) { $path = [map {split_path($_)} @$path]; } else { $path = split_path($path); } my $create = $opts{create}; my $_key = $opts{_key} // $opts{key}; if (defined $opts{key} && $create && @$path) { push @$path, $_key; } my $key; while (defined(my $key = shift @$path)) { is_ref($data) || return; if (is_array_ref($data)) { if ($key eq '*') { return map {data_at($path, $_, create => $create, _key => $_key)} @$data; } else { if ($key eq '$first') {$key = 0} elsif ($key eq '$last') {$key = -1} elsif ($key eq '$prepend') {unshift @$data, undef; $key = 0} elsif ($key eq '$append') {push @$data, undef; $key = @$data} is_integer($key) || return; if ($create && @$path) { $data = $data->[$key] ||= is_integer($path->[0]) || ord($path->[0]) == ord('$') ? [] : {}; } else { $data = $data->[$key]; } } } elsif ($create && @$path) { $data = $data->{$key} ||= is_integer($path->[0]) || ord($path->[0]) == ord('$') ? [] : {}; } else { $data = $data->{$key}; } if ($create && @$path == 1) { last; } } $data; } sub array_exists { my ($arr, $i) = @_; is_natural($i) && $i < @$arr; } sub array_group_by { my ($arr, $key) = @_; List::Util::reduce { my $k = $b->{$key}; push @{$a->{$k} ||= []}, $b if defined $k; $a } {}, @$arr; } sub array_pluck { my ($arr, $key) = @_; my @vals = map {$_->{$key}} @$arr; \@vals; } sub array_to_sentence { my ($arr, $join, $join_last) = @_; $join //= ', '; $join_last //= ' and '; my $size = scalar @$arr; $size > 2 ? join($join_last, join($join, @$arr[0 .. $size - 2]), $arr->[-1]) : join($join_last, @$arr); } sub array_sum { List::Util::sum(0, @{$_[0]}); } sub array_includes { my ($arr, $val) = @_; is_same($val, $_) && return 1 for @$arr; 0; } sub array_any { my ($arr, $sub) = @_; $sub->($_) && return 1 for @$arr; 0; } sub array_rest { my ($arr) = @_; @$arr < 2 ? [] : [@$arr[1 .. (@$arr - 1)]]; } sub array_uniq { my ($arr) = @_; my %seen = (); my @vals = grep {not $seen{$_}++} @$arr; \@vals; } sub array_split { my ($arr) = @_; is_array_ref($arr) ? $arr : [split ',', $arr]; } sub as_utf8 { my $str = $_[0]; utf8::upgrade($str); $str; } sub trim { my $str = $_[0]; if ($str) { $str =~ s/^[\h\v]+//s; $str =~ s/[\h\v]+$//s; } $str; } sub capitalize { my $str = $_[0]; utf8::upgrade($str); ucfirst lc $str; } sub is_different { !is_same(@_); } sub check_same { is_same(@_) || Catmandu::BadVal->throw('should be same'); $_[0]; } sub check_different { is_same(@_) && Catmandu::BadVal->throw('should be different'); $_[0]; } sub is_bool { Scalar::Util::blessed($_[0]) && ($_[0]->isa('boolean') || $_[0]->isa('Types::Serialiser::Boolean') || $_[0]->isa('JSON::XS::Boolean') || $_[0]->isa('Cpanel::JSON::XS::Boolean') || $_[0]->isa('JSON::PP::Boolean')); } sub is_natural { is_integer($_[0]) && $_[0] >= 0; } sub is_positive { is_integer($_[0]) && $_[0] >= 1; } sub is_ref { ref $_[0] ? 1 : 0; } sub is_able { my $obj = shift; is_invocant($obj) || return 0; $obj->can($_) || return 0 for @_; 1; } sub check_able { my $obj = shift; return $obj if is_able($obj, @_); Catmandu::BadVal->throw('should be able to ' . array_to_sentence(\@_)); } sub check_maybe_able { my $obj = shift; return $obj if is_maybe_able($obj, @_); Catmandu::BadVal->throw( 'should be undef or able to ' . array_to_sentence(\@_)); } sub is_instance { my $obj = shift; Scalar::Util::blessed($obj) || return 0; $obj->isa($_) || return 0 for @_; 1; } sub check_instance { my $obj = shift; return $obj if is_instance($obj, @_); Catmandu::BadVal->throw( 'should be instance of ' . array_to_sentence(\@_)); } sub check_maybe_instance { my $obj = shift; return $obj if is_maybe_instance($obj, @_); Catmandu::BadVal->throw( 'should be undef or instance of ' . array_to_sentence(\@_)); } Data::Util::install_subroutine(__PACKAGE__, hash_merge => \&Hash::Merge::Simple::merge, is_same => \&Data::Compare::Compare, is_invocant => \&Data::Util::is_invocant, is_scalar_ref => \&Data::Util::is_scalar_ref, is_array_ref => \&Data::Util::is_array_ref, is_hash_ref => \&Data::Util::is_hash_ref, is_code_ref => \&Data::Util::is_code_ref, is_regex_ref => \&Data::Util::is_rx, is_glob_ref => \&Data::Util::is_glob_ref, is_value => \&Data::Util::is_value, is_string => \&Data::Util::is_string, is_number => \&Data::Util::is_number, is_integer => \&Data::Util::is_integer, ); for my $sym ( qw(able instance invocant ref scalar_ref array_ref hash_ref code_ref regex_ref glob_ref bool value string number integer natural positive) ) { my $err_name = $sym; $err_name =~ s/_/ /; push @EXPORT_OK, "is_$sym", "is_maybe_$sym", "check_$sym", "check_maybe_$sym"; push @{$EXPORT_TAGS{is}}, "is_$sym", "is_maybe_$sym"; push @{$EXPORT_TAGS{check}}, "check_$sym", "check_maybe_$sym"; unless (Data::Util::get_code_ref(__PACKAGE__, "is_maybe_$sym")) { my $sub = Sub::Quote::quote_sub("!defined(\$_[0]) || is_$sym(\$_[0])"); Data::Util::install_subroutine(__PACKAGE__, "is_maybe_$sym" => $sub); } unless (Data::Util::get_code_ref(__PACKAGE__, "check_$sym")) { my $sub = Sub::Quote::quote_sub( "is_$sym(\$_[0]) || Catmandu::BadVal->throw('should be $err_name'); \$_[0]" ); Data::Util::install_subroutine(__PACKAGE__, "check_$sym" => $sub); } unless (Data::Util::get_code_ref(__PACKAGE__, "check_maybe_$sym")) { my $sub = Sub::Quote::quote_sub( "is_maybe_$sym(\$_[0]) || Catmandu::BadVal->throw('should be undef or $err_name'); \$_[0]" ); Data::Util::install_subroutine(__PACKAGE__, "check_maybe_$sym" => $sub); } } sub human_number { # taken from Number::Format my $num = $_[0]; # add leading 0's so length($num) is divisible by 3 $num = '0' x (3 - (length($num) % 3)) . $num; # split $num into groups of 3 characters and insert commas $num = join ',', grep {$_ ne ''} split /(...)/, $num; # strip off leading zeroes and/or comma $num =~ s/^0+,?//; length $num ? $num : '0'; } sub human_byte_size { my ($size) = @_; if ($size > 1000000000) { return sprintf("%.2f GB", $size / 1000000000); } elsif ($size > 1000000) { return sprintf("%.2f MB", $size / 1000000); } elsif ($size > 1000) { return sprintf("%.2f KB", $size / 1000); } "$size bytes"; } sub human_content_type { my ($content_type, $default) = @_; my ($key) = $content_type =~ /^([^;]+)/; $HUMAN_CONTENT_TYPES->{$key} // $default // $content_type; } sub xml_declaration { $XML_DECLARATION; } sub xml_escape { my ($str) = @_; utf8::upgrade($str); $str =~ s/&/&/go; $str =~ s//>/go; $str =~ s/"/"/go; $str =~ s/'/'/go; # remove control chars $str =~ s/[^\x09\x0A\x0D\x20-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]//go; $str; } sub use_lib { my (@dirs) = @_; use lib; local $@; lib->import(@dirs); Catmandu::Error->throw($@) if $@; 1; } sub pod_section { my $class = is_ref($_[0]) ? ref(shift) : shift; my $section = uc(shift); unless (-r $class) { $class =~ s!::!/!g; $class .= '.pm'; $class = $INC{$class} or return ''; } my $text = ""; open my $input, "<", $class or return ''; open my $output, ">", \$text; require Pod::Usage; # lazy load only if needed Pod::Usage::pod2usage( -input => $input, -output => $output, -sections => $section, -exit => "NOEXIT", -verbose => 99, -indent => 0, -utf8 => 1, @_ ); $section = ucfirst(lc($section)); $text =~ s/$section:\n//m; chomp $text; $text; } sub require_package { my ($pkg, $ns) = @_; if ($ns) { unless ($pkg =~ s/^\+// || $pkg =~ /^$ns/) { $pkg = "${ns}::$pkg"; } } return $pkg if is_invocant($pkg); eval "require $pkg;1;" or Catmandu::NoSuchPackage->throw( message => "No such package: $pkg", package_name => $pkg ); $pkg; } sub now { my $format = $_[0]; my $now; if (!defined $format || $format eq 'iso_date_time') { $now = POSIX::strftime('%Y-%m-%dT%H:%M:%SZ', gmtime(time)); } elsif ($format eq 'iso_date_time_millis') { my $t = Time::HiRes::time; $now = POSIX::strftime('%Y-%m-%dT%H:%M:%S', gmtime($t)); $now .= sprintf('.%03d', ($t - int($t)) * 1000); $now .= 'Z'; } else { $now = POSIX::strftime($format, gmtime(time)); } } 1; __END__ =pod =head1 NAME Catmandu::Util - A collection of utility functions =head1 SYNOPSIS use Catmandu::Util qw(:string); $str = trim($str); =head1 FUNCTIONS =head2 IO functions use Catmandu::Util qw(:io); =over 4 =item io($io, %opts) Takes a file path, glob, glob reference, scalar reference or L object and returns an opened L object. my $fh = io '/path/to/file'; my $fh = io *STDIN; my $fh = io \*STDOUT, mode => 'w', binmode => ':crlf'; my $write_cb = sub { my $str = $_[0]; ... }; my $fh = io $write_cb, mode => 'w'; my $scalar = ""; my $fh = io \$scalar, mode => 'w'; $fh->print("some text"); Options are: =over 12 =item mode Default is C<"r">. =item binmode Default is C<":encoding(UTF-8)">. =item encoding Alias for C. =back =item read_file($path); [deprecated]: use tools like Path::Tiny instead. Reads the file at C<$path> into a string. my $str = read_file('/path/to/file.txt'); Throws a Catmandu::Error on failure. =item read_io($io) Reads an IO::Handle into a string. my $str = read_file($fh); =item write_file($path, $str); [deprecated]: use tools like use tools like File::Slurp::Tiny instead. Writes the string C<$str> to a file at C<$path>. write_file('/path/to/file.txt', "contents"); Throws a Catmandu::Error on failure. =item read_yaml($path); Reads the YAML file at C<$path> into a Perl hash. my $cfg = read_yaml($path); Dies on failure reading the file or parsing the YAML. =item read_json($path); Reads the JSON file at C<$path> into a Perl hash. my $cfg = read_json($path); Dies on failure reading the file or parsing the JSON. =item join_path(@path); Joins relative paths into an absolute path. join_path('/path/..', './to', 'file.txt'); # => "/to/file.txt" =item normalize_path($path); Normalizes a relative path to an absolute path. normalize_path('/path/../to/./file.txt'); # => "/to/file.txt" =item segmented_path($path); my $id = "FB41144C-F0ED-11E1-A9DE-61C894A0A6B4"; segmented_path($id, segment_size => 4); # => "FB41/144C/F0ED/11E1/A9DE/61C8/94A0/A6B4" segmented_path($id, segment_size => 2, base_path => "/files"); # => "/files/FB/41/14/4C/F0/ED/11/E1/A9/DE/61/C8/94/A0/A6/B4" =item content_type($filename); Guess the content type of a file name. content_type("book.pdf"); # => "application/pdf" =back =head2 Hash functions use Catmandu::Util qw(:hash); A collection of functions that operate on hash references. =over 4 =item hash_merge($hash1, $hash2, ... , $hashN) Merge through , with the nth-most (rightmost) hash taking precedence. Returns a new hash reference representing the merge. hash_merge({a => 1}, {b => 2}, {a => 3}); # => { a => 3 , b => 2} =back =head2 Array functions use Catmandu::Util qw(:array); A collection of functions that operate on array references. =over 4 =item array_exists($array, $index) Returns C<1> if C<$index> is in the bounds of C<$array> array_exists(["a", "b"], 2); # => 0 array_exists(["a", "b"], 1); # => 1 =item array_group_by($array, $key) my $list = [{color => 'black', id => 1}, {color => 'white', id => 2}, {id => 3}, {color => 'black', id => 4}]; array_group_by($list, 'color'); # => {black => [{color => 'black', id => 1}, {color => 'black', id => 4}], # white => [{color => 'white', id => 2}]} =item array_pluck($array, $key) my $list = [{id => 1}, {}, {id => 3}]; array_pluck($list, 'id'); # => [1, undef, 3] =item array_to_sentence($array) =item array_to_sentence($array, $join) =item array_to_sentence($array, $join, $join_last) array_to_sentence([1,2,3]); # => "1, 2 and 3" array_to_sentence([1,2,3], ","); # => "1,2 and 3" array_to_sentence([1,2,3], ",", " & "); # => "1,2 & 3" =item array_sum($array) array_sum([1,2,3]); # => 6 =item array_includes($array, $val) Returns 1 if C<$array> includes a value that is deeply equal to C<$val>, 0 otherwise. Comparison is done with C. array_includes([{color => 'black'}], {color => 'white'}); # => 0 array_includes([{color => 'black'}], {color => 'black'}); # => 1 =item array_any($array, \&sub) array_any(["green", "blue"], sub { my $color = $_[0]; $color eq "blue" }); # => 1 =item array_rest($array) Returns a copy of C<$array> without the head. array_rest([1,2,3,4]); # => [2,3,4] array_rest([1]); # => [] =item array_uniq($array) Returns a copy of C<$array> with all duplicates removed. =item array_split($array | $string) Returns C<$array> or a new array by splitting C<$string> at commas. =back =head2 String functions use Catmandu::Util qw(:string); =over 4 =item as_utf8($str) Returns a copy of C<$str> flagged as UTF-8. =item trim($str) Returns a copy of C<$str> with leading and trailing whitespace removed. =item capitalize($str) Equivalent to C<< ucfirst lc as_utf8 $str >>. =back =head2 Is functions use Catmandu::Util qw(:is); is_number(42) ? "it's numeric" : "it's not numeric"; is_maybe_hash_ref({}); # => 1 is_maybe_hash_ref(undef); # => 1 is_maybe_hash_ref([]); # => 0 A collection of predicate functions that test the type or value of argument C<$val>. Each function (except C and C) also has a I variant that also tests true if C<$val> is undefined. Returns C<1> or C<0>. =over 4 =item is_invocant($val) =item is_maybe_invocant($val) Tests if C<$val> is callable (is an existing package or blessed object). =item is_able($val, @method_names) =item is_maybe_able($val, @method_names) Tests if C<$val> is callable and has all methods in C<@method_names>. =item is_instance($val, @class_names) =item is_maybe_instance($val, @class_names) Tests if C<$val> is a blessed object and an instance of all the classes in C<@class_names>. =item is_ref($val) =item is_maybe_ref($val) Tests if C<$val> is a reference. Equivalent to C<< ref $val ? 1 : 0 >>. =item is_scalar_ref($val) =item is_maybe_scalar_ref($val) Tests if C<$val> is a scalar reference. =item is_array_ref($val) =item is_maybe_array_ref($val) Tests if C<$val> is an array reference. =item is_hash_ref($val) =item is_maybe_hash_ref($val) Tests if C<$val> is a hash reference. =item is_code_ref($val) =item is_maybe_code_ref($val) Tests if C<$val> is a subroutine reference. =item is_regex_ref($val) =item is_maybe_regex_ref($val) Tests if C<$val> is a regular expression reference generated by the C operator. =item is_glob_ref($val) =item is_maybe_glob_ref($val) Tests if C<$val> is a glob reference. =item is_value($val) =item is_maybe_value($val) Tests if C<$val> is a real value (defined, not a reference and not a glob. =item is_string($val) =item is_maybe_string($val) Tests if C<$val> is a non-empty string. Equivalent to C<< is_value($val) && length($val) > 0 >>. =item is_number($val) =item is_maybe_number($val) Tests if C<$val> is a number. =item is_integer($val) =item is_maybe_integer($val) Tests if C<$val> is an integer. =item is_natural($val) =item is_maybe_natural($val) Tests if C<$val> is a non-negative integer. Equivalent to C<< is_integer($val) && $val >= 0 >>. =item is_positive($val) =item is_maybe_positive($val) Tests if C<$val> is a positive integer. Equivalent to C<< is_integer($val) && $val >= 1 >>. =item is_same($val, $other_val) Tests if C<$val> is deeply equal to C<$other_val>. =item is_different($val, $other_val) The opposite of C. =back =head2 Check functions use Catmandu::Util qw(:check); check_hash_ref({color => 'red'}); # => {color => 'red'} check_hash_ref([]); # dies A group of assert functions similar to the C<:is> group, but instead of returning true or false they return their argument or die. =over 4 =item check_invocant($val) =item check_maybe_invocant($val) =item check_able($val, @method_names) =item check_maybe_able($val, @method_names) =item check_instance($val, @class_names) =item check_maybe_instance($val, @class_names) =item check_ref($val) =item check_maybe_ref($val) =item check_scalar_ref($val) =item check_maybe_scalar_ref($val) =item check_array_ref($val) =item check_maybe_array_ref($val) =item check_hash_ref($val) =item check_maybe_hash_ref($val) =item check_code_ref($val) =item check_maybe_code_ref($val) =item check_regex_ref($val) =item check_maybe_regex_ref($val) =item check_glob_ref($val) =item check_maybe_glob_ref($val) =item check_value($val) =item check_maybe_value($val) =item check_string($val) =item check_maybe_string($val) =item check_number($val) =item check_maybe_number($val) =item check_integer($val) =item check_maybe_integer($val) =item check_natural($val) =item check_maybe_natural($val) =item check_positive($val) =item check_maybe_positive($val) =item check_same($val, $other_val) =item check_different($val, $other_val) =back =head2 Human output functions use Catmandu::Util qw(:human); =over 4 =item human_number($num) Insert a comma a 3-digit intervals to make C<$num> more readable. Only works with I for now. human_number(64354); # => "64,354" =item human_byte_size($size) human_byte_size(64); # => "64 bytes" human_byte_size(10005000); # => "10.01 MB" =item human_content_type($content_type) =item human_content_type($content_type, $default) human_content_type('application/x-dos_ms_excel'); # => "Excel" human_content_type('application/zip'); # => "ZIP archive" human_content_type('foo/x-unknown'); # => "foo/x-unknown" human_content_type('foo/x-unknown', 'Unknown'); # => "Unknown" =back =head2 XML functions use Catmandu::Util qw(:xml); =over 4 =item xml_declaration() Returns C<< qq(\n) >>. =item xml_escape($str) Returns an XML escaped copy of C<$str>. =back =head2 Miscellaneous functions =over 4 =item require_package($pkg) =item require_package($pkg, $namespace) Load package C<$pkg> at runtime with C and return it's full name. my $pkg = require_package('File::Spec'); my $dir = $pkg->tmpdir(); require_package('Util', 'Catmandu'); # => "Catmandu::Util" require_package('Catmandu::Util', 'Catmandu'); # => "Catmandu::Util" Throws a Catmandu::Error on failure. =item use_lib(@dirs) Add directories to C<@INC> at runtime. Throws a Catmandu::Error on failure. =item pod_section($package_or_file, $section [, @options] ) Get documentation of a package for a selected section. Additional options are passed to L. =item now($format) Returns the current datetime as a string. C<$format>can be any C format. There are also 2 builtin formats, C and C. C is equivalent to C<%Y-%m-%dT%H:%M:%SZ>. C is the same, but with added milliseconds. now('%Y/%m/%d'); now('iso_date_time_millis'); The default format is C; =back =cut Catmandu-1.10/lib/Catmandu/Plugin/000755 000765 000024 00000000000 13341726377 017720 5ustar00nsteenlastaff000000 000000 Catmandu-1.10/lib/Catmandu/Logger.pm000644 000765 000024 00000006775 13341726377 020256 0ustar00nsteenlastaff000000 000000 package Catmandu::Logger; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use Log::Any (); use namespace::clean; has log => (is => 'lazy', init_arg => undef); has log_category => (is => 'lazy'); { my $loggers = {}; sub _build_log { my ($self) = @_; my $category = $self->log_category; $loggers->{$category} ||= Log::Any->get_logger(category => $category); } } sub _build_log_category { ref $_[0]; } 1; __END__ =pod =head1 NAME Catmandu::Logger - A role for classes that need logging capabilities =head1 SYNOPSIS package MyApp::View; use Moo; with 'Catmandu::Logger'; sub something { my ($self) = @_; $self->log->debug("started bar"); # logs with default class catergory "MyApp::View" $self->log->error("started bar"); } =head1 DESCRIPTION A logging role building a very lightweight wrapper to L. Connecting a Log::Any::Adapter should be performed prior to logging the first log message, otherwise nothing will happen, just like with Log::Any. The logger needs to be setup before using the logger, which could happen in the main application: package main; use Log::Any::Adapter; use Log::Log4perl; Log::Any::Adapter->set('Log4perl'); Log::Log4perl::init('./log4perl.conf'); my $app = MyApp::View->new; $app->something(); # will print debug and error messages with log4perl.conf like: log4perl.rootLogger=DEBUG,OUT log4perl.appender.OUT=Log::Log4perl::Appender::Screen log4perl.appender.OUT.stderr=1 log4perl.appender.OUT.utf8=1 log4perl.appender.OUT.layout=PatternLayout log4perl.appender.OUT.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n See L for more configuration options and selecting which messages to log and which not. =head1 CATMANDU COMMAND LINE When using the L command line, the logger can be activated using the -D option on all Catmandu commands: $ catmandu -D convert JSON to YAML < data.json $ catmandu -D export MongoDB --database-name items --bag The log4perl configuration for the C command line must be defined in a 'catmandu.yml' configuration file: $ cat catmandu.yml log4perl: | log4perl.rootLogger=DEBUG,OUT log4perl.appender.OUT=Log::Log4perl::Appender::Screen log4perl.appender.OUT.stderr=1 log4perl.appender.OUT.utf8=1 log4perl.appender.OUT.layout=PatternLayout log4perl.appender.OUT.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n The C section can point to an inline log4perl configuration or a filename containing the configuration. See L how to include log messages in the L language. =head1 ACCESSORS =head2 log The C attribute holds the L object that implements all logging methods for the defined log levels, such as C or C. package MyApp::View::JSON; extends 'MyApp::View'; with 'Catmandu::Logger'; sub bar { $self->log->info("Everything fine so far"); # logs a info message $self->log->debug("Something is fishy here"); # logs a debug message } Your package automatically has a logging category of MyApp::View::JSON. Use lines like: log4perl.logger.MyApp::View::JSON=DEBUG,STDOUT or log4perl.logger.MyApp::View=DEBUG,STDOUT or log4perl.logger.MyApp=DEBUG,STDOUT for specialized logging for your application. =head2 log_category Default is the class name. =head1 SEE ALSO L =cut Catmandu-1.10/lib/Catmandu/Iterator.pm000644 000765 000024 00000001725 13341726377 020616 0ustar00nsteenlastaff000000 000000 package Catmandu::Iterator; use Catmandu::Sane; our $VERSION = '1.10'; use Role::Tiny::With; use namespace::clean; with 'Catmandu::Iterable'; sub new { bless $_[1], $_[0]; } sub generator { goto &{$_[0]}; } 1; __END__ =pod =head1 NAME Catmandu::Iterator - Base class for all Catmandu iterators =head1 SYNOPSIS package My::MockIterator; use Catmandu; use Moo; with 'Catmandu::Iterable'; sub generator { sub { # Generator some random data +{ random => rand }; } } package main; my $it = My::MockIterator->new; my $first = $it->first; $it->each(sub { my $item = shift; print $item->{random} , "\n"; }); my $it2 = $it->map(sub { shift->{random} * 2 }); =head1 METHODS =head2 generator Should return a closure that generates one Perl hash. =head1 INHERIT If you provide a generator, then the class will generator all methods from L. =head1 SEE ALSO L =cut Catmandu-1.10/lib/Catmandu/CLI.pm000644 000765 000024 00000010342 13341726377 017427 0ustar00nsteenlastaff000000 000000 package Catmandu::CLI; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_instance); use Catmandu; use Log::Any::Adapter; use Data::Dumper; use parent qw(App::Cmd); sub deleted_commands { [ qw( Catmandu::Cmd::data Catmandu::Cmd::exporter_info Catmandu::Cmd::fix_info Catmandu::Cmd::importer_info Catmandu::Cmd::module_info Catmandu::Cmd::move Catmandu::Cmd::store_info ) ]; } sub default_command {'commands'} sub plugin_search_path {'Catmandu::Cmd'} sub global_opt_spec { (['debug|D:i', ""], ['load_path|L=s@', ""], ['lib_path|I=s@', ""]); } sub default_log4perl_config { my $level = shift // 'DEBUG'; my $appender = shift // 'STDERR'; my $config = < 'WARN', 2 => 'INFO', 3 => 'DEBUG'); my $debug = shift; my $level = $LEVELS{$debug} // 'WARN'; my $load_from; try { my $log4perl_pkg = Catmandu::Util::require_package('Log::Log4perl'); my $logany_adapter = Catmandu::Util::require_package('Log::Any::Adapter::Log4perl'); my $config = Catmandu->config->{log4perl}; if (defined $config) { if ($config =~ /^\S+$/) { Log::Log4perl::init($config); $load_from = "file: $config"; } else { Log::Log4perl::init(\$config); $load_from = "string: "; } } else { Log::Log4perl::init(default_log4perl_config($level, 'STDERR')); $load_from = "string: "; } Log::Any::Adapter->set('Log4perl'); } catch { print STDERR <log->warn( "debug activated - level $level - config load from $load_from"); } # overload run to read the global options before # the App::Cmd object is created sub run { my ($class) = @_; my ($global_opts, $argv) = $class->_process_args([@ARGV], $class->_global_option_processing_params); my $load_path = $global_opts->{load_path} || []; my $lib_path = $global_opts->{lib_path} || []; if (exists $global_opts->{debug}) { setup_debugging($global_opts->{debug} // 1); } if (@$lib_path) { Catmandu::Util::use_lib(@$lib_path); } Catmandu->load(@$load_path); my $self = ref $class ? $class : $class->new; $self->set_global_options($global_opts); my ($cmd, $opts, @args) = $self->prepare_command(@$argv); my $err; try { $self->execute_command($cmd, $opts, @args); } catch { my $e = $_; if (is_instance($e, 'Catmandu::NoSuchPackage') && $e->package_name eq 'Catmandu::Importer::help') { $err = "Did you mean 'catmandu $ARGV[1] $ARGV[0]'?"; } elsif (is_instance($e, 'Catmandu::Error')) { $err = $e->log_message; } else { $err = $e; } }; if (defined $err) { say STDERR "Oops! $err"; return; } 1; } sub should_ignore { my ($self, $cmd_class) = @_; for my $cmd (@{$self->deleted_commands}) { return 1 if $cmd_class->isa($cmd); } return; } 1; __END__ =pod =head1 NAME Catmandu::CLI - The App::Cmd application class for the catmandu command line script =head1 SEE ALSO L =cut Catmandu-1.10/lib/Catmandu/Introduction.pod000644 000765 000024 00000015343 13341726377 021655 0ustar00nsteenlastaff000000 000000 =head1 NAME Catmandu::Introduction - An Introduction to Catmandu data processing toolkit =begin markdown # STATUS [![Build Status](https://travis-ci.org/LibreCat/Catmandu.svg?branch=master)](https://travis-ci.org/LibreCat/Catmandu) [![Coverage](https://coveralls.io/repos/LibreCat/Catmandu/badge.svg?branch=master)](https://coveralls.io/r/LibreCat/Catmandu) [![CPANTS kwalitee](http://cpants.cpanauthors.org/dist/Catmandu.png)](http://cpants.cpanauthors.org/dist/Catmandu) =end markdown =head1 Introduction Catmandu is a data processing toolkit developed as part of the L project. Catmandu provides the command line client L and a suite of tools to ease the import, storage, retrieval, export and transformation of data. For instance, to transform a CSV file into JSON use the command: $ catmandu convert JSON to CSV < data.json Or, to store a YAML file into an ElasticSearch database type (requires L): $ catmandu import YAML to ElasticSearch --index_name demo < test.yml To export all the data from an Solr search engine into JSON type (requires L): $ catmandu export Solr --url http://localhost:8983/solr to JSON With Catmandu one can import OAI-PMH records in your application (requires L): $ catmandu convert OAI --url http://biblio.ugent.be/oai --set allFtxt and export records into formats such as JSON, YAML, CSV, XLS, RDF and many more. Catmandu also provides the small scripting language "Fix" to manipulate data, extract parts of your dataset and transform records. For instance, rename fields with the L Fix command: $ catmandu convert JSON --fix 'move_field(title,my_title)' < data.json In the example above, we renamed all the C fields in the dataset into the C<my_title> field. One can also work on deeply nested data. E.g. create a deeply nested data structure with the C<move_field> Fix command: $ catmandu convert JSON --fix 'move_field(title,my.deeply.nested.title)' < data.json In this example we moved the field C<title> into the field C<my>, which contains a (sub)field C<deeply>, which contains a (sub)field C<nested>. Catmandu was originally created by librarians for librarians. We process a lot of metadata especially library metadata in formats such as MARC, MAB2 and MODS. With the following command we can extract data from a marc record and to store it into the title field (requires L<Catmandu::MARC>): $ catmandu convert MARC --fix 'marc_map(245,title)' < data.mrc Or, in case only the 245a subfield is needed write: $ catmandu convert MARC --fix 'marc_map(245a,title)' < data.mrc When processing data a lot of Fix commands could be required. It wouldn't be very practical to type them all on the command line. By creating a Fix script which contains all the fix commands complicated data transformations can be created. For instance, if the file C<myfixes.txt> contains: marc_map(245a,title) marc_map(100a,author.$append) marc_map(700a,author.$append) marc_map(020a,isbn) replace_all(isbn,'[^0-9-]+','') then they can be executed on a MARC file using this command: $ catmandu convert MARC --fix myfixes.txt < data.mrc Fixes can also be turned into executable scripts by adding a bash 'shebang' line at the top. E.g. to harvest records from an OAI repository write this fix file: #!/usr/bin/env catmandu run do importer(OAI,url:"http://lib.ugent.be/oai") add_to_exporter(.,JSON) end Run this (on Linux) by setting the executable bit: $ chmod 755 myfix.fix $ ./myfix.fix To experiment with the Fix language you can also run the catmandu Fix interpreter in an interactive mode: $ catmandu run Catmandu 0.95 interactive mode Type: \h for the command history fix > add_field(hello,world) --- hello: world ... fix > Catmandu contains many powerful fixes. Visit L<http://librecat.org/assets/catmandu_cheat_sheet.pdf> to get an overview what is possible. =head1 Documentation For more information read our L<documentation pages|http://librecat.org/Catmandu/> and L<blog|https://librecatproject.wordpress.com/> for a complete introduction and update into all Catmandu features. In the winter of 2014 an Advent calendar tutorial was created to provide a day by day introduction into the UNIX command line and Catmandu: L<https://librecatproject.wordpress.com/2014/12/01/day-1-getting-catmandu/> If you need extra training, our developers regulary host workshops at library conferences and events: L<http://librecat.org/events.html> =head1 Installation There are several ways to get a working version of Catmandu on your computer. For a quick and demo installation visit our L<blog|https://librecatproject.wordpress.com/get-catmandu/> where a VirtualBox image is available containing all the Catmandu modules, including ElasticSearch and MongoDB. A similarly easy method is using L<Docker|https://www.docker.com/>: At L<librecat/catmandu|https://hub.docker.com/r/librecat/catmandu/> a Docker image is provided with version tags for each release, C<latest> for the latest release and C<dev> for the latest development version. The image can be tried online in a Jupyter notebook L<via binder|https://mybinder.org/v2/gh/LibreCat/catmandu-notebook/master>. On our L<website|http://librecat.org/Catmandu/#installation> we provide installation instructions for: =over =item Debian =item Ubuntu Server =item CentOS =item openSUSE =item OpenBSD =item Windows =back =head1 Open Source Catmandu software published at https://github.com/LibreCat/Catmandu is free software without warranty, liabilities or support; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 or any later version. Every contributor is free to state her/his copyright. =head1 Developers & Support Catmandu has a very active international developer community. We welcome all feedback, bug reports and feature enhancement. Join our mailing list to receive more information: C<< librecat-dev@librecat.org >> Are a developer and want to contribute to the project? Feel free to submit pull requests or create new Catmandu packages! =head1 Kudos Catmandu is created in a cooperation with many developers world wide. Without them this project isn't possible. We would like to thank our core maintainer: Nicolas Steenlant and all contributors: Christian Pietsch, Dave Sherohman, Friedrich Summann, Jakob Voss, Johann Rolschewski, Jorgen Eriksson, Magnus Enger, Maria Hedberg, Mathias Loesch, Najko Jahn, Nicolas Franck, Patrick Hochstenbach, Petra Kohorst, Snorri Briem, Upasana Shukla and Vitali Peil. =head1 SEE ALSO L<Catmandu> L<http://librecat.org/> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/IdGenerator.pm�����������������������������������������������������������000644 �000765 �000024 �00000001164 13341726377 021225� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::IdGenerator; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; requires 'generate'; 1; __END__ =pod =head1 NAME Catmandu::IdGenerator - A base role for identifier generators =head1 SYNOPSIS package MyGenerator; use Moo; with 'Catmandu::IdGenerator'; sub generate { my ($self) = @_; return int(rand(999999)) . "-" . time; } package main; my $gen = MyGenerator->new; for (1..100) { printf "id: %s\n" m $gen->generate; } =head1 SEE ALSO L<Catmandu::IdGenerator::Mock> , L<Catmandu::IdGenerator::UUID> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Transactional.pm���������������������������������������������������������000644 �000765 �000024 �00000001436 13341726377 021626� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Transactional; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; requires 'transaction'; 1; __END__ =pod =head1 NAME Catmandu::Transactional - Optional role for transactional stores =head1 SYNOPSIS # bag will be untouched my $store->transaction(sub { $store->bag('books')->add({title => 'Time must have a stop'}); die; }); =head1 METHODS =head2 transaction($sub) C<transaction> takes a coderef that will be executed in the context of a transaction. If an error is thrown, the transaction will rollback. If the code executes successfully, the transaction will be committed. There is no support for nested transactions, nested calls to C<transaction> will simply be subsumed by their parent transaction. =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Serializer.pm������������������������������������������������������������000644 �000765 �000024 �00000004273 13341726377 021137� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Serializer; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(require_package); use Moo::Role; use namespace::clean; has serialization_format => (is => 'ro', builder => 'default_serialization_format',); has serializer => ( is => 'ro', lazy => 1, builder => '_build_serializer', handles => [qw(serialize deserialize)] ); sub default_serialization_format {'json'} sub _build_serializer { my ($self) = @_; my $pkg = require_package($self->serialization_format, 'Catmandu::Serializer'); $pkg->new; } # Implementer needs to be create a serializer # sub serialize {} # Implementers needs to be create a deserializer # sub deserialize {} 1; __END__ =pod =head1 NAME Catmandu::Serializer - Base class for all Catmandu Serializers =head1 SYNOPSIS package Catmandu::Serializer::Foo; use Moo; sub serialize { my ($self,$data) = @_; .. transform the data to a string and return it... } sub deserialize { my ($self,$string) = @_; ... transform the string into a perl hash ... } package MyPackage; use Moo; with 'Catmandu::Serializer'; package main; my $pkg = MyPackage->new; my $string = $pkg->serialize({ foo => 'bar' }); my $perl = $pkg->deserialize($string); # Using Catmandu::Serializer::Foo my $pkg = MyPackage->new( serialization_format => 'Foo' ); my $string = $pkg->serialize({ foo => 'bar' }); my $perl = $pkg->deserialize($string); =head1 DESCRIPTION This is a convience class to send Perl hashes easily over the wire without having to instantiate a L<Catmandu::Importer> and L<Catmandu::Exporter> which are more suited for processing IO streams. =head1 ATTRIBUTES =head1 serialization_format The name of the package that serializes data. =head1 serializer An instance of the package that serializes. =head1 METHODS =head2 serialize($perl) Serialize a perl data structure into a string. =head2 deserialize($bytes) Deserialize bytes into a perl data structure. =head1 SEE ALSO L<Catmandu::Store::DBI>, L<Catmandu::Serializer::json>, L<Catmandu::Serializer::storabe>, L<Catmandu::Serializer::messagepack> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Expander.pm��������������������������������������������������������������000644 �000765 �000024 �00000000202 13341726377 020560� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Expander; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'CGI::Expand'; sub max_array {1000000} 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/TabularExporter.pm�������������������������������������������������������000644 �000765 �000024 �00000004612 13341726377 022146� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::TabularExporter; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(:is :check); use Moo::Role; sub _coerce_array { my $fields = $_[0]; if (ref $fields eq 'ARRAY') {return $fields} if (ref $fields eq 'HASH') {return [sort keys %$fields]} [split ',', $fields]; } use namespace::clean; with 'Catmandu::Exporter'; has fields => (is => 'rwp', coerce => \&_coerce_array,); has columns => (is => 'rwp', coerce => \&_coerce_array,); has collect_fields => (is => 'ro',); has header => (is => 'ro', default => sub {1}); around add => sub { my ($orig, $self, $data) = @_; $self->_set_fields($data) unless $self->fields; $orig->($self, $data); }; around add_many => sub { my ($orig, $self, $many) = @_; if ($self->collect_fields && !$self->fields) { my $coll; if (is_array_ref($many)) { $coll = $many; } elsif (is_hash_ref($many)) { $coll = [$many]; } else { if (is_invocant($many)) { $many = check_able($many, 'generator')->generator; } check_code_ref($many); $coll = []; while (defined(my $data = $many->())) { push @$coll, $data; } } my $keys = {}; for my $data (@$coll) { for my $key (keys %$data) { $keys->{$key} ||= 1; } } $self->_set_fields($keys); $many = $coll; } $orig->($self, $many); }; 1; __END__ =pod =head1 NAME Catmandu::TabularExporter - base role for tabular exporters like CSV =head1 DESCRIPTION See L<Catmandu::Exporter> for the base functionality of this role. This role adds some functionality tailored to tabular or columnar exporters. =head1 CONFIGURATION =over =item fields The fields to be mapped. Can be an arrayref, example hashref or comma separated string. If missing, the fields of the first record encountered will be used. If C<collect_fields> is true, all fields names in the record stream will be collected first. =item columns Optional custom column labels. Can be an arrayref, example hashref or comma separated string. =item collect_fields See C<fields> for a description. Note that this option will cause all records in the stream to be buffered in memory. =item header Include a header with column names. Enabled by default. =back =cut ����������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/���������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 017210� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Interactive.pm�����������������������������������������������������������000644 �000765 �000024 �00000013036 13341726377 021300� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Interactive; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu; use Moo; use namespace::clean; has in => ( is => 'ro', default => sub { Catmandu::Util::io(\*STDIN); } ); has out => ( is => 'ro', default => sub { Catmandu::Util::io( \*STDOUT, mode => 'w', binmode => ':encoding(utf-8)' ); } ); has silent => (is => 'ro'); has exporter => (is => 'ro', default => sub {'YAML'}); has exporter_args => (is => 'ro', default => sub {+{}}); has header => ( is => 'ro', default => sub { "\e[36m\n" . " A_A ____ _ _ \n" . " (-.-) / ___|__ _| |_ _ __ ___ __ _ _ __ __| |_ _ \n" . " |-| | | / _` | __| '_ ` _ \\ / _` | '_ \\ / _` | | | | \n" . " / \\ | |__| (_| | |_| | | | | | (_| | | | | (_| | |_| | \n" . " | | \\____\\__,_|\\__|_| |_| |_|\\__,_|_| |_|\\__,_|\\__,_|\n" . " | || | | \\___ version: $Catmandu::VERSION \n" . " \\_||_/_/ \e[0m\n" . " \n" . "Commands: | Interactive support is still \n" . " \\h - the fix history | experimental. Run: \n" . " \\r - repeat the previous fix | \$ catmandu run <your_fix_script> \n" . " \\q - quit | to access all Catmandu features \n"; } ); has data => (is => 'rw', default => sub {+{}}); has _history => (is => 'ro', default => sub {[]}); sub run { my $self = shift; my $keep_reading = 0; my $buffer = ''; $self->head; $self->prompt; while (my $line = $self->in->getline) { if ($line =~ /^\\(.*)/) { next if length $buffer; my ($command, $args) = split(/\s+/, $1, 2); if ($command eq 'h') { $self->cmd_history; $self->prompt('fix'); next; } elsif ($command eq 'r') { if (@{$self->_history} > 0) { $line = $self->_history->[-1]; } else { $self->prompt('fix'); next; } } elsif ($command eq 'q') { last; } else { $self->error("unknown command $command"); $self->prompt('fix'); next; } } $line = "$buffer$line" if length $buffer; if (length $line) { my ($fixes, $keep_reading, $error) = $self->parse_fixes($line, $keep_reading); if ($error) { $buffer = ''; } elsif ($keep_reading == 0) { my $fixer = Catmandu::Fix->new(fixes => $fixes); $self->data($fixer->fix($self->data)); $self->export; push(@{$self->_history}, $line); $buffer = ''; } else { $buffer = $line; $self->prompt('...'); next; } } $self->prompt('fix'); } } sub cmd_history { my ($self) = @_; $self->out->printf(join("", @{$self->_history})); } sub head { my ($self) = @_; $self->out->printf("%s\n", $self->header) unless $self->silent; } sub error { my ($self, $txt) = @_; $self->out->print("ERROR: $txt\n") unless $self->silent; } sub prompt { my ($self, $txt) = @_; $txt //= 'fix'; $self->out->printf("\e[35m%s > \e[0m", $txt) unless $self->silent; } sub export { my ($self) = @_; my $exporter = Catmandu->exporter( $self->exporter, %{$self->exporter_args}, fh => $self->out ); $exporter->add($self->data); $exporter->commit; } sub parse_fixes { my ($self, $string, $keep_reading) = @_; my $parser = Catmandu::Fix::Parser->new; my $fixes; my $error = 0; try { $fixes = $parser->parse($string); $keep_reading = 0; } catch { if (ref($_) eq 'Catmandu::FixParseError' && $_->message =~ /Can't use an undefined value as a SCALAR reference at/) { $keep_reading = 1; } else { $_ =~ s/\n.*//g; $self->error($_); $error = 1; } }; return ($fixes, $keep_reading, $error); } 1; __END__ =pod =head1 NAME Catmandu::Interactive - An interactive command line interpreter of the Fix language =head1 SYNOPSIS # On the command line catmandu run # Or, in Perl use Catmandu::Interactive; use Getopt::Long; my $exporter = 'YAML'; GetOptions("exporter=s" => \$exporter); my $app = Catmandu::Interactive->new(exporter => $exporter); $app->run(); =head1 DESCRIPTION This module provide a simple interactive interface to the Catmandu Fix language. =head1 CONFIGURATION =over =item in Read input from an IO::Handle =item out Write output to an IO::Handle =item silent If set true, then no headers or prompts are printed =item data A hash containing the input record =item exporter The name of an exporter package =item exporter_args The options for the exporter =back =head1 METHODS =head2 run Run the interactive environment. =head1 SEE ALSO L<Catmandu> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Buffer.pm����������������������������������������������������������������000644 �000765 �000024 �00000003072 13341726377 020233� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Buffer; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; has buffer_size => (is => 'ro', lazy => 1, builder => 'default_buffer_size'); has buffer => (is => 'rwp', lazy => 1, default => sub {[]}); sub default_buffer_size {100} sub clear_buffer { $_[0]->_set_buffer([]); } sub buffer_used { scalar @{$_[0]->buffer}; } sub buffer_is_full { my $self = $_[0]; $self->buffer_used >= $self->buffer_size ? 1 : 0; } sub buffer_add { my $buffer = shift->buffer; push @$buffer, @_; } 1; __END__ =pod =head1 NAME Catmandu::Buffer - A base class for modules that need an array buffer =head1 SYNOPSIS package MyPackage; use Moo; with 'Catmandu::Buffer'; # Print only when the buffer is full... sub print { my ($self,$str) = @_; if ($self->buffer_is_full) { print join "\n" , @{ $self->buffer }; $self->clear_buffer; } $self->buffer_add($str); } package main; my $x = MyPackage->new; for (my $i = 0 ; $i < 1000 ; $i++) { $x->print($x); } =head1 ATTRIBUTES =head2 buffer A ARRAY reference to the content of the buffer. =head2 buffer_size(MAX) The maximum size of a buffer. =head1 METHODS =head2 clear_buffer() Empty the buffer. =head2 buffer_used() Returns a true value when there is content in the buffer. =head2 buffer_is_full() Returns a true value when the buffer has reached its maximum capacity. =head2 buffer_add($x) Adds $x to the buffer. =head1 SEE ALSO L<Catmandu::Solr::Bag> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix.pm�������������������������������������������������������������������000644 �000765 �000024 �00000077574 13341726377 017572� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix; use Catmandu::Sane; our $VERSION = '1.0201'; use Catmandu; use Catmandu::Util qw(:is :string :misc); use Clone qw(clone); sub _eval_emit { use warnings FATAL => 'all'; eval $_[0]; } use Moo; use Catmandu::Fix::Parser; use Path::Tiny (); use File::Spec (); use File::Temp (); use B (); use Text::Hogan::Compiler; with 'Catmandu::Logger'; has parser => (is => 'lazy'); has fixer => (is => 'lazy', init_arg => undef); has _num_labels => (is => 'rw', lazy => 1, init_arg => undef, default => sub {0}); has _num_vars => (is => 'rw', lazy => 1, init_arg => undef, default => sub {0}); has _captures => (is => 'ro', lazy => 1, init_arg => undef, default => sub {+{}}); has var => (is => 'ro', lazy => 1, init_arg => undef, builder => 'generate_var'); has _fixes => (is => 'ro', init_arg => 'fixes', default => sub {[]}); has fixes => (is => 'ro', lazy => 1, init_arg => undef, builder => '_build_fixes'); has _reject => (is => 'ro', init_arg => undef, default => sub {+{}}); has _reject_var => ( is => 'ro', lazy => 1, init_arg => undef, builder => '_build_reject_var' ); has _reject_label => (is => 'ro', lazy => 1, init_arg => undef, builder => 'generate_label'); has _fixes_var => (is => 'ro', lazy => 1, init_arg => undef, builder => '_build_fixes_var'); has _current_fix_var => ( is => 'ro', lazy => 1, init_arg => undef, builder => '_build_current_fix_var' ); has preprocess => (is => 'ro'); has _hogan => (is => 'ro', lazy => 1, init_arg => undef, builder => '_build_hogan'); has _hogan_vars => (is => 'ro', init_arg => 'variables'); sub _build_parser { Catmandu::Fix::Parser->new; } sub _build_fixes { my ($self) = @_; my $fixes_arg = $self->_fixes; my $fixes = []; for my $fix (@$fixes_arg) { if (is_code_ref($fix)) { push @$fixes, require_package('Catmandu::Fix::code')->new($fix); } elsif (ref $fix && ref($fix) =~ /^IO::/) { my $txt = Catmandu::Util::read_io($fix); $txt = $self->_preprocess($txt); push @$fixes, @{$self->parser->parse($txt)}; } elsif (is_glob_ref($fix)) { my $fh = Catmandu::Util::io $fix , binmode => ':encoding(UTF-8)'; my $txt = Catmandu::Util::read_io($fh); $txt = $self->_preprocess($txt); push @$fixes, @{$self->parser->parse($txt)}; } elsif (ref $fix) { push @$fixes, $fix; } elsif (is_string($fix)) { if ($fix =~ /[^\s]/ && $fix !~ /\(/) { $fix = Path::Tiny::path($fix)->slurp_utf8; } $fix = $self->_preprocess($fix); push @$fixes, @{$self->parser->parse($fix)}; } } $fixes; } sub _build_fixer { my ($self) = @_; my $reject = $self->_reject; my $sub = do { local $@; _eval_emit($self->emit, $self->_captures) or Catmandu::Error->throw($@); }; sub { my $data = $_[0]; if (is_hash_ref($data)) { my $d = $sub->($data); return if ref $d && $d == $reject; return $d; } if (is_array_ref($data)) { return [grep {!(ref $_ && $_ == $reject)} map {$sub->($_)} @$data]; } if (is_code_ref($data)) { return sub { while (1) { my $d = $sub->($data->() // return); return if ref $d && $d == $reject; return $d; } }; } if ( is_instance($data) && is_able($data, 'does') && $data->does('Catmandu::Iterable')) { return $data->map(sub {$sub->($_[0])}) ->reject(sub {ref $_[0] && $_[0] == $reject}); } Catmandu::BadArg->throw( "must be hashref, arrayref, coderef or iterable object"); }; } sub _build_reject_var { my ($self) = @_; $self->capture($self->_reject); } sub _build_fixes_var { my ($self) = @_; $self->capture($self->fixes); } sub _build_current_fix_var { my ($self) = @_; $self->generate_var; } sub _build_hogan { Text::Hogan::Compiler->new; } sub _preprocess { my ($self, $text) = @_; return $text unless $self->preprocess || $self->_hogan_vars; my $vars = $self->_hogan_vars || {}; $self->_hogan->compile($text, {numeric_string_as_string => 1}) ->render($vars); } sub fix { my ($self, $data) = @_; $self->fixer->($data); } sub generate_var { my ($self) = @_; my $n = $self->_num_vars; $self->_num_vars($n + 1); "\$__$n"; } sub generate_label { my ($self) = @_; my $n = $self->_num_labels; $self->_num_labels($n + 1); my $addr = Scalar::Util::refaddr($self); "__FIX__${addr}__${n}"; } sub capture { my ($self, $capture) = @_; my $var = $self->generate_var; $self->_captures->{$var} = $capture; $var; } sub emit { my ($self) = @_; my $var = $self->var; my $err = $self->generate_var; my $captures = $self->_captures; my $reject_var = $self->_reject_var; my $current_fix_var = $self->_current_fix_var; my $perl = ""; $perl .= "sub {"; $perl .= $self->emit_declare_vars($current_fix_var); $perl .= $self->emit_declare_vars($var, '$_[0]'); $perl .= "eval {"; # Loop over all the fixes and emit their code $perl .= $self->emit_fixes($self->fixes); $perl .= "return ${var};"; $perl .= $self->_reject_label . ": return ${reject_var};"; $perl .= "} or do {"; $perl .= $self->emit_declare_vars($err, '$@'); $perl .= "${err}->throw if is_instance(${err},'Throwable::Error');"; $perl .= "Catmandu::FixError->throw(message => ${err}, data => ${var}, fix => ${current_fix_var});"; $perl .= "};"; $perl .= "};"; if (%$captures) { my @captured_vars = map { $self->emit_declare_vars($_, '$_[1]->{' . $self->emit_string($_) . '}'); } keys %$captures; $perl = join '', @captured_vars, $perl; } $self->log->debug($perl); $perl; } # Emit an array of fixes sub emit_fixes { my ($self, $fixes) = @_; my $perl = ''; for (my $i = 0; $i < @{$fixes}; $i++) { my $fix = $fixes->[$i]; $perl .= $self->emit_fix($fix); } $perl; } sub emit_reject { my ($self) = @_; "goto " . $self->_reject_label . ";"; } sub emit_fix { my ($self, $fix) = @_; my $perl; if ($fix->can('emit')) { $perl = $self->emit_block( sub { my ($label) = @_; $fix->emit($self, $label); } ); } else { my $var = $self->var; my $ref = $self->generate_var; $self->_captures->{$ref} = $fix; $perl = "${var} = ${ref}->fix(${var});"; } $perl; } sub emit_block { my ($self, $cb) = @_; my $n = $self->_num_labels; $self->_num_labels($n + 1); my $label = "__FIX__${n}"; my $perl = "${label}: {"; $perl .= $cb->($label); $perl .= "};"; $perl; } sub emit_clear_hash_ref { my ($self, $var) = @_; "undef %{${var}} if is_hash_ref(${var});"; } sub emit_value { my ($self, $val) = @_; # numbers should look like number and not start with a 0 (no support for # octals) is_number($val) && $val !~ /^0+/ ? $val : $self->emit_string($val); } sub emit_string { my ($self, $str) = @_; B::perlstring($str); } sub emit_match { my ($self, $pattern) = @_; $pattern =~ s/\//\\\//g; $pattern =~ s/\\$/\\\\/; # pattern can't end with an escape in m/.../ "m/$pattern/"; } sub emit_substitution { my ($self, $pattern, $replace) = @_; $pattern =~ s/\//\\\//g; $pattern =~ s/\\$/\\\\/; # pattern can't end with an escape in m/.../ $replace =~ s/\//\\\//g; $replace =~ s/\\$/\\\\/; # pattern can't end with an escape in m/.../ "s/$pattern/$replace/"; } sub emit_declare_vars { my ($self, $var, $val) = @_; $var = "(" . join(", ", @$var) . ")" if ref $var; $val = "(" . join(", ", @$val) . ")" if ref $val; if (defined $val) { return "my ${var} = ${val};"; } "my ${var};"; } sub emit_new_scope { "{"; } sub emit_end_scope { "};"; } sub emit_foreach { my ($self, $var, $cb) = @_; my $perl = ""; my $v = $self->generate_var; $perl .= "foreach (\@{${var}}) {"; $perl .= $self->emit_declare_vars($v, '$_'); $perl .= $cb->($v); $perl .= "}"; $perl; } sub emit_foreach_key { my ($self, $var, $cb) = @_; my $perl = ""; my $v = $self->generate_var; $perl .= "foreach (keys(\%{${var}})) {"; $perl .= $self->emit_declare_vars($v, '$_'); $perl .= $cb->($v); $perl .= "}"; $perl; } sub emit_walk_path { my ($self, $var, $keys, $cb) = @_; $keys = [@$keys]; # protect keys if (@$keys) { # protect $var my $v = $self->generate_var; $self->emit_declare_vars($v, $var) . $self->_emit_walk_path($v, $keys, $cb); } else { $cb->($var); } } sub _emit_walk_path { my ($self, $var, $keys, $cb) = @_; @$keys || return $cb->($var); my $key = shift @$keys; my $str_key = $self->emit_string($key); my $perl = ""; if ($key =~ /^[0-9]+$/) { $perl .= "if (is_hash_ref(${var})) {"; $perl .= "${var} = ${var}->{${str_key}};"; $perl .= $self->_emit_walk_path($var, [@$keys], $cb); $perl .= "} elsif (is_array_ref(${var}) && \@{${var}} > ${key}) {"; $perl .= "${var} = ${var}->[${key}];"; $perl .= $self->_emit_walk_path($var, [@$keys], $cb); $perl .= "}"; } elsif ($key eq '*') { my $v = $self->generate_var; $perl .= "if (is_array_ref(${var})) {"; $perl .= $self->emit_foreach( $var, sub { return $self->_emit_walk_path(shift, $keys, $cb); } ); $perl .= "}"; } else { if ($key eq '$first') { $perl .= "if (is_array_ref(${var}) && \@{${var}}) {"; $perl .= "${var} = ${var}->[0];"; } elsif ($key eq '$last') { $perl .= "if (is_array_ref(${var}) && \@{${var}}) {"; $perl .= "${var} = ${var}->[\@{${var}} - 1];"; } else { $perl .= "if (is_hash_ref(${var})) {"; $perl .= "${var} = ${var}->{${str_key}};"; } $perl .= $self->_emit_walk_path($var, $keys, $cb); $perl .= "}"; } $perl; } sub emit_create_path { my ($self, $var, $keys, $cb) = @_; $self->_emit_create_path($var, [@$keys], $cb); } sub _emit_create_path { my ($self, $var, $keys, $cb) = @_; @$keys || return $cb->($var); my $key = shift @$keys; my $str_key = $self->emit_string($key); my $perl = ""; if ($key =~ /^[0-9]+$/) { my $v1 = $self->generate_var; my $v2 = $self->generate_var; $perl .= "if (is_hash_ref(${var})) {"; $perl .= "my ${v1} = ${var};"; $perl .= $self->_emit_create_path("${v1}->{${str_key}}", [@$keys], $cb); $perl .= "} elsif (is_maybe_array_ref(${var})) {"; $perl .= "my ${v2} = ${var} //= [];"; $perl .= $self->_emit_create_path("${v2}->[${key}]", [@$keys], $cb); $perl .= "}"; } elsif ($key eq '*') { my $v1 = $self->generate_var; my $v2 = $self->generate_var; $perl .= "if (is_array_ref(${var})) {"; $perl .= "my ${v1} = ${var};"; $perl .= "for (my ${v2} = 0; ${v2} < \@{${v1}}; ${v2}++) {"; $perl .= $self->_emit_create_path("${v1}->[${v2}]", $keys, $cb); $perl .= "}"; $perl .= "}"; } else { my $v = $self->generate_var; if ( $key eq '$first' || $key eq '$last' || $key eq '$prepend' || $key eq '$append') { $perl .= "if (is_maybe_array_ref(${var})) {"; $perl .= "my ${v} = ${var} //= [];"; if ($key eq '$first') { $perl .= $self->_emit_create_path("${v}->[0]", $keys, $cb); } elsif ($key eq '$last') { $perl .= "if (\@${v}) {"; $perl .= $self->_emit_create_path("${v}->[\@${v} - 1]", [@$keys], $cb); $perl .= "} else {"; $perl .= $self->_emit_create_path("${v}->[0]", [@$keys], $cb); $perl .= "}"; } elsif ($key eq '$prepend') { $perl .= "if (\@${v}) {"; $perl .= "unshift(\@${v}, undef);"; $perl .= "}"; $perl .= $self->_emit_create_path("${v}->[0]", $keys, $cb); } elsif ($key eq '$append') { $perl .= $self->_emit_create_path("${v}->[\@${v}]", $keys, $cb); } $perl .= "}"; } else { $perl .= "if (is_maybe_hash_ref(${var})) {"; $perl .= "my ${v} = ${var} //= {};"; $perl .= $self->_emit_create_path("${v}->{${str_key}}", $keys, $cb); $perl .= "}"; } } $perl; } sub emit_get_key { my ($self, $var, $key, $cb) = @_; return $cb->($var) unless defined $key; my $str_key = $self->emit_string($key); my $perl = ""; if ($key =~ /^[0-9]+$/) { $perl .= "if (is_hash_ref(${var}) && exists(${var}->{${str_key}})) {"; $perl .= $cb->("${var}->{${str_key}}"); $perl .= "} elsif (is_array_ref(${var}) && \@{${var}} > ${key}) {"; $perl .= $cb->("${var}->[${key}]"); $perl .= "}"; } elsif ($key eq '$first') { $perl .= "if (is_array_ref(${var}) && \@{${var}}) {"; $perl .= $cb->("${var}->[0]"); $perl .= "}"; } elsif ($key eq '$last') { $perl .= "if (is_array_ref(${var}) && \@{${var}}) {"; $perl .= $cb->("${var}->[\@{${var}} - 1]"); $perl .= "}"; } elsif ($key eq '*') { my $i = $self->generate_var; $perl .= "if (is_array_ref(${var})) {"; $perl .= "for (my ${i} = 0; ${i} < \@{${var}}; ${i}++) {"; $perl .= $cb->("${var}->[${i}]", $i); $perl .= "}}"; } else { $perl .= "if (is_hash_ref(${var}) && exists(${var}->{${str_key}})) {"; $perl .= $cb->("${var}->{${str_key}}"); $perl .= "}"; } $perl; } sub emit_set_key { my ($self, $var, $key, $val) = @_; return "${var} = $val;" unless defined $key; my $perl = ""; my $str_key = $self->emit_string($key); if ($key =~ /^[0-9]+$/) { $perl .= "if (is_hash_ref(${var})) {"; $perl .= "${var}->{${str_key}} = $val;"; $perl .= "} elsif (is_array_ref(${var})) {"; $perl .= "${var}->[${key}] = $val;"; $perl .= "}"; } elsif ($key eq '$first') { $perl .= "if (is_array_ref(${var})) {"; $perl .= "${var}->[0] = $val;"; $perl .= "}"; } elsif ($key eq '$last') { $perl .= "if (is_array_ref(${var})) {"; $perl .= "${var}->[\@{${var}} - 1] = $val;"; $perl .= "}"; } elsif ($key eq '$prepend') { $perl .= "if (is_array_ref(${var})) {"; $perl .= "unshift(\@{${var}}, $val);"; $perl .= "}"; } elsif ($key eq '$append') { $perl .= "if (is_array_ref(${var})) {"; $perl .= "push(\@{${var}}, $val);"; $perl .= "}"; } elsif ($key eq '*') { my $i = $self->generate_var; $perl .= "if (is_array_ref(${var})) {"; $perl .= "for (my ${i} = 0; ${i} < \@{${var}}; ${i}++) {"; $perl .= "${var}->[${i}] = $val;"; $perl .= "}}"; } else { $perl .= "if (is_hash_ref(${var})) {"; $perl .= "${var}->{${str_key}} = $val;"; $perl .= "}"; } $perl; } sub emit_delete_key { my ($self, $var, $key, $cb) = @_; my $str_key = $self->emit_string($key); my $perl = ""; my $vals; if ($cb) { $vals = $self->generate_var; $perl = $self->emit_declare_vars($vals, '[]'); } if ($key =~ /^[0-9]+$/) { $perl .= "if (is_hash_ref(${var}) && exists(${var}->{${str_key}})) {"; $perl .= "push(\@{${vals}}, " if $cb; $perl .= "delete(${var}->{${str_key}})"; $perl .= ")" if $cb; $perl .= ";"; $perl .= "} elsif (is_array_ref(${var}) && \@{${var}} > ${key}) {"; $perl .= "push(\@{${vals}}, " if $cb; $perl .= "splice(\@{${var}}, ${key}, 1)"; $perl .= ")" if $cb; } elsif ($key eq '$first' || $key eq '$last' || $key eq '*') { $perl .= "if (is_array_ref(${var}) && \@{${var}}) {"; $perl .= "push(\@{${vals}}, " if $cb; $perl .= "splice(\@{${var}}, 0, 1)" if $key eq '$first'; $perl .= "splice(\@{${var}}, \@{${var}} - 1, 1)" if $key eq '$last'; $perl .= "splice(\@{${var}}, 0, \@{${var}})" if $key eq '*'; $perl .= ")" if $cb; } else { $perl .= "if (is_hash_ref(${var}) && exists(${var}->{${str_key}})) {"; $perl .= "push(\@{${vals}}, " if $cb; $perl .= "delete(${var}->{${str_key}})"; $perl .= ")" if $cb; } $perl .= ";"; $perl .= "}"; if ($cb) { $perl .= $cb->($vals); } $perl; } sub emit_retain_key { my ($self, $var, $key) = @_; my $perl = ""; if ($key =~ /^[0-9]+$/) { $perl .= "if (is_hash_ref(${var})) {"; $perl .= $self->emit_foreach_key( $var, sub { my $v = shift; "delete(${var}->{${v}}) if ${v} ne ${key};"; } ); $perl .= "} elsif (is_array_ref(${var})) {"; $perl .= "if (\@{${var}} > ${key}) {"; $perl .= "splice(\@{${var}}, 0, ${key});" if $key > 0; $perl .= "splice(\@{${var}}, 1, \@{${var}} - 1);"; $perl .= "} else {"; $perl .= "splice(\@{${var}}, 0, \@{${var}});"; $perl .= "}"; $perl .= "}"; } elsif ($key eq '$first') { $perl .= "if (is_array_ref(${var}) && \@{${var}} > 1) {"; $perl .= "splice(\@{${var}}, 1, \@{${var}} - 1);"; $perl .= "}"; } elsif ($key eq '$last') { $perl .= "if (is_array_ref(${var}) && \@{${var}} > 1) {"; $perl .= "splice(\@{${var}}, 0, \@{${var}} - 1);"; $perl .= "}"; } elsif ($key eq '*') { # retain everything } else { $key = $self->emit_string($key); $perl .= "if (is_hash_ref(${var})) {"; $perl .= $self->emit_foreach_key( $var, sub { my $v = shift; "if ($v ne ${key}) {" . "delete(${var}->{${v}});" . "}"; } ); $perl .= "}"; } $perl; } sub emit_clone { my ($self, $var) = @_; "$var = clone($var);"; } # Split a path on '.' or '/', but not on '\.' or '\/'. sub split_path { my ($self, $path) = @_; [map {s/\\(?=[\.\/])//g; $_} split /(?<!\\)[\.\/]/, trim($path)]; } 1; __END__ =pod =head1 NAME Catmandu::Fix - a Catmandu class used for data transformations =head1 SYNOPSIS # From the command line $ catmandu convert JSON --fix 'add_field(foo,bar)' < data.json $ catmandu convert YAML --fix 'upcase(job); remove_field(test)' < data.yml $ catmandu convert CSV --fix 'sort_field(tags)' < data.csv $ catmandu run /tmp/myfixes.txt $ catmandu convert OAI --url http://biblio.ugent.be/oai --fix /tmp/myfixes.txt # From Perl use Catmandu; my $fixer = Catmandu->fixer('upcase(job)','remove_field(test)'); my $fixer = Catmandu->fixer('/tmp/myfixes.txt'); # Convert data my $arr = $fixer->fix([ ... ]); my $hash = $fixer->fix({ ... }); my $importer = Catmandu->importer('YAML', file => 'data.yml'); my $fixed_importer = $fixer->fix($importer); # Inline fixes use Catmandu::Fix::upcase as => 'my_upcase'; use Catmandu::Fix::remove_field as => 'my_remove'; my $hash = { 'job' => 'librarian' , deep => { nested => '1'} }; my_upcase($hash,'job'); my_remove($hash,'deep.nested'); =head1 DESCRIPTION A Catmandu::Fix is a Perl package that can transform data. These packages are used for easy data manipulation by non programmers. The main intention is to use fixes on the command line or in Fix scripts. A small DSL language is available to execute many Fix command on a stream of data. When a C<fix> argument is given to a L<Catmandu::Importer>, L<Catmandu::Exporter> or L<Catmandu::Store> then the transformations are executed on every item in the stream. =head1 FIX LANGUAGE A Fix script is a collection of one or more Fix commands. The fixes are executed on every record in the dataset. If this command is executed on the command line: $ catmandu convert JSON --fix 'upcase(title); add_field(deep.nested.field,1)' < data.json then all the title fields will be upcased and a new deeply nested field will be added: { "title":"foo" } { "title":"bar" } becomes: { "title":"FOO" , "deep":{"nested":{"field":1}} } { "title":"BAR" , "deep":{"nested":{"field":1}} } Using the command line, Fix commands need a semicolon (;) as separator. All these commands can also be written into a Fix script where semicolons are not required: $ catmandu convert JSON --fix script.fix < data.json where C<script.fix> contains: upcase(title) add_field(deep.nested.field,1) Conditionals can be used to provide the logic when to execute fixes: if exists(error) set_field(valid, 0) end if exists(error) set_field(is_valid, 0) elsif exists(warning) set_field(is_valid, 1) log(...) else set_field(is_valid, 1) end unless all_match(title, "PERL") add_field(is_perl, "noooo") end exists(error) and set_field(is_valid, 0) exists(error) && set_field(is_valid, 0) exists(title) or log('title missing') exists(title) || log('title missing') Binds are used to manipulate the context in which Fixes are executed. E.g. execute a fix on every item in a list: # 'demo' is an array of hashes bind list(path:demo) add_field(foo,bar) end # do is an alias for bind do list(path:demo) add_field(foo,bar) end To delete records from a stream of data the C<reject> Fix can be used: reject() # Reject all in the stream if exists(foo) reject() # Reject records that contain a 'foo' field end reject exists(foo) # Reject records that contain a 'foo' field The opposite of C<reject> is C<select>: select() # Keep all records in the stream select exists(foo) # Keep only the records that contain a 'foo' field Comments in Fix scripts are all lines (or parts of a line) that start with a hash (#): # This is ignored add_field(test,123) # This is also a comment You can load fixes from another namespace with the C<use> statement: # this will look for fixes in the Foo::Bar namespace and make them # available prefixed by fb use(foo.bar, as: fb) fb.baz() # this will look for Foo::Bar::Condition::is_baz if fb.is_baz() ... fix() ... end =head1 FIX COMMANDS, ARGUMENTS AND OPTIONS Fix commands manipulate data or in some cases execute side effects. Fix commands have zero or more arguments and zero or more options. Fix command arguments are separated by commas ",". Fix options are name/value pairs separated by a colon ":". # A command with zero arguments my_command() # A command with multiple arguments my_other_command(foo,bar,test) # A command with optional arguments my_special_command(foo,bar,color:blue,size:12) All command arguments are treated as strings. These strings can be FIX PATHs pointing to values or string literals. When command line arguments don't contain special characters comma "," , equal "=" , great than ">" or colon ":", then they can be written as-is. Otherwise, the arguments need to be quoted with single or double quotes: # Both commands below have the same effect my_other_command(foo,bar,test) my_other_command("foo","bar","test") # Illegal syntax my_special_command(foo,http://test.org,color:blue,size:12) # <- syntax error # Correct syntax my_special_command(foo,"http://test.org",color:blue,size:12) # Or, alternative my_special_command("foo","http://test.org",color:"blue",size:12) =head1 FIX PATHS Most of the Fix commands use paths to point to values in a data record. E.g. 'foo.2.bar' is a key 'bar' which is the 3-rd value of the key 'foo'. A special case is when you want to point to all items in an array. In this case the wildcard '*' can be used. E.g. 'foo.*' points to all the items in the 'foo' array. For array values there are special wildcards available: * $append - Add a new item at the end of an array * $prepend - Add a new item at the start of an array * $first - Syntactic sugar for index '0' (the head of the array) * $last - Syntactic sugar for index '-1' (the tail of the array) E.g. # Create { mods => { titleInfo => [ { 'title' => 'a title' }] } }; add_field('mods.titleInfo.$append.title', 'a title'); # Create { mods => { titleInfo => [ { 'title' => 'a title' } , { 'title' => 'another title' }] } }; add_field('mods.titleInfo.$append.title', 'another title'); # Create { mods => { titleInfo => [ { 'title' => 'foo' } , { 'title' => 'another title' }] } }; add_field('mods.titleInfo.$first.title', 'foo'); # Create { mods => { titleInfo => [ { 'title' => 'foo' } , { 'title' => 'bar' }] } }; add_field('mods.titleInfo.$last.title', 'bar'); Some Fix commands can implement an alternatice path syntax to point to values. See for example L<Catmandu::MARC>, L<Catmandu:PICA>: # Copy the MARC 245a field to the my.title field marc_map(245a,my.title) =head1 OPTIONS =head2 fixes An array of fixes. L<Catmandu::Fix> which will execute every fix in consecutive order. A fix can be the name of a Catmandu::Fix::* routine, or the path to a plain text file containing all the fixes to be executed. Required. =head2 preprocess If set to C<1>, fix files or inline fixes will first be preprocessed as a moustache template. See C<variables> below for an example. Default is C<0>, no preprocessing. =head2 variables An optional hashref of variables that are used to preprocess the fix files or inline fixes as a moustache template. Setting the C<variables> option also sets C<preprocess> to 1. my $fixer = Catmandu::Fix->new( variables => {x => 'foo', y => 'bar'}, fixes => ['add_field({{x}},{{y}})'], ); my $data = {}; $fixer->fix($data); # $data is now {foo => 'bar'} =head1 METHODS =head2 fix(HASH) Execute all the fixes on a HASH. Returns the fixed HASH. =head2 fix(ARRAY) Execute all the fixes on every element in the ARRAY. Returns an ARRAY of fixes. =head2 fix(Catmandu::Iterator) Execute all the fixes on every item in an L<Catmandu::Iterator>. Returns a (lazy) iterator on all the fixes. =head2 fix(sub {}) Executes all the fixes on a generator function. Returns a new generator with fixed data. =head2 log Return the current logger. See L<Catmandu> for activating the logger in your main code. =head1 CODING One can extend the Fix language by creating own custom-made fixes. Two methods are available to create an own Fix function: * Quick and easy: create a class that implements a C<fix> method. * Advanced: create a class that emits Perl code that will be evaled by the Fix module. Both methods will be explained shortly. =head2 Quick and easy A Fix function is a Perl class in the C<Catmandu::Fix> namespace that implements a C<fix> method. The C<fix> methods accepts a Perl hash as input and returns a (fixed) Perl hash as output. As an example, the code belows implements the C<meow> Fix which inserts a 'meow' field with value 'purrrrr'. package Catmandu::Fix::meow; use Moo; sub fix { my ($self,$data) = @_; $data->{meow} = 'purrrrr'; $data; } 1; Given this Perl class, the following fix statement can be used in your application: # Will add 'meow' = 'purrrrr' to the data meow() Use the quick and easy method when your fixes are not dependent on reading or writing data from/to a JSON path. Your Perl classes need to implement their own logic to read or write data into the given Perl hash. Fix arguments are passed as arguments to the C<new> function of the Perl class. As in # In the fix file... meow('test123', -count => 4) # ...will be translated into this pseudo code my $fix = Catmandu::Fix::meow->new('test123', '-count', 4); Using L<Moo> these arguments can be catched with L<Catmandu::Fix::Has> package: package Catmandu::Fix::meow; use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has msg => (fix_arg => 1); # required parameter 1 has count => (fix_opt => 1, default => sub { 4 }); # optional parameter 'count' with default value 4 sub fix { my ($self,$data) = @_; $data->{meow} = $self->msg x $self->count; $data; } 1; Using this code the fix statement can be used like: # Will add 'meow' = 'purrpurrpurrpurr' meow('purr', -count => 4) =head2 Advanced The advanced method is required when one needs to read or write values from/to deeply nested JSON paths. One could parse JSON paths using the quick and easy Perl class above, but this would require a lot of inefficient for-while loops. The advanced method emits Perl code that gets compiled. This compiled code is evaled against all Perl hashes in the unput.The best way to learn this method is by inspecting some example Fix commands. To ease the implementation of Fixed that emit Perl code some helper methods are created. Many Fix functions require a transformation of one or more values on a JSON Path. The L<Catmandu::Fix::SimpleGetValue> provides an easy way to create such as script. In the example below we'll set the value at a JSON Path to 'purrrrr': package Catmandu::Fix::purrrrr; use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; "${var} = 'purrrrr';"; } 1; Run this command as: # Set the value(s) of an existing path to 'purrr' purrrrr(my.deep.nested.path) purrrrr(all.my.values.*) Notice how the C<emit_value> of the Catmandu::Fix::purrrrr package returns Perl code and doesn't operate directy on the Perl data. The parameter C<$var> contains only the name of a temporary variable that will hold the value of the JSON path after compiling the code into Perl. Use L<Catmandu::Fix::Has> to add more arguments to this fix: package Catmandu::Fix::purrrrr; use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has path => (fix_arg => 1); has msg => (fix_opt => 1 , default => sub { 'purrrrr' }); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $msg = $fixer->emit_string($self->msg); "${var} = ${msg};"; } 1; Run this command as: # Set the value(s) of an existing path to 'okido' purrrrr(my.deep.nested.path, -msg => 'okido') purrrrr(all.my.values.*, -msg => 'okido') Notice how the C<emit_value> needs to quote the C<msg> option using the emit_string function. =head1 INTERNAL METHODS This module provides several methods for writing fix packages. Usage can best be understood by reading the code of existing fix packages. =over =item capture =item emit_block =item emit_clone =item emit_clear_hash_ref =item emit_create_path =item emit_declare_vars =item emit_delete_key =item emit_fix =item emit_fixes =item emit_foreach =item emit_foreach_key =item emit_get_key =item emit_reject =item emit_retain_key this method is DEPRECATED. =item emit_set_key =item emit_string =item emit_value =item emit_walk_path =item generate_var =item split_path =back =head1 SEE ALSO L<Catmandu::Fixable>, L<Catmandu::Importer>, L<Catmandu::Exporter>, L<Catmandu::Store>, L<Catmandu::Bag> =cut ������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/����������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020272� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/MultiIterator.pm���������������������������������������������������������000644 �000765 �000024 �00000001665 13341726377 021634� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::MultiIterator; use Catmandu::Sane; our $VERSION = '1.10'; use Role::Tiny::With; use namespace::clean; with 'Catmandu::Iterable'; sub new { my ($class, @iterators) = @_; my $self = \@iterators; bless $self, $class; } sub generator { my ($self) = @_; sub { state $generators = [map {$_->generator} @$self]; while (@$generators) { my $data = $generators->[0]->(); return $data if defined $data; shift @$generators; } return; }; } 1; __END__ =pod =head1 NAME Catmandu::MultiIterator - chain multiple iterators together =head1 SYNOPSIS my $it = Catmandu::MultiIterator->new( Catmandu::Importer::Mock->new, Catmandu::Importer::Mock->new, ); # return all the items of each importer in turn $it->each(sub { # ... }); =head1 METHODS All L<Catmandu::Iterable> methods are available. =cut ���������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Hits.pm������������������������������������������������������������������000644 �000765 �000024 �00000003561 13341726377 017734� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Hits; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; has start => (is => 'ro', required => 1); has limit => (is => 'ro', required => 1); has total => (is => 'ro', required => 1); has hits => (is => 'ro', required => 1); with 'Catmandu::Iterable'; with 'Catmandu::Paged'; sub size { scalar @{$_[0]->hits}; } sub more { my $self = $_[0]; $self->start + $self->limit < $self->total; } sub generator { my $self = $_[0]; my $hits = $self->hits; my $i = 0; sub { $hits->[$i++]; }; } sub to_array { [@{$_[0]->hits}]; } sub count { scalar @{$_[0]->hits}; } sub each { my ($self, $cb) = @_; my $hits = $self->hits; for my $hit (@$hits) { $cb->($hit); } $self->count; } sub first { $_[0]->hits->[0]; } 1; __END__ =pod =head1 NAME Catmandu::Hits - Iterable object that wraps Catmandu::Store search hits =head1 SYNOPSIS my $store = Catmandu::Store::Solr->new; my $hits = $store->bag->search( query => 'dna' , start => 0 , limit => 100 , sort => 'title desc', ); # Every hits is an iterator... $hits->each(sub { ... }); printf "Found %s $hits\n" , $hits->total; my $start = $hits->start; my $limit = $hits->limit; my $prev = $hits->previous_page; my $next = $hits->next_page; =head1 METHODS A Catmandu::Hits object provides the following methods in addition to methods of L<Catmandu::Iterable> and L<Catmandu::Paged>. =head2 total Returns the total number of hits matching the query. =head2 start Returns the start index for the search results. =head2 limit Returns the maximum number of search results returned. =head2 more Return true if there are more search results. =head1 SEE ALSO L<Catmandu::Bag>, L<Catmandu::Searchable>, L<Catmandu::Store> =cut �����������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Bag/���������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 017153� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/IdGenerator/�������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020665� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Paged.pm�����������������������������������������������������������������000644 �000765 �000024 �00000015626 13341726377 020052� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Paged; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; requires 'start'; requires 'limit'; requires 'total'; has max_pages_in_spread => (is => 'rw', lazy => 1, default => sub {5}); # function _do_pagination copied from Data::SpreadPagination, # decrease dependencies for Catmandu sub _ceil { my $x = shift; return int($x + 0.9999999); } sub _floor { my $x = shift; return int $x; } sub _round { my $x = shift; return int($x + 0.5); } sub _do_pagination { my $self = shift; my $total_entries = $self->total; my $entries_per_page = $self->limit; my $current_page = $self->page; my $max_pages = $self->max_pages_in_spread; # qNsizes my @q_size = (); my ($add_pages, $adj); # step 2 my $total_pages = _ceil($total_entries / $entries_per_page); my $visible_pages = $max_pages < ($total_pages - 1) ? $max_pages : $total_pages - 1; if ($total_pages - 1 <= $max_pages) { @q_size = ($current_page - 1, 0, 0, $total_pages - $current_page); } else { @q_size = ( _floor($visible_pages / 4), _round($visible_pages / 4), _ceil($visible_pages / 4), _round(($visible_pages - _round($visible_pages / 4)) / 3) ); if ($current_page - $q_size[0] < 1) { $add_pages = $q_size[0] + $q_size[1] - $current_page + 1; @q_size = ( $current_page - 1, 0, $q_size[2] + _ceil($add_pages / 2), $q_size[3] + _floor($add_pages / 2) ); } elsif ( $current_page - $q_size[1] - _ceil($q_size[1] / 3) <= $q_size[0]) { $adj = _ceil((3 * ($current_page - $q_size[0] - 1)) / 4); $add_pages = $q_size[1] - $adj; @q_size = ( $q_size[0], $adj, $q_size[2] + _ceil($add_pages / 2), $q_size[3] + _floor($add_pages / 2) ); } elsif ($current_page + $q_size[3] >= $total_pages) { $add_pages = $q_size[2] + $q_size[3] - $total_pages + $current_page; @q_size = ( $q_size[0] + _floor($add_pages / 2), $q_size[1] + _ceil($add_pages / 2), 0, $total_pages - $current_page ); } elsif ($current_page + $q_size[2] >= $total_pages - $q_size[3]) { $adj = _ceil( (3 * ($total_pages - $current_page - $q_size[3])) / 4); $add_pages = $q_size[2] - $adj; @q_size = ( $q_size[0] + _floor($add_pages / 2), $q_size[1] + _ceil($add_pages / 2), $adj, $q_size[3] ); } } # step 3 (PROFIT) $self->{PAGE_RANGES} = [ $q_size[0] == 0 ? undef : [1, $q_size[0]], $q_size[1] == 0 ? undef : [$current_page - $q_size[1], $current_page - 1], $q_size[2] == 0 ? undef : [$current_page + 1, $current_page + $q_size[2]], $q_size[3] == 0 ? undef : [$total_pages - $q_size[3] + 1, $total_pages], ]; } sub first_page { return 1; } sub last_page { my $self = shift; my $last = $self->total / $self->limit; return _ceil($last); } sub page { my $self = shift; ($self->start == 0) && (return 1); my $page = _ceil(($self->start + 1) / $self->limit); ($page < $self->last_page) ? (return $page) : (return $self->last_page); } sub previous_page { my $self = shift; ($self->page > 1) ? (return $self->page - 1) : (return undef); } sub next_page { my $self = shift; ($self->page < $self->last_page) ? (return $self->page + 1) : (return undef); } sub first_on_page { my $self = shift; ($self->total == 0) ? (return 0) : (return (($self->page - 1) * $self->limit) + 1); } sub last_on_page { my $self = shift; ($self->page == $self->last_page) ? (return $self->total) : (return ($self->page * $self->limit)); } sub page_size { my $self = shift,; return $self->limit; } sub page_ranges { my $self = shift; $self->_do_pagination; return @{$self->{PAGE_RANGES}}; } sub pages_in_spread { my $self = shift; $self->_do_pagination; my $ranges = $self->{PAGE_RANGES}; my $pages = []; if (!defined $ranges->[0]) { push @$pages, undef if $self->page > 1; } else { push @$pages, $ranges->[0][0] .. $ranges->[0][1]; push @$pages, undef if defined $ranges->[1] and ($ranges->[1][0] - $ranges->[0][1]) > 1; } push @$pages, $ranges->[1][0] .. $ranges->[1][1] if defined $ranges->[1]; push @$pages, $self->page; push @$pages, $ranges->[2][0] .. $ranges->[2][1] if defined $ranges->[2]; if (!defined $ranges->[3]) { push @$pages, undef if $self->page < $self->last_page; } else { push @$pages, undef if defined $ranges->[2] and ($ranges->[3][0] - $ranges->[2][1]) > 1; push @$pages, $ranges->[3][0] .. $ranges->[3][1]; } return $pages; } 1; __END__ =pod =head1 NAME Catmandu::Paged - Base class for packages that need paging result sets =head1 SYNOPSIS # Create a package that needs page calculation package MyPackage; use Moo; with 'Catmandu::Paged'; sub start { 12; # Starting result } sub limit { 10; # Number of results per page } sub total { 131237128371; # Total number of results; } package main; my $x = MyPackage->new; printf "Start page: %s\n" , $x->first_page; printf "Last page: %s\n" , $x->last_page; printf "Current page: %s\n" , $x->page; printf "Next page: %s\n" , $x->next_page; =head1 DESCRIPTION Packages that use L<Catmandu::Paged> as base class and implement the methods C<start>, C<limit> and C<total> get for free methods that can be used to do page calculation. =head1 OVERWRITE METHODS =over 4 =item start() Returns the index of the first item in a result page. =item limit() Returns the number of results in a page. =item total() Returns the total number of search results. =back =head1 INSTANCE METHODS =over 4 =item first_page Returns the index the first page in a search result containing 0 or more pages. =item last_page Returns the index of the last page in a search result containing 0 or more pages. =item page_size Returns the number items on the current page. =item page Returns the current page index. =item previous_page Returns the previous page index. =item next_page Returns the next page index. =item first_on_page Returns the result index of the first result on the page. =item page_ranges =item pages_in_spread Returns the previous pages and next pages, depending on the current position in the result set. =back =head1 SEE ALSO L<Catmandu::Hits> =cut ����������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fixable.pm���������������������������������������������������������������000644 �000765 �000024 �00000001207 13341726377 020372� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fixable; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_instance); use Catmandu; use Moo::Role; use namespace::clean; has _fixer => (is => 'ro', init_arg => 'fix', coerce => sub {Catmandu->fixer($_[0])},); 1; __END__ =pod =head1 NAME Catmandu::Fixable - a Catmandu role to apply fixes =head1 DESCRIPTION This role provides a C<fix> attribute to apply fixes to items processed by L<Catmandu::Importer>, L<Catmandu::Exporter>, and L<Catmandu::Bag>. =head1 CONFIGURATION =head2 fix An ARRAY of one or more fixes or file scripts to be applied to items. =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Counter.pm���������������������������������������������������������������000644 �000765 �000024 �00000002235 13341726377 020441� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Counter; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; has count => (is => 'rwp', default => sub {0}); sub inc_count { my $self = $_[0]; $self->_set_count($self->count + 1); } sub dec_count { my $self = $_[0]; $self->count ? $self->_set_count($self->count - 1) : 0; } sub reset_count { my $self = $_[0]; $self->_set_count(0); } 1; __END__ =pod =head1 NAME Catmandu::Counter - A Base class for modules who need to count things =head1 SYNOPSIS package MyPackage; use Moo; with 'Catmandu::Counter'; sub calculate { my ($self) = @_; $self->inc_count; #...do stuff } package main; my $x = MyPackage->new; $x->calculate; $x->calculate; $x->calculate; print "Executed calculate %d times\n" , $x->count; =head1 ATTRIBUTES =head2 count The current value of the counter. =head1 METHODS =head2 inc_count() =head2 inc_count(NUMBER) Increment the counter. =head2 dec_count() =head2 dec_count(NUMBER) Decrement the counter. =head2 reset_count() Reset the counter to zero. =head1 SEE ALSO L<Catmandu::Exporter> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Sane.pm������������������������������������������������������������������000644 �000765 �000024 �00000002372 13341726377 017712� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Sane; use strict; use warnings; our $VERSION = '1.10'; use feature (); use utf8; use IO::File (); use IO::Handle (); use Try::Tiny::ByClass; use Catmandu::Error (); sub import { my $pkg = caller; strict->import; warnings->import; feature->import(qw(:5.10)); utf8->import; Try::Tiny::ByClass->export_to_level(1, $pkg); } 1; __END__ =pod =head1 NAME Catmandu::Sane - Package boilerplate =head1 SYNOPSIS use Catmandu::Sane; # Provides all the 5.10 features. say("what"); given($foo) { when(1) { say "1" } when([2,3]) { say "2 or 3" } when(/abc/) { say "has abc" } default { none of the above } } sub next_id{ state $id; ++$id; } # Provides try/catch[/finally] try/catch_case[/finally] try { } catch {}; # Provides Catmandu::Error->throw("error"); Catmandu::BadVal->throw("eek val"); Catmandu::BadArg->throw("eek arg"); Catmandu::NotImplemented->throw("can't do that!"); =head1 DESCRIPTION Package boilerplate equivalent to: use strict; use warnings; use feature qw(:5.10); use utf8; use IO::File (); use IO::Handle (); use Try::Tiny::ByClass; use Catmandu::Error; =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Store/�������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 017556� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Store/Hash/��������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020441� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Store/Multi.pm�����������������������������������������������������������000644 �000765 �000024 �00000005567 13341726377 021223� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Store::Multi; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(:is); use Hash::Util::FieldHash qw(fieldhash); use Catmandu::Store::Multi::Bag; use Moo; use namespace::clean; with 'Catmandu::Store'; with 'Catmandu::Droppable'; has stores => ( is => 'ro', required => 1, default => sub {[]}, coerce => sub { my $stores = $_[0]; return [ map { if (is_string($_)) { Catmandu->store($_); } else { $_; } } @$stores ]; }, ); sub drop { my ($self) = @_; for my $store (@{$self->stores}) { $store->drop; } } 1; __END__ =pod =head1 NAME Catmandu::Store::Multi - A store that adds data to multiple stores =head1 SYNOPSIS # On the Command line # Configure the Multi store with a catmandu.yml file $ cat catmandu.yml --- store: metadata1: package: DBI options: data_source: "DBI:mysql:database=catmandu" metadata2: package: ElasticSearch options: client: '1_0::Direct' index_name: catmandu multi: package: Multi options: stores: - metadata1 - metadata2 ... # Add a YAML record to the multi store $ catmandu import YAML to multi < data.yml # Extract all the records from the multi store as YAML $ catmandu export multi to YAML > data.yml # In Perl use Catmandu; my $store = Catmandu->store('Multi' , stores [ Catmandu->store('DBI', data_source => 'DBI:mysql:database=catmandu') , Catmandu->store('ElasticSearch', client => '1_0::Direct', index_name => 'catmandu') , ]); $store->bag->each(sub { my $item = shift; printf "%s\n" , $item->{_id}; }); $store->bag->add({ _id => 1234 , foo => 'bar' , test => [qw(1 2 3 4)]}); my $item = $store->bag->get('1234'); $store->bag->delete('1234'); =head1 DESCRIPTION The L<Catmandu::Store::Multi> is a combination of many L<Catmandu::Store>-s as one access point. The Multi store inherits all the methods from L<Catmandu::Store>. By default, the Multi store tries to update records in all configured backend stores. Importing, exporting, delete and drop will be executed against all backend stores when possible. =head1 METHODS =head2 new(stores => [...]) Create a new Catmandu::Store::Multi.The C<store> configuration parameter contains an array of references to L<Catmandu::Store>-s based on their name in a configuration file or instances. =head1 INHERITED METHODS This Catmandu::Store implements: =over 3 =item L<Catmandu::Store> =item L<Catmandu::Droppable> =back Each Catmandu::Bag in this Catmandu::Store implements: =over 3 =item L<Catmandu::Bag> =item L<Catmandu::Droppable> =back =cut �����������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Store/Multi/�������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020650� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Store/Hash.pm������������������������������������������������������������000644 �000765 �000024 �00000004313 13341726377 021000� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Store::Hash; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util qw(:is); use Catmandu::Store::Hash::Bag; use namespace::clean; with 'Catmandu::Store'; with 'Catmandu::Droppable'; with 'Catmandu::Transactional'; has _hashes => (is => 'ro', lazy => 1, init_arg => undef, default => sub {+{}}); has init_data => (is => 'ro'); sub BUILD { my ($self) = @_; if (my $data = $self->init_data) { $self->bag->add($_) for @$data; } } sub drop { my ($self) = @_; $_->drop for values %{$self->bags}; return; } sub transaction { my ($self, $coderef) = @_; &{$coderef} if is_code_ref($coderef); } 1; __END__ =pod =head1 NAME Catmandu::Store::Hash - An in-memory store =head1 SYNOPSIS use Catmandu; my $store = Catmandu->store('Hash'); my $obj1 = $store->bag->add({ name => 'Patrick' }); printf "obj1 stored as %s\n" , $obj1->{_id}; # Force an id in the store my $obj2 = $store->bag->add({ _id => 'test123' , name => 'Nicolas' }); my $obj3 = $store->bag->get('test123'); $store->bag->delete('test123'); $store->bag->delete_all; # All bags are iterators $store->bag->each(sub { ... }); $store->bag->take(10)->each(sub { ... }); =head1 DESCRIPTION A Catmandu::Store::Hash is an in-memory L<Catmandu::Store> backed by a hash for fast retrieval combined with a doubly linked list for fast traversal. =head1 METHODS =head2 new([init_data => [...] ]) Create a new Catmandu::Store::Hash. Optionally provide as init_data an array ref of data: my $store = Catmandu->store('Hash', init_data => [ { _id => 1, data => foo } , { _id => 2, data => bar } ]); # or in a catmandu.yml configuration file: --- store: hash: package: Hash options: init_data: - _id: 1 data: foo - _id: 2 data: bar =head1 INHERITED METHODS This Catmandu::Store implements: =over 3 =item L<Catmandu::Store> =item L<Catmandu::Droppable> =item L<Catmandu::Transactional> =back Each Catmandu::Bag in this Catmandu::Store implements: =over 3 =item L<Catmandu::Bag> =item L<Catmandu::Droppable> =back =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Store/Multi/Bag.pm�������������������������������������������������������000644 �000765 �000024 �00000004750 13341726377 021705� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Store::Multi::Bag; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Hash::Merge::Simple qw(merge); use namespace::clean; with 'Catmandu::Bag'; with 'Catmandu::Droppable'; sub generator { my ($self) = @_; # Loop of all stores and find the first one that implements the bag # and can create a generator my $gen; for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); $gen = $bag ? $bag->generator : undef; last if defined($gen); } return undef unless $gen; sub { my $item = $gen->(); return undef unless $item; return $item; }; } sub get { my ($self, $id) = @_; # Loop over all the bags and merge the results of the records found # Required in case of Store/FileStore combinations where each part # can contain different metadata my $found = 0; my $result = {}; for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); my $item = $bag ? $bag->get($id) : undef; if ($item) { $found = 1; $result = merge $result , $item; } } return $found ? $result : undef; } sub add { my ($self, $data) = @_; # By default try to add the data to all the stores for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); $bag->add($data) if $bag; } 1; } sub delete { my ($self, $id) = @_; # By default try to delete the data from all the stores for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); $bag->delete($id) if $bag; } 1; } sub delete_all { my ($self) = @_; # By default try to drop the data from all the stores for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); $bag->delete_all if $bag; } 1; } sub drop { my ($self) = @_; # By default try to delete the data from all the stores for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); $bag->drop if $bag && $bag->does('Catmandu::Droppable'); } 1; } sub commit { my ($self) = @_; # By default try to commit the data to all the stores for my $store (@{$self->store->stores}) { my $bag = $store->bag($self->name); $bag->commit if $bag; } 1; } 1; __END__ =pod =head1 NAME Catmandu::Store::Multi::Bag - Bag implementation for the Multi store =cut ������������������������Catmandu-1.10/lib/Catmandu/Store/Hash/Bag.pm��������������������������������������������������������000644 �000765 �000024 �00000003724 13341726377 021476� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Store::Hash::Bag; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Hits; use Clone qw(clone); use namespace::clean; with 'Catmandu::Bag'; with 'Catmandu::Droppable'; has _hash => (is => 'rw', lazy => 1, init_arg => undef, builder => '_build_hash'); has _head => (is => 'rw', init_arg => undef, clearer => '_clear_head'); has _tail => (is => 'rw', init_arg => undef, clearer => '_clear_tail'); sub _build_hash { my $self = $_[0]; $self->store->_hashes->{$self->name} ||= {}; } sub generator { my $self = $_[0]; sub { state $node = $self->_head; state $data; $node || return; $data = $node->[1]; $node = $node->[2]; $data; }; } sub get { my ($self, $id) = @_; my $node = $self->_hash->{$id} || return; clone($node->[1]); } sub add { my ($self, $data) = @_; my $id = $data->{$self->id_key}; my $node = $self->_hash->{$id}; if ($node) { $node->[1] = clone($data); } elsif (my $tail = $self->_tail) { $tail->[2] = $node = [$tail, clone($data), undef]; $self->_hash->{$id} = $node; $self->_tail($node); } else { $node = [undef, clone($data), undef]; $self->_hash->{$id} = $node; $self->_head($node); $self->_tail($node); } $data; } sub delete { my ($self, $id) = @_; my $node = $self->_hash->{$id} || return; if ($node->[0]) { $node->[0][2] = $node->[2]; } else { $self->_head($node->[2]); } if ($node->[2]) { $node->[2][0] = $node->[0]; } else { $self->_tail($node->[0]); } delete $self->_hash->{$id}; } sub delete_all { my $self = $_[0]; $self->_clear_head; $self->_clear_tail; $self->_hash($self->store->_hashes->{$self->name} = {}); } sub drop { $_[0]->delete_all; } 1; __END__ =pod =head1 NAME Catmandu::Store::Hash::Bag - Bag implementation for the Hash store =cut ��������������������������������������������Catmandu-1.10/lib/Catmandu/IdGenerator/Mock.pm������������������������������������������������������000644 �000765 �000024 �00000001754 13341726377 022123� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::IdGenerator::Mock; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util qw(check_natural); use namespace::clean; with 'Catmandu::IdGenerator'; has first_id => (is => 'ro', isa => sub {check_natural($_[0])}, default => sub {0},); has next_id => (is => 'rwp', init_arg => undef, lazy => 1, builder => 'first_id',); sub generate { my ($self) = @_; my $id = $self->next_id; $self->_set_next_id($id + 1); $id; } 1; __END__ =pod =head1 NAME Catmandu::IdGenerator::Mock - Generator of increasing identifiers =head1 SYNOPSIS use Catmandu::IdGenerator::Mock; my $x = Catmandu::IdGenerator::Mock->new(first_id => 10); for (1..100) { printf "id: %s\n" m $x->generate; } =head1 SEE ALSO This L<Catmandu::IdGenerator> generates identifiers based on the sequence of natural numbers. =head1 CONFIGURATION =over =item first_id First number to start from. Set to C<0> by default (zero-based numbering). =back =cut ��������������������Catmandu-1.10/lib/Catmandu/IdGenerator/UUID.pm������������������������������������������������������000644 �000765 �000024 �00000001465 13341726377 021777� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::IdGenerator::UUID; use Catmandu::Sane; our $VERSION = '1.10'; use Data::UUID; use Moo; use namespace::clean; with 'Catmandu::IdGenerator'; has _uuid => (is => 'lazy', builder => '_build_uuid'); sub _build_uuid {Data::UUID->new} sub generate { $_[0]->_uuid->create_str; } 1; __END__ =pod =head1 NAME Catmandu::IdGenerator::UUID - Generator of UUID identifiers =head1 SYNOPSIS use Catmandu::IdGenerator::UUID; my $x = Catmandu::IdGenerator::UUID->new; for (1..100) { printf "id: %s\n" m $x->generate; } =head1 DESCRIPTION This L<Catmandu::IdGenerator> generates identifiers based on the Universally Unique Identifier (UUID) standard. A UUID is a 128 bit number represented by lowercase hexadecimal digits such as C<de305d54-75b4-431b-adb2-eb6b9e546014>. =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Bag/IdGenerator.pm�������������������������������������������������������000644 �000765 �000024 �00000001251 13341726377 021713� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Bag::IdGenerator; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; with 'Catmandu::IdGenerator'; 1; __END__ =pod =head1 NAME Catmandu::Bag::IdGenerator - A base role for bag identifier generators =head1 SYNOPSIS package MyGenerator; use Moo; with 'Catmandu::Bag::IdGenerator'; sub generate { my ($self, $bag) = @_; return $bag->name . "-" . int(ran(999999)) . "-" . time; } package main; my $gen = MyGenerator->new; for (1..100) { printf "id: %s\n" m $gen->generate; } =head1 SEE ALSO L<Catmandu::IdGenerator::Mock> , L<Catmandu::IdGenerator::UUID> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Bag/IdGenerator/���������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 021356� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Bag/IdGenerator/Mock.pm��������������������������������������������������000644 �000765 �000024 �00000000512 13341726377 022603� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Bag::IdGenerator::Mock; use Catmandu::Sane; our $VERSION = '1.10'; use Data::UUID; use Moo; use namespace::clean; extends 'Catmandu::IdGenerator::Mock'; with 'Catmandu::Bag::IdGenerator'; 1; __END__ =pod =head1 NAME Catmandu::Bag::IdGenerator::Mock - Generator of increasing identifiers for bags =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Bag/IdGenerator/UUID.pm��������������������������������������������������000644 �000765 �000024 �00000000504 13341726377 022461� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Bag::IdGenerator::UUID; use Catmandu::Sane; our $VERSION = '1.10'; use Data::UUID; use Moo; use namespace::clean; extends 'Catmandu::IdGenerator::UUID'; with 'Catmandu::Bag::IdGenerator'; 1; __END__ =pod =head1 NAME Catmandu::Bag::IdGenerator::UUID - Generator of UUID identifiers for bags =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/Multi.pm��������������������������������������������������������000644 �000765 �000024 �00000002255 13341726377 021726� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::Multi; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_string); use Catmandu; use Moo; use namespace::clean; with 'Catmandu::Exporter'; has exporters => ( is => 'ro', default => sub {[]}, coerce => sub { my $exporters = $_[0]; return [ map { if (is_string($_)) { Catmandu->exporter($_); } else { $_; } } @$exporters ]; }, ); sub add { my ($self, $data) = @_; $_->add($data) for @{$self->exporters}; } sub commit { my ($self) = @_; $_->commit for @{$self->exporters}; } 1; __END__ =pod =head1 NAME Catmandu::Exporter::Multi - export you data to multiple exporters =head1 SYNOPSIS # this will write both a CSV and an XLS file my $exporter = Catmandu::Exporter::Multi->new(exporters => [ Catmandu::Exporter::CSV->new(file => 'mydata.csv'), Catmandu::Exporter::XLS->new(file => 'mydata.xls'), ]); $exporter->add({col1 => 'val1', col2 => 'val2'}); $exporter->commit; =head1 SEE ALSO L<Catmandu::Exporter> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/Null.pm���������������������������������������������������������000644 �000765 �000024 �00000001165 13341726377 021545� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::Null; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Exporter'; sub add { } 1; __END__ =pod =head1 NAME Catmandu::Exporter::Null - a expoter that doesn't export anything =head1 SYNOPSIS # From the commandline $ catmandu convert JSON --fix myfixes to Null < /tmp/data.json $ catmandu convert JSON --fix 'add_to_exporter(.,JSON)' to Null < /tmp/data.json =head1 DESCRIPTION This exporter exports nothing and can be used as in situations where you export data in the Fix script itself. =head1 SEE ALSO L<Catmandu::Importer::Mock> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/TSV.pm����������������������������������������������������������000644 �000765 �000024 �00000005567 13341726377 021321� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::TSV; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Exporter::CSV; use Moo; use namespace::clean; has csv => (is => 'lazy', handles => [qw(add)]); with 'Catmandu::TabularExporter'; has sep_char => ( is => 'ro', default => sub {"\t"}, coerce => sub { my $sep_char = $_[0]; $sep_char =~ s/(\\[abefnrt])/"qq{$1}"/gee; return $sep_char; } ); sub _build_csv { my ($self) = @_; my $csv = Catmandu::Exporter::CSV->new( header => $self->header, collect_fields => $self->collect_fields, sep_char => $self->sep_char, quote_char => undef, escape_char => undef, file => $self->file, ); $csv->{fields} = $self->fields; $csv->{columns} = $self->columns; $csv; } 1; __END__ =pod =head1 NAME Catmandu::Exporter::TSV - a tab-delimited TSV exporter =head1 SYNOPSIS # From the command line $ catmandu convert JSON to TSV --fields "id,title,year" < data.json # In a Perl script use Catmandu; my $exporter = Catmandu->exporter( 'TSV', fix => 'myfix.txt', header => 1); $exporter->fields("f1,f2,f3"); $exporter->fields([qw(f1 f2 f3)]); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); printf "exported %d items\n" , $exporter->count; =head1 DESCRIPTION This C<Catmandu::Exporter> exports items as rows with tab-separated values (TSV). A header line with field names will be included if option C<header> is set. See L<Catmandu::TabularExporter> on how to configure the field mapping and column names. Newlines and tabulator values in field values are escaped as C<\n>, C<\r>, and C<\t>. =head1 CONFIGURATION =over =item file Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function. =item fh Write the output to an L<IO::Handle>. If not specified, L<Catmandu::Util::io|Catmandu::Util/IO-functions> is used to create the output handle from the C<file> argument or by using STDOUT. =item fix An ARRAY of one or more fixes or file scripts to be applied to exported items. =item encoding Binmode of the output stream C<fh>. Set to "C<:utf8>" by default. =item fields See L<Catmandu::TabularExporter>. =item columns See L<Catmandu::TabularExporter>. =item header Include a header line with column names. Enabled by default. =item sep_char Column separator (C<tab> by default) =back =head1 METHODS See L<Catmandu::TabularExporter>, L<Catmandu::Exporter>, L<Catmandu::Addable>, L<Catmandu::Fixable>, L<Catmandu::Counter>, and L<Catmandu::Logger> for a full list of methods. =head1 SEE ALSO L<Catmandu::Importer::TSV> =cut �����������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/YAML.pm���������������������������������������������������������000644 �000765 �000024 �00000003231 13341726377 021371� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::YAML; use Catmandu::Sane; our $VERSION = '1.10'; use YAML::XS (); use Moo; use namespace::clean; with 'Catmandu::Exporter'; sub add { my ($self, $data) = @_; my $yaml = YAML::XS::Dump($data); utf8::decode($yaml); $self->fh->print($yaml); $self->fh->print("...\n"); } 1; __END__ =pod =head1 NAME Catmandu::Exporter::YAML - a YAML exporter =head1 SYNOPSIS # From the commandline $ catmandu convert JSON --fix myfixes to YAML < /tmp/data.json # From Perl use Catmandu; # Print to STDOUT my $exporter = Catmandu->exporter('YAML', fix => 'myfix.txt'); # Print to file or IO::Handle my $exporter = Catmandu->exporter('YAML', file => '/tmp/out.yml'); my $exporter = Catmandu->exporter('YAML', file => $fh); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); printf "exported %d items\n" , $exporter->count; =head1 CONFIGURATION =over 4 =item file Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function. =item fh Write the output to an L<IO::Handle>. If not specified, L<Catmandu::Util::io|Catmandu::Util/IO-functions> is used to create the output handle from the C<file> argument or by using STDOUT. =item fix An ARRAY of one or more fixes or file scripts to be applied to exported items. =item encoding Binmode of the output stream C<fh>. Set to "C<:utf8>" by default. =back =head1 SEE ALSO L<Catmandu::Exporter>, L<Catmandu::Importer::YAML> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/Text.pm���������������������������������������������������������000644 �000765 �000024 �00000007652 13341726377 021566� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::Text; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util; use namespace::clean; with 'Catmandu::Exporter'; use vars qw(%Interpolated ); # From String::Escape # Earlier definitions are preferred to later ones, thus we output \n not \x0d _define_backslash_escapes( (map {$_ => $_} ('\\', '"', '$', '@')), ('r' => "\r", 'n' => "\n", 't' => "\t"), (map {'x' . unpack('H2', chr($_)) => chr($_)} (0 .. 255)), (map {sprintf('%03o', $_) => chr($_)} (0 .. 255)), ); sub _define_backslash_escapes { %Interpolated = @_; } # $original_string = unbackslash( $special_characters_escaped ); sub unbackslash ($) { local $_ = (defined $_[0] ? $_[0] : ''); s/ (\A|\G|[^\\]) [\\] ( [0][0-9][0-9] | [x][0-9a-fA-F]{2} | . ) / $1 . ( $Interpolated{lc($2) }) /gsxe; return $_; } # End from String::Escape has line_sep => (is => 'ro', default => sub {"\n"}, coerce => sub {unbackslash($_[0]);}); has field_sep => (is => 'ro', default => sub {undef}, coerce => sub {unbackslash($_[0])}); sub add { my ($self, $data) = @_; my $text = $self->hash_text('', $data); $self->fh->print($text); $self->fh->print($self->line_sep) if defined $self->line_sep; } sub hash_text { my ($self, $text, $hash) = @_; for my $k (sort keys %$hash) { next if ($k =~ /^_.*/); my $item = $hash->{$k}; $text .= $self->field_sep if defined $self->field_sep && length($text); if (Catmandu::Util::is_array_ref($item)) { $text .= $self->array_text($text, $item); } elsif (Catmandu::Util::is_hash_ref($item)) { $text .= $self->hash_text($text, $item); } else { $text .= $item; } } return $text; } sub array_text { my ($self, $text, $arr) = @_; for my $item (@$arr) { $text .= $self->field_sep if defined $self->field_sep && length($text); if (Catmandu::Util::is_array_ref($item)) { $text .= $self->array_text($text, $item); } elsif (Catmandu::Util::is_hash_ref($item)) { $text .= $self->hash_text($text, $item); } else { $text .= $item; } } return $text; } 1; __END__ =pod =head1 NAME Catmandu::Exporter::Text - a Text exporter =head1 SYNOPSIS # From the command line # Write all field values as a line of Text $ catmandu convert JSON to Text --field_sep "," < data.json # In a Perl script use Catmandu; # Print to STDOUT my $exporter = Catmandu->exporter('Text', fix => 'myfix.txt'); # Print to file or IO::Handle my $exporter = Catmandu->exporter('Text', file => '/tmp/out.yml'); my $exporter = Catmandu->exporter('Text', file => $fh); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); printf "exported %d items\n" , $exporter->count; =head1 DESCRIPTION This C<Catmandu::Exporter> exports items as raw text. All field values found in the data will be contactenated using C<field_sep> as delimiter. =head1 CONFIGURATION =over 4 =item file Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function. =item fh Write the output to an L<IO::Handle>. If not specified, L<Catmandu::Util::io|Catmandu::Util/IO-functions> is used to create the output handle from the C<file> argument or by using STDOUT. =item fix An ARRAY of one or more fixes or file scripts to be applied to exported items. =item encoding Binmode of the output stream C<fh>. Set to "C<:utf8>" by default. =item line_sep STR Use the STR at each end of line. Set to "C<\n>" by default. =item field_sep STR Use the STR at each end of a field. =back =head1 SEE ALSO L<Catmandu::Exporter> , L<Catmandu::Importer::Text> =cut ��������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/CSV.pm����������������������������������������������������������000644 �000765 �000024 �00000007602 13341726377 021270� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::CSV; use Catmandu::Sane; our $VERSION = '1.10'; use Text::CSV; use Moo; use namespace::clean; with 'Catmandu::TabularExporter'; has csv => (is => 'lazy'); has sep_char => (is => 'ro', default => sub {','}); has quote_char => (is => 'ro', default => sub {'"'}); has escape_char => (is => 'ro', default => sub {'"'}); has always_quote => (is => 'ro'); sub _build_csv { my ($self) = @_; Text::CSV->new( { binary => 1, eol => "\n", sep_char => $self->sep_char, always_quote => $self->always_quote, quote_char => $self->quote_char ? $self->quote_char : undef, escape_char => $self->escape_char ? $self->escape_char : undef, } ); } sub add { my ($self, $data) = @_; my $fields = $self->fields; my $row = [ map { my $val = $data->{$_} // ""; $val =~ s/\t/\\t/g; $val =~ s/\n/\\n/g; $val =~ s/\r/\\r/g; $val; } @$fields ]; $self->_print_header; $self->csv->print($self->fh, $row); } sub commit { my ($self) = @_; # ensure header gets printed even if there are no records $self->_print_header; } sub _print_header { my ($self) = @_; if (!$self->count && $self->header) { my $row = $self->columns || $self->fields; $self->csv->print($self->fh, $row) if $row && @$row; } } 1; __END__ =pod =head1 NAME Catmandu::Exporter::CSV - a CSV exporter =head1 SYNOPSIS # On the command line $ catmandu convert XSL to CSV < data.xls $ catmandu convert JSON to CSV --fix myfixes.txt --sep_char ';' < data.json # In a Perl script use Catmandu; my $exporter = Catmandu->exporter('CSV', fix => 'myfix.txt', quote_char => '"', sep_char => ',', escape_char => '"' , always_quote => 1, header => 1); $exporter->fields("f1,f2,f3"); $exporter->fields([qw(f1 f2 f3)]); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); printf "exported %d items\n" , $exporter->count; =head1 DESCRIPTION This C<Catmandu::Exporter> exports items as rows with comma-separated values (CSV). Serialization is based on L<Text::CSV>. A header line with field names will be included if option C<header> is set. See L<Catmandu::TabularExporter> on how to configure the field mapping and column names. Newlines and tabulator values in field values are escaped as C<\n>, C<\r>, and C<\t>. =head1 CONFIGURATION =over =item file Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function. =item fh Write the output to an L<IO::Handle>. If not specified, L<Catmandu::Util::io|Catmandu::Util/IO-functions> is used to create the output handle from the C<file> argument or by using STDOUT. =item fix An ARRAY of one or more fixes or file scripts to be applied to exported items. =item encoding Binmode of the output stream C<fh>. Set to "C<:utf8>" by default. =item sep_char Column separator (C<,> by default) =item quote_char Quotation character (C<"> by default) =item escape_char Character for escaping inside quoted field (C<"> by default) =item fields See L<Catmandu::TabularExporter>. =item columns See L<Catmandu::TabularExporter>. =item header Include a header line with column names. Enabled by default. =back =head1 METHODS See L<Catmandu::TabularExporter>, L<Catmandu::Exporter>, L<Catmandu::Addable>, L<Catmandu::Fixable>, L<Catmandu::Counter>, and L<Catmandu::Logger> for a full list of methods. =head1 SEE ALSO L<Catmandu::Importer::CSV>, L<Catmandu::Exporter::Table> L<Catmandu::Exporter::XLS> =cut ������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/Mock.pm���������������������������������������������������������000644 �000765 �000024 �00000002403 13341726377 021520� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::Mock; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Exporter'; has _data_ => (is => 'ro', default => sub {[]}); sub add { my ($self, $data) = @_; push @{$self->_data_}, $data; 1; } sub as_arrayref { my ($self) = @_; return $self->_data_; } 1; __END__ =pod =head1 NAME Catmandu::Exporter::Mock - a exporter that doesn't export anything =head1 SYNOPSIS # From the commandline $ catmandu convert JSON --fix myfixes to Mock < /tmp/data.json # From Perl use Catmandu; # Print to STDOUT my $exporter = Catmandu->exporter('Mock',fix => 'myfix.txt'); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); printf "exported %d items\n" , $exporter->count; # Get an array ref of all records exported my $data = $exporter->as_arrayref; =head1 DESCRIPTION This exporter exports nothing and can be used as in situations where you e.g. export data from a fix. Other the Null exporter, the Mock exporter will keep an internal array of all the records exported which can be retrieved with the 'as_arrayref' method. =head1 SEE ALSO L<Catmandu::Exporter::Null> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/Count.pm��������������������������������������������������������000644 �000765 �000024 �00000001314 13341726377 021717� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::Count; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Exporter'; has _num => (is => 'rw', default => sub {0}); sub add { my $self = $_[0]; $self->_num($self->_num + 1); } sub commit { my $self = $_[0]; $self->fh->print($self->_num . "\n"); } 1; __END__ =pod =head1 NAME Catmandu::Exporter::Count - a exporter that counts things =head1 SYNOPSIS # From the commandline $ catmandu convert JSON to Count < /tmp/data.json =head1 DESCRIPTION This exporter exports nothing and just counts the number of items found in the input data. =head1 SEE ALSO L<Catmandu::Cmd::count> L<Catmandu::Exporter::Null> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Exporter/JSON.pm���������������������������������������������������������000644 �000765 �000024 �00000006760 13341726377 021412� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Exporter::JSON; use Catmandu::Sane; our $VERSION = '1.10'; use Cpanel::JSON::XS (); use Moo; use namespace::clean; with 'Catmandu::Exporter'; has line_delimited => (is => 'ro', default => sub {0}); has array => (is => 'ro', default => sub {1}); has pretty => (is => 'ro', default => sub {0}); has indent => (is => 'ro', default => sub {0}); has space_before => (is => 'ro', default => sub {0}); has space_after => (is => 'ro', default => sub {0}); has canonical => (is => 'ro', default => sub {0}); has json => (is => 'lazy'); sub _build_json { my ($self) = @_; Cpanel::JSON::XS->new->utf8(0) ->allow_nonref->pretty($self->line_delimited ? 0 : $self->pretty) ->indent($self->line_delimited ? 0 : $self->pretty || $self->indent) ->space_before($self->line_delimited ? 0 : $self->pretty || $self->space_before) ->space_after($self->line_delimited ? 0 : $self->pretty || $self->space_after)->canonical($self->canonical); } sub add { my ($self, $data) = @_; my $fh = $self->fh; my $json = $self->json->encode($data); if ($self->line_delimited) { print $fh $json; print $fh "\n"; return; } if ($self->pretty) { chomp $json; } if ($self->array) { if ($self->count) { print $fh ","; print $fh "\n" if $self->pretty; } else { print $fh "["; } } print $fh $json; } sub commit { my ($self, $data) = @_; if (!$self->line_delimited && $self->array) { my $fh = $self->fh; unless ($self->count) { print $fh "["; } print $fh "]\n"; } } 1; __END__ =pod =head1 NAME Catmandu::Exporter::JSON - a JSON exporter =head1 SYNOPSIS # From the command line catmandu convert YAML to JSON --pretty 1 < input.yml # Export in the line-delimited format catmandu convert YAML to JSON --line_delimited 1 < input.yml # In a Perl script use Catmandu; my $exporter = Catmandu->exporter('JSON', fix => 'myfix.txt'); $exporter->add_many($arrayref); $exporter->add_many($iterator); $exporter->add_many(sub { }); $exporter->add($hashref); printf "exported %d items\n" , $exporter->count; =head1 DESCRIPTION This L<Catmandu::Exporter> exports items serialized in JSON format. By default each item is printed condensed on one line. =head1 CONFIGURATION =over =item file Write output to a local file given by its path or file handle. Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function. =item fh Write the output to an L<IO::Handle>. If not specified, L<Catmandu::Util::io|Catmandu::Util/IO-functions> is used to create the output handle from the C<file> argument or by using STDOUT. =item fix An ARRAY of one or more fixes or file scripts to be applied to exported items. =item encoding Binmode of the output stream C<fh>. Set to "C<:utf8>" by default. =item pretty Pretty-print JSON =item indent =item space_before =item space_after =item canonical L<JSON> serialization options =item array Structure the data as a JSON array. Default is C<1>. =item line_delimited Export items as newline delimited JSON. Default is C<0>. The C<array>, C<pretty>, C<indent>, C<space_before> and C<space_after> options will be ignored if C<line_delimited> is C<1>. =back =head1 SEE ALSO L<Catmandu::Exporter::YAML> =cut ����������������Catmandu-1.10/lib/Catmandu/Fix/add_to_exporter.pm���������������������������������������������������000644 �000765 �000024 �00000003266 13341726377 022737� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::add_to_exporter; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has exporter_name => (fix_arg => 1); has exporter_args => (fix_opt => 'collect'); has exporter => (is => 'lazy', init_arg => undef); with 'Catmandu::Fix::SimpleGetValue'; sub _build_exporter { my ($self) = @_; Catmandu->exporter( $self->exporter_name, %{$self->exporter_args}, autocommit => 1 ); } sub emit_value { my ($self, $var, $fixer) = @_; my $exporter_var = $fixer->capture($self->exporter); "${exporter_var}->add(${var});" } 1; __END__ =pod =head1 NAME Catmandu::Fix::add_to_exporter - Export a record as side effect =head1 SYNOPSIS # Export the data field values to a CSV file add_to_exporter(data,CSV, file:/tmp/test.txt, header: 1) # Export the complete record into a JSON file add_to_exporter(data,JSON, file:/tmp/test.json, pretty:1) # In general, export a PATH to an EXPORTER with one ore more OPT0s add_to_exporter(PATH,EXPORTER, OPT1:... , OPT2:... , OPT3:... , ...) # Use the add_to_exporter to explode an ARRAY into many records # E.g. # books: # - title: Graphic Design Rules # year: 2003 # - title: Urban Sketching # year: 2013 # - title: Findus flyttar ut # year: 2012 # And a fix file: exporter.fix do with(path => books) add_to_exporter(.,JSON) end # You can get an output with 3 records using the command line function catmandu convert JSON to Null --fix exporter.fix < book.json =head1 SEE ALSO L<Catmandu::Fix> , L<Catmandu::Exporter> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/import.pm������������������������������������������������������������000644 �000765 �000024 �00000005003 13341726377 021056� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::import; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has name => (fix_arg => 1); has delete => (fix_opt => 1); has ignore_404 => (fix_opt => 1); has opts => (fix_opt => 'collect'); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $name_var = $fixer->capture($self->name); my $opts_var = $fixer->capture($self->opts); my $temp_var = $fixer->generate_var; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $val_var = shift; my $index_var = shift; my $perl = $fixer->emit_declare_vars($temp_var); if ($self->ignore_404) { $perl .= "try {"; } $perl .= "${temp_var} = Catmandu->importer(${name_var}, variables => ${val_var}, %{${opts_var}})->first;"; if ($self->ignore_404) { $perl .= "} catch_case ['Catmandu::HTTPError' => sub {" . "if (\$_->code eq '404') { ${temp_var} = undef; } else { \$_->throw }" . "}];"; } $perl .= "if (defined(${temp_var})) {"; $perl .= "${val_var} = ${temp_var};"; $perl .= "}"; if ($self->delete) { $perl .= "else {"; if (defined $index_var) { # wildcard: only delete the value where the get failed $perl .= "splice(\@{${var}}, ${index_var}--, 1);"; } else { $perl .= $fixer->emit_delete_key($var, $key); } $perl .= "}"; } $perl; } ); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::import - change the value of a HASH key or ARRAY index by replacing its value with imported data =head1 SYNOPSIS import(foo.bar, JSON, file: "http://foo.com/bar.json", data_path: data.*) =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/search_in_store.pm���������������������������������������������������000644 �000765 �000024 �00000010032 13341726377 022711� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::search_in_store; use Catmandu::Sane; use Catmandu; use Moo; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; #options/arguments has path => (fix_arg => 1); has store_name => (fix_opt => 1, init_arg => 'store'); has bag_name => (fix_opt => 1, init_arg => 'bag'); has limit => (fix_opt => 1, init_arg => undef, default => sub {20}); has start => (fix_opt => 1, init_arg => undef, default => sub {0}); has sort => (fix_opt => 1, init_arg => undef); has store_args => (fix_opt => 'collect'); #internal has store => (is => 'lazy', init_arg => undef, builder => '_build_store'); has bag => (is => 'lazy', init_arg => undef, builder => '_build_bag'); sub _build_store { my $self = $_[0]; Catmandu->store($self->store_name, %{$self->store_args}); } sub _build_bag { my ($self) = @_; defined $self->bag_name ? $self->store->bag($self->bag_name) : $self->store->bag; } sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $bag_var = $fixer->capture($self->bag); my $limit = $self->limit; my $start = $self->start; my $sort = $self->sort || ""; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $val_var = shift; my $perl = <<EOF; ${val_var} = ${bag_var}->search( query => $val_var, start => ${start}, limit => ${limit}, sort => '${sort}' ); ${val_var} = { start => ${start}, limit => ${limit}, total => ${val_var}->total(), hits => ${val_var}->to_array() }; EOF $perl; } ); } ); } =head1 NAME Catmandu::Fix::search_in_store - use the value as query, and replace it by a search object =head1 SYNTAX search_in_store(path) search_in_store(path,store: 'store', bag: 'bag', limit: 0, start: 0, sort: 'title desc') =head1 RETURN VALUE { start: 0, limit: 0, hits: [], total: 1000 } cf. L<Catmandu::Hits> =head1 PARAMETERS =head2 path The location in the perl hash where the query is stored. See L<Catmandu::Fix/"PATHS"> for more information about paths. =head2 store The name of the store. This store MUST be an implementation of L<Catmandu::Searchable>. There are several ways to refer to a store: * by full package name ( e.g. 'Catmandu::Store::Solr' ) * by short package name ( e.g. 'Solr' ) * by name defined in the Catmandu configuration See L<Catmandu/store-NAME> for more information. Default is 'default'. =head2 bag Name of bag. Default is 'data'. =head2 limit only return $limit number of records. =head2 start offset of records to return =head2 sort sort records before slicing them. This parameter is store specific. =head1 OTHER PARAMETERS other parameters are given to the contructor of the L<Catmandu::Store> e.g. catmandu.yml: store: catalog: package: "Catmandu::Store::Solr" e.g. fix: search_in_store('foo.query', store:'catalog', bag: 'data', url: 'http://localhost:8983/solr/catalog') =head1 EXAMPLES #search in Catmandu->store->bag, and store first 20 results in the foo.query.hits search_in_store('foo.query') #search in Catmandu->store->bag, and store first 20 results in the foo.query.hits search_in_store('foo.query', store:'default') #search in Catmandu->store->bag; limit number of results to 10 search_in_store('foo.query', store:'default', limit: 10) #search in Catmandu->store->bag; limit number of result to 10, starting from 15 search_in_store('foo.query', store:'default', limit: 10, start: 15) #search in Catmandu->store->bag('persons'); sort by year descending, and by title ascending search_in_store('foo.query', store:'default', bag:'persons', sort: 'year desc,title asc') =head1 AUTHORS Nicolas Franck C<< <nicolas.franck at ugent.be> >> =head1 SEE ALSO L<Catmandu::Fix> L<Catmandu::Store> =cut 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/rename.pm������������������������������������������������������������000644 �000765 �000024 �00000002512 13341726377 021015� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::rename; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util qw(is_hash_ref is_array_ref); use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has search => (fix_arg => 1); has replace => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $search = $self->search; my $replace = $self->replace; my $renamer; $renamer = sub { my $data = $_[0]; if (is_hash_ref($data)) { for my $old (keys %$data) { my $new = $old; my $val = $data->{$old}; if ($new =~ s/$search/$replace/g) { delete $data->{$old}; $data->{$new} = $val; } $renamer->($val); } } elsif (is_array_ref($data)) { $renamer->($_) for @$data; } $data; }; my $renamer_var = $fixer->capture($renamer); "${renamer_var}->(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::rename - rename fields with a regex =head1 SYNOPSIS # dotted => {'ns.foo' => 'val', list => {'ns.bar' => 'val'}} rename(dotted, '\.', '-') # dotted => {'ns-foo' => 'val', list => {'ns-bar' => 'val'}} =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/lookup_in_store.pm���������������������������������������������������000644 �000765 �000024 �00000010226 13341726377 022762� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::lookup_in_store; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has store_name => (fix_arg => 1); has bag_name => (fix_opt => 1, init_arg => 'bag'); has default => (fix_opt => 1); has delete => (fix_opt => 1); has store_args => (fix_opt => 'collect'); has store => (is => 'lazy', init_arg => undef); has bag => (is => 'lazy', init_arg => undef); sub _build_store { my ($self) = @_; Catmandu->store($self->store_name, %{$self->store_args}); } sub _build_bag { my ($self) = @_; defined $self->bag_name ? $self->store->bag($self->bag_name) : $self->store->bag; } sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $bag_var = $fixer->capture($self->bag); my $delete = $self->delete; my $default = $self->default; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $val_var = shift; my $val_index = shift; my $bag_val_var = $fixer->generate_var; my $perl = "if (is_value(${val_var}) && defined(my ${bag_val_var} = ${bag_var}->get(${val_var}))) {" . "${val_var} = ${bag_val_var};" . "}"; if ($delete) { $perl .= "else {"; if (defined $val_index) { # wildcard: only delete the value where the lookup failed $perl .= "splice(\@{${var}}, ${val_index}--, 1);"; } else { $perl .= $fixer->emit_delete_key($var, $key); } $perl .= "}"; } elsif (defined $default) { $perl .= "else {" . "${val_var} = " . $fixer->emit_value($default) . ";" . "}"; } $perl; } ); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::lookup_in_store - change the value of a HASH key or ARRAY index by looking up its value in a store =head1 SYNOPSIS # Lookup in an SQLLite database lookup_in_store(foo.bar, DBI, data_source: "dbi:SQLite:path/data.sqlite") # Lookup in a MongoDB database lookup_in_store(foo.bar, MongoDB, database_name: lookups, bag: mydata) # Lookup in a MongoDB database, using the default bag and a default value when nothing found lookup_in_store(foo.bar, MongoDB, database_name: lookups, default: 'default value') # Lookup in a MongoDB database, using the default bag and delete the foo.bar field when nothing found lookup_in_store(foo.bar, MongoDB, database_name: lookups, delete: 1) =head1 DESCRIPTION =head2 lookup_in_store(PATH,STORE[,store_param: store_val, ...][,bag: bag_name][,delete:1][,default:value]) Use the lookup_in_store fix to match a field in a record to the "_id" field in a Catmandu::Store of choice. For instance, if a Catmandu::Store contains these records: --- _id: water fr: l'eau de: wasser en: water nl: water --- _id: tree fr: arbre de: baum en: tree nl: boom And you data contains these fields: --- _id: 001 tag: tree --- _id: 002 tag: water Then, the fix below will lookup a tag in the Catmandu::Store and replace it with the database value: lookup_in_store(tag, DBI, data_source: "dbi:SQLite:path/data.sqlite") The resulting data will contain: --- _id: 001 tag: _id: tree fr: arbre de: baum en: tree nl: boom --- _id: 002 tag: _id: water fr: l'eau de: wasser en: water nl: water =head1 SEE ALSO L<Catmandu::Fix>, L<Catmandu::Store> , L<Catmandu::Fix::add_to_store> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/log.pm���������������������������������������������������������������000644 �000765 �000024 �00000004241 13341726377 020330� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::log; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Inlineable', 'Catmandu::Logger'; has message => (fix_arg => 1); has level => (fix_opt => 1); sub fix { my ($self, $data) = @_; my $id = $data->{_id} // '<undef>'; my $level = $self->level // 'INFO'; if ($level =~ /^(trace|debug|info|notice|warn|error|critical|alert|emergency)$/i) { my $lvl = lc $level; $self->log->$lvl(sprintf "%s : %s\n", $id, $self->message); } $data; } 1; __END__ =pod =head1 NAME Catmandu::Fix::log - Log::Any logger as fix =head1 SYNOPSIS log('test123') log('hello world' , level:WARN) =head1 DESCRIPTION This fix add debugging capabilities to fixes. To use it via the command line you need to add the '-D' option to your script. E.g. echo '{}' | catmandu convert -D to YAML --fix 'log("help!", level:WARN)' By default all logging messages have a level:INFO and will not be displayed unless a log4perl configuration is in place (see below). Using log messages without a log4perl configuration requires a log level of 'WARN', 'ERROR' or 'FATAL'. =head1 CONFIGURATION To have a full control over the log messages, create a 'catmandu.yml' with a 'log4perl' section as shown below: $ cat catmandu.yml log4perl: | log4perl.category.Catmandu::Fix::log=TRACE,OUT log4perl.appender.OUT=Log::Log4perl::Appender::Screen log4perl.appender.OUT.stderr=1 log4perl.appender.OUT.utf8=1 log4perl.appender.OUT.layout=PatternLayout log4perl.appender.OUT.layout.ConversionPattern=%d [%P] - %p %l time=%r : %m%n Using this configuration file all logging messages are written to the screen (stderr output). With this configuration in place use the L<catmandu> command with the -D option to view the logging output: $ echo '{}' | catmandu convert -D to YAML --fix 'log("help!")' > output.yaml 2> log.txt The Unix redirections '>' and '2>' can be used to write the output of the catmandu command and the logging in two separate files. =head1 SEE ALSO L<Catmandu::Fix>, L<Catmandu::Logger> , L<Log::log4perl> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/downcase.pm����������������������������������������������������������000644 �000765 �000024 �00000001020 13341726377 021342� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::downcase; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "${var} = lc(as_utf8(${var})) if is_string(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::downcase - lowercase the value of a field =head1 SYNOPSIS # Lowercase 'foo'. E.g. foo => 'BAR' downcase(foo) # foo => 'bar' =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/index.pm�������������������������������������������������������������000644 �000765 �000024 �00000003247 13341726377 020663� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::index; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; use List::MoreUtils; has path => (fix_arg => 1); has search => (fix_arg => 1); has multiple => (fix_opt => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $search = $fixer->emit_string($self->search); my $multiple = $fixer->emit_string($self->multiple); my $perl = <<EOF; if (${multiple}) { if (is_string(${var})) { ${var} = [ List::MoreUtils::indexes {\$_ eq ${search} } unpack('(A)*',${var}) ] ; } elsif (is_array_ref(${var})) { ${var} = [ List::MoreUtils::indexes {\$_ eq ${search} } \@{${var}} ]; } } else { if (is_string(${var})) { ${var} = index(${var},${search}) } elsif (is_array_ref(${var})) { ${var} = List::MoreUtils::first_index {\$_ eq ${search} } \@{${var}} } } EOF $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::index - Find all positions of a (sub)string in a field =head1 SYNOPSIS # On strings, search the occurence of a character in a string # word => "abcde" index(word,'c') # word => 2 index(word,'x') # word => -1 # word => "abccde" index(word,'c', multiple:1) # word => [2,3] # word => [a,b,bba] , loop over all word(s) with the '*' index(word.*,'a') # word -> [0,-1,2] # On arrays, search the occurence of a word in an array # words => ["foo","bar","foo"] index(words,'bar') # words => 1 index(words,'foo', multiple: 1) # words => [0,2] =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/uri_encode.pm��������������������������������������������������������000644 �000765 �000024 �00000001403 13341726377 021660� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::uri_encode; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use URI::Escape (); use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "${var} = URI::Escape::uri_escape_utf8(${var});"; } 1; __END__ =pod =encoding utf8 =head1 NAME Catmandu::Fix::uri_encode - percent encode a URI =head1 SYNOPSIS # 'café' => '3%A9' uri_encode(place) # 'ὁ τῶν Πέρσων βασιλεύς' => '%E1%BD%81+%CF%84%E1%BF%B6%CE%BD+%CE%A0%CE%AD%CF%81%CF%83%CF%89%CE%BD+%CE%B2%CE%B1%CF%83%CE%B9%CE%BB%CE%B5%CF%8D%CF%82' uri_encode(title) =head1 SEE ALSO L<Catmandu::Fix>, L<Catmandu::Fix::uri_decode>, L<URI::Escape> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/remove_field.pm������������������������������������������������������000644 �000765 �000024 �00000001266 13341726377 022213� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::remove_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_delete_key($var, $key); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::remove_field - remove a field form the data =head1 SYNOPSIS # Remove the foo.bar field remove_field(foo.bar) =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/flatten.pm�����������������������������������������������������������000644 �000765 �000024 �00000001227 13341726377 021205� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::flatten; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "if (is_array_ref(${var})) {" . "${var} = [map { ref \$_ eq 'ARRAY' ? \@\$_ : \$_ } \@{${var}}] " . "while grep ref \$_ eq 'ARRAY', \@{${var}};" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::flatten - flatten a nested array field =head1 SYNOPSIS # {deep => [1, [2, 3], 4, [5, [6, 7]]]} flatten(deep) # {deep => [1, 2, 3, 4, 5, 6, 7]} =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/error.pm�������������������������������������������������������������000644 �000765 �000024 �00000000701 13341726377 020675� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::error; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Inlineable'; has message => (fix_arg => 1); sub fix { my ($self) = @_; die $self->message; } 1; __END__ =pod =head1 NAME Catmandu::Fix::error - die with an error message =head1 SYNOPSIS unless exists(id) error('id missing!') end =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/add.pm���������������������������������������������������������������000644 �000765 �000024 �00000000437 13341726377 020302� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::add; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::add_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::add - shortcut for Catmandu::Fix::add_field =head1 SEE ALSO L<Catmandu::Fix::add_field> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/join_field.pm��������������������������������������������������������000644 �000765 �000024 �00000001411 13341726377 021645� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::join_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has join_char => (fix_arg => 1, default => sub {''}); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $join_char = $fixer->emit_string($self->join_char); "if (is_array_ref(${var})) {" . "${var} = join(${join_char}, grep { is_value(\$_) } \@{${var}});" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::join_field - join the ARRAY values of a field into a string =head1 SYNOPSIS # Join the array values of a field into a string. E.g. foo => [1,2,3] join_field(foo, /) # foo => "1/2/3" =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/retain.pm������������������������������������������������������������000644 �000765 �000024 �00000003524 13341726377 021034� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::retain; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has paths => (fix_arg => 'collect', default => sub {[]}); sub emit { my ($self, $fixer) = @_; my $paths = $self->paths; my $var = $fixer->var; my $tmp_var = $fixer->generate_var; my $perl = $fixer->emit_declare_vars($tmp_var, '{}'); for (@$paths) { my $path = $fixer->split_path($_); my $key = pop @$path; $perl .= $fixer->emit_walk_path( $var, $path, sub { my ($var) = @_; $fixer->emit_get_key( $var, $key, sub { my ($var) = @_; $fixer->emit_create_path( $tmp_var, [@$path, $key], sub { my ($tmp_var) = @_; "${tmp_var} = ${var};"; } ); } ); } ); } # clear data $perl .= $fixer->emit_clear_hash_ref($var); # copy tmp data $perl .= $fixer->emit_foreach_key( $tmp_var, sub { my ($key) = @_; "${var}\->{${key}} = ${tmp_var}\->{${key}};"; } ); # free tmp data $perl .= "undef ${tmp_var};"; $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::retain - delete everything except the paths given =head1 SYNOPSIS # Keep the field _id , name , title retain(_id , name, title) # Delete everything except foo.bar # {bar => { x => 1} , foo => {bar => 1, y => 2}} # to # {foo => {bar => 1}} retain(foo.bar) =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/lookup.pm������������������������������������������������������������000644 �000765 �000024 �00000006332 13341726377 021063� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::lookup; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Importer::CSV; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has file => (fix_arg => 1); has default => (fix_opt => 1); has delete => (fix_opt => 1); has csv_args => (fix_opt => 'collect'); has dictionary => (is => 'lazy', init_arg => undef); sub _build_dictionary { my ($self) = @_; Catmandu::Importer::CSV->new( %{$self->csv_args}, file => $self->file, header => 0, fields => ['key', 'val'], )->reduce( {}, sub { my ($dict, $pair) = @_; $dict->{$pair->{key}} = $pair->{val}; $dict; } ); } sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $dict_var = $fixer->capture($self->dictionary); my $delete = $self->delete; my $default = $self->default; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $val_var = shift; my $val_index = shift; my $dict_val_var = $fixer->generate_var; my $perl = "if (is_value(${val_var}) && defined(my ${dict_val_var} = ${dict_var}->{${val_var}})) {" . "${val_var} = ${dict_val_var};" . "}"; if ($delete) { $perl .= "else {"; if (defined $val_index) { # wildcard: only delete the value where the lookup failed $perl .= "splice(\@{${var}}, ${val_index}--, 1);"; } else { $perl .= $fixer->emit_delete_key($var, $key); } $perl .= "}"; } elsif (defined $default) { $perl .= "else {" . "${val_var} = " . $fixer->emit_value($default) . ";" . "}"; } $perl; } ); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::lookup - change the value of a HASH key or ARRAY index by looking up its value in a dictionary =head1 SYNOPSIS # dictionary.csv # id,planet # 1,sun # 2,earth # 3,moon # values found in the dictionary.csv will be replaced # {foo => {bar => 2}} lookup(foo.bar, dictionary.csv) # {foo => {bar => 'earth'}} # values not found will be kept # {foo => {bar => 232}} lookup(foo.bar, dictionary.csv) # {foo => {bar => 232}} # in case you have a different seperator lookup(foo.bar, dictionary.csv, sep_char: |) # delete value if the lookup fails: lookup(foo.bar, dictionary.csv, delete: 1) # use a default value if the lookup fails: lookup(foo.bar, dictionary.csv, default: 'default value') =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/sort_field.pm��������������������������������������������������������000644 �000765 �000024 �00000004773 13341726377 021713� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::sort_field; use Catmandu::Sane; our $VERSION = '1.10'; use List::MoreUtils (); use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has uniq => (fix_opt => 1); has reverse => (fix_opt => 1); has numeric => (fix_opt => 1); has undef_position => (fix_opt => 1, default => sub {'last'}); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $comparer = $self->numeric ? "<=>" : "cmp"; my $perl = "if (is_array_ref(${var})) {"; #filter out undef my $undef_values = $fixer->generate_var; $perl .= "my ${undef_values} = [ grep { !defined(\$_) } \@{${var}} ];"; $perl .= "${var} = [ grep { defined(\$_) } \@{${var}} ];"; #uniq if ($self->uniq) { $perl .= "${var} = [List::MoreUtils::uniq(\@{${var}})];"; } #sort if ($self->reverse) { $perl .= "${var} = [sort { \$b $comparer \$a } \@{${var}}];"; } else { $perl .= "${var} = [sort { \$a $comparer \$b } \@{${var}}];"; } #insert undef at the end if ($self->undef_position eq "last") { if ($self->uniq) { $perl .= "push \@{${var}},undef if scalar(\@{${undef_values}});"; } else { $perl .= "push \@{${var}},\@{${undef_values}};"; } } #insert undef at the beginning elsif ($self->undef_position eq "first") { if ($self->uniq) { $perl .= "unshift \@{${var}},undef if scalar(\@{${undef_values}});"; } else { $perl .= "unshift \@{${var}},\@{${undef_values}};"; } } #leave undef out of the list $perl .= "}"; $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::sort_field - sort the values of an array =head1 SYNOPSIS # e.g. tags => ["foo", "bar","bar"] sort_field(tags) # tags => ["bar","bar","foo"] sort_field(tags, uniq: 1) # tags => ["bar","foo"] sort_field(tags, uniq: 1, reverse: 1) # tags => ["foo","bar"] # e.g. nums => [ 100, 1 , 10] sort_field(nums, numeric: 1) # nums => [ 1, 10, 100] #push undefined values to the end of the list (default) #beware: reverse has no effect on this! sort_field(tags,undef_position: last) #push undefined values to the beginning of the list #beware: reverse has no effect on this! sort_field(tags,undef_position: first) #remove undefined values from the list sort_field(tags,undef_position: delete) =head1 SEE ALSO L<Catmandu::Fix> =cut �����Catmandu-1.10/lib/Catmandu/Fix/remove.pm������������������������������������������������������������000644 �000765 �000024 �00000000456 13341726377 021050� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::remove; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::remove_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::remove - shortcut for Catmandu::Fix::remove_field =head1 SEE ALSO L<Catmandu::Fix::remove_field> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/upcase.pm������������������������������������������������������������000644 �000765 �000024 �00000001027 13341726377 021026� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::upcase; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "${var} = uc(as_utf8(${var})) if is_string(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::upcase - uppercase the value of a field =head1 SYNOPSIS # Uppercase the value of 'foo'. E.g. foo => 'bar' upcase(foo) # foo => 'BAR' =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/sort.pm��������������������������������������������������������������000644 �000765 �000024 �00000000444 13341726377 020537� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::sort; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::sort_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::sort - shortcut for Catmandu::Fix::sort_field =head1 SEE ALSO L<Catmandu::Fix::sort_field> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/add_field.pm���������������������������������������������������������000644 �000765 �000024 �00000002215 13341726377 021441� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::add_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has value => (fix_arg => 1, default => sub {undef;}); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $value = defined $self->value ? $fixer->emit_value($self->value) : 'undef'; $fixer->emit_create_path( $fixer->var, $path, sub { my $var = shift; "${var} = ${value};"; } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::add_field - add or change the value of a HASH key or ARRAY index =head1 DESCRIPTION Contrary to C<set_field>, this will create the intermediate structures if they are missing. =head1 SYNOPSIS # Add a new field 'foo' with value 2 add_field(foo, 2) # Change the value of 'foo' to 'bar 123' add_field(foo, 'bar 123') # Create a deeply nested key add_field(my.deep.nested.key, hi) # If the second argument is omitted the field has a null value add_field(foo) =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/set_field.pm���������������������������������������������������������000644 �000765 �000024 �00000002225 13341726377 021505� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::set_field; use Catmandu::Sane; our $VERSION = '1.10'; use Clone qw(clone); use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has value => (fix_arg => 1, default => sub {undef;}); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $value = defined $self->value ? $fixer->emit_value($self->value) : 'undef'; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_set_key($var, $key, $value); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::set_field - add or change the value of a HASH key or ARRAY index =head1 DESCRIPTION Contrary to C<add_field>, this will not create the intermediate structures if they are missing. =head1 SYNOPSIS # Change the value of 'foo' to 'bar 123' set_field(foo, 'bar 123') # Change a deeply nested key set_field(my.deep.nested.key, hi) # If the second argument is omitted the field has a null value add_field(foo) =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/reverse.pm�����������������������������������������������������������000644 �000765 �000024 �00000001334 13341726377 021222� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::reverse; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; "if (is_array_ref(${var})) {" . "${var} = [reverse(\@{${var}})];" . "}" . "elsif (is_string(${var})) {" . "${var} = scalar(reverse(${var}));" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::reverse - reverse a string or an array =head1 SYNOPSIS # {author => "tom jones"} reverse(author) # {author => "senoj mot"} # {numbers => [1,14,2]} reverse(numbers) # {numbers => [2,14,1]} =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/set_hash.pm����������������������������������������������������������000644 �000765 �000024 �00000002066 13341726377 021350� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::set_hash; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has values => (fix_arg => 'collect', default => sub {[]}); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $values = $self->values; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_set_key($var, $key, "{" . join(',', map {$fixer->emit_value($_)} @$values) . "}"); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::set_hash - add or change the value of a HASH key or ARRAY index to a hash =head1 DESCRIPTION Contrary to C<add_field>, this will not create the intermediate structures if they are missing. =head1 SYNOPSIS # Change the value of 'foo' to an empty hash set_hash(foo) # Or a hash with initial contents set_hash(a: b, c: d) =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/SimpleGetValue.pm����������������������������������������������������000644 �000765 �000024 �00000004054 13341726377 022437� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::SimpleGetValue; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; with 'Catmandu::Fix::Base'; requires 'path'; requires 'emit_value'; sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $var = shift; $self->emit_value($var, $fixer); } ); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::SimpleGetValue - helper class for creating emit Fix-es =head1 SYNOPSIS # Create a Rot13 encrypter package Catmandu::Fix::rot13; use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; "${var} =~ y/A-Za-z/N-ZA-Mn-za-m/ if is_string(${var});"; } # Now you can use this Fix in your scripts rot13(my.deep.nested.path) rot13(authors.*) =head1 DESCRIPTION Catmandu::Fix::SimpleGetValue eases the creation of emit Fixes that transform values on a JSON path. A Fix package implementing Catmandu::Fix::SimpleGetValue needs to implement a method C<emit_value> which accepts the variable name on which the Fix operates and an instance of Catmandu::Fixer. The method should return a string containing the Perl code to transform values on a JSON path. It is not possible to inspect in an emit Fix the actual value on which this Fix runs: $var contains a variable name not the actual value. The real values are only available at run time. Emit Fixes are used to compile Perl code into Fix modules which do the actual transformation. For more examples look at the source code of: =over 4 =item Catmandu::Fix::append; =item Catmandu::Fix::replace_all =item Catmandu::Fix::upcase =back =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/join.pm��������������������������������������������������������������000644 �000765 �000024 �00000000444 13341726377 020507� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::join; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::join_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::join - shortcut for Catmandu::Fix::join_field =head1 SEE ALSO L<Catmandu::Fix::join_field> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Inlineable.pm��������������������������������������������������������000644 �000765 �000024 �00000004241 13341726377 021611� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Inlineable; use Catmandu::Sane; our $VERSION = '1.10'; use Clone qw(clone); use Moo::Role; use namespace::clean; requires 'fix'; sub import { my $target = caller; my ($pkg, %opts) = @_; if (my $sym = $opts{as}) { $opts{cache} //= 1; my $sub = sub { my $data = shift; my $fixer; state $cache = {}; if ($opts{cache}) { my $key = join('--', @_); $fixer = $cache->{$key} ||= do { my $f = $pkg->new(@_); # memoize instance of Fix.pm if it's an emitting fix $f = $f->fixer if $f->can('fixer'); $f; }; } $fixer ||= $pkg->new(@_); if ($opts{clone}) { $data = clone($data); } $fixer->fix($data); }; no strict 'refs'; *{"${target}::$sym"} = $sub; } } 1; __END__ =pod =head1 NAME Catmandu::Fix::Inlineable - Role for all Catmandu fixes that can be inlined =head1 SYNOPSIS package Catmandu::Fix::my_fix1; use Catmandu::Sane; use Moo; with 'Catmandu::Fix::Inlineable'; sub fix { my ($self, $data) = @_; ....FIXER GENERATING CODE.... $data } package Catmandu::Fix::my_fix2; use Catmandu::Sane; use Moo; # Catmandu::Fix::Base automatically is Inlineable with 'Catmandu::Fix::Base'; sub emit { my ($self, $fixer) = @_; ....FIXER GENERATING CODE.... } package main; use Catmandu::Fix::my_fix1 as => 'my_fix1'; # disabling caching may be desirable with fixes that have side effects like # writing to a file, the downside is that a new instance of the fix will be # created with each invocation use Catmandu::Fix::my_fix2 as => 'my_fix2', cache => 0; my $data = {}; $data = my_fix1($data); $data = my_fix2($data); =head1 SEE ALSO For more information how to create fixes read the following two blog posts: http://librecat.org/catmandu/2014/03/14/create-a-fixer.html http://librecat.org/catmandu/2014/03/26/creating-a-fixer-2.html =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/random.pm������������������������������������������������������������000644 �000765 �000024 �00000001534 13341726377 021031� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::random; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has max => (fix_arg => 1); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $max = $fixer->emit_value($self->max); $fixer->emit_create_path( $fixer->var, $path, sub { my $var = shift; "${var} = int(rand(${max}));"; } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::random - create an random number in a field =head1 SYNOPSIS # Add a new field 'foo' with a random value between 0 and 9 random(foo, 10) # Add a new field 'my.random.number' with a random value 0 or 1 random(my.random.number,2) =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/vacuum.pm������������������������������������������������������������000644 �000765 �000024 �00000004215 13341726377 021050� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::vacuum; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_value is_hash_ref is_array_ref); use Scalar::Util qw(refaddr); use Moo; use namespace::clean; with 'Catmandu::Fix::Inlineable'; sub _visit { my ($self, $v) = @_; (is_hash_ref($v) && %$v) || (is_array_ref($v) && @$v); } sub _empty { my ($self, $v) = @_; !defined($v) || (is_value($v) && $v !~ /\S/) || (is_hash_ref($v) && !%$v) || (is_array_ref($v) && !@$v); } sub fix { my ($self, $data) = @_; return $data unless $self->_visit($data); my @stack = ($data); my %seen; while (@stack) { my $d = pop @stack; my $id = refaddr($d); if ($seen{$id}) { if (is_hash_ref($d)) { for my $k (keys %$d) { delete $d->{$k} if $self->_empty($d->{$k}); } } elsif (is_array_ref($d)) { my @vals = grep {!$self->_empty($_)} @$d; splice(@$d, 0, @$d, @vals); } } else { $seen{$id} = 1; push @stack, $d; if (is_hash_ref($d)) { for my $k (keys %$d) { my $v = $d->{$k}; if ($self->_empty($v)) { delete $d->{$k}; } elsif ($self->_visit($v)) { push @stack, $v; } } } elsif (is_array_ref($d)) { my @vals; for my $v (@$d) { next if $self->_empty($v); push @vals, $v; push @stack, $v if $self->_visit($v); } splice @$d, 0, @$d, @vals; } } } $data; } 1; __END__ =pod =head1 NAME Catmandu::Fix::vacuum - delete all empty fields from your data =head1 SYNOPSIS # Delete all the empty fields # # input: # # foo: '' # bar: [] # relations: {} # test: 123 # vacuum() # output: # # test: 123 # =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Namespace/�����������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 021104� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/trim.pm��������������������������������������������������������������000644 �000765 �000024 �00000002440 13341726377 020521� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::trim; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Unicode::Normalize; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has mode => (fix_arg => 1, default => sub {'whitespace'}); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; my $perl = "if (is_string(${var})) {"; if ($self->mode eq 'whitespace') { $perl .= "${var} = trim(${var});"; } elsif ($self->mode eq 'nonword') { $perl .= $var . ' =~ s/^\W+//;'; $perl .= $var . ' =~ s/\W+$//;'; } elsif ($self->mode eq 'diacritics') { $perl .= "${var} = Unicode::Normalize::NFKD(${var});"; $perl .= "${var} =~ s/\\p{NonspacingMark}//g;"; } $perl .= "}"; $perl; } 1; __END__ =pod =encoding utf-8 =head1 NAME Catmandu::Fix::trim - trim leading and ending junk from the value of a field =head1 SYNOPSIS # the default mode trims whitespace # e.g. foo => ' abc '; trim(foo) # foo => 'abc'; trim(foo, whitespace) # foo => 'abc'; # trim non-word characters # e.g. foo => ' abc / : .'; trim(foo, nonword) # foo => 'abc'; # trim accents # e.g. foo => 'français' ; trim(foo,diacritics) # foo => 'francais' =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/perlcode.pm����������������������������������������������������������000644 �000765 �000024 �00000003171 13341726377 021345� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::perlcode; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; our %CACHE; has file => (fix_arg => 1); has code => ( is => 'lazy', builder => sub { my $file = $_[0]->file; $CACHE{$file} //= do $_[0]->file; } ); sub emit { my ($self, $fixer) = @_; my $code = $fixer->capture($self->code); my $var = $fixer->var; my $reject = $fixer->capture({}); "if (${code}->(${var},${reject}) == ${reject}) {" . $fixer->emit_reject . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::perlcode - execute Perl code as fix function =head1 DESCRIPTION Use this fix in the L<Catmandu> fix language to make use of a Perl script: perlcode(myscript.pl) The script (here C<myscript.pl>) must return a code reference: sub { my $data = shift; ... return $data; } When not using the fix language this my $fixer = Catmandu::Fix->new( fixes => [ do 'myscript.pl' ] ); $fixer->fix( $item ); is roughly equivalent to: my $code = do 'myscript.pl'; $item = $code->( $item ) All scripts are cached based on their filename, so using this fix multiple times will only load each given script once. The code reference gets passed a second value to reject selected items such as possible with see L<Catmandu::Fix::reject>: sub { my ($data, $reject) = @_; return rejection_criteria($data) ? $reject : $data; } To indicate the end processing, return C<undef>. =head1 SEE ALSO L<Catmandu::Fix::code>, L<Catmandu::Fix::cmd> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/format.pm������������������������������������������������������������000644 �000765 �000024 �00000002771 13341726377 021045� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::format; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has spec => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $spec = $fixer->emit_string($self->spec); "if (is_array_ref(${var})) {" . "${var} = sprintf(${spec},\@{${var}});" . "} elsif (is_hash_ref(${var})) {" . "${var} = sprintf(${spec},\%{${var}});" . "} elsif (is_string(${var})) {" . "${var} = sprintf(${spec},${var});" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::format - replace the value with a formatted (sprintf-like) version =head1 SYNOPSIS # e.g. number: 41 format(number,"%-10.10d") # number => "0000000041" # e.g. numbers: # - 41 # - 15 format(number,"%-10.10d %-5.5d") # numbers => "0000000041 00015" # e.g. hash: # name: Albert format(name,"%-10s: %s") # hash: "name : Albert" # e.g. array: # - 1 format(array,"%d %d %d") # Fails! The array contains only one value, but you request 3 values # Test first if the array contains 3 values if exists(array.2) format(array,"%d %d %d") end =head1 DESCRIPTION Create a string formatted by the usual printf conventions of the C library function sprintf. See L<http://perldoc.perl.org/functions/sprintf.html> for a complete description. =head1 SEE ALSO L<Catmandu::Fix> , L<sprintf> =cut �������Catmandu-1.10/lib/Catmandu/Fix/copy.pm��������������������������������������������������������������000644 �000765 �000024 �00000000444 13341726377 020522� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::copy; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::copy_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::copy - shortcut for Catmandu::Fix::copy_field =head1 SEE ALSO L<Catmandu::Fix::copy_field> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/code.pm��������������������������������������������������������������000644 �000765 �000024 �00000001352 13341726377 020461� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::code; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(check_code_ref); use Moo; with 'Catmandu::Fix::Inlineable'; has code => ( is => 'ro', default => sub { return sub { } }, isa => \&check_code_ref, ); around BUILDARGS => sub { my ($orig, $class, $code) = @_; $orig->($class, code => $code); }; sub fix { my ($self, $data) = @_; $self->code->($data); } 1; __END__ =pod =head1 NAME Catmandu::Fix::code - run arbitrary code as fix =head1 SYNOPSIS my $fix = Catmandu::Fix::code->new( sub { my ($data) = @_; # ...do something return $data; }); =head1 SEE ALSO L<Catmandu::Fix::perlcode>, L<Catmandu::Fix::cmd> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/compact.pm�����������������������������������������������������������000644 �000765 �000024 �00000001600 13341726377 021171� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::compact; use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $var = shift; "if (is_array_ref(${var})) {" . "${var} = [grep defined, \@{${var}}];" . "}"; } ); } ); } =head1 NAME Catmandu::Fix::compact - remove undefined values from an array =head1 SYNOPSIS # list => [undef,"hello",undef,"world"] compact(list) # list => ["Hello","world"] =head1 SEE ALSO L<Catmandu::Fix> =cut 1; ��������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/collapse.pm����������������������������������������������������������000644 �000765 �000024 �00000001653 13341726377 021355� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::collapse; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Expander (); use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Inlineable'; has sep => (fix_opt => 1, default => sub {undef}); sub fix { my ($self, $data) = @_; my $ref = Catmandu::Expander->collapse_hash($data); if (defined(my $char = $self->sep)) { my $new_ref = {}; for my $key (keys %$ref) { my $val = $ref->{$key}; $key =~ s{\.}{$char}g; $new_ref->{$key} = $val; } $ref = $new_ref; } $ref; } 1; __END__ =pod =head1 NAME Catmandu::Fix::collapse - convert nested data into a flat hash using the TT2 dot convention =head1 SYNOPSIS # Collapse the data into a flat hash collapse() # Collaps the data into a flat hash with '-' as path seperator collapse(-sep => '-') =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/split.pm�������������������������������������������������������������000644 �000765 �000024 �00000000451 13341726377 020701� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::split; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::split_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::split - shortcut for Catmandu::Fix::split_field =head1 SEE ALSO L<Catmandu::Fix::split_field> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/set_array.pm���������������������������������������������������������000644 �000765 �000024 �00000002107 13341726377 021537� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::set_array; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has values => (fix_arg => 'collect', default => sub {[]}); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $values = $self->values; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_set_key($var, $key, "[" . join(',', map {$fixer->emit_value($_)} @$values) . "]"); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::set_array - add or change the value of a HASH key or ARRAY index to an array =head1 DESCRIPTION Contrary to C<add_field>, this will not create the intermediate structures if they are missing. =head1 SYNOPSIS # Change the value of 'foo' to an empty array set_array(foo) # Or an array with initial contents set_array(foo, "a", "b", "c") =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/prepend.pm�����������������������������������������������������������000644 �000765 �000024 �00000001214 13341726377 021201� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::prepend; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has value => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $value = $fixer->emit_string($self->value); "${var} = join('', ${value}, ${var}) if is_value(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::prepend - add a prefix to the value of a field =head1 SYNOPSIS # prepend to a value. e.g. {name => 'smith'} prepend(name, 'mr. ') # {name => 'mr. smith'} =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition.pm���������������������������������������������������������000644 �000765 �000024 �00000004553 13341726377 021503� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; use Catmandu::Fix::reject; with 'Catmandu::Fix::Base'; has pass_fixes => (is => 'rw', default => sub {[]}); has fail_fixes => (is => 'rw', default => sub {[]}); sub import { my $target = caller; my ($fix, %opts) = @_; if (my $sym = $opts{as}) { my $sub = sub { my $data = shift; if ($opts{clone}) { $data = Clone::clone($data); } my $cond = $fix->new(@_); $cond->fail_fixes([Catmandu::Fix::reject->new]); !!$cond->fix($data); }; no strict 'refs'; *{"${target}::$sym"} = $sub; } } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition - Role for all Catmandu::Fix conditionals =head1 SYNOPSIS if <Catmandu::Fix::Condition instance> <pass_fixes> else <fail_fixes> end =head1 DESCRIPTION All L<Catmandu::Fix> conditions need to implement Catmandu::Fix::Condition. This subclass of L<Catmandu::Fix::Base> provides a list of fixes that need to be executed when a conditional matches (pass_fixes) and conditional that need to be executed when a conditional fails (fail_fixes). Conditions can be used as inline fixes as well: use Catmandu::Fix::Condition::exists as => 'has_field'; my $item = { foo => { bar => 1 } }; has_field($item, 'foo.bar'); # true has_field($item, 'doz'); # false =head1 EXAMPLES Catmandu core comes with the following conditions: =over =item L<all_equal|Catmandu::Fix::Condition::all_equal> =item L<all_match|Catmandu::Fix::Condition::all_match> =item L<any_equal|Catmandu::Fix::Condition::any_equal> =item L<any_match|Catmandu::Fix::Condition::any_match> =item L<exists|Catmandu::Fix::Condition::exists> =item L<greater_than|Catmandu::Fix::Condition::greater_than> =item L<in|Catmandu::Fix::Condition::in> =item L<is_array|Catmandu::Fix::Condition::is_array> =item L<is_false|Catmandu::Fix::Condition::is_false> =item L<is_null|Catmandu::Fix::Condition::is_null> =item L<is_number|Catmandu::Fix::Condition::is_number> =item L<is_object|Catmandu::Fix::Condition::is_object> =item L<is_string|Catmandu::Fix::Condition::is_string> =item L<is_true|Catmandu::Fix::Condition::is_true> =item L<less_than|Catmandu::Fix::Condition::less_than> =back =cut �����������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/substring.pm���������������������������������������������������������000644 �000765 �000024 �00000002046 13341726377 021570� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::substring; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has args => (fix_arg => 'collect'); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $args = $self->args; my $str_args = @$args > 1 ? join(", ", @$args[0, 1]) : $args->[0]; if (@$args < 3) { return "eval { ${var} = substr(as_utf8(${var}), ${str_args}) } if is_value(${var});"; } my $replace = $fixer->emit_string($args->[2]); "if (is_value(${var})) {" . "utf8::upgrade(${var});" . "eval { substr(${var}, ${str_args}) = ${replace} };" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::substring - extract a substring out of the value of a field =head1 SYNOPSIS # Extract a substring out of the value of a field # - Extact from 'initials' the characters at offset 0 (first character) with a length 3 substring(initials, 0, 3) =head1 SEE ALSO L<Catmandu::Fix>, substr =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/split_field.pm�������������������������������������������������������000644 �000765 �000024 �00000001320 13341726377 022040� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::split_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has split_char => (fix_arg => 1, default => sub {qr'\s+'}); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $split_char = $fixer->emit_string($self->split_char); "${var} = [split ${split_char}, ${var}] if is_value(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::split_field - split a string value in a field into an ARRAY =head1 SYNOPSIS # Split the 'foo' value into an array. E.g. foo => '1:2:3' split_field(foo, ':') # foo => [1,2,3] =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/validate.pm����������������������������������������������������������000644 �000765 �000024 �00000003673 13341726377 021350� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::validate; use Catmandu::Sane; our $VERSION = '1.07'; use Moo; use Catmandu::Util qw(require_package); use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has name => (fix_arg => 1); has error_field => (fix_opt => 1, default => 'errors'); has validator_opts => (fix_opt => 'collect'); has validator => (is => 'lazy', init_arg => undef); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $validator_var = $fixer->capture($self->validator); my $errors_var = $fixer->generate_var; my $error_field = $self->error_field ? $fixer->split_path($self->error_field) : undef; "unless (${validator_var}->is_valid(${var})) {" . $fixer->emit_declare_vars($errors_var) . "${errors_var} = ${validator_var}->last_errors;" . $fixer->emit_create_path( $fixer->var, $error_field, sub { my $var = shift; "${var} = ${errors_var}"; } ) . "}"; } sub _build_validator { my ($self) = @_; require_package($self->name, 'Catmandu::Validator') ->new($self->validator_opts); } 1; __END__ =pod =head1 NAME Catmandu::Fix::validate - validate data and keep errors =head1 SYNOPSIS # Check author field against a JSON Schema validate('author', JSONSchema, schema: 'my/schema.json') if exists(errors) ... # do something end # Check item against a custom validator, store in errors in 'warnings' validate('author', MyValidatorClass, error_field: warnings) =head1 DESCRIPTION This L<Catmandu::Fix> validates data with a L<Catmandu::Validator> and stores errors in field C<errors> for further inspection. =head1 CONFIGURATION =over =item error_field Path where to store errors. Set to C<errors> by default. =back Additional options are passed to the validator. =head1 SEE ALSO L<Catmandu::Fix::Condition::valid> =cut ���������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/from_json.pm���������������������������������������������������������000644 �000765 �000024 �00000001230 13341726377 021536� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::from_json; use Catmandu::Sane; our $VERSION = '1.10'; use Cpanel::JSON::XS (); use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $json_var = $fixer->capture( Cpanel::JSON::XS->new->utf8(0)->pretty(0)->allow_nonref(1)); "if (is_string(${var})) {" . "${var} = ${json_var}->decode(${var});" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::from_json - replace a json field with the parsed value =head1 SYNOPSIS from_json(my.field) =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/�����������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 021136� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/assoc.pm�������������������������������������������������������������000644 �000765 �000024 �00000004266 13341726377 020666� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::assoc; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has keys_path => (fix_arg => 1); has vals_path => (fix_arg => 1); with 'Catmandu::Fix::Base'; sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $keys_path = $fixer->split_path($self->keys_path); my $vals_path = $fixer->split_path($self->vals_path); my $keys_key = pop @$keys_path; my $vals_key = pop @$vals_path; my $keys_var = $fixer->generate_var; my $vals_var = $fixer->generate_var; my $perl = $fixer->emit_declare_vars([$keys_var, $vals_var], ['[]', '[]']); $perl .= $fixer->emit_walk_path( $fixer->var, $keys_path, sub { my $var = shift; $fixer->emit_get_key( $var, $keys_key, sub { my $var = shift; "push(\@{${keys_var}}, ${var}) if is_value(${var});"; } ); } ); $perl .= "if (\@{${keys_var}}) {" . $fixer->emit_walk_path( $fixer->var, $vals_path, sub { my $var = shift; $fixer->emit_get_key( $var, $vals_key, sub { my $var = shift; "push(\@{${vals_var}}, ${var});"; } ); } ) . $fixer->emit_create_path( $fixer->var, $path, sub { my $var = shift; "if (is_hash_ref(${var} //= {})) {" . "while (\@{${keys_var}} && \@{${vals_var}}) {" . "${var}\->{shift(\@{${keys_var}})} = shift(\@{${vals_var}});" . "}" . "}"; } ) . "}"; $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::assoc - associate two values as a hash key and value =head1 SYNOPSIS # {pairs => [{key => 'year', val => 2009}, {key => 'subject', val => 'Perl'}]} assoc(fields, pairs.*.key, pairs.*.val) # {fields => {subject => 'Perl', year => 2009}, pairs => [...]} =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/uniq.pm��������������������������������������������������������������000644 �000765 �000024 �00000001221 13341726377 020516� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::uniq; use Catmandu::Sane; our $VERSION = '1.10'; use List::MoreUtils (); use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; "if (is_array_ref(${var})) {" . "no warnings 'uninitialized';" . "${var} = [List::MoreUtils::uniq(\@{${var}})];" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::uniq - strip duplicate values from an array =head1 SYNOPSIS # {tags => ["foo", "bar", "bar", "foo"]} uniq(tags) # {tags => ["foo", "bar"]} =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Parser.pm������������������������������������������������������������000644 �000765 �000024 �00000024051 13341726377 021004� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Parser; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(check_value check_string is_array_ref is_instance is_able require_package); use Module::Info; use Moo; use namespace::clean; extends 'Parser::MGC'; has env => (is => 'lazy'); has default_ns => (is => 'lazy'); sub FOREIGNBUILDARGS { my ($class, $opts) = @_; $opts->{toplevel} = 'parse_statements'; %$opts; } sub _build_default_ns { my ($self) = @_; $self->_build_ns('perl:catmandu.fix'); } sub _build_env { my ($self) = @_; $self->init_env([]); } sub init_env { my ($self, $envs) = @_; splice(@$envs, 0, @$envs, {ns => {'' => $self->default_ns}}); $envs; } #sub env_get { #my ($self, $key, $default) = @_; #my $envs = $self->env_stack; #for my $env (@$envs) { #return $env->{$key} if exists $env->{$key}; #} #$default; #} #sub env_add { #my ($self, $key, $val) = @_; #my $env = $self->env_stack->[-1]; #Catmandu::FixParseError->throw("Already defined: $key") #if exists $env->{$key}; #$env->{$key} = $val; #} sub get_ns { my ($self, $name) = @_; my $envs = $self->env; for my $env (@$envs) { return $env->{ns}{$name} if exists $env->{ns} && exists $env->{ns}{$name}; } return; } sub add_ns { my ($self, $name, $ns) = @_; my $env = $self->env->[-1]; ($env->{ns} //= {})->{$name} = $ns; } #sub namespace_for { #my ($self, $name, $sub_ns) = @_; #my $envs = $self->env_stack; #for my $env (@$envs) { #my $nss = $env->{_ns} // next; #for my $ns (@$nss) { #$ns .= "::$sub_ns" if defined $sub_ns; #return $ns if Module::Info->new_from_module("${ns}::${name}"); #} #} #my $ns = $self->default_namespace; #$ns .= "::$sub_ns" if defined $sub_ns; #$ns; #} sub scope { my ($self, $block) = @_; my $envs = $self->env; push @$envs, +{}; my $res = $block->(); # TODO ensure env gets popped after exception pop @$envs; $res; } sub parse { my ($self, $source) = @_; check_value($source); try { $self->from_string($source); } catch { my $err = $_; if (is_instance($err, 'Catmandu::Error')) { $err->set_source($source) if is_able($err, 'set_source'); $err->throw; } Catmandu::FixParseError->throw(message => $err, source => $source,); } finally { $self->init_env; }; } sub pattern_comment { qr/#[^\n]*/; } sub parse_statements { my ($self) = @_; my $statements = $self->scope(sub {$self->sequence_of('parse_statement')}); [grep defined, map {is_array_ref($_) ? @$_ : $_} @$statements]; } sub parse_statement { my ($self) = @_; my $statement = $self->any_of( 'parse_block', 'parse_use', 'parse_filter', 'parse_if', 'parse_unless', 'parse_bind', 'parse_fix', ); # support deprecated separator $self->maybe_expect(';'); $statement; } sub parse_block { my ($self) = @_; $self->token_kw('block'); my $statements = $self->parse_statements; $self->expect('end'); $statements; } sub parse_use { my ($self) = @_; $self->token_kw('use'); my $args = $self->parse_arguments; my $name = check_string(shift(@$args)); my $ns = $self->_build_ns($name); my %opts = @$args; $self->add_ns($opts{as} // $name, $ns); return; } sub parse_filter { my ($self) = @_; my $type = $self->token_kw('select', 'reject'); my $name = $self->parse_name; my $args = $self->parse_arguments; # support deprecated separator $self->maybe_expect(';'); $self->_build_condition( $name, $args, $type eq 'reject', require_package('Catmandu::Fix::reject')->new ); } sub parse_if { my ($self) = @_; $self->token_kw('if'); my $name = $self->parse_name; my $args = $self->parse_arguments; # support deprecated separator $self->maybe_expect(';'); my $cond = $self->_build_condition($name, $args, 1, $self->parse_statements); my $elsif_conditions = $self->sequence_of( sub { $self->token_kw('elsif'); my $name = $self->parse_name; my $args = $self->parse_arguments; # support deprecated separator $self->maybe_expect(';'); $self->_build_condition($name, $args, 1, $self->parse_statements); } ); my $else_fixes = $self->maybe( sub { $self->expect('else'); $self->parse_statements; } ); $self->expect('end'); # support deprecated separator $self->maybe_expect(';'); my $last_cond = $cond; if ($elsif_conditions) { for my $c (@$elsif_conditions) { $last_cond->fail_fixes([$c]); $last_cond = $c; } } if ($else_fixes) { $last_cond->fail_fixes($else_fixes); } $cond; } sub parse_unless { my ($self) = @_; $self->token_kw('unless'); my $name = $self->parse_name; my $args = $self->parse_arguments; # support deprecated separator $self->maybe_expect(';'); my $cond = $self->_build_condition($name, $args, 0, $self->parse_statements); $self->expect('end'); # support deprecated separator $self->maybe_expect(';'); $cond; } sub parse_bind { my ($self) = @_; my $type = $self->token_kw('bind', 'do', 'doset'); my $name = $self->parse_name; my $args = $self->parse_arguments; # support deprecated separator $self->maybe_expect(';'); my $bind = $self->_build_bind($name, $args, $type eq 'doset', $self->parse_statements); $self->expect('end'); # support deprecated separator $self->maybe_expect(';'); $bind; } sub parse_fix { my ($self) = @_; my $lft_name = $self->parse_name; my $lft_args = $self->parse_arguments; my $bool = $self->maybe( sub { $self->any_of( sub {$self->expect(qr/and|&&/); 1}, sub {$self->expect(qr/or|\|\|/); 0}, ); } ); my $fix; if (defined $bool) { $self->commit; my $rgt_name = $self->parse_name; my $rgt_args = $self->parse_arguments; $fix = $self->_build_condition($lft_name, $lft_args, $bool, $self->_build_fix($rgt_name, $rgt_args)); } else { $fix = $self->_build_fix($lft_name, $lft_args); } # support deprecated separator $self->maybe_expect(';'); $fix; } sub parse_name { my ($self) = @_; $self->generic_token( name => qr/(?:[a-z][_0-9a-zA-Z]*\.)*[a-z][_0-9a-zA-Z]*/); } sub parse_arguments { my ($self) = @_; $self->expect('('); my $args = $self->list_of(qr/[,:]|=>/, 'parse_value'); $self->expect(')'); $args; } sub parse_value { my ($self) = @_; $self->any_of('parse_double_quoted_string', 'parse_single_quoted_string', 'parse_bare_string',); } sub parse_bare_string { my ($self) = @_; $self->generic_token(bare_string => qr/[^\s\\,;:=>()"']+/); } sub parse_single_quoted_string { my ($self) = @_; my $str = $self->generic_token(string => qr/'(?:\\?+.)*?'/); $str = substr($str, 1, length($str) - 2); $str =~ s{\\'}{'}gxms; $str; } sub parse_double_quoted_string { my ($self) = @_; my $str = $self->generic_token(string => qr/"(?:\\?+.)*?"/); $str = substr($str, 1, length($str) - 2); if (index($str, '\\') != -1) { $str =~ s/\\u([0-9A-Fa-f]{4})/chr(hex($1))/egxms; $str =~ s/\\n/\n/gxms; $str =~ s/\\r/\r/gxms; $str =~ s/\\b/\b/gxms; $str =~ s/\\f/\f/gxms; $str =~ s/\\t/\t/gxms; $str =~ s/\\\\/\\/gxms; $str =~ s{\\/}{/}gxms; $str =~ s{\\"}{"}gxms; } $str; } sub _build_condition { my ($self, $name, $args, $pass, $fixes) = @_; $fixes = [$fixes] unless is_array_ref($fixes); my $cond = $self->_build_fix($name, $args, 'Condition'); if ($pass) { $cond->pass_fixes($fixes); } else { $cond->fail_fixes($fixes); } $cond; } sub _build_bind { my ($self, $name, $args, $return, $fixes) = @_; $fixes = [$fixes] unless is_array_ref($fixes); my $bind = $self->_build_fix($name, $args, 'Bind'); $bind->__return__($return); $bind->__fixes__($fixes); $bind; } sub _build_fix { my ($self, $name, $args, $type) = @_; my @name_parts = split(/\./, $name); my $fix_name = pop @name_parts; my $ns_name = join('.', @name_parts); my $ns = $self->get_ns($ns_name) // Catmandu::FixParseError->throw("Unknown namespace: $ns_name"); $ns->load($fix_name, $args, $type); } sub _build_ns { my ($self, $name) = @_; my @name_parts = split(/:/, $name); $name = pop @name_parts; my $pkg_name = $name_parts[0] // 'perl'; my $pkg = require_package($pkg_name, 'Catmandu::Fix::Namespace'); $pkg->new(name => $name); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Parser - the parser of the Catmandu::Fix language =head1 SYNOPSIS use Catmandu::Sane; use Catmandu::Fix::Parser; use Catmandu::Fix; use Data::Dumper; my $parser = Catmandu::Fix::Parser->new; my $fixes; try { $fixes = $parser->parse(<<EOF); add_field(test,123) EOF } catch { printf "[%s]\nscript:\n%s\nerror: %s\n" , ref($_) , $_->source , $_->message; }; my $fixer = Catmandu::Fix->new(fixes => $fixes); print Dumper($fixer->fix({})); =head1 DESCRIPTION Programmers are discouraged to use the Catmandu::Parser directly in code but use the Catmandu package that provides the same functionality: use Catmandu; my $fixer = Catmandu->fixer(<<EOF); add_field(test,123) EOF print Dumper($fixer->fix({})); =head1 METHODS =head2 new() Create a new Catmandu::Fix parser =head2 parse($string) Reads a string and returns a blessed object with parsed Catmandu::Fixes. Throws an Catmandu::ParseError on failure. =head1 SEE ALSO L<Catmandu::Fix> Or consult the webpages below for more information on the Catmandu::Fix language http://librecat.org/Catmandu/#fixes http://librecat.org/Catmandu/#fix-language =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/hash.pm��������������������������������������������������������������000644 �000765 �000024 �00000001452 13341726377 020473� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::hash; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "if (is_array_ref(${var})) {" . "${var} = {\@{${var}}};" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::hash - creates a hash out of an array =head1 SYNOPSIS # tags => ['name', 'Peter', 'age', 12] hash(tags) # tags => {name => 'Peter', age => 12} =head1 DESCRIPTION This fix functions transforms array fields to hashes. The number of array elements must be even and fields to be used as field values must be simple strings. String fields and hash fields are left unchanged. =head1 SEE ALSO L<Catmandu::Fix::array>, L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind.pm��������������������������������������������������������������000644 �000765 �000024 �00000020063 13341726377 020423� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use Package::Stash; use namespace::clean; with 'Catmandu::Logger'; requires 'unit'; requires 'bind'; has __return__ => (is => 'rw', default => sub {[0]}); has __fixes__ => (is => 'rw', default => sub {[]}); around bind => sub { my ($orig, $self, $prev, @args) = @_; my $next = $orig->($self, $prev, @args); if ($self->can('plus')) { return $self->plus($prev, $next); } else { return $next; } }; sub unit { my ($self, $data) = @_; return $data; } sub bind { my ($self, $data, $code) = @_; return $code->($data); } sub emit { my ($self, $fixer, $label) = @_; my $perl = ""; my $var = $fixer->var; my $bind_var = $fixer->capture($self); my $unit = $fixer->generate_var; #---The subfixer is only provided for backwards compatibility # with older Bind implementations and is deprecated my $sub_fixer = Catmandu::Fix->new(fixes => $self->__fixes__); my $sub_fixer_var = $fixer->capture($sub_fixer); #--- my $fix_stash = Package::Stash->new('Catmandu::Fix'); my $fix_emit_reject; my $fix_emit_fixes; # Allow Bind-s to overwrite the default reject behavior if ($self->can('reject')) { $fix_emit_reject = $fix_stash->get_symbol('&emit_reject'); $fix_stash->add_symbol( '&emit_reject' => sub {"return ${bind_var}->reject(${var});";}); } # Allow Bind-s to bind to all fixes in if-unless-else statements unless ($self->does('Catmandu::Fix::Bind::Group')) { $fix_emit_fixes = $fix_stash->get_symbol('&emit_fixes'); $fix_stash->add_symbol( '&emit_fixes' => sub { my ($this, $fixes) = @_; my $perl = ''; $perl .= "my ${unit} = ${bind_var}->unit(${var});"; for (my $i = 0; $i < @{$fixes}; $i++) { my $fix = $fixes->[$i]; my $name = ref($fix); my $var = $this->var; my $original_code = $this->emit_fix($fix); my $generated_code = "sub { my ${var} = shift; $original_code ; ${var} }"; $perl .= "${unit} = ${bind_var}->bind(${unit}, $generated_code, '$name',${sub_fixer_var});"; } if ($self->can('result')) { $perl .= "${unit} = ${bind_var}->result(${unit});"; } if ($self->__return__) { $perl .= "${var} = ${unit};"; } $perl; } ); } $perl .= "my ${unit} = ${bind_var}->unit(${var});"; # If this is a Bind::Group, then all fixes are executed as one block in a bind if ($self->does("Catmandu::Fix::Bind::Group")) { my $generated_code = "sub { my ${var} = shift;"; for my $fix (@{$self->__fixes__}) { my $original_code = $fixer->emit_fix($fix); $generated_code .= "$original_code ;"; } $generated_code .= "${var} }"; $perl .= "${unit} = ${bind_var}->bind(${unit}, $generated_code,'::group::',${sub_fixer_var});"; } # If this isn't a Bind::Group, then bind will be executed for each seperate fix else { for my $fix (@{$self->__fixes__}) { my $name = ref($fix); my $original_code = $fixer->emit_fix($fix); my $generated_code = "sub { my ${var} = shift; $original_code ; ${var} }"; $perl .= "${unit} = ${bind_var}->bind(${unit}, $generated_code,'$name',${sub_fixer_var});"; } } if ($self->can('result')) { $perl .= "${unit} = ${bind_var}->result(${unit});"; } if ($self->__return__) { $perl .= "${var} = ${unit};"; } $fix_stash->add_symbol('&emit_reject' => $fix_emit_reject) if $fix_emit_reject; $fix_stash->add_symbol('&emit_fixes' => $fix_emit_fixes) if $fix_emit_fixes; $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind - a wrapper for Catmandu::Fix-es =head1 SYNOPSIS package Catmandu::Fix::Bind::demo; use Moo; with 'Catmandu::Fix::Bind'; sub bind { my ($self,$data,$code,$name) = @_; warn "executing $name"; $code->($data); } # in your fix script you can now write do demo() fix1() fix2() fix3() end # this will execute all the fixes as expected, and print to STDERR the following messages executing fix1 executing fix2 executing fix3 =head1 DESCRIPTION Bind is a package that wraps Catmandu::Fix-es and other Catmandu::Bind-s together. This gives the programmer further control on the excution of fixes. With Catmandu::Fix::Bind you can simulate the 'before', 'after' and 'around' modifiers as found in Moo or Dancer. To wrap Fix functions, the Fix language introduces the 'do' statement: do BIND FIX1 FIX2 FIX3 end where BIND is a implementation of Catmandu::Fix::Bind and FIX1,...,FIXn are Catmandu::Fix functions. In the example above the BIND will wrap FIX1, FIX2 and FIX3. BIND will first wrap the record data using its 'unit' method and send the data sequentially to each FIX which can make inline changes to the record data. In pseudo-code this will look like: $bind_data = $bind->unit($data); $bind_data = $bind->bind($bind_data, $fix1); $bind_data = $bind->bind($bind_data, $fix2); $bind_data = $bind->bind($bind_data, $fix3); return $data; An alternative form exists, 'doset' which will overwrite the record data with results of the last fix. doset BIND FIX1 FIX2 FIX3 end Will result in a pseudo code like: $bind_data = $bind->unit($data); $bind_data = $bind->bind($bind_data, $fix1); $bind_data = $bind->bind($bind_data, $fix2); $bind_data = $bind->bind($bind_data, $fix3); return $bind_data; A Catmandu::Fix::Bind needs to implement two methods: 'unit' and 'bind'. =head1 METHODS =head2 unit($data) The unit method receives a Perl $data HASH and should return it, possibly converted to a new type. The 'unit' method is called before all Fix methods are executed. A trivial, but verbose, implementation of 'unit' is: sub unit { my ($self,$data) = @_; my $wrapped_data = $data; return $wrapped_data; } =head2 bind($wrapped_data,$code) The bind method is executed for every Catmandu::Fix method in the fix script. It receives the $wrapped_data (wrapped by 'unit'), the fix method as anonymous subroutine and the name of the fix. It should return data with the same type as returned by 'unit'. A trivial, but verbose, implementaion of 'bind' is: sub bind { my ($self,$wrapped_data,$code) = @_; my $data = $wrapped_data; $data = $code->($data); # we don't need to wrap it again because the $data and $wrapped_data have the same type $data; } =head1 REQUIREMENTS Bind modules are simplified implementations of Monads. They should answer the formal definition of Monads, codified in 3 monadic laws: =head2 left unit: unit acts as a neutral element of bind my $monad = Catmandu::Fix::Bind->demo(); # bind(unit(data), coderef) == unit(coderef(data)) $monad->bind( $monad->unit({foo=>'bar'}) , $coderef) == $monad->unit($coderef->({foo=>'bar'})); =head2 right unit: unit act as a neutral element of bind # bind(unit(data), unit) == unit(data) $monad->bind( $monad->unit({foo=>'bar'}) , sub { $monad->unit(shift) } ) == $monad->unit({foo=>'bar'}); =head2 associative: chaining bind blocks should have the same effect as nesting them # bind(bind(unit(data),f),g) == bind(unit(data), sub { return bind(unit(f(data)),g) } ) my $f = sub { my $data = shift; $data->{demo} = 1 ; $data }; my $g = sub { my $data = shift; $data->{demo} += 1 ; $data}; $monad->bind( $monad->bind( $monad->unit({}) , f ) , g ) == $monad->bind( $monad->unit({}) , sub { my $data = shift; $monad->bind($monad->unit($f->($data)), $g ); $data; }); =head1 SEE ALSO L<Catmandu::Fix::Bind::identity>, L<Catmandu::Fix::Bind::benchmark> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/parse_text.pm��������������������������������������������������������000644 �000765 �000024 �00000002407 13341726377 021727� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::parse_text; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has pattern => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $pattern = $fixer->emit_match($self->pattern); "if (is_string(${var}) && ${var} =~ ${pattern}) {" . "if (\@+ < 2) { " . # # no capturing groups "}" . "elsif (\%+) { " . # named capturing groups "${var} = { \%+ }; " . "} else {" . # numbered capturing groups "no strict 'refs';" . "${var} = [ map { \${\$_} } 1..(\@{+} - 1) ];" . "}" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::parse_text - parses a text into an array or hash of values =head1 SYNOPSIS # date: "2015-03-07" parse_text(date, '(\d\d\d\d)-(\d\d)-(\d\d)') # date: # - 2015 # - 03 # - 07 # date: "2015-03-07" parse_text(date, '(?<year>\d\d\d\d)-(?<month>\d\d)-(?<day>\d\d)') # date: # year: "2015" # month: "03" # day: "07" # date: "abcd" parse_text(date, '(\d\d\d\d)-(\d\d)-(\d\d)') # date: "abcd" =head1 SEE ALSO L<Catmandu::Fix> L<Catmandu::Importer::Text> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/sleep.pm�������������������������������������������������������������000644 �000765 �000024 �00000002075 13341726377 020662� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::sleep; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Time::HiRes; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Inlineable'; has seconds => (fix_arg => 1); has units => (fix_arg => 1); sub fix { my ($self, $data) = @_; my $sleep = $self->seconds; my $units = $self->units; if ($units =~ /^MICROSECOND(S)?$/i) { } elsif ($units =~ /^MILLISECOND(S)$/i) { $sleep *= 1000; } elsif ($units =~ /^SECOND(S)?$/i) { $sleep *= 1000000; } elsif ($units =~ /^MINUTE(S)?$/i) { $sleep *= 60 * 1000000; } elsif ($units =~ /^HOUR(S)?$/i) { $sleep *= 3600 * 1000000; } else { $sleep *= 1000000; } Time::HiRes::usleep($sleep); $data; } 1; __END__ =pod =head1 NAME Catmandu::Fix::sleep - Do nothing for a specified amount of time =head1 SYNOPSIS sleep(10,MICROSECONDS) sleep(3,MILLISECONDS) sleep(1,SECOND) sleep(2,SECONDS) sleep(5,MINUTES) sleep(1,HOURS) =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/filter.pm������������������������������������������������������������000644 �000765 �000024 �00000001622 13341726377 021034� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::filter; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has search => (fix_arg => 1); has invert => (fix_opt => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $match = $fixer->emit_match($self->search); $match = "!$match" if $self->invert; "if (is_array_ref(${var})) {" . "${var} = [ grep { $match } \@{${var}} ];" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::filter - Filter values out of an array based on a regular expression =head1 SYNOPSIS # words => ["Patrick","Nicolas","Paul","Frank"] filter(words,'Pa') # words => ["Patrick","Paul"] # filter only values that do NOT match the pattern: filter(words, 'Pa', invert: 1) # words => ["Nicolas","Frank"] =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/move.pm��������������������������������������������������������������000644 �000765 �000024 �00000000444 13341726377 020516� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::move; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::move_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::move - shortcut for Catmandu::Fix::move_field =head1 SEE ALSO L<Catmandu::Fix::move_field> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/replace_all.pm�������������������������������������������������������000644 �000765 �000024 �00000001477 13341726377 022022� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::replace_all; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has search => (fix_arg => 1); has replace => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; "if (is_value(${var})) {" . "utf8::upgrade(${var});" . "${var} =~ " . $fixer->emit_substitution($self->search, $self->replace) . "g;" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::replace_all - search and replace using regex expressions =head1 SYNOPSIS # Extract a substring out of the value of a field # {author => "tom jones"} replace_all(author, '([^ ]+) ([^ ]+)', '$2, $1') # {author => "jones, tom"} =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/move_field.pm��������������������������������������������������������000644 �000765 �000024 �00000005343 13341726377 021664� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::move_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has old_path => (fix_arg => 1); has new_path => (fix_arg => 1); sub emit { my ($self, $fixer) = @_; my $old_path = $fixer->split_path($self->old_path); my $old_key = pop @$old_path; my $new_path = $fixer->split_path($self->new_path); $fixer->emit_walk_path( $fixer->var, $old_path, sub { my $var = shift; $fixer->emit_delete_key( $var, $old_key, sub { my $vals = shift; if ( @$new_path && ( $new_path->[-1] eq '$prepend' || $new_path->[-1] eq '$append') ) { my $new_key = pop @$new_path; $fixer->emit_create_path( $fixer->var, $new_path, sub { my $var = shift; my $sym = $new_key eq '$prepend' ? 'unshift' : 'push'; "if (\@{${vals}} && is_array_ref(${var} //= [])) {" . "${sym}(\@{${var}}, \@{${vals}});" . "}"; } ); } else { $fixer->emit_create_path( $fixer->var, $new_path, sub { my $var = shift; "if (\@{${vals}}) {" . "${var} = shift(\@{${vals}});" . "}"; } ); } } ); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::move_field - move a field to another place in the data structure =head1 SYNOPSIS # Move single fields # Move 'foo.bar' to 'bar.foo' move_field(foo.bar, bar.foo) # Move multipe fields # Data: # a: # b: test1 # c: test2 move_field(a,z) # -> Move all the 'a' to 'z' # z: # b: test1 # c: test2 # Data: # a: # b: test1 # c: test2 move_field(a,.) # -> Move the fields 'b' and 'c' to the root # b: test1 # c: test2 =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/include.pm�����������������������������������������������������������000644 �000765 �000024 �00000010204 13341726377 021166� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::include; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu; use Catmandu::Fix; use File::Spec; use Cwd qw(realpath); use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Inlineable'; has path => (fix_arg => 1); has _files => (is => 'lazy'); has _fixer => (is => 'lazy'); sub _build__files { my ($self) = @_; my $path = $self->path; if ($path =~ /\*/) { # path is glob pattern return $self->_find_glob($path); } [$self->_find_file($path)]; } sub _find_file { my ($self, $path) = @_; my $roots = Catmandu->roots; my $file; if (File::Spec->file_name_is_absolute($path)) { $file = $path; } else { for my $root (@$roots) { my $f = File::Spec->catfile($root, $path); if (-r $f) { $file = $f; last; } } } Catmandu::Error->throw( "unable to find $path in " . join(',', @$roots) . ")") unless defined $file; realpath($file); } sub _find_glob { my ($self, $path) = @_; my $roots = Catmandu->roots; if (File::Spec->file_name_is_absolute($path)) { return [sort map {realpath($_)} grep {-r $_} glob $path]; } my %seen; my $files = []; for my $root (@$roots) { my $glob = File::Spec->catfile($root, $path); for my $file (glob $glob) { my $rel_path = File::Spec->abs2rel($file, $root); next if $seen{$rel_path}; if (-r $file) { push @$files, realpath($file); $seen{$rel_path} = 1; } } } [sort @$files]; } sub _build__fixer { my ($self) = @_; my $files = $self->_files; return unless @$files; Catmandu::Fix->new(fixes => $files); } sub fix { my ($self, $data) = @_; my $fixer = $self->_fixer; return $data unless $fixer; $fixer->fix($data); } 1; __END__ =pod =head1 NAME Catmandu::Fix::include - include fixes from another file =head1 SYNOPSIS include('/path/to/myfixes.txt') include('fixes/*.fix') =head1 NOTES =over 4 =item path is relative to a Catmandu load path #1. a catmandu load path is a directory where a catmandu configuration file can be found #2. as there are multiple load paths, it will loop through all the path, and include the first file it can find #3. in catmandu, the default_load_path is either # 3.1. the directory of the running script # 3.2. the parent directory of the running script if the directory is 'bin' #use default load_path #called from script "/opt/catmandu-project/fix.pl" #default_load_path: /opt/catmandu-project #file must be located at "/opt/catmandu-project/fixes/myfixes.txt" Catmandu->fixer("include('fixes/myfixes.txt')"); #use default load_path #called from script "/opt/catmandu-project/bin/fix.pl" #default_load_path: /opt/catmandu-project (notice the absence of 'bin') #file must be located at "/opt/catmandu-project/fixes/myfixes.txt" Catmandu->fixer("include('fixes/myfixes.txt')"); #load fixes, located at /opt/catmandu-project/fixes/myfixes.txt Catmandu->load("/opt/catmandu-project"); Catmandu->fixer("include('fixes/myfixes.txt')"); #look for 'fixes/myfixes.txt' in /opt/catmandu-project2, and if that fails in /opt/catmandu-project-1 Catmandu->load("/opt/catmandu-project2","/opt/catmandu-project-1"); Catmandu->fixer("include('fixes/myfixes.txt')"); #if "/opt/catmandu-project/fixes/myfixes2.txt" does not exists, the fix will fail Catmandu->load("/opt/catmandu-project"); Catmandu->fixer("include('fixes/myfixes2.txt)"); =item circular references are not detected =item if the 'include' is enclosed within an if-statement, the fixes are inserted in the control structure, but only executed if the if-statement evaluates to 'true'. #the fixes in the file 'add_address_fields.txt' are only executed when field 'name' has content, #but, the fixes are included in the control structure. if all_match('name','.+') include('add_address_fields.txt') end =back =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/expand_date.pm�������������������������������������������������������000644 �000765 �000024 �00000003102 13341726377 022016� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::expand_date; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; my $DATE_REGEX = qr{ ^([0-9]{4}) (?: [:-] ([0-9]{1,2}) (?: [:-] ([0-9]{1,2}) )? )? }x; with 'Catmandu::Fix::Inlineable'; has date_field => (fix_arg => 1, default => sub {'date'}); sub fix { my ($self, $data) = @_; if (my $date = $data->{$self->date_field}) { if (my ($y, $m, $d) = $date =~ $DATE_REGEX) { $data->{year} = $y; $data->{month} = 1 * $m if $m; $data->{day} = 1 * $d if $d; } } $data; } 1; __END__ =pod =head1 NAME Catmandu::Fix::expand_date - expand a date field into year, month and date =head1 NOTE This package is DEPRECATED and will be removed in the future. Please use L<Catmandu::Fix::split_date>. Reasons: =over 4 =item it writes directly in the root of the hash, which is a different behaviour compared to all the other fixes (sum, count, hash, array ..) =item it adds the new keys in a different location, instead of "in place". =item its behaviour cannot be changed without breaking its current use =back =head1 SYNOPSIS # {date => "2001-09-11"} expand_date() # => {year => 2001, month => "9", day => "11", date => "2001-09-11"} # {datestamp => "2001:09"} expand_date(datestamp) # => {year => 2001, month => "9", datestamp => "2001:09"} =head1 DESCRIPTION The date field is expanded if it contains a year, optionally followed by numeric month and day, each separated by C<-> or C<:>. =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/set.pm���������������������������������������������������������������000644 �000765 �000024 �00000000437 13341726377 020345� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::set; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; extends 'Catmandu::Fix::set_field'; 1; __END__ =pod =head1 NAME Catmandu::Fix::set - shortcut for Catmandu::Fix::set_field =head1 SEE ALSO L<Catmandu::Fix::set_field> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/array.pm�������������������������������������������������������������000644 �000765 �000024 �00000001302 13341726377 020660� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::array; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "if (is_hash_ref(${var})) {" . "${var} = [\%{${var}}];" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::array - creates an array out of a hash =head1 SYNOPSIS # tags => {name => 'Peter', age => 12} array(tags) # tags => ['name', 'Peter', 'age', 12] =head1 DESCRIPTION This fix functions transforms hash fields to array. String fields and array fields are left unchanged. =head1 SEE ALSO L<Catmandu::Fix::hash>, L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/reject.pm������������������������������������������������������������000644 �000765 �000024 �00000001460 13341726377 021023� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::reject; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Fix::Base'; sub emit { my ($self, $fixer) = @_; $fixer->emit_reject; } 1; __END__ =pod =head1 NAME Catmandu::Fix::reject - remove a record form the data =head1 SYNOPSIS # Reject all items from from the output reject() # Reject all items with have an 'ignore_me' field reject exists(ignore_me) # Reject all items with have a 'ignore' field with value 'true' reject all_match(ignore,true) # Select all items select() # Select only those items that have an 'include_me' field select exists(include_me) # Select only those items that have an 'include' field with value 'true' select all_match(include,true) =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/paste.pm�������������������������������������������������������������000644 �000765 �000024 �00000004744 13341726377 020673� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::paste; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); has values => (fix_arg => 'collect'); sub emit { my ($self, $fixer) = @_; my $values = $self->values; my @parsed_values = (); my $join_char = ' '; while (@$values) { my $val = shift @$values; if ($val eq 'join_char') { $join_char = shift @$values; last; } else { push @parsed_values, $val; } } $join_char = $fixer->emit_string($join_char); my $vals_var = $fixer->generate_var; my $perl = $fixer->emit_declare_vars($vals_var, '[]'); for my $val (@parsed_values) { my $vals_path = $fixer->split_path($val); my $vals_key = pop @$vals_path; if ($val =~ /^~(.*)/) { my $tmp = $fixer->emit_string($1); $perl .= "push(\@{${vals_var}}, ${tmp});"; } else { $perl .= $fixer->emit_walk_path( $fixer->var, $vals_path, sub { my $var = shift; $fixer->emit_get_key( $var, $vals_key, sub { my $var = shift; "push(\@{${vals_var}}, ${var}) if is_value(${var});"; } ); } ); } } my $path = $fixer->split_path($self->path); $perl .= $fixer->emit_create_path( $fixer->var, $path, sub { my $var = shift; "${var} = join(${join_char}, \@{${vals_var}});"; } ); $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::paste - concatenate path values =head1 SYNOPSIS # If you data record is: # a: eeny # b: meeny # c: miny # d: moe paste(my.string,a,b,c,d) # my.string: eeny meeny miny moe # Use a join character paste(my.string,a,b,c,d,join_char:", ") # my.string: eeny, meeny, miny, moe # Paste literal strings with a tilde sign paste(my.string,~Hi,a,~how are you?) # my.string: Hi eeny how are you? =head1 DESCRIPTION Paste places a concatenation of all paths starting from the second path into the first path. Literal values can be pasted by prefixing them with a tilde (~) sign. =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������Catmandu-1.10/lib/Catmandu/Fix/append.pm������������������������������������������������������������000644 �000765 �000024 �00000001172 13341726377 021016� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::append; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has value => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $value = $fixer->emit_string($self->value); "${var} = join('', ${var}, $value) if is_value(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::append - add a suffix to the value of a field =head1 SYNOPSIS # append to a value. e.g. {name => 'joe'} append(name, y) # {name => 'joey'} =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Namespace.pm���������������������������������������������������������000644 �000765 �000024 �00000000265 13341726377 021445� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Namespace; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; requires 'load'; has name => (is => 'ro', required => 1); 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/sum.pm���������������������������������������������������������������000644 �000765 �000024 �00000001130 13341726377 020345� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::sum; use Catmandu::Sane; our $VERSION = '1.10'; use List::Util (); use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "if (is_array_ref(${var})) {" . "${var} = List::Util::sum(\@{${var}}) // 0;" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::sum - replace the value of an array field with the sum of its elements =head1 SYNOPSIS # e.g. numbers => [2, 3] sum(numbers) # numbers => 5 =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/to_json.pm�����������������������������������������������������������000644 �000765 �000024 �00000001354 13341726377 021224� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::to_json; use Catmandu::Sane; our $VERSION = '1.10'; use Cpanel::JSON::XS (); use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; # memoize in case called multiple times my $json_var = $fixer->capture( Cpanel::JSON::XS->new->utf8(0)->pretty(0)->allow_nonref(1)); "if (is_maybe_value(${var}) || is_array_ref(${var}) || is_hash_ref(${var})) {" . "${var} = ${json_var}->encode(${var});" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::to_json - convert the value of a field to json =head1 SYNOPSIS to_json(my.field) =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/string.pm������������������������������������������������������������000644 �000765 �000024 �00000002121 13341726377 021050� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::string; use Catmandu::Sane; our $VERSION = '1.10'; use List::Util (); use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; <<EOF; if (is_string(${var})) { ${var} = '' . ${var}; } elsif (is_array_ref(${var}) && List::Util::all { is_value(\$_) } \@{${var}}) { ${var} = join('', \@{${var}}); } elsif (is_hash_ref(${var}) && List::Util::all { is_value(\$_) } values \%{${var}}) { ${var} = join('', map { ${var}->{\$_} } sort keys \%{${var}}); } else { ${var} = ''; } EOF } 1; __END__ =pod =head1 NAME Catmandu::Fix::string - convert a value to a string =head1 SYNOPSIS # year => 2016 string(year) # year => "2016" # foo => ["a", "b", "c"] string(foo) # foo => "abc" # foo => ["a", {b => "c"}, "d"] string(foo) # foo => "" # foo => {2 => "b", 1 => "a"} string(foo) # foo => "ab" # foo => {a => ["b"]} string(foo) # foo => "" =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/nothing.pm�����������������������������������������������������������000644 �000765 �000024 �00000000560 13341726377 021215� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::nothing; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Fix::Base'; sub emit { my ($self, $fixer, $label) = @_; "last ${label};"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::nothing - does nothing (for testing) =head1 SYNOPSIS nothing() =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/uri_decode.pm��������������������������������������������������������000644 �000765 �000024 �00000001450 13341726377 021650� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::uri_decode; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Encode (); use URI::Escape (); use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "${var} = Encode::decode_utf8(URI::Escape::uri_unescape(${var}));"; } 1; __END__ =pod =encoding utf8 =head1 NAME Catmandu::Fix::uri_decode - percent decode a URI =head1 SYNOPSIS # '3%A9' => 'café' uri_decode(place) # '%E1%BD%81+%CF%84%E1%BF%B6%CE%BD+%CE%A0%CE%AD%CF%81%CF%83%CF%89%CE%BD+%CE%B2%CE%B1%CF%83%CE%B9%CE%BB%CE%B5%CF%8D%CF%82' => 'ὁ τῶν Πέρσων βασιλεύς' uri_decode(title) =head1 SEE ALSO L<Catmandu::Fix>, L<Catmandu::Fix::uri_encode>, L<URI::Escape> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/export_to_string.pm��������������������������������������������������000644 �000765 �000024 �00000003155 13341726377 023163� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::export_to_string; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has name => (fix_arg => 1); has export_opts => (fix_opt => 'collect'); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $name = $self->name(); my $export_opts = $fixer->capture($self->export_opts); my $perl = <<EOF; if( is_hash_ref( ${var} ) || is_array_ref( ${var} ) ) { ${var} = Catmandu->export_to_string( ${var}, '$name', %${export_opts} ); } EOF $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::export_to_string - convert the value of field using a named exporter =head1 SYNOPSIS export_to_string(my.field,'YAML') export_to_string(my.field2,'JSON') export_to_string(my.field3,'CSV', 'sep_char' => ';' ) =head1 DESCRIPTION =head2 export_string( PATH, NAME [, EXPORT_OPTIONS ] ) This fix uses the function export_to_string of the package L<Catmandu>, but requires the NAME of the exporter. It expects a HASH or ARRAY as input. Other values are silently ignored. =over 4 =item PATH =item NAME name of the exporter to use. As usual in Catmandu, one can choose: * full package name of the exporter (e.g. 'Catmandu::Exporter::JSON') * short package name of the exporter (e.g. 'JSON') * name of the exporter as declared in the Catmandu configuration =item EXPORT_OPTIONS extra options for the named exporter =back =head1 AUTHOR Nicolas Franck, C<< <nicolas.franck at ugent.be> >> =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/����������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020064� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Has.pm���������������������������������������������������������������000644 �000765 �000024 �00000007762 13341726377 020275� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Has; use Catmandu::Sane; our $VERSION = '1.10'; use Class::Method::Modifiers qw(install_modifier); sub import { my $target = caller; my $around = do {no strict 'refs'; \&{"${target}::around"}}; my $fix_args = []; my $fix_opts = []; install_modifier( $target, 'around', 'has', sub { my ($orig, $attr, %opts) = @_; return $orig->($attr, %opts) unless exists $opts{fix_arg} || exists $opts{fix_opt}; $opts{is} //= 'ro'; $opts{init_arg} //= $attr; my $arg = {key => $opts{init_arg}}; if ($opts{fix_arg}) { $opts{required} //= 1; $arg->{collect} = 1 if $opts{fix_arg} eq 'collect'; push @$fix_args, $arg; delete $opts{fix_arg}; } if ($opts{fix_opt}) { $arg->{collect} = 1 if $opts{fix_opt} eq 'collect'; push @$fix_opts, $arg; delete $opts{fix_opt}; } $orig->($attr, %opts); } ); $around->( 'BUILDARGS', sub { my $orig = shift; my $self = shift; return $orig->($self, @_) unless @$fix_args || @$fix_opts; my $args = {}; for my $arg (@$fix_args) { last unless @_; my $key = $arg->{key}; if ($arg->{collect}) { $args->{$key} = [splice @_, 0, @_]; last; } $args->{$key} = shift; } my $orig_args = $self->$orig(@_); for my $arg (@$fix_opts) { my $key = $arg->{key}; if ($arg->{collect}) { $args->{$key} = $orig_args; last; } elsif (exists $orig_args->{"-$key"}) { $args->{$key} = delete $orig_args->{"-$key"}; } elsif (exists $orig_args->{$key}) { $args->{$key} = delete $orig_args->{$key}; } } $args; } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Has - helper class for creating Fix-es with (optional) parameters =head1 SYNOPSIS package Catmandu::Fix::foo; use Moo; use Catmandu::Fix::Has; has greeting => (fix_arg => 1); # required parameter 1 has message => (fix_arg => 1); # required parameter 2 has eol => (fix_opt => 1 , default => sub {'!'} ); # optional parameter 'eol' with default '!' sub fix { my ($self,$data) = @_; print STDERR $self->greeting . ", " . $self->message . $self->eol . "\n"; $data; } 1; =head1 PARAMETERS =over 4 =item fix_arg Required argument when set to 1. The Fix containing the code fragment below needs two arguments. use Catmandu::Fix::Has; has message => (fix_arg => 1); # required parameter 1 has number => (fix_arg => 1); # required parameter 2 When the fix_arg is set to 'collect', then all arguments are read into an array. The Fix containing the code fragment below needs at least 1 or more arguments. All arguments will get collected into the C<messages> array: use Catmandu::Fix::Has; has messages => (fix_arg => 'collect'); # required parameter =item fix_opt Optional named argument when set to 1. The Fix containing the code fragment below can have two optional arguments C<message: ...>, C<number: ...>: use Catmandu::Fix::Has; has message => (fix_opt => 1); # optional parameter 1 has number => (fix_opt => 1); # optional parameter 2 When the fix_opt is set to 'collect', then all optional argument are read into an array. The Fix containing the code fragment below needs at least 1 or more arguments. All arguments will get collected into the C<options> array: use Catmandu::Fix::Has; has options => (fix_opt => 'collect'); # optional parameter =back =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������Catmandu-1.10/lib/Catmandu/Fix/import_from_string.pm������������������������������������������������000644 �000765 �000024 �00000003475 13341726377 023502� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::import_from_string; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has name => (fix_arg => 1); has import_opts => (fix_opt => 'collect'); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $import_opts = $fixer->capture($self->import_opts); my $name = $self->name(); "${var} = Catmandu->import_from_string( ${var}, '$name', %${import_opts} );"; } 1; __END__ =pod =encoding utf8 =head1 NAME Catmandu::Fix::import_from_string - Import data from a string into an array ref, using a named importer. =head1 SYNOPSIS #BEFORE: { 'json' => '[{"name":"Nicolas"}]' } #AFTER: { 'json' => [{"name":"Nicolas"}] } import_from_string('json','JSON') #BEFORE: { record => qq(first_name;name\nNicolas;Franck\nPatrick;Hochstenbach\n) } #AFTER: { record => [{ "first_name" => "Nicolas",name => "Franck" },{ "first_name" => "Patrick",name => "Hochstenbach" }] } import_from_string('record','CSV', 'sep_char' => ';') =head1 DESCRIPTION =head2 import_from_string( PATH, NAME [, IMPORT_OPTIONS ] ) This fix uses the function import_from_string of the package L<Catmandu>, but requires the NAME of the importer. It always returns an array of hashes. =over 4 =item PATH =item NAME name of the importer to use. As usual in Catmandu, one can choose: * full package name of the importer (e.g. 'Catmandu::Importer::JSON') * short package name of the importer (e.g. 'JSON') * name of the importer as declared in the Catmandu configuration =item IMPORT_OPTIONS extra options for the named importer =back =head1 AUTHOR Nicolas Franck, C<< <nicolas.franck at ugent.be> >> =head1 SEE ALSO L<Catmandu::Fix>, L<Catmandu::Importer> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/capitalize.pm��������������������������������������������������������000644 �000765 �000024 �00000001053 13341726377 021672� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::capitalize; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "${var} = ucfirst(lc(as_utf8(${var}))) if is_string(${var});"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::capitalize - capitalize the value of a key =head1 SYNOPSIS # Capitalize the value of foo. E.g. foo => 'bar' capitalize(foo) # foo => 'Bar' =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/clone.pm�������������������������������������������������������������000644 �000765 �000024 �00000000736 13341726377 020654� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::clone; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Fix::Base'; sub emit { my ($self, $fixer) = @_; $fixer->emit_clone($fixer->var); } 1; __END__ =pod =head1 NAME Catmandu::Fix::clone - create a clone of the data object =head1 SYNOPSIS # Create a clone of the data object clone() # Now do all the changes on the clone add_field(foo, 2) =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������Catmandu-1.10/lib/Catmandu/Fix/count.pm�������������������������������������������������������������000644 �000765 �000024 �00000001212 13341726377 020672� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::count; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var) = @_; "if (is_array_ref(${var})) {" . "${var} = scalar \@{${var}};" . "} elsif (is_hash_ref(${var})) {" . "${var} = scalar keys \%{${var}};" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::count - replace the value of an array or hash field with its count =head1 SYNOPSIS # e.g. tags => ["foo", "bar"] count(tags) # tags => 2 =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/copy_field.pm��������������������������������������������������������000644 �000765 �000024 �00000002770 13341726377 021671� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::copy_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has old_path => (fix_arg => 1); has new_path => (fix_arg => 1); sub emit { my ($self, $fixer) = @_; my $old_path = $fixer->split_path($self->old_path); my $old_key = pop @$old_path; my $new_path = $fixer->split_path($self->new_path); my $vals = $fixer->generate_var; my $current_val = $fixer->generate_var; my $perl = ""; $perl .= $fixer->emit_declare_vars($vals, '[]'); $perl .= $fixer->emit_declare_vars($current_val); $perl .= $fixer->emit_walk_path( $fixer->var, $old_path, sub { my $var = shift; $fixer->emit_get_key( $var, $old_key, sub { my $var = shift; "push(\@{${vals}}, ${var});"; } ); } ); $perl .= "while (\@{${vals}}) {" . "${current_val} = clone(shift(\@{${vals}}));" . $fixer->emit_create_path( $fixer->var, $new_path, sub { my $var = shift; "${var} = ${current_val};"; } ) . "}"; $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::copy_field - copy the value of one field to a new field =head1 SYNOPSIS # Copy the values of foo.bar into bar.foo copy_field(foo.bar, bar.foo) =head1 SEE ALSO L<Catmandu::Fix> =cut ��������Catmandu-1.10/lib/Catmandu/Fix/retain_field.pm������������������������������������������������������000644 �000765 �000024 �00000001456 13341726377 022201� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::retain_field; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Base'; has path => (fix_arg => 1); sub emit { my ($self, $fixer) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_retain_key($var, $key); } ); } 1; __END__ =pod =head1 NAME Catmandu::Fix::retain_field - delete everything from a field except =head1 DEPRECIATION NOTICE This fix is deprecated, Please use L<Catmandu::Fix::retain> instead. =head1 SYNOPSIS # Delete every key from foo except bar retain_field(foo.bar) =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Base.pm��������������������������������������������������������������000644 �000765 �000024 �00000001636 13341726377 020426� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Base; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Fix; use Scalar::Util qw(weaken); use Moo::Role; use namespace::clean; with 'Catmandu::Fix::Inlineable', 'Catmandu::Logger'; requires 'emit'; sub fixer { my ($self) = @_; Catmandu::Fix->new(fixes => [$self]); } sub fix { my ($self, $data) = @_; $self->fixer->fix($data); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Base - Base class for all code emitting Catmandu fixes =head1 SYNOPSIS package Catmandu::Fix::my_fix; use Catmandu::Sane; use Moo; with 'Catmandu::Fix::Base'; sub emit { my ($self, $fixer) = @_; ....FIXER GENERATING CODE.... } =head1 SEE ALSO For more information how to create fixes read the following two blog posts: http://librecat.org/catmandu/2014/03/14/create-a-fixer.html http://librecat.org/catmandu/2014/03/26/creating-a-fixer-2.html =cut ��������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/int.pm���������������������������������������������������������������000644 �000765 �000024 �00000002104 13341726377 020335� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::int; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::SimpleGetValue'; sub emit_value { my ($self, $var, $fixer) = @_; my $match_var = $fixer->generate_var; <<EOF; if (is_string(${var}) and my (${match_var}) = ${var} =~ /([+-]?[0-9]+)/) { ${var} = ${match_var} + 0; } elsif (is_array_ref(${var})) { ${var} = scalar(\@{${var}}); } elsif (is_hash_ref(${var})) { ${var} = scalar(keys \%{${var}}); } else { ${var} = 0; } EOF } 1; __END__ =pod =head1 NAME Catmandu::Fix::int - convert a value to an integer =head1 SYNOPSIS # year => "2016" int(year) # year => 2016 # foo => "bar-123baz" int(foo) # foo => -123 # foo => "" int(foo) # foo => 0 # foo => "abc" int(foo) # foo => 0 # foo => [] int(foo) # foo => 0 # foo => ["a", "b", "c"] int(foo) # foo => 3 # foo => {a => "b", c => "d"} int(foo) # foo => 2 =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/expand.pm������������������������������������������������������������000644 �000765 �000024 �00000001703 13341726377 021026� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::expand; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Expander (); use Catmandu::Fix::Has; with 'Catmandu::Fix::Inlineable'; has sep => (fix_opt => 1, default => sub {undef}); sub fix { my ($self, $data) = @_; if (defined(my $char = $self->sep)) { my $new_ref = {}; for my $key (keys %$data) { my $val = $data->{$key}; $key =~ s{$char}{\.}g; $new_ref->{$key} = $val; } $data = $new_ref; } Catmandu::Expander->expand_hash($data); } 1; __END__ =pod =head1 NAME Catmandu::Fix::expand - convert a flat hash into nested data using the TT2 dot convention =head1 SYNOPSIS # collapse the data into a flat hash collapse() # expand again to the nested original expand() # optionally provide a path separator collapse(sep: '/') expand(sep: '/') =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/add_to_store.pm������������������������������������������������������000644 �000765 �000024 �00000005333 13341726377 022220� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::add_to_store; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has store_name => (fix_arg => 1); has bag_name => (fix_opt => 1, init_arg => 'bag'); has store_args => (fix_opt => 'collect'); has store => (is => 'lazy', init_arg => undef); has bag => (is => 'lazy', init_arg => undef); with 'Catmandu::Fix::SimpleGetValue'; sub _build_store { my ($self) = @_; Catmandu->store($self->store_name, %{$self->store_args}); } sub _build_bag { my ($self) = @_; defined $self->bag_name ? $self->store->bag($self->bag_name) : $self->store->bag; } sub emit_value { my ($self, $var, $fixer) = @_; my $bag_var = $fixer->capture($self->bag); "if (is_hash_ref(${var})) {" . "${bag_var}->add(${var});" . "}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::add_to_store - add matching values to a store as a side effect =head1 SYNOPSIS # Add the current record to an SQLLite database. add_to_store(., DBI, data_source: "dbi:SQLite:path/data.sqlite") # Add the journal field to a MongoDB database. add_to_store(journal, MongoDB, database_name: catalog) # Add all author values to a MongoDB database. add_to_store(authors.*, MongoDB, database_name: catalog, bag: authors) =head1 DESCRIPTION =head2 add_to_store(PATH,STORE[,store_param: store_val, ...][,bag: bag_name]) Store a record or parts of a record in a Catmandu::Store. The values at the PATH will be stored as-is in the database but should be hashes. If the value contains an '_id' field, then it will used as record identifier in the database. If not, then a new '_id' field will be generated and added to the database and original field (for later reference). For instance this YAML input: --- _id: 001 title: test name: foo --- _id: 002 title: test2 name: bar with the fix: add_to_store(., DBI, data_source: "dbi:SQLite:path/data.sqlite") will create a path/data.sqlite SQLite database with two records. Each records contains the _id from the input file and all the record fields. For instance this YAML input: --- title: test name: foo --- title: test2 name: bar with the fix: add_to_store(., DBI, data_source: "dbi:SQLite:path/data.sqlite") will create a path/data.sqlite SQLite database with two records. Each records contains the a generated _id and all the record fields. The current input stream will be updated to contain the generated _id. Use L<Catmandu::Fix::lookup_in_store> to lookup records in a Catmandu::Store based on an '_id' key. =head1 SEE ALSO L<Catmandu::Fix> , L<Catmandu::Fix::lookup_in_store> =cut 1; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/with.pm���������������������������������������������������������000644 �000765 �000024 �00000004034 13341726377 021376� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::with; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Clone (); use Catmandu::Util; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has path => (fix_opt => 1); sub zero { my ($self) = @_; []; } sub unit { my ($self, $data) = @_; defined $self->path ? Catmandu::Util::data_at($self->path, $data) : $data; } sub bind { my ($self, $mvar, $code) = @_; if (Catmandu::Util::is_hash_ref($mvar)) { my $copy = Clone::clone($mvar); $copy = $code->($copy); if (ref($copy) eq 'reject') { #map { delete $mvar->{$_} } (keys %$mvar); %$mvar = (); } else { %$mvar = %$copy; } return $mvar; } elsif (Catmandu::Util::is_array_ref($mvar)) { my $idx = 0; for my $item (@$mvar) { $item = $code->($item); if (ref($item) eq 'reject') { splice(@$mvar, $idx, 1); } $idx++; } return $mvar; } else { return $self->zero; } } sub reject { my ($self, $var) = @_; return bless $var, 'reject' if ref($var); return bless \$var, 'reject'; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::with - a binder that computes Fix-es in the context of a path =head1 SYNOPSIS # Input data data: - name: patrick - name: nicolas # Fix do with(path:data) if all_match(name,nicolas) reject() end end # will produce data: - name: patrick =head1 DESCRIPTION The C<with> bind allows to run fixes in the scope of a path. Given a deep nested data structure : my: deep: field: name: James Brown these two fixes are equal: add_field(my.deep.field.style, funk) do with(path:my.deep.field) add_field(style,funk) end =head1 CONFIGURATION =head2 path The path to a list in the data. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/each.pm���������������������������������������������������������000644 �000765 �000024 �00000006600 13341726377 021324� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::each; our $VERSION = '1.10'; use strict; use warnings; use Catmandu::Sane; use Moo; use Catmandu::Util; use Catmandu::Fix::Has; use Carp; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has path => (fix_opt => 1); has var => (fix_opt => 1); has _root_ => (is => 'rw'); sub unit { my ($self, $data) = @_; $self->_root_($data); if ($self->path && $self->path ne '.') { return Catmandu::Util::data_at($self->path, $data); } else { return $data; } } sub bind { my ($self, $data, $code) = @_; if (!Catmandu::Util::is_hash_ref($data)) { $code->($data); } else { my @keys = sort keys %{$data}; for my $key (@keys) { my $value = $data->{$key}; my $scope; if ($self->var) { $scope = $self->_root_; $scope->{$self->var} = {'key' => $key, 'value' => $value}; } else { $scope = $data; $scope->{'key'} = $key; $scope->{'value'} = $value; } $code->($scope); if ($self->var) { # Key and values can be updated if (my $mkey = $scope->{$self->var}->{key}) { $data->{$mkey} = $scope->{$self->var}->{value}; if ($mkey ne $key) { delete $data->{$key}; } } delete $scope->{$self->var}; } else { if (my $mkey = $scope->{key}) { $data->{$mkey} = $scope->{value}; if ($mkey ne $key) { delete $data->{$key}; } } delete $scope->{'key'}; delete $scope->{'value'}; } } } return $data; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::each - a binder that executes fixes for every (key, value) pair in a hash =head1 SYNOPSIS # Create a hash: # demo: # nl: 'Tuin der lusten' # en: 'The Garden of Earthly Delights' # Create a list of all the titles, without the language tags. do each(path: demo, var: t) copy_field(t.value, titles.$append) end # This will result in: # demo: # nl: 'Tuin der lusten' # en: 'The Garden of Earthly Delights' # titles: # - 'Tuin der lusten' # - 'The Garden of Earthly Delights' # Upcase every key in the root hash # foo: bar # test: 1234 do each(path:., var: t) upcase(t.key) end # This will result in # FOO: bar # TEST: 1234 =head1 DESCRIPTION The each binder will iterate over a hash and return a (key, value) pair (see the Perl L<each|http://perldoc.perl.org/functions/each.html> function for the inspiration for this bind) and execute all fixes for each pair. The bind always returns a C<var.key> and C<var.value> pair which can be used in the fixes. =head1 CONFIGURATION =head2 path The path to a hash in the data. =head2 var The temporary field that will be created in the root of the record containing a C<key> and C<value> field containing the I<key> and I<value> of the iterated data. =head1 AUTHOR Pieter De Praetere, C<< pieter.de.praetere at helptux.be >> =head1 SEE ALSO L<Catmandu::Fix::Bind::list> L<Catmandu::Fix::Bind> =cut ��������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/importer.pm�����������������������������������������������������000644 �000765 �000024 �00000004545 13341726377 022273� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::importer; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util qw(:is); use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has importer_name => (fix_arg => 1); has step => (fix_opt => 1); has importer_args => (fix_opt => 'collect'); has importer => (is => 'lazy'); sub _build_importer { my ($self) = @_; Catmandu->importer($self->importer_name, %{$self->importer_args}); } sub unit { my ($self, $data) = @_; $data; } sub bind { my ($self, $mvar, $code) = @_; if ($self->step) { my $next = $self->importer->next; $code->($next) if $next; } else { $self->importer->each( sub { $code->($_[0]); } ); } $mvar; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::importer - a binder runs fixes on records from an importer =head1 SYNOPSIS # catmandu run myfix.fix # with myfix.fix do importer(OAI,url: "http://lib.ugent.be/oai") retain(_id) add_to_exporter(.,YAML) end # Or in an runnable Fix script: #!/usr/bin/env catmandu run add_field(hello,world) add_to_exporter(.,YAML) # Or: #!/usr/bin/env catmandu run do importer(OAI,url: "http://lib.ugent.be/oai") retain(_id) add_to_exporter(.,YAML) end =head1 DESCRIPTION The import binder computes all the Fix function on records read from the given importer. This importer doesn't change the current importer to the given one! Use the 'catmandu run' command line command to control importers solely by the Fix script. =head1 CONFIGURATION =head2 importer(IMPORTER_NAME, step: true|false, IMPORTER_ARGS...) Load the import IMPORTER_NAME in the current context. When step is 'true' then for every execution of do importer() only one item will be read from the importer. This latter option can become handy in nested iterators: # This will produce: # {"n":0} # {"m":0} # {"n":1} # {"m":1} # {"n":2} # {"m":2} # ... do importer(Mock,size:20) move_field(n,brol) add_to_exporter(.,JSON) do importer(Mock,size:20,step:true) move_field(n,m) add_to_exporter(.,JSON) end end =head1 SEE ALSO L<Catmandu::Fix::Bind>, L<Catmandu::Cmd::run> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/benchmark.pm����������������������������������������������������000644 �000765 �000024 �00000004030 13341726377 022351� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::benchmark; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Time::HiRes qw(gettimeofday tv_interval); use namespace::clean; with 'Catmandu::Fix::Bind'; has output => (is => 'ro', required => 1); has stats => (is => 'lazy'); sub _build_stats { +{}; } sub bind { my ($self, $data, $code, $name) = @_; $name = '<undef>' unless defined $name; my $t0 = [gettimeofday]; $data = $code->($data); my $elapsed = tv_interval($t0); $self->stats->{$name}->{count} += 1; $self->stats->{$name}->{elapsed} += $elapsed; $data; } sub DESTROY { my ($self) = @_; local (*OUT); open(OUT, '>', $self->output) || return undef; printf OUT "%-8.8s\t%-40.40s\t%-8.8s\t%-8.8s\n", 'elapsed', 'command', 'calls', 'sec/command'; printf OUT "-" x 100 . "\n"; for my $key ( sort {$self->stats->{$b}->{elapsed} cmp $self->stats->{$a}->{elapsed}} keys %{$self->stats} ) { my $speed = $self->stats->{$key}->{elapsed} / $self->stats->{$key}->{count}; printf OUT "%f\t%-40.40s\t%d times\t%f secs/command\n", $self->stats->{$key}->{elapsed}, $key, $self->stats->{$key}->{count}, $speed; } printf OUT "\n\n"; close(OUT); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::benchmark - a binder that calculates the execution time of Fix functions =head1 SYNOPSIS do benchmark(output:/dev/stderr) foo() end # will create as side effect computation statistics on the stderr elapsed command calls sec/comm ------------------------------------------------------------- 0.000006 Catmandu::Fix::foo 1 times 0.000006 secs/command =head1 DESCRIPTION The benchmark binder computes all the Fix function plus as side effect calculates the execution time of all wrapped functions over all input records. =head1 CONFIGURATION =head2 output Required. The path of a file to which the benchmark statistics will be written. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/list.pm���������������������������������������������������������000644 �000765 �000024 �00000005051 13341726377 021376� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::list; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Clone (); use Catmandu::Util; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has path => (fix_opt => 1); has var => (fix_opt => 1); has root => (is => 'rw'); sub zero { my ($self) = @_; []; } sub unit { my ($self, $data) = @_; $self->root($data); defined $self->path ? Catmandu::Util::data_at($self->path, $data) : $data; } sub bind { my ($self, $mvar, $code) = @_; my $root = $self->root; my $var = $self->var; if (Catmandu::Util::is_hash_ref($mvar)) { # Ignore all specialized processing when not an array $mvar = $code->($mvar); return $mvar; } elsif (Catmandu::Util::is_array_ref($mvar)) { for my $item (@$mvar) { if (defined $var) { $root->{$var} = $item; $root = $code->($root); delete $root->{$var}; } else { $item = $code->($item); } } return $mvar; } else { return $self->zero; } } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::list - a binder that computes Fix-es for every element in a list =head1 SYNOPSIS # Create an array: # demo: # - red # - green # - yellow # Add a foo field to every item in the demo list, by default all # fixes will be in context of the iterated path. If the context # is a list, then '.' will be the path of the temporary context # variable do list(path:demo) if all_equal(.,green) upcase(.) end end # This will result: # demo: # - red # - GREEN # - yellow # Loop over the list but store the values in a temporary 'c' variable # Use this c variable to copy the list to the root 'xyz' path do list(path:demo,var:c) copy_field(c,xyz.$append) end # This will result: # demo: # - red # - GREEN # - yellow # xyz: # - red # - GREEN # - yellow =head1 DESCRIPTION The list binder will iterate over all the elements in a list and fixes the values in context of that list. =head1 CONFIGURATION =head2 path The path to a list in the data. =head2 var The loop variable to be iterated over. When used, a magic temporary field will be available in the root of the record containing the iterated data. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/iterate.pm������������������������������������������������������000644 �000765 �000024 �00000003220 13341726377 022054� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::iterate; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util; use Catmandu::Fix::Has; use namespace::clean; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has start => (fix_opt => 1); has end => (fix_opt => 1); has step => (fix_opt => 1); has var => (fix_opt => 1); sub unit { my ($self, $data) = @_; $data; } sub bind { my ($self, $mvar, $func, $name, $fixer) = @_; my $start = $self->start; my $end = $self->end; my $step = $self->step // 1; my $var = $self->var; if ( Catmandu::Util::is_number($start) && Catmandu::Util::is_number($end) && Catmandu::Util::is_number($step)) { for (my $i = $start; $i <= $end; $i = $i + $step) { $mvar->{$var} = $i if defined($var); $mvar = $func->($mvar); } } delete $mvar->{$var} if defined($var); return $mvar; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::iterate - a binder iterates fixes in a loop =head1 SYNOPSIS # Create: # numbers = [1,2,3,4,5,6,7,8,9,10] do iterate(start:1, end: 10, step: 1, var: i) copy_field(i,numbers.$append) end =head1 DESCRIPTION The list binder will iterate over all the elements in a list and fixes the values in context of that list. =head1 CONFIGURATION =head2 start Start value of the iterator. =head2 end End value of the iterator. =head2 step Increase the interator with this value for every step. =head3 var Optional variable holding the value of the current step =head1 SEE ALSO L<Catmandu::Fix::Bind> , L<Catmandu::Fix::list> , L<Catmandu::Fix::with> , =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/maybe.pm��������������������������������������������������������000644 �000765 �000024 �00000002643 13341726377 021524� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::maybe; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Scalar::Util qw(reftype); use namespace::clean; with 'Catmandu::Fix::Bind'; # Copied from hiratara's Data::Monad::Maybe sub just { my ($self, @values) = @_; bless [@values], __PACKAGE__; } sub nothing { my ($self) = @_; bless \(my $d = undef), __PACKAGE__; } sub is_nothing { my ($self, $mvar) = @_; reftype $mvar ne 'ARRAY'; } sub value { my ($self, $mvar) = @_; if ($self->is_nothing($mvar)) { {}; } else { $mvar->[0]; } } sub unit { my ($self, $data) = @_; $self->just($data); } sub bind { my ($self, $mvar, $func) = @_; if ($self->is_nothing($mvar)) { return $self->nothing; } my $res; eval {$res = $func->($self->value($mvar));}; if ($@) { return $self->nothing; } if (defined $res) { return $self->just($res); } else { return $self->nothing; } } sub result { my ($self, $mvar) = @_; $self->value($mvar); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::maybe - a binder that skips fixes if one returns undef or dies =head1 SYNOPSIS do maybe() foo() return_undef() # rest will be ignored bar() end =head1 DESCRIPTION The maybe binder computes all the Fix function and ignores fixes that throw exceptions. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ���������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/timeout.pm������������������������������������������������������000644 �000765 �000024 �00000005564 13341726377 022122� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::timeout; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Clone (); use Time::HiRes; use namespace::clean; with 'Catmandu::Fix::Bind'; has time => (is => 'ro'); has units => (is => 'ro', default => sub {'SECONDS'}); has sleep => (is => 'rw'); sub unit { my ($self, $data) = @_; my $sleep = $self->time; my $units = $self->units // 'SECONDS'; if ($units =~ /^MICROSECOND(S)?$/i) { $sleep /= 1000000; } elsif ($units =~ /^MILLISECOND(S)$/i) { $sleep /= 1000; } elsif ($units =~ /^SECOND(S)?$/i) { # ok } elsif ($units =~ /^MINUTE(S)?$/i) { $sleep *= 60; } elsif ($units =~ /^HOUR(S)?$/i) { $sleep *= 3600; } else { # ok - use seconds } $self->sleep($sleep); [$data, Clone::clone($data)]; } sub bind { my ($self, $mvar, $func) = @_; my $sleep = $self->sleep(); if ($sleep >= 0) { my $start = [Time::HiRes::gettimeofday]; $mvar->[0] = $func->($mvar->[0]); $sleep -= Time::HiRes::tv_interval($start); $self->sleep($sleep); } $mvar; } sub result { my ($self, $mvar) = @_; if ($self->sleep < 0) { $self->log->warn("timeout after > " . $self->time . " " . $self->units . " : " . (-1 * $self->sleep) . " extra time"); inline_replace($mvar->[0], $mvar->[1]); } $self->sleep < 0 ? $mvar->[1] : $mvar->[0]; } sub inline_replace { my ($old, $new) = @_; for my $key (keys %$old) { delete $old->{$key}; } for my $key (keys %$new) { $old->{$key} = $new->{$key}; } } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::timeout - run fixes that should run within a time limit =head1 SYNOPSIS # The following bind will run fix1(), fix2(), ... fixN() only if the # action can be done in 5 seconds do timeout(time:5, units:seconds) fix1() fix2() fix3() . . . fixN() end next_fix() =head1 DESCRIPTION The timeout binder will run the supplied block only when all the fixes can be run within a time limit. All fixes (except side-effects) are ignored when the block can't be executed within the time limit. =head1 CONFIGURATION =head2 timeout(time => VALUE , units => MICROSECOND|MILLISECONDS|SECONDS|MINUTES|HOURS) Set a timeout to VALUE. This timeout doesn't prevent a fix script to run longer than the specified value, but it does prevent fixes to have any effect when the timeout has been reached. # This script will run 10 seconds do timeout(time:5, units:seconds) add_field(foo,ok) # This will be ignored sleep(10,seconds) set_field(foo,error) # This will be ignored end At timeout a log message of level WARN will be generated. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ��������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/visitor.pm������������������������������������������������������000644 �000765 �000024 �00000011156 13341726377 022125� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::visitor; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util; use namespace::clean; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has path => (is => 'ro'); sub unit { my ($self, $data) = @_; if (defined $self->path) { return Catmandu::Util::data_at($self->path, $data); } else { return $data; } } sub bind { my ($self, $mvar, $func) = @_; if (Catmandu::Util::is_array_ref($mvar)) { return $self->bind_array($mvar, $func, ''); } elsif (Catmandu::Util::is_hash_ref($mvar)) { return $self->bind_hash($mvar, $func, ''); } else { return $self->bind_hash($mvar, $func, ''); } } sub bind_scalar { my ($self, $mvar, $func, $parent) = @_; return $func->({'key' => $parent, 'scalar' => $mvar})->{'scalar'}; } sub bind_array { my ($self, $mvar, $func, $parent) = @_; my $result = $func->({'key' => $parent, 'array' => $mvar}); my $new_var = []; for (my $i = 0; $i < @$mvar; $i++) { my $item = $mvar->[$i]; if (Catmandu::Util::is_array_ref($item)) { my ($newkey, $newvalue) = $self->bind_array($item, $func, $i); $mvar->[$i] = $newvalue; } elsif (Catmandu::Util::is_hash_ref($item)) { my ($newkey, $newvalue) = $self->bind_hash($item, $func, $i); $mvar->[$i] = $newvalue; } else { $mvar->[$i] = $func->({'key' => $i, 'scalar' => $item})->{'scalar'}; } } return ($result->{key}, $result->{array}); } sub bind_hash { my ($self, $mvar, $func, $parent) = @_; my $result = $func->({'key' => $parent, 'hash' => $mvar}); for my $key (keys %$mvar) { my $item = $mvar->{$key}; if (Catmandu::Util::is_array_ref($item)) { # Keys can update themselves my ($newkey, $newvalue) = $self->bind_array($item, $func, $key); $mvar->{$newkey} = $newvalue; delete $mvar->{$key} if ($newkey ne $key); } elsif (Catmandu::Util::is_hash_ref($item)) { # Keys can update themselves my ($newkey, $newvalue) = $self->bind_hash($item, $func, $key); $mvar->{$newkey} = $newvalue; delete $mvar->{$key} if ($newkey ne $key); } else { # Keys can update themselves my $result = $func->({'key' => $key, 'scalar' => $item}); $mvar->{$result->{'key'}} = $result->{'scalar'}; delete $mvar->{$key} if ($result->{'key'} ne $key); } } return ($result->{key}, $result->{hash}); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::visitor - a binder that computes Fix-es for every element in record =head1 SYNOPSIS # If data is like: numbers: - one - two - three person: name: jennie age: 44 color: - green - purple - brown - more: foo: bar do visitor() upcase(scalar) # upcase every scalar value in the record end # will produce numbers: - ONE - TWO - THREE person: name: JENNIE age: 44 color: - GREEN - PURPLE - BROWN - more: foo: BAR do visitor() # upcase all the 'name' fields in the record if all_match(key,name) upcase(scalar) end end do visitor() # upcase all the field names in the record upcase(key) end =head1 DESCRIPTION The visitor binder will iterate over all the elements in a record and perform fixes on them. Special node names are available to process every visited element: =over 4 =item scalar Process a Fix on every scalar value. E.g. upcase(scalar) replace_all(scalar,'$','tested') =item array Process a Fix on every array value. E.g. sort_field(array) Values need to be put in the 'array' field to be available for fixes. The scope of the array is limited to the array visited. =item hash Process a Fix on every hash value. E.g. copy_field(hash.age,hash.age2) Values need to be put in the 'hash' field to be available for fixes. The scope of the hash is limited to the hash visited. =item key Provides access to the key on which the scalar,array or hash value is found. Eg. # Upcase all 'name' fields in the record if all_match(key,name) upcase(scalar) end =back =head1 CONFIGURATION =head2 path A path in the data to visit: # Visit any field do visitor() ... end # Visit only the fields at my.deep.field do visitor(path: my.deep.field) ... end =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/Group.pm��������������������������������������������������������000644 �000765 �000024 �00000001424 13341726377 021517� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::Group; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::Group - a role for a binder that executes all fixes as one group =head1 SYNOPSIS # Fixes fix1(), ... fixN() will be passed as one function to the internal 'bind' method do identity() fix1() . . fixN() end # Fixes fix1(), ... fixN() will be passed as one by one to the internal 'bind' method do maybe() fix1() . . fixN() end =head1 DESCRIPTION This role flags a L<Catmandu::Fix::Bind> implementation as a L<Catmandu::Fix::Bind::Group>. All fixes inside a Bind will be treated as one singular function. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/hashmap.pm������������������������������������������������������000644 �000765 �000024 �00000010025 13341726377 022041� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::hashmap; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util qw(:is); use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; has exporter => (fix_opt => 1); has store => (fix_opt => 1); has uniq => (fix_opt => 1, default => sub {0}); has count => (fix_opt => 1); has join => (fix_opt => 1); has extra_args => (fix_opt => 'collect'); has hash => (is => 'lazy'); sub _build_hash { +{}; } sub add_to_hash { my ($self, $key, $val) = @_; if ($self->count) { $self->hash->{$key} += 1; } elsif ($self->uniq) { $self->hash->{$key}->{$val} = 1; } else { push @{$self->hash->{$key}}, $val; } } sub bind { my ($self, $data, $code) = @_; $data = $code->($data); my $key = $data->{key}; my $value = $data->{value}; if (defined $key) { if (is_string($key)) { $self->add_to_hash($key, $value); } elsif (is_array_ref($key)) { for (@$key) { $self->add_to_hash($_, $value); } } else { warn "$key is not a string or array for $value"; } } $data; } sub DESTROY { my ($self) = @_; my $h = $self->hash; my $e; my $args = $self->extra_args // {}; if ($self->store) { $e = Catmandu->store($self->store, %$args); } elsif ($self->exporter) { $e = Catmandu->exporter($self->exporter, %$args); } else { $e = Catmandu->exporter('JSON', line_delimited => 1); } my $sorter = $self->count ? sub {$h->{$b} <=> $h->{$a}} : sub {$a cmp $b}; my $id = 0; for (sort $sorter keys %$h) { my $v; if ($self->count) { $v = $h->{$_}; } elsif ($self->uniq) { $v = [sort keys %{$h->{$_}}]; } else { $v = $h->{$_}; } if (is_array_ref($v) && $self->join) { $v = join $self->join, @$v; } $e->add({_id => $_, value => $v}); } $e->commit; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::hashmap - a binder to add key/value pairs to an internal hashmap =head1 SYNOPSIS # Find non unique ISBN numbers in the record stream do hashmap(join: ',') copy_field(isbn,key) copy_field(_id,value) end # will export to the JSON exporter a hash map containing all isbn occurrences in the stream { "_id": "9781565920422" , "value": "rec0001,rec0329,rec1032" } { "_id": "9780596004927" , "value": "rec0718" } # Ignore the values. Count the number of ISBN occurrences in a stream # File: count.fix: do hashmap(count: 1) copy_field(isbn,key) end # Use the Null exporter to suppress the normal output $ cat /tmp/data.json | catmandu convert JSON --fix count.fix to Null =head1 DESCRIPTION The hashmap binder will insert all key/value pairs given to a internal hashmap that can be exported using an Catmandu::Exporter. The 'key' fields in the internal hashmap will be exported as '_id' field. If the key in the hashmap Bind is an ARRAY, then multiple key/value pairs will be inserted into the hashmap. By default all the values will be added as an array to the hashmap. Every key will have one or more values. Use the 'join' parameter to create a string out of this array. =head1 CONFIGURATION =head2 exporter: EXPORTER The name of an exporter to send the results to. Default: JSON Extra parameters can be added: do hashmap(exporter: JSON, file:/tmp/data.json, count: 1) ... end =head2 store: STORE Send the output to a store instead of an exporter. Extra parameters can be added: do hashmap(store: MongoDB, database_name: test, bag: data, count: 1) ... end =head2 uniq: 0|1 When set to 1, then all values in the key 'value' will be made unique =head2 join: CHAR Join all the values of a key using a delimiter. =head2 count: 0|1 Don't store the values only count the number of key occurrences. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Bind/identity.pm�����������������������������������������������������000644 �000765 �000024 �00000001246 13341726377 022256� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Bind::identity; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Fix::Bind', 'Catmandu::Fix::Bind::Group'; 1; __END__ =pod =head1 NAME Catmandu::Fix::Bind::identity - a binder that doesn't influence computation =head1 SYNOPSIS do identity() fix1() fix2() fix3() . . . fixN() end # will have the same (side)effects as fix1() fix2() fix3() . . . fixN() =head1 DESCRIPTION The identity binder doesn't embody any computational strategy. It simply applies the bound fix functions to its input without any modification. =head1 SEE ALSO L<Catmandu::Fix::Bind> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/greater_than.pm��������������������������������������������000644 �000765 �000024 �00000001527 13341726377 024144� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::greater_than; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has value => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; my $value = $self->value; "is_value(${var}) && ${var} > int('$value')"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::greater_than - Execute fixes when a field is greater than a value =head1 SYNOPSIS # greater_than(X,Y) is true when X > Y if greater_than('year','2018') add_field('my.funny.title','true') end # greater_than on arrays checks if all values are X > Y if greater_than('years.*','2018') add_field('my.funny.title','true') end =head1 SEE ALSO L<Catmandu::Fix::Condition::less_than> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_object.pm�����������������������������������������������000644 �000765 �000024 �00000001052 13341726377 023433� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_object; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "is_hash_ref(${var})"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_object - only execute fixes if all path values are objects (unordered sets of name-value pairs) =head1 SYNOPSIS if is_object(data.*) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/exists.pm��������������������������������������������������000644 �000765 �000024 �00000003130 13341726377 023010� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::exists; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; with 'Catmandu::Fix::Condition'; has path => (fix_arg => 1); sub emit { my ($self, $fixer, $label) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $str_key = $fixer->emit_string($key); my $perl = $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; my $perl = "if ("; if ($key eq '$first' || $key eq '$last') { $perl .= "is_array_ref(${var}) && \@{${var}}"; } elsif ($key =~ /^[0-9]+$/) { $perl .= "is_hash_ref(${var}) && exists(${var}->{${str_key}}) || is_array_ref(${var}) && \@{${var}} > ${key}"; } else { $perl .= "is_hash_ref(${var}) && exists(${var}->{${str_key}})"; } $perl .= ") {"; $perl .= $fixer->emit_fixes($self->pass_fixes); $perl .= "last $label;"; $perl .= "}"; $perl; } ); $perl .= $fixer->emit_fixes($self->fail_fixes); $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::exists - only execute fixes if the path exists =head1 SYNOPSIS # uppercase the value of field 'foo' if the field 'oogly' exists if exists(oogly) upcase(foo) # foo => 'BAR' end # inverted unless exists(oogly) upcase(foo) # foo => 'bar' end =head1 SEE ALSO L<Catmandu::Fix> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/all_equal.pm�����������������������������������������������000644 �000765 �000024 �00000001726 13341726377 023441� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::all_equal; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has value => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; my $value = $self->value; "is_value(${var}) && ${var} eq '$value'"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::all_equal - Execute fixes when all path values equal a string value =head1 DESCRIPTION This fix is meant as an simple alternative to L<Catmandu::Fix::Condition::all_match>. No regular expressions are involved. String are compared using the regular operator 'eq'. =head1 SYNOPSIS # all_equal(X,Y) is true when value of X == 'Y' if all_equal('year','2018') add_field('my.funny.title','true') end # all_equal(X,Y) is false when value of X == 'Ya' =head1 SEE ALSO L<Catmandu::Fix> , L<Catmandu::Fix::Condition::any_equal> =cut ������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/SimpleAnyTest.pm�������������������������������������������000644 �000765 �000024 �00000003766 13341726377 024251� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::SimpleAnyTest; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; with 'Catmandu::Fix::Condition'; requires 'path'; requires 'emit_test'; sub emit { my ($self, $fixer, $label) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $perl = $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $var = shift; my $perl = "if (" . $self->emit_test($var, $fixer) . ") {"; $perl .= $fixer->emit_fixes($self->pass_fixes); $perl .= "last $label;"; $perl .= "}"; $perl; } ); } ); $perl .= $fixer->emit_fixes($self->fail_fixes); $perl; } 1; __END__ =pod; =head1 NAME Catmandu::Fix::Condition::SimpleAllTest - Base class to ease the construction of any match conditionals =head1 SYNOPSIS package Catmandu::Fix::Condition::has_even use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAnyTest'; sub emit_test { my ($self, $var) = @_; my $value = $self->value; "is_value(${var}) && ${var} % 2 == 0"; } 1; # Now you can write in your fixes has_even('my_field') # True when my_field is 0,2,4,6,... has_even('my_field.*') # True when at least one my_field is 0,2,4,6,... =head1 DESCRIPTION The is a base class to ease the construction of Catmandu::Fix::Conditional-s. An 'any' test matches when at least one node on a path match a condition. E.g. any_match('title','abc') # true when the title field contains 'abc' any_match('title.*','abc') # true when at least one title fields contain 'abc' =head1 SEE ALSO L<Catmandu::Fix::Condition::any_match> =cut ����������Catmandu-1.10/lib/Catmandu/Fix/Condition/valid.pm���������������������������������������������������000644 �000765 �000024 �00000002241 13341726377 022572� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::valid; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use Catmandu::Util qw(require_package); use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has name => (fix_arg => 1); has validator_opts => (fix_opt => 'collect'); has validator => (is => 'lazy', init_arg => undef); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var, $fixer) = @_; my $validator_var = $fixer->capture($self->validator); "${validator_var}->is_valid(${var})"; } sub _build_validator { my ($self) = @_; require_package($self->name, 'Catmandu::Validator') ->new($self->validator_opts); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::valid - Execute fixes if the data passes validation =head1 SYNOPSIS # reject all items not conforming to a schema select valid('', JSONSchema, schema: "my/schema.json") # check the author field unless valid(author, JSONSchema, schema: "my/author.schema.json") ... # repair or give warning end =head1 SEE ALSO See L<Catmandu::Fix::validate> to check and get validation errors. =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_false.pm������������������������������������������������000644 �000765 �000024 �00000001565 13341726377 023270� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_false; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has strict => (fix_opt => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; if ($self->strict) { return "(is_bool(${var}) && !${var})"; } "((is_bool(${var}) && !${var}) || (is_number(${var}) && ${var} == 0) || (is_string(${var}) && ${var} eq 'false'))"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_false - only execute fixes if all path values are the boolean false, 0 or "false" =head1 SYNOPSIS if is_false(data.*.has_error) ... end # strict only matches a real bool, not 0 or "0" or "false" if is_false(data.*.has_error, strict: 1) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/any_match.pm�����������������������������������������������000644 �000765 �000024 �00000001541 13341726377 023440� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::any_match; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has pattern => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAnyTest'; sub emit_test { my ($self, $var, $parser) = @_; "is_value(${var}) && ${var} =~ " . $parser->emit_match($self->pattern); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::any_match - only execute fixes if any path value matches the given regex =head1 SYNOPSIS # uppercase the value of field 'foo' if at least one member of 'oogly' has the value 'doogly' if any_match(oogly, "doogly") upcase(foo) # foo => 'BAR' end # case insensitive search for 'doogly' in 'oogly' fields if any_match(oogly.*, "(?i)doogly") ... end =head1 SEE ALSO L<Catmandu::Fix> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_number.pm�����������������������������������������������000644 �000765 �000024 �00000001003 13341726377 023451� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_number; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "is_number(${var})"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_string - only execute fixes if all path values are numbers =head1 SYNOPSIS if is_number(data.*) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_array.pm������������������������������������������������000644 �000765 �000024 �00000001007 13341726377 023303� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_array; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "is_array_ref(${var})"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_array - only execute fixes if all path values are arrays =head1 SYNOPSIS if is_array(data.*.list) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/in.pm������������������������������������������������������000644 �000765 �000024 �00000003530 13341726377 022103� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::in; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has path2 => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleCompareTest'; sub emit_test { my ($self, $var, $var2, $fixer) = @_; "${var} ~~ ${var2}"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::in - only execute fixes the data in one path is contained in another =head1 SYNOPSIS #------------------------------------------------------------------- # Compare single values # foo => 42 , bar => 42 => in(foo,bar) -> true if in(foo,bar) add_field(forty_two,ok) end # When comparing single values to an array: test if the value is # contained in the array # foo => 1 , bar => [3,2,1] => in(foo,bar) -> true if in(foo,bar) add_field(test,ok) end # foo => 42 , bar => [1,2,3] => in(foo,bar) -> false unless in(foo,bar) add_field(test,ok) end # In the following examples we'll write in pseudo code the true/false # values of some 'in()' comparissons # scalars vs arrays - check if the value is in the array foo: 42 , bar: [1,2,3] in(foo,bar) -> false foo: 1 , bar: [1,2,3] in(foo,bar) -> true # scalars vs hashes - check if the key is in the hash foo: name , bar: { name => 'Patrick' } in(foo,bar) -> true foo: name , bar: { deep => {name => 'Nicolas'}} in(foo,bar) -> false # array vs array - check if the contents is equal foo: [1,2] , bar: [1,2] in(foo,bar) -> true foo: [1,2] , bar: [1,2,3] in(foo,bar) -> false foo: [1,2] , bar: [[1,2],3] in(foo,bar) -> false =head1 STATUS Be aware this function is experimental in many perl versions =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/any_equal.pm�����������������������������������������������000644 �000765 �000024 �00000002023 13341726377 023447� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::any_equal; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has value => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAnyTest'; sub emit_test { my ($self, $var) = @_; my $value = $self->value; "is_value(${var}) && ${var} eq '$value'"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::any_equal - Execute fixes when at least one of the path values equal a string value =head1 DESCRIPTION This fix is meant as an simple alternative to L<Catmandu::Fix::Condition::any_match>. No regular expressions are involved. String are compared using the regular operator 'eq'. =head1 SYNOPSIS # any_equal(X,Y) is true when at least one value of the array X equals 'Y' if any_equal('years.*','2018') add_field('my.funny.title','true') end # any_equal(X,Y) is false when none of the values of X equal 'Y' =head1 SEE ALSO L<Catmandu::Fix> , L<Catmandu::Fix::Condition::all_equal> =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/SimpleCompareTest.pm���������������������������������������000644 �000765 �000024 �00000006220 13341726377 025074� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::SimpleCompareTest; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; with 'Catmandu::Fix::Condition'; requires 'path'; requires 'path2'; requires 'emit_test'; sub emit { my ($self, $fixer, $label) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $path2 = $fixer->split_path($self->path2); my $key2 = pop @$path2; my $pass_fixes = $self->pass_fixes; my $fail_fixes = $self->fail_fixes; my $fail_label; my $fail_block = $fixer->emit_block( sub { $fail_label = shift; $fixer->emit_fixes($fail_fixes); } ); my $perl = "no if ($] >= 5.018), 'warnings' => 'experimental';"; my $has_match_var = $fixer->generate_var; $perl .= $fixer->emit_declare_vars($has_match_var, '0'); my $vals_1 = $fixer->generate_var; $perl .= $fixer->emit_declare_vars($vals_1, '{}'); $perl .= $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $var = shift; my $perl = "${has_match_var} ||= 1;"; $perl .= "${vals_1} = ${var};"; $perl; } ); } ); my $vals_2 = $fixer->generate_var; $perl .= $fixer->emit_declare_vars($vals_2, '{}'); $perl .= $fixer->emit_walk_path( $fixer->var, $path2, sub { my $var = shift; $fixer->emit_get_key( $var, $key2, sub { my $var = shift; my $perl = "${has_match_var} ||= 1;"; $perl .= "${vals_2} = ${var};"; $perl; } ); } ); $perl .= "unless (" . $self->emit_test($vals_1, $vals_2, $fixer) . ") {"; if (@$fail_fixes) { $perl .= "goto ${fail_label};"; } else { $perl .= "last ${label};"; } $perl .= "}"; $perl .= "if (${has_match_var}) {"; $perl .= $fixer->emit_fixes($pass_fixes); $perl .= "last ${label};"; $perl .= "}"; if (@$fail_fixes) { $perl .= $fail_block; } $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::SimpleCompareTest - Base class to ease the construction of compare conditionals =head1 SYNOPSIS package Catmandu::Fix::Condition::has_equal_type use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has path => (fix_arg => 1); has path2 => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleCompareTest'; sub emit_test { my ($self, $var, $var2, $fixer) = @_; "is_value(${var}) && is_value(${var2}) && ref ${var} eq ref ${var2}"; } 1; # Now you can write in your fixes has_equal_type(my_field_1,my_field_2) # True when my_field_1 and my_field_2 have # the same refence type (both scalas, arrays, hashes) =head1 SEE ALSO L<Catmandu::Fix::Condition::SimpleAllTest>, L<Catmandu::Fix::Condition::SimpleAnyTest> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_true.pm�������������������������������������������������000644 �000765 �000024 �00000001553 13341726377 023152� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_true; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has strict => (fix_opt => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; if ($self->strict) { return "(is_bool(${var}) && ${var})"; } "((is_bool(${var}) && ${var}) || (is_number(${var}) && ${var} == 1) || (is_string(${var}) && ${var} eq 'true'))"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_true - only execute fixes if all path values are the boolean true, 1 or "true" =head1 SYNOPSIS if is_true(data.*.has_error) ... end # strict only matches a real bool, not 1 or "1" or "true" if is_true(data.*.has_error, strict: 1) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/less_than.pm�����������������������������������������������000644 �000765 �000024 �00000001504 13341726377 023454� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::less_than; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has value => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; my $value = $self->value; "is_value(${var}) && ${var} < int('$value')"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::less_than - Excute fixes when a field is less than a value =head1 SYNOPSIS # less_than(X,Y) is true when X < Y if less_than('year','2018') add_field('my.funny.title','true') end # less_than on arrays checks if all values are X < Y if less_than('years.*','2018') add_field('my.funny.title','true') end =head1 SEE ALSO L<Catmandu::Fix::Condition::greater_than> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/SimpleAllTest.pm�������������������������������������������000644 �000765 �000024 �00000005250 13341726377 024220� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::SimpleAllTest; use Catmandu::Sane; our $VERSION = '1.10'; use Moo::Role; use namespace::clean; with 'Catmandu::Fix::Condition'; requires 'path'; requires 'emit_test'; sub emit { my ($self, $fixer, $label) = @_; my $path = $fixer->split_path($self->path); my $key = pop @$path; my $pass_fixes = $self->pass_fixes; my $fail_fixes = $self->fail_fixes; my $fail_label; my $fail_block = $fixer->emit_block( sub { $fail_label = shift; $fixer->emit_fixes($fail_fixes); } ); my $has_match_var = $fixer->generate_var; my $perl = $fixer->emit_declare_vars($has_match_var, '0'); $perl .= $fixer->emit_walk_path( $fixer->var, $path, sub { my $var = shift; $fixer->emit_get_key( $var, $key, sub { my $var = shift; my $perl = "${has_match_var} ||= 1;"; $perl .= "unless (" . $self->emit_test($var, $fixer) . ") {"; if (@$fail_fixes) { $perl .= "goto ${fail_label};"; } else { $perl .= "last ${label};"; } $perl .= "}"; $perl; } ); } ); $perl .= "if (${has_match_var}) {"; $perl .= $fixer->emit_fixes($pass_fixes); $perl .= "last ${label};"; $perl .= "}"; if (@$fail_fixes) { $perl .= $fail_block; } $perl; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::SimpleAllTest - Base class to ease the construction of all match conditionals =head1 SYNOPSIS package Catmandu::Fix::Condition::is_even use Catmandu::Sane; use Moo; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "is_value(${var}) && ${var} % 2 == 0"; } 1; # Now you can write in your fixes is_even('my_field') # True when my_field is 0,2,4,6,... is_even('my_field.*') # True when all my_field's are 0,2,4,6,... =head1 DESCRIPTION The is a base class to ease the construction of Catmandu::Fix::Conditional-s. An 'all' test matches when all node on a path match a condition. E.g. all_match('title','abc') # true when the title field contains 'abc' all_match('title.*','abc') # true when all title fields contain 'abc' =head1 SEE ALSO L<Catmandu::Fix::Condition::all_match>, L<Catmandu::Fix::Condition::greater_than>, L<Catmandu::Fix::Condition::less_than> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_null.pm�������������������������������������������������000644 �000765 �000024 �00000001002 13341726377 023132� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_null; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "(defined(${var}) ? 0 : 1)"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_null - only execute fixes if all path values are null =head1 SYNOPSIS if is_null(data.*) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/all_match.pm�����������������������������������������������000644 �000765 �000024 �00000001530 13341726377 023417� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::all_match; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); has pattern => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var, $parser) = @_; "is_value(${var}) && ${var} =~ " . $parser->emit_match($self->pattern); } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::all_match - only execute fixes if all path values match the given regex =head1 SYNOPSIS # uppercase the value of field 'foo' if all members of 'oogly' have the value 'doogly' if all_match(oogly.*, "doogly") upcase(foo) # foo => 'BAR' end # case insensitive search for 'doogly' in all 'oogly' if all_match(oogly.*, "(?i)doogly") ... end =head1 SEE ALSO L<Catmandu::Fix> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Condition/is_string.pm�����������������������������������������������000644 �000765 �000024 �00000001030 13341726377 023467� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Condition::is_string; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "!is_number(${var}) && is_value(${var})"; } 1; __END__ =pod =head1 NAME Catmandu::Fix::Condition::is_string - only execute fixes if all path values are strings =head1 SYNOPSIS if is_string(data.*) ... end =head1 SEE ALSO L<Catmandu::Fix> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Fix/Namespace/perl.pm����������������������������������������������������000644 �000765 �000024 �00000002024 13341726377 022402� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::Namespace::perl; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_instance require_package); use String::CamelCase qw(camelize); use Moo; use namespace::clean; with 'Catmandu::Fix::Namespace'; sub load { my ($self, $name, $args, $type) = @_; my $ns = join('::', map {camelize($_)} split(/\./, $self->name)); $ns = join('::', $ns, $type) if $type; my $pkg; try { $pkg = require_package($name, $ns); } catch_case [ 'Catmandu::NoSuchPackage' => sub { Catmandu::NoSuchFixPackage->throw( message => "No such fix package: $name", package_name => $_->package_name, fix_name => $name, ); }, ]; try { $pkg->new(@$args); } catch { $_->throw if is_instance($_, 'Catmandu::Error'); Catmandu::BadFixArg->throw( message => $_, package_name => $pkg, fix_name => $name, ); }; } 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Plugin/Readonly.pm�������������������������������������������������������000644 �000765 �000024 �00000004071 13341726377 022035� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Plugin::Readonly; our $VERSION = '1.10'; use Moo::Role; use MooX::Aliases; use Package::Stash; use namespace::clean; sub BUILD { my ($self) = @_; my $name = ref($self->store); if ($self->store->does('Catmandu::Droppable')) { # Overwrite the drop method of the Catmandu::Store implementation my $stash = Package::Stash->new($name); $stash->add_symbol( '&drop' => sub { $self->log->warn("trying to drop a readonly store"); my $err = Catmandu::NotImplemented->new("$name is readonly"); return undef, $err; } ); } } around add => sub { my ($orig, $self, $data) = @_; my $name = ref($self); $self->log->warn("trying to add to readonly store"); my $err = Catmandu::NotImplemented->new("$name is readonly"); return undef, $err; }; around delete => sub { my ($orig, $self) = @_; my $name = ref($self); $self->log->warn("trying to delete from readonly store"); my $err = Catmandu::NotImplemented->new("$name is readonly"); return undef, $err; }; around delete_all => sub { my ($orig, $self) = @_; my $name = ref($self); $self->log->warn("trying to delete_all on readonly store"); my $err = Catmandu::NotImplemented->new("$name is readonly"); return undef, $err; }; around drop => sub { my ($orig, $self) = @_; my $name = ref($self); $self->log->warn("trying to drop a readonly store"); my $err = Catmandu::NotImplemented->new("$name is readonly"); return undef, $err; }; 1; __END__ =pod =head1 NAME Catmandu::Plugin::Readonly - Make stores or bags read-only =head1 SYNOPSIS $ cat catmandu.yml --- store: test: package: MongoDB options: default_plugins: [ 'Readonly'] =head1 DESCRIPTION The Catmandu::Plugin::Readonly will transform a Catmandu::Store or a Catmandu::Bag in read-only mode: all writes, deletes and drops will be ignored. This command will work on L<Catmandu::Store> implementations. =head1 SEE ALSO L<Catmandu::Store>, L<Catmandu::Bag> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Plugin/Datestamps.pm�����������������������������������������������������000644 �000765 �000024 �00000006215 13341726377 022367� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Plugin::Datestamps; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(check_string now); use Moo::Role; use MooX::Aliases; use namespace::clean; has datestamp_format => (is => 'lazy'); has datestamp_created_key => ( is => 'lazy', isa => \&check_string, alias => 'datestamp_created_field', ); has datestamp_updated_key => ( is => 'lazy', isa => \&check_string, alias => 'datestamp_updated_field', ); before add => sub { my ($self, $data) = @_; my $now = now($self->datestamp_format); $data->{$self->datestamp_created_key} ||= $now; $data->{$self->datestamp_updated_key} = $now; }; sub _build_datestamp_format {'iso_date_time'} sub _build_datestamp_created_key {'date_created'} sub _build_datestamp_updated_key {'date_updated'} 1; __END__ =pod =head1 NAME Catmandu::Plugin::Datestamps - Automatically add datestamps to Catmandu::Store records =head1 SYNOPSIS # Using configuration files $ cat catmandu.yml --- store: test: package: MongoDB options: database_name: test bags: data: plugins: - Datestamps $ echo '{"hello":"world"}' | catmandu import JSON to test $ catmandu export test to YAML --- _id: ADA305D8-697D-11E3-B0C3-97AD572FA7E3 date_created: 2013-12-20T13:50:25Z date_updated: 2013-12-20T13:50:25Z hello: world # Or in your Perl program my $store = Catmandu::Store::MongoDB->new( database_name => 'test' , bags => { data => { plugins => [qw(Datestamps)] } }); $store->bag->add({ '_id' => '123', 'name' => 'John Doe' }); my $obj = $store->bag->get('123'); print "%s created at %s\n" , $obj->{name} , $obj->{date_created}; =head1 DESCRIPTION The Catmandu::Plugin::Datestamps plugin automatically adds/updates datestamp fields in your records. If you add this plugin to your Catmandu::Store configuration then automatically a 'date_created' and 'date_updated' field gets added to newly ingested records. The plugin should be set for every bag defined in your Catmandu::Store. In the examples above we've set the plugin to the default bag 'data' that is created in every Catmandu::Store. In Catmandu::Store-s that don't have a dynamic schema (e.g. Solr, DBI) these new date fields should be predefined (e.g by changing the schema.xml or tables fields). =head1 CONFIGURATION =over =item datestamp_created_key Field name where the creation date is stored. Defaults to 'date_created'. Also aliased as C<datestamp_created_field>. =item datestamp_updated_key Field name where the update date is stored. Defaults to 'date_updated'. Also aliased as C<datestamp_updated_field>. =item datestamp_format Use a custom C<strftime> format. See L<Catmandu::Util::now> for possible format values. my $store = Catmandu::Store::MyDB->new(bags => {book => {plugins => ['Datestamps'], datestamp_format => '%Y/%m/%d'}}); my $store = Catmandu::Store::MyDB->new(bags => {book => {plugins => ['Datestamps'], datestamp_format => 'iso_date_time_millis'}}); =back =head1 SEE ALSO L<Catmandu::Store>, L<Catmandu::Bag> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Plugin/Versioning.pm�����������������������������������������������������000644 �000765 �000024 �00000021024 13341726377 022400� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Plugin::Versioning; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_value is_array_ref check_value check_positive); use Data::Compare; use Moo::Role; use MooX::Aliases; use namespace::clean; has version_bag_name => (is => 'lazy', init_arg => 'version_bag'); has version_bag => (is => 'lazy', init_arg => undef); has version_key => (is => 'lazy', alias => 'version_field'); has version_compare_ignore => ( is => 'lazy', coerce => sub { my $keys = $_[0]; $keys = [@$keys] if is_array_ref $keys; $keys = [split /,/, $keys] if is_value $keys; $keys; }, ); has version_transfer => ( is => 'lazy', coerce => sub { my $keys = $_[0]; $keys = [@$keys] if is_array_ref $keys; $keys = [split /,/, $keys] if is_value $keys; $keys; }, ); sub _build_version_bag_name { $_[0]->name . '_version'; } sub _build_version_bag { $_[0]->store->bag($_[0]->version_bag_name); } sub _build_version_key { $_[0]->store->key_for('version'); } sub _build_version_compare_ignore { [$_[0]->version_key]; } sub _trigger_version_compare_ignore { my ($self, $keys) = @_; my $version_key = $self->version_key; push @$keys, $version_key unless grep /^$version_key$/, @$keys; } sub _build_version_transfer { []; } sub _version_id { my ($self, $id, $version) = @_; "$id.$version"; } around add => sub { my ($sub, $self, $data) = @_; my $id_key = $self->id_key; my $version_key = $self->version_key; if (defined $data->{$id_key} and my $d = $self->get($data->{$id_key})) { $data->{$version_key} = $d->{$version_key} ||= 1; for my $key (@{$self->version_transfer}) { next if exists $data->{$key} || !exists $d->{$key}; $data->{$key} = $d->{$key}; } return $data if Compare($data, $d, {ignore_hash_keys => $self->version_compare_ignore}); my $version_id = $self->_version_id($data->{$id_key}, $data->{$version_key}); $self->version_bag->add( {$self->version_bag->id_key => $version_id, data => $d}); $data->{$version_key}++; } else { $data->{$version_key} ||= 1; } $sub->($self, $data); }; sub get_history { my ($self, $id, %opts) = @_; if (my $data = $self->get($id)) { my $history = [$data]; my $version = $data->{$self->version_key} || 1; while (--$version) { push @$history, $self->get_version($id, $version); } return $history; } return; } sub get_version { my ($self, $id, $version) = @_; check_value($id); check_positive($version); my $data; my $version_id = $self->_version_id($id, $version); if ($data = $self->version_bag->get($version_id)) { return $data->{data}; } if ($data = $self->get($id) and $data->{$self->version_key} == $version) { return $data; } return; } sub restore_version { my ($self, $id, $version) = @_; if (my $data = $self->get_version($id, $version)) { return $self->add($data); } return; } sub get_previous_version { my ($self, $id) = @_; if (my $data = $self->get($id)) { my $version = $data->{$self->version_key} || 1; if ($version > 1) { return $self->get_version($id, $version - 1); } } return; } sub restore_previous_version { my ($self, $id) = @_; if (my $data = $self->get_previous_version($id)) { return $self->add($data); } return; } 1; __END__ =pod =head1 NAME Catmandu::Plugin::Versioning - Automatically adds versioning to Catmandu::Store records =head1 SYNOPSIS # Using configuration files $ cat catmandu.yml --- store: test: package: MongoDB options: database_name: test bags: data: plugins: - Versioning # Add two version of record 001 to the store $ echo '{"_id":"001",hello":"world"}' | catmandu import JSON to test $ echo '{"_id":"001",hello":"world2"}' | catmandu import JSON to test # In the store we see only the latest version $ catmandu export test to YAML --- _id: '001' _version: 2 hello: world2 # In the '_version' store we'll find all the previous versions $ catmandu export test --bag data_version to YAML --- _id: '001.1' data: _id: '001' _version: 1 hello: world # Or in your Perl program my $store = Catmandu->store('MongoDB', database_name => 'test' , bags => { data => { plugins => [qw(Versioning)] } }); $store->bag->add({ _id => '001' , hello => 'world'}); $store->bag->add({ _id => '001' , hello => 'world2'}); print "Versions:\n"; for (@{$store->bag->get_history('001')}) { print Dumper($_); } =head1 DESCRIPTION The Catmandu::Plugin::Versioning plugin automatically adds a new 'version' bag to your Catmandu::Store containing previous versions of newly created records. The name of the version is created by appending '_version' to your original bag name. E.g. when add the Versioning plugin to a 'test' bag then 'test_version' will contain the previous version of all your records. When using Catmandu::Store-s that don't have dynamic schema's (e.g. Solr , DBI) these new bags need to be predefined (e.g. create new Solr cores or database tables). =head1 CONFIGURATION =over =item version_compare_ignore By default every change to a record with trigger the creation of a new version. Use the version_compare_ignore option to specify fields that should be ignored when testing for new updates. E.g. in the example below we configured the MongoDB store to add versioning to the default 'data' bag. We want to ignore changes to the 'date_updated' field when creating new version records # catmandu.yml --- store: test: package: MongoDB options: database_name: test bags: data: plugins: - Versioning version_compare_ignore: - date_updated # In your perl # First version $store->bag->add({ _id => '001' , name => 'test' , date_updated => '10:00' }); # Second version (name has changed) $store->bag->add({ _id => '001' , name => 'test123' , date_updated => '10:00' }); # Second version (date_updated has changed but we ignored that in our configuration) $store->bag->add({ _id => '001' , name => 'test123' , date_updated => '10:15' }); =item version_transfer This option autmatically copies the configured fields from the previous version of a record to the new version of the record. E.g. in the example below we will create a versioning on the default bag and add a rights statement that can not be deleted. # catmandu.yml --- store: test: package: MongoDB options: database_name: test bags: data: plugins: - Versioning version_transfer: - rights: # In your perl # First version $store->bag->add({ _id => '001' , name => 'test' , rights => 'Acme Corp.' }); # Second version we will try you delete rights but this is copied to the new version $store->bag->add({ _id => '001' , name => 'test'}); print "Rights: %s\n" , $store->bag->get('001')->{rights}; # Rights: Acme Corp. =item version_bag The name of the bag that stores the versions. Default is the name of the versioned bag with '_version' appended. my $store = Catmandu::Store::MyDB->new(bags => {book => {plugins => ['Versioning'], version_bag => 'book_history'}}); $store->bag('book')->version_bag->name # returns 'book_history' =item version_key Use a custom key to hold the version number in this bag. Default is '_version' unless the store has a custom C<key_prefix>. Also aliased as C<version_field>. =back =head1 METHODS Every bag that is configured with the Catmandu::Plugin::Versioning plugin can use the following methods: =head2 get_version(ID,VERSION) Retrieve a record with identifier ID and version identifier VERSION. E.g. my $obj = $store->bag('test')->get_version('001',1); =head2 get_previous_version(ID) Retrieve the previous version of a record with identifier ID. E.g. =head2 get_history(ID) Returns an ARRAY reference with all the versions of the record with identifier ID. =head2 restore_version(ID,VERSION) Overwrites the current version of the stored record with identifier ID with a version with identifier VERSION. =head2 restore_previous_version(ID) Overwrites the current version of the stored record with identifier ID with its previous version. =head1 SEE ALSO L<Catmandu::Store>, L<Catmandu::Bag> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Validator/Simple.pm������������������������������������������������������000644 �000765 �000024 �00000003137 13341726377 022202� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Validator::Simple; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Validator'; has handler => ( is => 'rw', required => 1, isa => sub { Catmandu::BadArg->throw("handler should be a CODE reference") unless ref $_[0] eq 'CODE'; }, ); sub validate_data { my ($self, $data) = @_; my $error_messages = &{$self->handler}($data); $error_messages = [$error_messages] unless !$error_messages || ref $error_messages eq 'ARRAY'; return $error_messages; } 1; __END__ =pod =head1 NAME Catmandu::Validator::Simple - Simple Validator for Catmandu =head1 SYNOPSIS use Catmandu::Validator::Simple; my $validator = Catmandu::Validator::Simple->new( handler => sub { $data = shift; return "error" unless $data->{title} =~ m/good title/; return; } ); if ( $validator->is_valid($hashref) ) { save_record_in_database($hashref); } else { reject_form($validator->last_errors); } =head1 DESCRIPTION Catmandu::Validator::Simple can be used for doing simple data validation in Catmandu. =head1 CONFIGURATION =over =item handler A function that takes a hash reference item as argument. Should return undef if the record passes validation otherwise return an error or an arrayref of errors. Each error can be either a simple message string or a hashref to a more detailed error information. =back =head1 SEE ALSO See L<Catmandu::Validator> for inherited methods, common configuration options, and usage. =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Validator/Mock.pm��������������������������������������������������������000644 �000765 �000024 �00000002160 13341726377 021635� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Validator::Mock; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Validator'; has message => (is => 'rw', default => sub {'item is invalid'}); has reject => (is => 'rw', default => sub {0}); sub validate_data { my ($self) = @_; if ($self->reject) { return [$self->message]; } } 1; __END__ =pod =head1 NAME Catmandu::Validator::Mock - Validate items based on a flag =head1 SYNOPSIS use Catmandu::Validator::Mock; my $validator = Catmandu::Validator::Mock->new( message => 'item is invalid', reject => 1, ); =head1 DESCRIPTION This L<Catmandu::Validator> can be used for testing as it does not actually look at the data to validate. Instead it rejects items if C<reject> is set to a true value. =head1 CONFIGURATION =over =item message Error message to return for rejected items. =item reject The validator marks all items as invalid as long as this flag is true. Default is false. =back =head1 SEE ALSO See L<Catmandu::Validator> for inherited methods, common configuration options, and usage. =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/DKVP.pm���������������������������������������������������������000644 �000765 �000024 �00000003033 13341726377 021364� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::DKVP; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Importer'; has pair_sep_char => (is => 'ro', default => sub {'='}); has sep_char => (is => 'ro', default => sub {','}); has _re => (is => 'lazy'); sub _build__re { my ($self) = @_; my $sep_char = $self->sep_char; my $pair_sep_char = $self->pair_sep_char; qr/([^$pair_sep_char]+)$pair_sep_char([^$sep_char]+)(?:$sep_char|$)/; } sub generator { my ($self) = @_; return sub { state $fh = $self->fh; state $re = $self->_re; if (defined(my $line = <$fh>)) { chomp $line; my %rec = $line =~ /$re/g; return \%rec; } return; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::DKVP - Delimited key-value pairs importer =head1 DESCRIPTION This package imports text files containing delimited key-value pairs. a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 =head1 CONFIGURATION =over =item sep_char The character that separates fields. Default is C<,>. =item pair_sep_char The character that separates key-value pairs. Default is C<=>. =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable>. All their methods are inherited. =head1 SEE ALSO L<Miller|http://johnkerl.org/miller/doc/file-formats.html#DKVP:_Key-value_pairs> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/Multi.pm��������������������������������������������������������000644 �000765 �000024 �00000002731 13341726377 021716� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::Multi; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Util qw(is_string); use Catmandu; use Catmandu::MultiIterator; use Moo; use namespace::clean; with 'Catmandu::Importer'; has importers => ( is => 'ro', default => sub {[]}, coerce => sub { my $importers = $_[0]; return [ map { if (is_string($_)) { Catmandu->importer($_); } else { $_; } } @$importers ]; }, ); sub generator { my ($self) = @_; sub { state $generators = [map {$_->generator} @{$self->importers}]; while (@$generators) { my $data = $generators->[0]->(); return $data if defined $data; shift @$generators; } return; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::Multi - Chain multiple importers together =head1 SYNOPSIS use Catmandu::Importer::Multi; my $importer = Catmandu::Importer::Multi->new(importers => [ Catmandu::Importer::Mock->new, Catmandu::Importer::Mock->new, ]); my $importer = Catmandu::Importer::Multi->new( 'importer1', 'importer2', ); # return all the items of each importer in turn $importer->each(sub { # ... }); =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. =cut ���������������������������������������Catmandu-1.10/lib/Catmandu/Importer/Null.pm���������������������������������������������������������000644 �000765 �000024 �00000001716 13341726377 021540� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::Null; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Importer'; sub generator { my ($self) = @_; my $n = 0; sub { return undef if $n++; +{}; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::Null - Null importer used for testing purposes =head1 SYNOPSIS # From the command line catmandu convert Null --fix 'add_field(foo,bar)' # creates { "foo": "bar" } # In a Perl script use Catmandu; my $importer = Catmandu->importer('Null'); my $n = $importer->each(sub { my $hashref = $_[0]; # ... }); =head1 DESCRIPTION The importer generates one empty record and then exists. This importer can be used to test fix functions, generating a single record. =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. =head1 SEE ALSO L<Catmandu::Exporter::Null> =cut ��������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/TSV.pm����������������������������������������������������������000644 �000765 �000024 �00000005332 13341726377 021300� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::TSV; use Catmandu::Sane; our $VERSION = '1.10'; use Catmandu::Importer::CSV; use Moo; use namespace::clean; with 'Catmandu::Importer'; has header => (is => 'ro', default => sub {1}); has sep_char => ( is => 'ro', default => sub {"\t"}, coerce => sub { my $sep_char = $_[0]; $sep_char =~ s/(\\[abefnrt])/"qq{$1}"/gee; return $sep_char; } ); has fields => ( is => 'rwp', coerce => sub { my $fields = $_[0]; if (ref $fields eq 'ARRAY') {return $fields} if (ref $fields eq 'HASH') {return [sort keys %$fields]} return [split ',', $fields]; }, ); has csv => (is => 'lazy'); sub _build_csv { my ($self) = @_; my $csv = Catmandu::Importer::CSV->new( header => $self->header, sep_char => $self->sep_char, quote_char => undef, escape_char => undef, file => $self->file, ); $csv->{fields} = $self->fields; $csv; } sub generator { my ($self) = @_; $self->csv->generator; } 1; __END__ =pod =head1 NAME Catmandu::Importer::TSV - Package that imports tab-separated values =head1 SYNOPSIS # From the command line # convert a TSV file to JSON catmandu convert TSV to JSON < journals.tab # Or in a Perl script use Catmandu; my $importer = Catmandu->importer('TSV', file => "/foo/bar.tab"); my $n = $importer->each(sub { my $hashref = $_[0]; # ... }); =head1 DESCRIPTION This package imports tab-separated values (TSV). The object fields are read from the TSV header line or given via the C<fields> parameter. =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =item fields List of fields to be used as columns, given as array reference, comma-separated string, or hash reference. If C<header> is C<0> and C<fields> is C<undef> the fields will be named by column index ("0", "1", "2", ...). =item header Read fields from a header line with the column names, if set to C<1> (the default). =item sep_char Column separator (C<tab> by default) =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. The methods are not idempotent: CSV streams can only be read once. =head1 SEE ALSO L<Catmandu::Exporter::TSV> =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/YAML.pm���������������������������������������������������������000644 �000765 �000024 �00000004341 13341726377 021365� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::YAML; use Catmandu::Sane; our $VERSION = '1.10'; use YAML::XS (); use Moo; use Devel::Peek; use namespace::clean; with 'Catmandu::Importer'; my $RE_EOF = qr'^\.\.\.$'; my $RE_SEP = qr'^---'; sub generator { my ($self) = @_; sub { state $fh = $self->fh; state $yaml = ""; state $data; state $line; while (defined($line = <$fh>)) { if ($line =~ $RE_EOF) { last; } if ($line =~ $RE_SEP && $yaml) { utf8::encode($yaml); $data = YAML::XS::Load($yaml); $yaml = $line; return $data; } $yaml .= $line; } if ($yaml) { utf8::encode($yaml); $data = YAML::XS::Load($yaml); $yaml = ""; return $data; } return; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::YAML - Package that imports YAML data =head1 SYNOPSIS # From the command line $ catmandu convert YAML to JSON < data.yaml # In a Perl script use Catmandu; my $importer = Catmandu->importer('YAML',file => "/foo/bar.yaml"); my $n = $importer->each(sub { my $hashref = $_[0]; # ... }); The YAML input file needs to be separated into records: --- - recordno: 1 - name: Alpha --- - recordno: 2 - name: Beta ... where '---' is the record separator and '...' the EOF indicator. =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. The Catmandu::Importer::YAML methods are not idempotent: YAML feeds can only be read once. =head1 SEE ALSO L<Catmandu::Exporter::YAML> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/Text.pm���������������������������������������������������������000644 �000765 �000024 �00000007212 13341726377 021547� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::Text; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Importer'; has pattern => ( is => 'ro', coerce => sub { $_[0] =~ /\n/m ? qr{$_[0]}x : qr{$_[0]}; }, ); has split => ( is => 'ro', coerce => sub { length $_[0] == 1 ? quotemeta($_[0]) : qr{$_[0]}; } ); sub generator { my ($self) = @_; sub { state $pattern = $self->pattern; state $split = $self->split; state $count = 0; state $line; while (defined($line = $self->fh->getline)) { chomp $line; next if $pattern and $line !~ $pattern; my $data = {_id => ++$count}; if (@+ < 2) { # no capturing groups $data->{text} = $line; } elsif (%+) { # named capturing groups $data->{match} = {%+}; } else { # numbered capturing groups no strict 'refs'; $data->{match} = [map {$$_} 1 .. @+ - 1]; } if ($split) { $data->{text} = [split $split, $line]; } return $data; } return; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::Text - Package that imports textual data =head1 SYNOPSIS # From the command line # separate fields by whitespace sequences just like awk catmandu convert Text --split '\s+' # import all lines starting with '#', omitting this character catmandu convert Text --pattern '^#(.*)' # In a Perl script use Catmandu; my $importer = Catmandu->importer('Text' , file => "/foo/bar.txt" ); # print all lines with line number $importer->each(sub { my $item = $_[0]; printf "%d: %s" , $item->{_id} , $item->{text}; }); =head1 DESCRIPTION This package reads textual input line by line. Each line is imported as item with line number in field C<_id> and text content in field C<text>. Line separators are not included. Lines can further be split by character or pattern and a regular expression can be specified to only import selected lines and to translate pattern groups to fields. =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =item split Single Character or regular expression (as string with a least two characters), to split each line. Resulting parts are imported in field C<text> as array. =item pattern Regular expression, given as string, to only import matching lines. Whitespaces in patterns are ignored or must be escaped if patterns consists of multiple lines. If the pattern contains capturing groups, captured values are imported in field C<match> instead of C<text>. For instance dates in C<YYYY-MM-DD> format can be imported as named fields with (?<year>\d\d\d\d)-(?<month>\d\d)-(?<day>\d\d) or as array with (\d\d\d\d)- # year (\d\d)- # month (\d\d) # day =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> with all its methods inherited. =head1 SEE ALSO L<Catmandu::Exporter::Text> L<Catmandu::Fix::parse_text> Unix tools L<awk|https://en.wikipedia.org/wiki/AWK> and L<sed|https://en.wikipedia.org/wiki/Sed> =cut ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/CSV.pm����������������������������������������������������������000644 �000765 �000024 �00000012224 13341726377 021255� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::CSV; use Catmandu::Sane; our $VERSION = '1.10'; use Text::CSV; use List::Util qw(reduce); use Moo; use namespace::clean; with 'Catmandu::Importer'; has csv => (is => 'ro', lazy => 1, builder => '_build_csv'); has sep_char => ( is => 'ro', default => sub {','}, coerce => sub { my $sep_char = $_[0]; $sep_char =~ s/(\\[abefnrt])/"qq{$1}"/gee; return $sep_char; } ); has quote_char => (is => 'ro', default => sub {'"'}); has escape_char => (is => 'ro', default => sub {'"'}); has allow_loose_quotes => (is => 'ro', default => sub {0}); has allow_loose_escapes => (is => 'ro', default => sub {0}); has header => (is => 'ro', default => sub {1}); has fields => ( is => 'rwp', coerce => sub { my $fields = $_[0]; if (ref $fields eq 'ARRAY') {return $fields} if (ref $fields eq 'HASH') {return [sort keys %$fields]} return [split ',', $fields]; }, ); sub _build_csv { my ($self) = @_; Text::CSV->new( { binary => 1, sep_char => $self->sep_char, quote_char => $self->quote_char ? $self->quote_char : undef, escape_char => $self->escape_char ? $self->escape_char : undef, allow_loose_quotes => $self->allow_loose_quotes, allow_loose_escapes => $self->allow_loose_escapes, } ); } sub generator { my ($self) = @_; sub { state $line = 0; state $fh = $self->fh; state $csv = do { if ($self->header) { if ($self->fields) { $self->csv->getline($fh); $line++; } else { $self->_set_fields($self->csv->getline($fh)); $line++; } } if ($self->fields) { $self->csv->column_names($self->fields); } $self->csv; }; # generate field names if needed unless ($self->fields) { my $row = $csv->getline($fh) // return; $line++; my $fields = [0 .. (@$row - 1)]; $self->_set_fields($fields); $csv->column_names($fields); return reduce { $a->{$b} = $row->[$b] if length $row->[$b]; $a; } +{}, @$fields; } my $rec = $csv->getline_hr($fh); $line++; if (defined $rec || $csv->eof()) { return $rec; } else { my ($cde, $str, $pos) = $csv->error_diag(); die "at line $line (byte $pos) found a Text::CSV parse error($cde) $str"; } }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::CSV - Package that imports CSV data =head1 SYNOPSIS # From the command line # convert a CSV file to JSON catmandu convert CSV to JSON < journals.csv # set column names if CSV file has no header line echo '12157,"The Journal of Headache and Pain",2193-1801' | \ catmandu convert CSV --header 0 --fields 'id,title,issn' to YAML # set field separator and quote character echo '12157;$The Journal of Headache and Pain$;2193-1801' | \ catmandu convert CSV --header 0 --fields 'id,title,issn' --sep_char ';' --quote_char '$' to XLSX --file journal.xlsx # In a Perl script use Catmandu; my $importer = Catmandu->importer('CSV', file => "/foo/bar.csv"); my $n = $importer->each(sub { my $hashref = $_[0]; # ... }); =head1 DESCRIPTION The package imports comma-separated values (CSV). The object fields are read from the CSV header line or given via the C<fields> parameter. Strings in CSV are quoted by C<quote_char> and fields are separated by C<sep_char>. =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =item fields List of fields to be used as columns, given as array reference, comma-separated string, or hash reference. If C<header> is C<0> and C<fields> is C<undef> the fields will be named by column index ("0", "1", "2", ...). =item header Read fields from a header line with the column names, if set to C<1> (the default). =item sep_char Column separator (C<,> by default) =item quote_char Quotation character (C<"> by default) =item escape_char Character for escaping inside quoted field (C<"> by default) =item allow_loose_quotes =item allow_loose_escapes Allow common bad-practice in CSV escaping =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. The methods are not idempotent: CSV streams can only be read once. =head1 SEE ALSO L<Catmandu::Exporter::CSV>, L<Catmandu::Importer::XLS> =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/Modules.pm������������������������������������������������������000644 �000765 �000024 �00000012025 13341726377 022231� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::Modules; use Catmandu::Sane; our $VERSION = '1.10'; use Module::Info; use File::Spec; use Path::Iterator::Rule; use Moo; use Catmandu::Util qw(array_split pod_section read_file); use namespace::clean; with 'Catmandu::Importer'; has inc => ( is => 'ro', lazy => 1, default => sub {[@INC]}, coerce => \&array_split, ); has namespace => (is => 'ro', default => sub {[""]}, coerce => \&array_split,); has max_depth => (is => 'ro', predicate => 1,); has pattern => (is => 'ro',); has primary => (is => 'ro',); has about => (is => 'ro', default => sub {1}); sub generator { my ($self) = @_; sub { state $pattern = $self->pattern; state $files = {}; state $names = {}; # array of [ $directory => $namespace ] state $search = [ map { my $ns = $_; my $parts = [map {grep length, split(/::/, $_)} $ns]; map {[File::Spec->catdir($_, @$parts) => $ns]} @{$self->inc}; } @{$self->namespace} ]; state $cur = shift(@$search) // return; state $iter = do { my $rule = Path::Iterator::Rule->new; $rule->file->name('*.pm'); $rule->max_depth($self->max_depth) if $self->has_max_depth; $rule->iter($cur->[0], {depthfirst => 1}); }; while (1) { my ($dir, $ns) = @$cur; if (defined(my $file = $iter->())) { my $path = File::Spec->abs2rel($file, $dir); my $name = join('::', File::Spec->splitdir($path)); $name =~ s/\.pm$//; $name = join('::', $ns, $name) if $ns; next if defined $pattern && $name !~ $pattern; my $info = Module::Info->new_from_file($file); my $file = File::Spec->rel2abs($file); next if $files->{$file}; $files->{$file} = 1; if ($self->primary) { next if $names->{$name}; $names->{$name} = 1; } my $data = {file => $file, name => $name, path => $dir,}; if (defined $info->version && $info->version ne 'undef') { $data->{version} = "" . $info->version; } elsif (open(my $fh, '<:encoding(UTF-8)', $file)) { while (my $line = <$fh>) { if (my ($version) = $line =~ /^\s*our\s+\$VERSION\s*=\s*['"]([^'"]+)['"]\s*;/ ) { $data->{version} = $version; last; } } close($fh); } if ($self->about) { my $about = pod_section($file, 'NAME'); $about =~ s/[^-]+(\s*-?\s*)?//; $about =~ s/\n/ /mg; $about =~ s/ *$//; $data->{about} = $about if $about ne ''; } return $data; } else { $cur = shift(@$search) // return; my $rule = Path::Iterator::Rule->new; $rule->file->name('*.pm'); $rule->max_depth($self->max_depth) if $self->has_max_depth; $iter = $rule->iter($cur->[0], {depthfirst => 1}); } } }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::Modules - list installed perl modules in a given namespace =head1 DESCRIPTION This L<Catmandu::Importer> list perl modules from all perl library paths with their C<name>, C<version>, absolute C<file>, library C<path>, and short description (C<about>). =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =item namespace Namespace(s) for the modules to list, given as array or comma-separated list =item inc List of library paths (defaults to C<@INC>) =item max_depth Maximum depth to recurse into the namespace e.g. if the namespace is Catmandu::Fix then Catmandu::Fix::add_field has a depth of 1 and Catmandu::Fix::Condition::exists a depth of 2 =item pattern Filter modules by the given regex pattern =item primary Filter modules to the first module of each name =item about Include short description as given in the NAME section of each module's documentation. Enabled by default. =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. =head1 SEE ALSO L<Catmandu::Importer::CPAN>, L<Catmandu::Cmd::info> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/Mock.pm���������������������������������������������������������000644 �000765 �000024 �00000002457 13341726377 021522� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::Mock; use Catmandu::Sane; our $VERSION = '1.10'; use Moo; use namespace::clean; with 'Catmandu::Importer'; has size => (is => 'ro'); sub generator { my ($self) = @_; my $n = 0; sub { return if defined $self->size && $n == $self->size; return {n => $n++}; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::Mock - Mock importer used for testing purposes =head1 SYNOPSIS use Catmandu; my $importer = Catmandu->importer('Mock'); my $n = $importer->each(sub { my $hashref = $_[0]; # ... }); =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =item size Number of items. If not set, an endless stream is imported. =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. =head1 SEE ALSO L<Catmandu::Exporter::Null> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Importer/JSON.pm���������������������������������������������������������000644 �000765 �000024 �00000006723 13341726377 021402� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::JSON; use Catmandu::Sane; our $VERSION = '1.10'; use Cpanel::JSON::XS (); use Moo; use namespace::clean; with 'Catmandu::Importer'; has line_delimited => (is => 'ro', default => sub {0}); has byte_buffer_size => (is => 'ro', default => sub {256}); has json => (is => 'lazy'); sub _build_json { my ($self) = @_; Cpanel::JSON::XS->new->utf8($self->encoding eq ':raw'); } sub _build_encoding {':raw'} sub generator { my ($self) = @_; if ($self->line_delimited) { return sub { state $json = $self->json; state $fh = $self->fh; if (defined(my $line = <$fh>)) { return $json->decode($line); } return; }; } # switch to incremental parser sub { state $json = $self->json; state $fh = $self->fh; state $buf_size = $self->byte_buffer_size; for (;;) { my $res = sysread($fh, my $buf, $buf_size); $res // Catmandu::Error->throw($!); $json->incr_parse($buf); # void context, so no parsing $json->incr_text =~ s/^[^{]+//; return if $json->incr_text =~ /^$/; last if $json->incr_text =~ /^{/; } # read data until we get a single json object for (;;) { if (my $data = $json->incr_parse) { return $data; } my $res = sysread($fh, my $buf, $buf_size); $res // Catmandu::Error->throw($!); $res || Catmandu::Error->throw( "JSON syntax error: unexpected end of object"); $json->incr_parse($buf); } return; }; } 1; __END__ =pod =head1 NAME Catmandu::Importer::JSON - Package that imports JSON data =head1 SYNOPSIS # From the command line $ catmandu convert JSON to YAML < data.json # or for faster newline delimited input $ catmandu convert JSON --line_delimited 1 to YAML < data.json # In a Perl script use Catmandu; my $importer = Catmandu->importer('JSON', file => "/foo/bar.json"); my $n = $importer->each(sub { my $hashref = $_[0]; # ... }); =head1 DESCRIPTION This package imports JSON data. The parser is quite liberal in the input it accepts. You can use the C<line_delimited> option to parse "newline delimited JSON" faster: { "recordno": 1, "name": "Alpha" } { "recordno": 2, "name": "Beta" } { "recordno": 3, "name": "Gamma" } =head1 CONFIGURATION =over =item file Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string. =item fh Read input from an L<IO::Handle>. If not specified, L<Catmandu::Util::io> is used to create the input stream from the C<file> argument or by using STDIN. =item encoding Binmode of the input stream C<fh>. Set to C<:utf8> by default. =item fix An ARRAY of one or more fixes or file scripts to be applied to imported items. =item line_delimited Read line-delimited JSON line-by-line with a non-incremental parser. =item byte_buffer_size Number of bytes that is read by each iteration of the incremental parser. Ignored if C<line_delinmited> is C<1>. Default is C<256>. =back =head1 METHODS Every L<Catmandu::Importer> is a L<Catmandu::Iterable> all its methods are inherited. The methods are not idempotent: JSON streams can only be read once. =head1 SEE ALSO L<Catmandu::Exporter::JSON> =cut ���������������������������������������������Catmandu-1.10/lib/Catmandu/Serializer/json.pm�������������������������������������������������������000644 �000765 �000024 �00000001371 13341726377 022104� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Serializer::json; use Catmandu::Sane; our $VERSION = '1.10'; use Cpanel::JSON::XS (); use Moo; use namespace::clean; sub serialize { Cpanel::JSON::XS::encode_json($_[1]); } sub deserialize { Cpanel::JSON::XS::decode_json($_[1]); } 1; __END__ =pod =head1 NAME Catmandu::Serializer - A (de)serializer from and to json =head1 SYNOPSIS package MyPackage; use Moo; with 'Catmandu::Serializer'; # You have now serialize and deserialize methods available package main; my $obj = MyPackage->new; my $obj = MyPackage->new(serializer => 'json'); $obj->serialize( { foo => 'bar' } ); # JSON $obj->deserialize( "{'foo':'bar'}" ); # Perl =head1 SEE ALSO L<Catmandu::Serializer> =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/run.pm���������������������������������������������������������������000644 �000765 �000024 �00000003277 13341726377 020340� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::run; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Catmandu::Util qw(require_package); use namespace::clean; sub command_opt_spec { ( ["var=s%", ""], ["fix=s@", ""], ["preprocess|pp", ""], ["verbose|v", ""], ["i", "interactive mode"], ); } sub command { my ($self, $opts, $args) = @_; if (defined $opts->{i} || !defined $args->[0]) { my $pkg = require_package('Catmandu::Interactive'); my $app = Catmandu::Interactive->new(); $app->run(); } else { my $fix_file = $args->[0]; $fix_file = [\*STDIN] unless defined $fix_file; $opts->{fix} = [$fix_file]; my $from = Catmandu->importer('Null'); $from = $self->_build_fixer($opts)->fix($from); if ($opts->verbose) { $from = $from->benchmark; } my $into = Catmandu->exporter('Null'); my $n = $into->add_many($from); $into->commit; if ($opts->verbose) { say STDERR $n == 1 ? "converted 1 item" : "converted $n items"; say STDERR "done"; } } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::run - run a fix command =head1 EXAMPLES # Run an interactive Fix shell $ catmandu run # Execute the fix script $ catmandu run myfixes.txt # Execute the scripts with options passed $ catmandu run --var source=bla myfixes.txt $ cat myfixes.txt add_field(my_source,{{source}}) # Or create an execurable fix script: #!/usr/bin/env catmandu run do importer(Mock,size:10) add_field(foo,bar) add_to_exporter(.,JSON) end =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/import.pm������������������������������������������������������������000644 �000765 �000024 �00000003615 13341726377 021042� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::import; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use namespace::clean; sub command_opt_spec { ( ["verbose|v", ""], ["fix=s@", ""], ["var=s%", ""], ["preprocess|pp", ""], ["start=i", ""], ["total=i", ""], ["delete", "delete existing items first"], ["transaction|tx", "wrap in a transaction"], ); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts, $into_args, $into_opts) = $self->_parse_options($args); my $from = Catmandu->importer($from_args->[0], $from_opts); my $into_bag = delete $into_opts->{bag}; my $into = Catmandu->store($into_args->[0], $into_opts)->bag($into_bag); if ($opts->start // $opts->total) { $from = $from->slice($opts->start, $opts->total); } if ($opts->fix) { $from = $self->_build_fixer($opts)->fix($from); } if ($opts->verbose) { $from = $from->benchmark; } my $tx = sub { if ($opts->delete) { $into->delete_all; $into->commit; } my $n = $into->add_many($from); $into->commit; if ($opts->verbose) { say STDERR $n == 1 ? "imported 1 item" : "imported $n items"; say STDERR "done"; } }; if ($opts->transaction) { $self->usage_error("Bag isn't transactional") if !$into->does('Catmandu::Transactional'); $into->transaction($tx); } else { $tx->(); } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::import - import items into a store =head1 EXAMPLES catmandu import <IMPORTER> <OPTIONS> to <STORE> <OPTIONS> catmandu import YAML to MongoDB --database-name items --bag book < books.yml catmandu help importer YAML catmandu help importer MongoDB =cut �������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/delete.pm������������������������������������������������������������000644 �000765 �000024 �00000002643 13341726377 020772� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::delete; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Catmandu::Util qw(check_able); use namespace::clean; sub command_opt_spec { (["cql-query|q=s", ""], ["query=s", ""], ["id=s@", ""],); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts) = $self->_parse_options($args); my $from_bag = delete $from_opts->{bag}; my $from = Catmandu->store($from_args->[0], $from_opts)->bag($from_bag); if ($opts->id) { $from->delete($_) for @{$opts->id}; } elsif ($opts->query // $opts->cql_query) { check_able($from, 'delete_by_query'); $from->delete_by_query( cql_query => $opts->cql_query, query => $opts->query, ); } else { $from->delete_all; } $from->commit; } 1; __END__ =pod =head1 NAME Catmandu::Cmd::delete - delete items from a store =head1 EXAMPLES catmandu delete <STORE> <OPTIONS> # delete items with matching _id catmandu delete ElasticSearch --index-name items --bag book \ --id 1234 --id 2345 # delete items matching the query catmandu delete ElasticSearch --index-name items --bag book \ --query 'title:"My Rabbit"' # delete all items catmandu delete ElasticSearch --index-name items --bag book catmandu help store ElasticSearch =cut ���������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/config.pm������������������������������������������������������������000644 �000765 �000024 �00000002400 13341726377 020764� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::config; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu::Util qw(data_at); use Catmandu; use namespace::clean; sub command_opt_spec { (["fix=s@", ""], ["var=s%", ""], ["preprocess|pp", ""],); } sub command { my ($self, $opts, $args) = @_; my $from; my $into; my ($from_args, $from_opts, $into_args, $into_opts) = $self->_parse_options($args); if (@$from_args) { $from = data_at($from_args->[0], Catmandu->config); } else { $from = Catmandu->config; } if (@$into_args || %$into_opts) { $into = Catmandu->exporter($into_args->[0], $into_opts); } else { $into = $self->_default_exporter; } if ($opts->fix) { $from = $self->_build_fixer($opts)->fix($from); } $into->add($from); $into->commit; } sub _default_exporter { Catmandu->exporter('JSON', pretty => 1, array => 0); } 1; __END__ =pod =head1 NAME Catmandu::Cmd::config - export the Catmandu config =head1 EXAMPLES # export config to JSON catmandu config # or any other Catmandu::Exporter catmandu config to YAML --fix 'delete_field(password)' # export only part of the config file catmandu config my.prefix to CSV =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/convert.pm�����������������������������������������������������������000644 �000765 �000024 �00000004033 13341726377 021203� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::convert; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Catmandu::Util qw(array_includes); use namespace::clean; sub command_opt_spec { ( ["verbose|v", ""], ["fix=s@", ""], ["var=s%", ""], ["preprocess|pp", ""], ["start=i", ""], ["total=i", ""], ["id=s@", ""], [ "id-file=s", "A line-delimited file containing the id's to include in the conversion. Other records will be ignored." ], ); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts, $into_args, $into_opts) = $self->_parse_options($args); my $from = Catmandu->importer($from_args->[0], $from_opts); my $into = Catmandu->exporter($into_args->[0], $into_opts); if ($opts->id // $opts->id_file) { my $id_map = {}; if (my $ids = $opts->id) { $id_map->{$_} = 1 for @$ids; } else { Catmandu->importer('Text', file => $opts->id_file)->each( sub { $id_map->{$_[0]->{text}} = 1; } ); } $from = $from->select( sub {defined $_[0]->{_id} && exists $id_map->{$_[0]->{_id}}}); } elsif ($opts->start // $opts->total) { $from = $from->slice($opts->start, $opts->total); } if ($opts->fix) { $from = $self->_build_fixer($opts)->fix($from); } if ($opts->verbose) { $from = $from->benchmark; } my $n = $into->add_many($from); $into->commit; if ($opts->verbose) { say STDERR $n == 1 ? "converted 1 item" : "converted $n items"; say STDERR "done"; } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::convert - convert items =head1 EXAMPLES catmandu convert <IMPORTER> <OPTIONS> to <EXPORTER> <OPTIONS> cat books.json | catmandu convert JSON to CSV --fields id,title catmandu help importer JSON catmandu help exporter YAML =cut �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/export.pm������������������������������������������������������������000644 �000765 �000024 �00000005510 13341726377 021045� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::export; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Catmandu::ArrayIterator; use namespace::clean; sub command_opt_spec { ( ["verbose|v", ""], ["fix=s@", ""], ["var=s%", ""], ["preprocess|pp", ""], ["start=i", ""], ["limit=i", ""], ["total=i", ""], ["cql-query|q=s", ""], ["query=s", ""], ["sru-sortkeys=s", ""], ["sort=s", ""], ["id=s@", ""], ["id-file=s", "A line-delimited file containing the id's to export."], ); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts, $into_args, $into_opts) = $self->_parse_options($args); my $from_bag = delete $from_opts->{bag}; my $from = Catmandu->store($from_args->[0], $from_opts)->bag($from_bag); my $into = Catmandu->exporter($into_args->[0], $into_opts); if ($opts->id_file) { my $bag = $from; $from = Catmandu->importer('Text', file => $opts->id_file) ->map(sub {$bag->get($_[0]->{text})}); } elsif (my $ids = $opts->id) { my $bag = $from; $from = Catmandu::ArrayIterator->new([map {$bag->get($_)} @$ids]); } elsif ($opts->query // $opts->cql_query // $opts->sort // $opts->sru_sortkeys) { $self->usage_error("Bag isn't searchable") if !$from->does('Catmandu::Searchable'); $self->usage_error("Bag isn't CQL searchable") if ($opts->cql_query // $opts->sru_sortkeys) && !$from->does('Catmandu::CQLSearchable'); $from = $from->searcher( cql_query => $opts->cql_query, query => $opts->query, sru_sortkeys => $opts->sru_sortkeys, sort => $opts->sort, start => $opts->start, total => $opts->total, limit => $opts->limit, ); } elsif ($opts->start // $opts->total) { $from = $from->slice($opts->start, $opts->total); } if ($opts->fix) { $from = $self->_build_fixer($opts)->fix($from); } if ($opts->verbose) { $from = $from->benchmark; } my $n = $into->add_many($from); $into->commit; if ($opts->verbose) { say STDERR $n == 1 ? "exported 1 item" : "exported $n items"; say STDERR "done"; } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::export - export items from a store =head1 EXAMPLES catmandu export <STORE> <OPTIONS> to <EXPORTER> <OPTIONS> catmandu export MongoDB --database-name items --bag book to YAML catmandu export ElasticSearch --bag book --sru-sortkeys 'title,,1' --cql-query '(title = "test")' catmandu help store MongoDB catmandu help exporter YAML =cut ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/copy.pm��������������������������������������������������������������000644 �000765 �000024 �00000005031 13341726377 020474� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::copy; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use namespace::clean; sub command_opt_spec { ( ["verbose|v", ""], ["fix=s@", ""], ["var=s%", ""], ["preprocess|pp", ""], ["start=i", ""], ["limit=i", ""], ["total=i", ""], ["cql-query|q=s", ""], ["query=s", ""], ["sru-sortkeys=s", ""], ["sort=s", ""], ["delete", "delete existing items first"], ["transaction|tx", "wrap in a transaction"], ); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts, $into_args, $into_opts) = $self->_parse_options($args); my $from_bag = delete $from_opts->{bag}; my $from = Catmandu->store($from_args->[0], $from_opts)->bag($from_bag); my $into_bag = delete $into_opts->{bag}; my $into = Catmandu->store($into_args->[0], $into_opts)->bag($into_bag); if ($opts->query // $opts->cql_query) { $self->usage_error("Bag isn't searchable") unless $from->can('searcher'); $from = $from->searcher( cql_query => $opts->cql_query, query => $opts->query, start => $opts->start, total => $opts->total, limit => $opts->limit, ); } elsif ($opts->start // $opts->total) { $from = $from->slice($opts->start, $opts->total); } if ($opts->fix) { $from = $self->_build_fixer($opts)->fix($from); } if ($opts->verbose) { $from = $from->benchmark; } my $tx = sub { if ($opts->delete) { $into->delete_all; $into->commit; } my $n = $into->add_many($from); $into->commit; if ($opts->verbose) { say STDERR $n == 1 ? "copied 1 item" : "copied $n items"; say STDERR "done"; } }; if ($opts->transaction) { $self->usage_error("Bag isn't transactional") if !$into->does('Catmandu::Transactional'); $into->transaction($tx); } else { $tx->(); } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::copy - copy items from one store to another =head1 EXAMPLES catmandu copy <STORE> <OPTIONS> to <STORE> <OPTIONS> catmandu copy MongoDB --database_name items --bag book to \ ElasticSearch --index_name items --bag book catmandu help store MongoDB catmandu help store ElasticSearch =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/touch.pm�������������������������������������������������������������000644 �000765 �000024 �00000001365 13341726377 020652� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::touch; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use namespace::clean; sub command_opt_spec { (["key|field=s", "", {required => 1}], ["format=s", ""],); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts) = $self->_parse_options($args); my $from_bag = delete $from_opts->{bag}; my $from = Catmandu->store($from_args->[0], $from_opts)->bag($from_bag); $from->touch($opts->key, $opts->format); } 1; __END__ =pod =head1 NAME Catmandu::Cmd::touch - add the current datetime to the items in a bag =head1 EXAMPLES catmandu touch <STORE> <OPTIONS> catmandu touch MongoDB --index-name shop --bag products --field date_updated =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/compile.pm�����������������������������������������������������������000644 �000765 �000024 �00000001710 13341726377 021152� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::compile; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Data::Dumper; use namespace::clean; sub command_opt_spec { ( ["var=s%", ""], ["preprocess|pp", ""], ["fix|fix=s@", "", {hidden => 1}], ); } sub command { my ($self, $opts, $args) = @_; unless (@$args == 1) { say STDERR "usage: $0 compile <FILE>|<FIX> [<FILE>|<FIX> [...]]\n"; exit 1; } $opts->{fix} = $args; my $fixer = $self->_build_fixer($opts); my $fixes = $fixer->emit; my $captures = Dumper($fixer->_captures); $captures =~ s/^\$VAR1/\$_[1]/; print $captures; print $fixes; } 1; __END__ =pod =head1 NAME Catmandu::Cmd::compile - compile a Fix into Perl (for debugging) =head1 EXAMPLES catmandu compile <FILE>|<FIX> [<FILE>|<FIX> [...]] catmandu compile 'add_field(foo,bar.$append)' | perltidy -utf8 -npro -st -se =cut ��������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/help.pm��������������������������������������������������������������000644 �000765 �000024 �00000010016 13341726377 020451� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::help; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use App::Cmd::Command::help; use Catmandu::Util qw(require_package pod_section); use namespace::clean; sub usage_desc { '%c help [ <command> | ( export | import | store | fix ) <name> ]' } sub command_names {qw/help --help -h -?/} my %MODULES = ( Exporter => { re => qr/^export(er)?$/i, usage => [ "catmandu convert ... to %n [options]", "catmandu export ... to %n [options]", ], }, Importer => { re => qr/^import(er)?$/i, usage => [ "catmandu convert %n [options] to ...", "catmandu import %n [options] to ...", ], }, Store => { re => qr/^(store|copy)$/i, usage => [ "catmandu import ... to %n [options]", "catmandu copy ... to %n [options]", "catmandu export %n [options] ...", "catmandu copy %n [options] ...", ] }, Fix => {re => qr/^fix$/i, usage => ["%n( [options] )"]}, 'Fix::Bind' => {re => qr/^bind$/i, usage => ["do %n( [options] ) ... end"]}, 'Fix::Condition' => {re => qr/^condition$/i, usage => ["if %n( [options] ) ... end"]}, ); sub execute { my ($self, $opts, $args) = @_; # TODO: list available Importer/Exporters/Stores/Fixes... if (@$args == 2) { # detect many forms such as: # export JSON, exporter JSON, JSON export, JSON exporter foreach (0, 1) { foreach my $type (keys %MODULES) { if ($args->[$_] =~ $MODULES{$type}->{re}) { $self->help_about($type, $args->[($_ + 1) % 2]); return; } } } } elsif (@$args == 1 && $args->[0] =~ qr/^fix(es)?$/) { $self->help_fixes; return; } App::Cmd::Command::help::execute(@_); } sub help_about { my ($self, $type, $name) = @_; my $class; if ($type eq 'Fix') { foreach ('Fix', 'Fix::Bind', 'Fix::Condition') { $type = $_; try { require_package($name, "Catmandu::$type"); $class = "Catmandu::${type}::$name"; } catch { }; last if $class; } unless ($class) { Catmandu::NoSuchFixPackage->throw( { message => "No such fix package: $name", package_name => "Catmandu::Fix::(Bind::|Condition::)?$name", fix_name => $name, } ); } } $class = "Catmandu::${type}::$name"; require_package($class); my $about = pod_section($class, "name"); $about =~ s/\n/ /mg; say ucfirst($about); say "\nUsage:"; print join "", map {s/%n/$name/g; " $_\n"} @{$MODULES{$type}->{usage}}; my $descr = pod_section($class, "description"); chomp $descr; say "\n$descr" if $descr; # TODO: include examples? my $options = pod_section($class, "configuration"); if ($options) { $options =~ s/^([a-z0-9_-]+)\s*\n?/--$1, /mgi; $options =~ s/^(--[a-z0-9_-]+(,\s*--[a-z0-9_-]+)*),\s*([^-])/" $1\n $3"/emgi; print "\nOptions:\n$options"; } } sub help_fixes { my ($self) = @_; my $fixes = Catmandu->importer( 'Modules', namespace => 'Catmandu::Fix', primary => 1 )->select(name => qr/::[a-z][^:]*$/)->map( sub { $_[0]->{name} =~ s/.*:://; $_[0]; } ); my $len = $fixes->max(sub {length $_[0]->{name}}); $fixes->sorted('name')->each( sub { say sprintf "%-${len}s %s", $_[0]->{name}, $_[0]->{about}; } ); say "\nGet additional help with: catmandu help fix <NAME>"; } 1; __END__ =pod =head1 NAME Catmandu::Cmd::help - show help =head1 EXAMPLES catmandu help convert catmandu help import JSON catmandu help help catmandu help fix set_field =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/info.pm��������������������������������������������������������������000644 �000765 �000024 �00000006155 13341726377 020465� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::info; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Catmandu::Util qw(pod_section); use namespace::clean; sub command_opt_spec { ( ["all", "show all module on this server"], ["exporters", "show all Catmandu exporters"], ["importers", "show all Catmandu importers"], ["fixes", "show all Catmandu fixes"], ["stores", "show all Catmandu stores"], ["validators", "show all Catmandu validators"], ["namespace=s", "search by namespace"], ["max_depth=i", "maximum depth to search for modules"], [ "inc=s@", 'override included directories (defaults to @INC)', {default => [@INC]} ], ["brief", "omit short module description"], ["verbose|v", ""], ["fix=s@", ""], ["var=s%", ""], ["preprocess|pp", ""], ); } sub command { my ($self, $opts, $args) = @_; my $verbose = $opts->verbose; if (defined $opts->{namespace}) { } elsif ($opts->{all}) { delete $opts->{all}; } elsif ($opts->{exporters}) { delete $opts->{exporters}; $opts->{namespace} = 'Catmandu::Exporter'; } elsif ($opts->{importers}) { delete $opts->{importers}; $opts->{namespace} = 'Catmandu::Importer'; } elsif ($opts->{fixes}) { delete $opts->{fixes}; $opts->{namespace} = 'Catmandu::Fix'; } elsif ($opts->{stores}) { delete $opts->{stores}; $opts->{namespace} = 'Catmandu::Store'; } elsif ($opts->{validators}) { delete $opts->{stores}; $opts->{namespace} = 'Catmandu::Validator'; } else { $opts->{namespace} = [qw(Catmandu)]; } my ($from_args, $from_opts, $into_args, $into_opts) = $self->_parse_options($args); $from_opts->{about} = !$opts->{brief}; for my $key (qw(inc namespace max_depth)) { $from_opts->{$key} = $opts->$key if defined $opts->$key; } my $from = Catmandu->importer('Modules', $from_opts); if (@$into_args || %$into_opts) { if ($opts->fix) { $from = $self->_build_fixer($opts)->fix($from); } my $into = Catmandu->exporter($into_args->[0], $into_opts); $into->add_many($from); $into->commit; } else { my $cols = [qw(name version)]; push @$cols, 'about' unless $opts->brief; push @$cols, 'file' if $opts->verbose; $from->format(cols => $cols); } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::info - list installed Catmandu modules =head1 DESCRIPTION This L<Catmandu::Cmd> uses L<Catmandu::Importer::Modules> to list all modules. By default modules are listed in tabular form, like L<Catmandu::Exporter::Table>. =head1 EXAMPLES catmandu info --exporters catmandu info --importers catmandu info --fixes catmandu info --stores catmandu info --validators catmandu info --namespace=Catmandu catmandu info --all # export list of exporter modules to JSON catmandu info --exporters to JSON =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/count.pm�������������������������������������������������������������000644 �000765 �000024 �00000002200 13341726377 020645� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::count; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use namespace::clean; sub command_opt_spec { (["cql-query|q=s", ""], ["query=s", ""],); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts) = $self->_parse_options($args); my $from_bag = delete $from_opts->{bag}; my $from = Catmandu->store($from_args->[0], $from_opts)->bag($from_bag); if ($opts->query // $opts->cql_query) { $self->usage_error("Bag isn't searchable") unless $from->can('searcher'); $from = $from->searcher( cql_query => $opts->cql_query, query => $opts->query, ); } say $from->count; } 1; __END__ =pod =head1 NAME Catmandu::Cmd::count - count the number of items in a bag =head1 EXAMPLES catmandu count <STORE> <OPTIONS> catmandu count ElasticSearch --index-name shop --bag products \ --query 'brand:Acme' catmandu help store ElasticSearch =head1 SEE ALSO To count the number of items from an importer, use L<Catmandu::Exporter::Count>. =cut ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/lib/Catmandu/Cmd/drop.pm��������������������������������������������������������������000644 �000765 �000024 �00000001535 13341726377 020473� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Cmd::drop; use Catmandu::Sane; our $VERSION = '1.10'; use parent 'Catmandu::Cmd'; use Catmandu; use Catmandu::Util qw(check_able); use namespace::clean; sub command_opt_spec { (["bag=s", "drop a bag"],); } sub command { my ($self, $opts, $args) = @_; my ($from_args, $from_opts) = $self->_parse_options($args); my $from = Catmandu->store($from_args->[0], $from_opts); if ($opts->bag) { check_able($from->bag($opts->bag), 'drop')->drop; } else { check_able($from, 'drop')->drop; } } 1; __END__ =pod =head1 NAME Catmandu::Cmd::drop - drop a store or one of its bags =head1 EXAMPLES catmandu drop <STORE> <OPTIONS> # drop the whole store catmandu drop ElasticSearch --index-name items # drop a single bag catmandu drop ElasticSearch --index-name items --bag thingies =cut �������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-uri_encode.t�����������������������������������������������������������000644 �000765 �000024 �00000001107 13341726377 021201� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use utf8; use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::uri_encode'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => 'café'}), {name => "caf%C3%A9"}, "escape utf8 string from French"; is_deeply $pkg->new('name') ->fix({name => 'ὁ τῶν Πέρσων βασιλεύς'}), {name => "%E1%BD%81%20%CF%84%E1%BF%B6%CE%BD%20%CE%A0%CE%AD%CF%81%CF%83%CF%89%CE%BD%20%CE%B2%CE%B1%CF%83%CE%B9%CE%BB%CE%B5%CF%8D%CF%82" }, "escape utf8 string from Greek"; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-split_field.t����������������������������������������������������������000644 �000765 �000024 �00000001176 13341726377 021371� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::split_field'; use_ok $pkg; } is_deeply $pkg->new('splitme', ',')->fix({splitme => "a,b,c"}), {splitme => ["a", "b", "c"]}, "split value"; is_deeply $pkg->new('many.*.splitme', ',') ->fix({many => [{splitme => "a,b,c"}, {splitme => "a,b,c"}]}), {many => [{splitme => ["a", "b", "c"]}, {splitme => ["a", "b", "c"]}]}, "split wildcard values"; is_deeply $pkg->new('splitme', ',')->fix({splitme => ["a", "b", "c"]}), {splitme => ["a", "b", "c"]}, "only split values"; done_testing 4; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-JSON.t������������������������������������������������������������000644 �000765 �000024 �00000001463 13341726377 020725� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Cpanel::JSON::XS (); my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::JSON'; use_ok $pkg; } require_ok $pkg; my $data = [{'a' => 'moose'}, {'a' => 'pony'}, {'a' => 'shrimp'}]; my $file = ""; my $exporter = $pkg->new(file => \$file, line_delimited => 1); isa_ok $exporter, $pkg; $exporter->add($_) for @$data; $exporter->commit; is_deeply $data, [map {Cpanel::JSON::XS::decode_json($_)} split /[\r\n]+/, $file]; is($exporter->count, 3, "Count ok"); $file = ""; Catmandu::Exporter::JSON->new( file => \$file, line_delimited => 1, canonical => 1 )->add({map {chr(ord('z') - $_) => $_} (0 .. 25)}); is_deeply [$file =~ /(\d+)/g], [map {"" . (25 - $_)} (0 .. 25)], 'canonical'; done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Plugin-Versioning.t��������������������������������������������������������000644 �000765 �000024 �00000007440 13341726377 021726� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Store::Hash; my $pkg; BEGIN { $pkg = 'Catmandu::Plugin::Versioning'; use_ok $pkg; } require_ok $pkg; my $store = Catmandu::Store::Hash->new( bags => {data => {plugins => [qw(Versioning)]}}); ok $store->does('Catmandu::Store'), 'create Catmandu-Store with Versioning plugin'; ok $store->bag->add({_id => '001', name => 'Penguin'}), 'store something'; my $obj = $store->bag->get('001'); ok $obj , 'get 001'; is $obj->{name}, 'Penguin', 'get values'; ok $store->bag->get_version('001', 1), 'get version 1, no versions stored yet'; is $store->bag->get_version('001', 1)->{_version}, 1, 'get version 1, no versions stored yet'; $obj->{name} = 'Polar Bear'; ok $store->bag->add($obj), 'change object and store'; is $store->bag->get('001')->{name}, 'Polar Bear', 'check change'; ok $store->bag->get_history('001'), 'get_history'; is @{$store->bag->get_history('001')}, 2, 'one item in history'; my $version = $store->bag->get_history('001')->[0]; is $version->{name}, 'Polar Bear', 'correct item in history'; ok $store->bag->get_version('001', 1), 'get_version 1'; is $store->bag->get_version('001', 1)->{name}, 'Penguin', 'get_version 1 name'; ok $store->bag->get_version('001', 2), 'get latest version'; ok $store->bag->get_previous_version('001'), 'get_previous_version'; is $store->bag->get_previous_version('001')->{name}, 'Penguin', 'get_previous_version name'; ok $store->bag->restore_version('001', 1), 'restore_version'; is $store->bag->get('001')->{name}, 'Penguin', 'check restore version'; # reset ok $store->bag->add($obj), 'reset'; is $store->bag->get('001')->{name}, 'Polar Bear', 'check change'; ok $store->bag->restore_previous_version('001'), 'restore_previous_version'; is $store->bag->get('001')->{name}, 'Penguin', 'check restore version'; $store = Catmandu::Store::Hash->new( bags => { data => { plugins => [qw(Versioning)], version_compare_ignore => [qw(stamp)], } } ); $store->bag->add({_id => '1', name => 'Penguin', stamp => 1}); $store->bag->add({_id => '1', name => 'Penguin', stamp => 2}); is_deeply $store->bag->get('1'), {_id => '1', _version => 1, name => 'Penguin', stamp => 1}; $store = Catmandu::Store::Hash->new( bags => { data => { plugins => [qw(Versioning)], version_compare_ignore => [qw(stamp)], version_transfer => [qw(stamp)], } } ); $store->bag->add({_id => '1', name => 'Penguin', stamp => 1}); $store->bag->add({_id => '1', name => 'El Penguino', stamp => 2}); is_deeply $store->bag->get('1'), {_id => '1', _version => 2, name => 'El Penguino', stamp => 2}; $store->bag->add({_id => '2', name => 'Penguin', stamp => 1}); $store->bag->add({_id => '2', name => 'El Penguino'}); is_deeply $store->bag->get('2'), {_id => '2', _version => 2, name => 'El Penguino', stamp => 1}; # custom version bag, custom keys $store = Catmandu::Store::Hash->new( bags => { history => {id_key => 'my_history_id',}, data => { plugins => [qw(Versioning)], version_bag => 'my_history', version_key => 'my_version', id_key => 'my_id', }, }, ); is $store->bag->version_bag->name, 'my_history'; my $data = $store->bag->add({name => 'Penguin'}); is $data->{_id}, undef; is $data->{_version}, undef; ok exists($data->{my_id}); is $data->{my_version}, 1; $data->{name} = 'Camel'; $store->bag->add($data); isnt $store->bag->version_bag->get("$data->{my_id}.1"), undef; $store = Catmandu::Store::Hash->new( key_prefix => 'my_', bags => {data => {plugins => [qw(Versioning)],},}, ); is $store->bag->version_key, 'my_version'; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-sort_field.t�����������������������������������������������������������000644 �000765 �000024 �00000004355 13341726377 021227� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::sort_field'; use_ok $pkg; } is_deeply $pkg->new('tags')->fix({tags => ["foo", "bar", "bar"]}), {tags => ["bar", "bar", "foo"]}, "sort alphanum"; is_deeply $pkg->new('tags', uniq => 1)->fix({tags => ["foo", "bar", "bar"]}), {tags => ["bar", "foo"]}, "sort unique"; is_deeply $pkg->new('tags') ->fix({tags => [undef, undef, "b", "b", "c", "a"]}), {tags => ["a", "b", "b", "c", undef, undef]}, "sort with undefined values"; is_deeply $pkg->new('tags', undef_position => "last") ->fix({tags => ["b", undef, undef, "b", "c", "a"]}), {tags => ["a", "b", "b", "c", undef, undef]}, "sort with undefined values, undef last"; is_deeply $pkg->new('tags', undef_position => "first") ->fix({tags => [undef, "b", "b", "c", undef, "a"]}), {tags => [undef, undef, "a", "b", "b", "c"]}, "sort with undefined values, undef first"; is_deeply $pkg->new('tags', undef_position => "delete") ->fix({tags => [undef, undef, "b", "b", "c", "a"]}), {tags => ["a", "b", "b", "c"]}, "sort with undefined values, remove undef"; is_deeply $pkg->new('tags', uniq => 1) ->fix({tags => [undef, undef, "b", "b", "c", "a"]}), {tags => ["a", "b", "c", undef]}, "sort uniq with undefined values"; is_deeply $pkg->new('tags', uniq => 1, undef_position => "last") ->fix({tags => ["b", undef, undef, "b", "c", "a"]}), {tags => ["a", "b", "c", undef]}, "sort uniq with undefined values, undef last"; is_deeply $pkg->new('tags', uniq => 1, undef_position => "first") ->fix({tags => [undef, "b", "b", "c", undef, "a"]}), {tags => [undef, "a", "b", "c"]}, "sort uniq with undefined values, undef first"; is_deeply $pkg->new('tags', uniq => 1, undef_position => "delete") ->fix({tags => [undef, undef, "b", "b", "c", "a"]}), {tags => ["a", "b", "c"]}, "sort uniq with undefined values, remove undef"; is_deeply $pkg->new('tags', uniq => 1, reverse => 1) ->fix({tags => ["foo", "bar", "bar"]}), {tags => ["foo", "bar"]}, "sort unique reverse"; is_deeply $pkg->new('nums', numeric => 1)->fix({nums => [100, 1, 10]}), {nums => [1, 10, 100]}, "sort numeric"; done_testing 13; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-include-glob/�������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 017553� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-upcase.t���������������������������������������������������������������000644 �000765 �000024 �00000000666 13341726377 020356� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::upcase'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => 'joe'}), {name => "JOE"}, "upcase value"; is_deeply $pkg->new('names.*.name') ->fix({names => [{name => 'joe'}, {name => 'rick'}]}), {names => [{name => 'JOE'}, {name => 'RICK'}]}, "upcase wildcard values"; done_testing 3; ��������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-CLI.t����������������������������������������������������������������������000644 �000765 �000024 �00000007062 13341726377 016756� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::CLI'; use_ok $pkg; } require_ok $pkg; { package Catmandu::Fix::thisFixThrowsAnError; use Catmandu::Sane; use Moo; sub fix {Catmandu::FixError->throw("bad boy");} } # check -I / --lib_path if ($^O ne 'MSWin32') { # /dev/null required # TODO Catmandu dies if testing with output to STDOUT my $res; $res = test_app( 'Catmandu::CLI' => [ qw( -I t/lib convert Values --values 1;2;8 to JSON --file /dev/null ) ] ); ok !$res->error; is $res->stderr, ""; $res = test_app( 'Catmandu::CLI' => [ qw( -I t/lib convert Values --values 1;2;8 to NotFound --file /dev/null ) ] ); ok !$res->error; like $res->stderr, qr/Oops! Can't find the exporter 'NotFound'/; } { my $result = test_app(qq|Catmandu::CLI| => [qw(-D3 help)]); like $result->stderr, qr/(debug activated|Log::Log4perl)/, 'see some debug information'; } { my $result = test_app(qq|Catmandu::CLI| => [qw(convert help)]); like $result->stderr, qr/Did you mean 'catmandu help convert'/, 'wrong order help command'; } { my $result = test_app( qq|Catmandu::CLI| => [qw(convert Null to Null --fix testing123() )]); like $result->stderr, qr/Oops/, 'wrong fix error'; } { my $result = test_app( qq|Catmandu::CLI| => [qw(convert Null to Null --fix), "test("]); like $result->stderr, qr/Oops/, 'syntax error'; } { my $result = test_app(qq|Catmandu::CLI| => [qw(convert Null to Null --fix thisFixThrowsAnError())]); like $result->stderr, qr/One of your fixes threw an error/, 'fix error'; } { my $result = test_app( qq|Catmandu::CLI| => [qw(convert Null to Null --fix add_field())]); like $result->stderr, qr/Oops/, 'wrong arguments'; } { my $result = test_app(qq|Catmandu::CLI| => [qw(convert Null to Testing123 )]); like $result->stderr, qr/Catmandu::Exporter::Testing123/, 'wrong exporter error'; } { my $result = test_app(qq|Catmandu::CLI| => [qw(-D convert Null to Null)]); like $result->stderr, qr/debug activated/, 'debug activated'; } { Catmandu->config->{log4perl} = <<EOF; log4perl.category.Catmandu=DEBUG,STDERR log4perl.categoty.Catmandu::Fix::log=TRACE,STDERR log4perl.appender.STDOUT=Log::Log4perl::Appender::Screen log4perl.appender.STDOUT.stderr=0 log4perl.appender.STDOUT.utf8=1 log4perl.appender.STDOUT.layout=PatternLayout log4perl.appender.STDOUT.layout.ConversionPattern=%d [%P] - %p %l %M time=%r : %m%n log4perl.appender.STDERR=Log::Log4perl::Appender::Screen log4perl.appender.STDERR.stderr=1 log4perl.appender.STDERR.utf8=1 log4perl.appender.STDERR.layout=PatternLayout log4perl.appender.STDERR.layout.ConversionPattern=%d [%P] - %l : %m%n EOF my $result = test_app(qq|Catmandu::CLI| => [qw(-D convert Null to Null)]); like $result->stderr, qr/defined in catmandu\.yml/, 'debug activated via catmandu.yml'; } { Catmandu->config->{log4perl} = 't/log4perl.conf'; my $result = test_app(qq|Catmandu::CLI| => [qw(-D convert Null to Null)]); like $result->stderr, qr/file: t\/log4perl\.conf/, 'debug activated via t/log4perl.conf'; } { my $result = test_app(qq|Catmandu::CLI| => [qw(convert JSON --file http://google.com/nonononono to Null)]); like $result->stderr, qr/Oops! Got a HTTP error/, 'Got an HTTP error'; } done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-nothing.t��������������������������������������������������������������000644 �000765 �000024 �00000000417 13341726377 020536� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::nothing'; use_ok $pkg; } my $data = {foo => 'bar'}; is $data, $pkg->new->fix($data), "fixed data is the same object"; done_testing 2; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-code.t�����������������������������������������������������������������000644 �000765 �000024 �00000001206 13341726377 017777� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); use_ok 'Catmandu::Fix::code'; sub hello { my ($data) = @_; $data->{hello} = 'world'; $data; } my $fixer = Catmandu::Fix::code->new(\&hello); is_deeply $fixer->fix({}), {hello => 'world'}, 'code fixer'; my $importer = Catmandu::Importer::Mock->new(size => 1, fix => [$fixer]); is_deeply $importer->first, {n => 0, hello => 'world'}, 'fix as instance'; $importer = Catmandu::Importer::Mock->new(size => 1, fix => [\&hello]); is_deeply $importer->first, {n => 0, hello => 'world'}, 'fix as code'; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Hits.t���������������������������������������������������������������������000644 �000765 �000024 �00000002450 13341726377 017252� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Hits'; use_ok $pkg; } require_ok $pkg; my $data = [(1 .. 100)]; my $h = Catmandu::Hits->new(start => 0, limit => 10, total => 100, hits => $data); can_ok $h, 'start'; can_ok $h, 'limit'; can_ok $h, 'total'; can_ok $h, 'hits'; can_ok $h, 'size'; throws_ok {Catmandu::Hits->new(limit => 10, total => 100, hits => $data)} qr/missing required arguments: start/i; throws_ok {Catmandu::Hits->new(start => 0, total => 100, hits => $data)} qr/missing required arguments: limit/i; throws_ok {Catmandu::Hits->new(start => 0, limit => 10, hits => $data)} qr/missing required arguments: total/i; throws_ok {Catmandu::Hits->new(start => 0, limit => 10, total => 100)} qr/missing required arguments: hits/i; ok $h->does('Catmandu::Iterable'), 'is an Iterable'; ok $h->does('Catmandu::Paged'), 'is a Paged'; is_deeply $h->hits, $data, 'test content'; ok $h->more, 'test mode'; is $h->limit, 10, 'test limit'; is $h->size, 100, 'test size'; is $h->start, 0, 'test start'; is $h->first, 1, 'test first'; my $sum = 0; $h->each(sub {$sum += shift}); is $sum , 5050, 'test each'; is_deeply $h->to_array, [(1 .. 100)], 'test to_array'; is $h->generator->(), 1, 'test generator'; done_testing 22; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-move_field.t�����������������������������������������������������������000644 �000765 �000024 �00000001406 13341726377 021200� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::move_field'; use_ok $pkg; } is_deeply $pkg->new('old', 'new')->fix({old => 'old'}), {new => 'old'}, "move field at root"; is_deeply $pkg->new('old', 'deeply.nested.$append.new')->fix({old => 'old'}), {deeply => {nested => [{new => 'old'}]}}, "move field creates intermediate path"; is_deeply $pkg->new('old', 'new.$prepend') ->fix({old => 'hello', new => ['world']}), {new => ['hello', 'world']}, "move field creates intermediate path"; is_deeply $pkg->new('old', 'new.$append') ->fix({old => 'hello', new => ['world']}), {new => ['world', 'hello']}, "move field creates intermediate path"; done_testing 5; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_false.t���������������������������������������������������000644 �000765 �000024 �00000002626 13341726377 022605� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_false'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); # Integers is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'fail'}; is_deeply $cond->fix({foo => 0}), {foo => 0, test => 'pass'}; # Strings is_deeply $cond->fix({foo => "true"}), {foo => "true", test => 'fail'}; is_deeply $cond->fix({foo => "false"}), {foo => "false", test => 'pass'}; # Boolean my $hash = decode_json(qq|{"foo":true}|); is_deeply $cond->fix($hash), {%$hash, test => 'fail'}; my $hash2 = decode_json(qq|{"foo":false}|); is_deeply $cond->fix($hash2), {%$hash2, test => 'pass'}; # Strict $cond = $pkg->new('foo', 'strict', 1); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => 0}), {foo => 0, test => 'fail'}; is_deeply $cond->fix({foo => '0'}), {foo => '0', test => 'fail'}; is_deeply $cond->fix({foo => 'false'}), {foo => 'false', test => 'fail'}; is $cond->fix({foo => Cpanel::JSON::XS::false})->{test}, 'pass'; is $cond->fix({foo => Cpanel::JSON::XS::true})->{test}, 'fail'; done_testing; ����������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-uri_decode.t�����������������������������������������������������������000644 �000765 �000024 �00000001142 13341726377 021166� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use utf8; use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::uri_decode'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => 'caf%C3%A9'}), {name => "café"}, "unescape utf8 string from French"; is_deeply $pkg->new('name')->fix( { name => '%E1%BD%81%20%CF%84%E1%BF%B6%CE%BD%20%CE%A0%CE%AD%CF%81%CF%83%CF%89%CE%BD%20%CE%B2%CE%B1%CF%83%CE%B9%CE%BB%CE%B5%CF%8D%CF%82' } ), {name => "ὁ τῶν Πέρσων βασιλεύς"}, "unescape utf8 string from Greek"; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/non_ascii.json����������������������������������������������������������������������000644 �000765 �000024 �00001257315 13341726377 017276� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������{"nkc":"jn20000700183","version":"2013-07-01T14:07:50Z","_id":"000290adb8fba464410b5466d462565d","dnb":"118950363","ptbnp":"521529","term":"Blavier, André (1922-2001)","key":"BlavierAndré(1922-2001)","nlilat":"000453847","viafid":"84032513","merge":{"source":"viaf","id":"000290adb8fba464410b5466d462565d","type":"document"},"lc":"n83068143","bnf":"11892331"} {"viafid":"286014815","merge":{"source":"viaf","id":"0008dd5e2e29146396bdc33a5507d8db","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0008dd5e2e29146396bdc33a5507d8db","term":"Cremers, Johannes Franciscus Nicolai͏̈, 1794-1869","key":"CremersJohannesFranciscusNicolai͏̈1794-1869"} {"viafid":"175459792","merge":{"source":"viaf","id":"000b589c85becfc475adc24796a724eb","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"000b589c85becfc475adc24796a724eb","lc":"n91015146","term":"Huldén, Lars, 1926- | Poems. English & Swedish. Selections","key":"HuldénLars1926-|PoemsEnglish&SwedishSelections"} {"nkc":"nlk20000079951","version":"2013-07-01T14:07:50Z","_id":"000df8d92f34f05cc4160fa29becca75","dnb":"117604941","term":"Birch-Hirschfeld, Félix Victor, 1842-1899","key":"Birch-HirschfeldFélixVictor1842-1899","viafid":"64788748","merge":{"source":"viaf","id":"000df8d92f34f05cc4160fa29becca75","type":"document"}} {"nkc":"js2007409740","version":"2013-07-01T14:07:50Z","_id":"0013b61a7d0596e2b1aa673a4a916e79","dnb":"133566072","term":"Perković, Luka, 1900-1948","key":"PerkovićLuka1900-1948","viafid":"50419725","merge":{"source":"viaf","id":"0013b61a7d0596e2b1aa673a4a916e79","type":"document"},"lc":"no94032408","bnf":"12782600"} {"version":"2013-07-01T14:07:50Z","_id":"00165496a9ff6e91a2ab41120d2f6ee3","dnb":"116488808","ptbnp":"31707","term":"Charavay, Étienne, 1848-1899","key":"CharavayÉtienne1848-1899","nlilat":"000408740","viafid":"44296659","merge":{"source":"viaf","id":"00165496a9ff6e91a2ab41120d2f6ee3","type":"document"},"lc":"n50036362","bnf":"11896108","bav":"adv10190502"} {"viafid":"80889375","merge":{"source":"viaf","id":"00178c20ba1320201f9e073b80997f41","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"00178c20ba1320201f9e073b80997f41","dnb":"136566871","term":"Günther, Alfred 1885-1969","key":"GüntherAlfred1885-1969"} {"nkc":"xx0120410","version":"2013-07-01T14:07:50Z","_id":"001e040384826d3da680b19cd354a0d9","dnb":"187052409","ptbnp":"110413","term":"Rondet, Laurent-Étienne, 1717-1785","key":"RondetLaurent-Étienne1717-1785","viafid":"27074636","nlilat":"000112915","merge":{"source":"viaf","id":"001e040384826d3da680b19cd354a0d9","type":"document"},"lc":"nr97032882","bnf":"11997069","bav":"adv11138955"} {"nkc":"jn20011018054","selibr":"242495","version":"2013-07-01T14:07:50Z","_id":"001e0fff1b755a9215b723dca2bb1ee6","bne":"xx1723390","dnb":"121829855","ptbnp":"196118","term":"Herczeg, François, 1863-1954","key":"HerczegFrançois1863-1954","nlilat":"000062293","viafid":"55013830","merge":{"source":"viaf","id":"001e0fff1b755a9215b723dca2bb1ee6","type":"document"},"lc":"n90701048","bnf":"12683851","bav":"adv10218806"} {"version":"2013-07-01T14:07:50Z","_id":"00219ae462575e719052d408162e98e0","dnb":"102129029","term":"Bédarride, Jassuda (1804-1882)","key":"BédarrideJassuda(1804-1882)","nlilat":"000542886","viafid":"51833963","merge":{"source":"viaf","id":"00219ae462575e719052d408162e98e0","type":"document"},"lc":"n2001080239","bnf":"13200607"} {"version":"2013-07-01T14:07:50Z","_id":"002cf6accb75882d1ed22f5452d8f259","dnb":"102046670","ptbnp":"281726","term":"Bonnefoy, Georges-Frédéric 1912-1940","key":"BonnefoyGeorges-Frédéric1912-1940","viafid":"7766341","merge":{"source":"viaf","id":"002cf6accb75882d1ed22f5452d8f259","type":"document"},"bnf":"12870138"} {"version":"2013-07-01T14:07:50Z","_id":"002dea50b3f266abac7ec30d98798475","dnb":"116299711","term":"Boutron-Charlard, Antoine François, 1796-1878","key":"Boutron-CharlardAntoineFrançois1796-1878","viafid":"30284368","merge":{"source":"viaf","id":"002dea50b3f266abac7ec30d98798475","type":"document"},"lc":"n2001066126"} {"version":"2013-07-01T14:07:50Z","_id":"002eba15c808652b79874eeb7e17b988","dnb":"138813000","nla":"000035934276","term":"Tivārī, Bholānātha, 1923-1989","key":"TivārīBholānātha1923-1989","viafid":"95327374","merge":{"source":"viaf","id":"002eba15c808652b79874eeb7e17b988","type":"document"},"lc":"n81131613","bnf":"12261878"} {"version":"2013-07-01T14:07:50Z","_id":"002fae3d46c56bc32074b9884a50d774","egaxa":"vtls001520916","term":"Ibn Ḥamzah al-Ḥusaynī, Muḥammad ibn ʻAlī, 1315 or 16-1363 or 4","key":"IbnḤamzahal-ḤusaynīMuḥammadibnʻAlī1315or16-1363or4","viafid":"90074758","merge":{"source":"viaf","id":"002fae3d46c56bc32074b9884a50d774","type":"document"},"lc":"nr94011509"} {"version":"2013-07-01T14:07:50Z","_id":"003337252569cd6250932d0dbaf375f4","dnb":"100080154","nla":"000035685799","ptbnp":"143893","term":"Céspedes y Meneses, Gonzalo de (1585?-1638)","key":"CéspedesyMenesesGonzalode(1585?-1638)","viafid":"61801401","nlilat":"000421700","merge":{"source":"viaf","id":"003337252569cd6250932d0dbaf375f4","type":"document"},"lc":"n79082325","bnf":"14617737","bav":"adv10013430"} {"version":"2013-07-01T14:07:50Z","_id":"003d3db2d4780e54cf31c41cd18392c2","dnb":"172818028","term":"Penard, Eugène, 1855-1954","key":"PenardEugène1855-1954","viafid":"8769267","merge":{"source":"viaf","id":"003d3db2d4780e54cf31c41cd18392c2","type":"document"},"lc":"n83198913"} {"nkc":"js20020925104","selibr":"319364","version":"2013-07-01T14:07:50Z","_id":"003f4cb46c6613d9de006b32c5f6f6b9","bne":"xx1454220","dnb":"118623249","nla":"000035552200","term":"Tolstaja, Sofʹja Andreevna, 1844-1919","key":"TolstajaSofʹjaAndreevna1844-1919","nlicyr":"000157016","viafid":"95319193","nlilat":"000258315","merge":{"source":"viaf","id":"003f4cb46c6613d9de006b32c5f6f6b9","type":"document"},"lc":"n80015575","bnf":"11926771"} {"nkc":"kup19970000104861","selibr":"265671","version":"2013-07-01T14:07:50Z","_id":"004178271c2df5a7df2de345c8113b50","dnb":"118803530","swnl":"vtls002461341","nla":"000035573949","term":"D'Urfé, Honoré, 1567-1625","key":"D'UrféHonoré1567-1625","nlilat":"000380043","viafid":"41847426","merge":{"source":"viaf","id":"004178271c2df5a7df2de345c8113b50","type":"document"},"lc":"n50045789","bnf":"11927355","bav":"adv11188069"} {"version":"2013-07-01T14:07:50Z","_id":"004cac7bf9a0794bfeb7ed5be58dcf1b","dnb":"123607248","term":"Lindon, Jérôme, 1925-2001","key":"LindonJérôme1925-2001","nlilat":"000084776","viafid":"925444","merge":{"source":"viaf","id":"004cac7bf9a0794bfeb7ed5be58dcf1b","type":"document"},"lc":"no2003108373","bnf":"11913061"} {"selibr":"205901","version":"2013-07-01T14:07:50Z","_id":"0053de622eea0100fb2eb3f4a6bdb534","dnb":"119068125","nla":"000035130172","term":"Du Jon, François, 1589-1677","key":"DuJonFrançois1589-1677","nlilat":"000072604","viafid":"64809369","merge":{"source":"viaf","id":"0053de622eea0100fb2eb3f4a6bdb534","type":"document"},"lc":"n85029600","bav":"adv10295539"} {"viafid":"201883509","merge":{"source":"viaf","id":"00569dab85da747fcdb418300e7c569b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"00569dab85da747fcdb418300e7c569b","dnb":"953369633","term":"Schubiger, Jürg 1936- | Mutter, Vater, ich und sie","key":"SchubigerJürg1936-|MutterVaterichundsie"} {"version":"2013-07-01T14:07:50Z","_id":"0058bd99f68ea65204778ed323dc149b","dnb":"186043759","term":"Briseux, Charles Étienne, d. 1754","key":"BriseuxCharlesÉtienned1754","nlilat":"000540445","viafid":"88831859","merge":{"source":"viaf","id":"0058bd99f68ea65204778ed323dc149b","type":"document"},"jpg":"500029199","lc":"n00007483","bav":"adv10137756"} {"nkc":"xx0057289","version":"2013-07-01T14:07:50Z","_id":"0058fa8d00edab625ff22a3659d6f7ac","dnb":"118789783","term":"Pašić, Nikola, 1845-1926","key":"PašićNikola1845-1926","viafid":"79400033","nlicyr":"000155017","merge":{"source":"viaf","id":"0058fa8d00edab625ff22a3659d6f7ac","type":"document"},"lc":"nb2008015928"} {"selibr":"314208","version":"2013-07-01T14:07:50Z","_id":"006dd4724ee4b28e0c4efebc02d202e4","dnb":"120359472","ptbnp":"93831","term":"La Croze, Maturin Veyssière, 1661-1739","key":"LaCrozeMaturinVeyssière1661-1739","viafid":"95298985","nlilat":"000468062","merge":{"source":"viaf","id":"006dd4724ee4b28e0c4efebc02d202e4","type":"document"},"lc":"n85050076","bnf":"12515550","bav":"adv10981672"} {"nkc":"jn19990210116","selibr":"41428","version":"2013-07-01T14:07:50Z","_id":"007076e7bb91b1fd5bfa57be6c8ce128","bne":"xx1028057","dnb":"11866381x","nla":"000035019329","ptbnp":"14615","term":"Blasco Ibáñez, Vicente, 1867-1928","key":"BlascoIbáñezVicente1867-1928","viafid":"73848096","nlilat":"000419198","merge":{"source":"viaf","id":"007076e7bb91b1fd5bfa57be6c8ce128","type":"document"},"lc":"n79046157","bnf":"11885765","bav":"adv10013850"} {"nkc":"xx0148421","version":"2013-07-01T14:07:50Z","_id":"007abb840ab1d99e404905d46e2fe0ab","dnb":"118659200","nla":"000035629647","term":"Böhm, G., 1920-, (Gottfried)","key":"BöhmG1920-(Gottfried)","viafid":"92946938","merge":{"source":"viaf","id":"007abb840ab1d99e404905d46e2fe0ab","type":"document"},"jpg":"500009404","lc":"n83200201"} {"version":"2013-07-01T14:07:50Z","_id":"007c84c975d7d7d8b0dbd39f4b5677f3","dnb":"117129577","term":"Imbeaux, Édouard 1861-1943","key":"ImbeauxÉdouard1861-1943","viafid":"3240370","merge":{"source":"viaf","id":"007c84c975d7d7d8b0dbd39f4b5677f3","type":"document"},"bnf":"12429899"} {"version":"2013-07-01T14:07:50Z","_id":"0085551a4373ccc974a09e93636014a5","dnb":"123971926","nla":"000035658443","term":"Bock, Jean-Nicolas-Étienne, 1747-1809, baron de","key":"BockJean-Nicolas-Étienne1747-1809baronde","viafid":"14803247","merge":{"source":"viaf","id":"0085551a4373ccc974a09e93636014a5","type":"document"},"lc":"nr93015941","bnf":"12121627"} {"version":"2013-07-01T14:07:50Z","_id":"008af10b9f92f2721de64fafbe9a5393","dnb":"100523978","nla":"000035903858","term":"Mēniatēs, Ēlias, 1669-1714","key":"MēniatēsĒlias1669-1714","viafid":"5276181","merge":{"source":"viaf","id":"008af10b9f92f2721de64fafbe9a5393","type":"document"},"lc":"no2004087174","bav":"adv10014111"} {"nkc":"xx0156884","version":"2013-07-01T14:07:50Z","_id":"0098590bd207438e215ff270570076c9","bne":"xx1155596","dnb":"124822061","nla":"000035023507","term":"Bühler, Curt F. (1905-1985)","key":"BühlerCurtF(1905-1985)","viafid":"108162446","nlilat":"000465632","merge":{"source":"viaf","id":"0098590bd207438e215ff270570076c9","type":"document"},"lc":"n84234191","bnf":"12793687","bav":"adv10170091"} {"nkc":"kup20030000002549","version":"2013-07-01T14:07:50Z","_id":"009c66983e73a1022216d8e9da92c627","dnb":"172481813","term":"Arct, Michał, 1840-1916","key":"ArctMichał1840-1916","viafid":"84500136","nlilat":"000529199","merge":{"source":"viaf","id":"009c66983e73a1022216d8e9da92c627","type":"document"},"lc":"nr95017051"} {"viafid":"185149790","merge":{"source":"viaf","id":"009ea10291e96a7930d546f6b9fc04f0","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"009ea10291e96a7930d546f6b9fc04f0","lc":"n88524930","term":"Mori, Kōichi, 1928- | Zusetsu Nihon no kodai","key":"MoriKōichi1928-|ZusetsuNihonnokodai"} {"nkc":"jn20000720231","selibr":"287722","version":"2013-07-01T14:07:50Z","_id":"00ba74c3ce9aa261d62b4a8e0cfc7515","dnb":"118594915","swnl":"vtls003990685","ptbnp":"1383987","term":"Platter, Félix (1536-1614)","key":"PlatterFélix(1536-1614)","nlilat":"000412483","viafid":"47796696","merge":{"source":"viaf","id":"00ba74c3ce9aa261d62b4a8e0cfc7515","type":"document"},"lc":"n50054102","bnf":"11920025","bav":"adv11094436"} {"version":"2013-07-01T14:07:50Z","_id":"00bbd4c9fcfa53d2c5d652440936e16c","dnb":"119054116","term":"De Bock, Eugène, 1889-1981","key":"DeBockEugène1889-1981","viafid":"57416427","merge":{"source":"viaf","id":"00bbd4c9fcfa53d2c5d652440936e16c","type":"document"},"lc":"n84091160","bnf":"10114286"} {"nkc":"jx20120807001","version":"2013-07-01T14:07:50Z","_id":"00c55b18ce4e4072116a15995957804d","dnb":"118887238","term":"Adarjukov, Vladimir Jakovlevič, 1863-1932","key":"AdarjukovVladimirJakovlevič1863-1932","viafid":"234424631","merge":{"source":"viaf","id":"00c55b18ce4e4072116a15995957804d","type":"document"}} {"nkc":"uk2006335026","version":"2013-07-01T14:07:50Z","_id":"00c6e2a7cf333315ce06e7ce24c29225","dnb":"103250182","nla":"000035314797","term":"Kaddari, Menaḥem Zevi 1925-2011","key":"KaddariMenaḥemZevi1925-2011","viafid":"5109006","nlilat":"000072890","nliheb":"000211495","merge":{"source":"viaf","id":"00c6e2a7cf333315ce06e7ce24c29225","type":"document"},"lc":"n82222169","bnf":"13624301"} {"viafid":"174617175","merge":{"source":"viaf","id":"00c8cb72ddc81363bd204992ae67f647","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"00c8cb72ddc81363bd204992ae67f647","lc":"n85055009","term":"Joas, Hans, 1948- | Praktische Intersubjektivität. English","key":"JoasHans1948-|PraktischeIntersubjektivitätEnglish"} {"selibr":"337013","version":"2013-07-01T14:07:50Z","_id":"00c8f93e5374df88a55f5359b750ef24","dnb":"129410578","nla":"000035333379","term":"Massé, Pierre, 1898-1987","key":"MasséPierre1898-1987","nlilat":"000447735","viafid":"92140116","merge":{"source":"viaf","id":"00c8f93e5374df88a55f5359b750ef24","type":"document"},"lc":"n82131779","bnf":"11996192"} {"selibr":"202403","version":"2013-07-01T14:07:50Z","_id":"00cc5e671df329695a81e8fb1ff03215","dnb":"110393090","term":"Högfeldt, Erik, 1924-1996","key":"HögfeldtErik1924-1996","viafid":"109538232","merge":{"source":"viaf","id":"00cc5e671df329695a81e8fb1ff03215","type":"document"},"lc":"n86841597"} {"viafid":"181460192","merge":{"source":"viaf","id":"00e1747adc8a0d1c67afbd07e80c7289","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"00e1747adc8a0d1c67afbd07e80c7289","lc":"n83828216","term":"Arzeliès, Henri, 1913- | Cinématique relativiste. English","key":"ArzelièsHenri1913-|CinématiquerelativisteEnglish"} {"nkc":"jx20060503002","version":"2013-07-01T14:07:50Z","_id":"00e5b4b32f9690192b7a4a20d8c61dd0","bne":"xx930503","dnb":"120523701","ptbnp":"167386","term":"Gómez Valderrama, Pedro, 1923-1992","key":"GómezValderramaPedro1923-1992","viafid":"9890240","merge":{"source":"viaf","id":"00e5b4b32f9690192b7a4a20d8c61dd0","type":"document"},"lc":"n80129074","bnf":"12176122","bav":"adv11553545"} {"viafid":"15074618","merge":{"source":"viaf","id":"00f6741c301df97fb2b480db98f71df1","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"00f6741c301df97fb2b480db98f71df1","bnf":"15365095","term":"Schiötz, Oskar Emil 1846-19..?","key":"SchiötzOskarEmil1846-19?"} {"version":"2013-07-01T14:07:50Z","_id":"00ff3f71c3e341af27d2136061ce4589","dnb":"122192273","nla":"000049682934","term":"Dupré de Saint-Maur, Nicolas-François, 1695-1774","key":"DuprédeSaint-MaurNicolas-François1695-1774","viafid":"49357530","nlilat":"000473385","merge":{"source":"viaf","id":"00ff3f71c3e341af27d2136061ce4589","type":"document"},"lc":"n85246249","bnf":"13005068"} {"viafid":"177703214","merge":{"source":"viaf","id":"0102f8fc6cdd5127baa7053b97563ea6","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0102f8fc6cdd5127baa7053b97563ea6","lc":"no2009155941","term":"Aguilar Camín, Héctor, 1946- | Selections. 2007","key":"AguilarCamínHéctor1946-|Selections2007"} {"nkc":"jo2004214984","version":"2013-07-01T14:07:50Z","_id":"010334aa33d19f5d9407db5de374dcb6","dnb":"129834661","ptbnp":"950339","term":"Gillot de Sainctonge, Louise-Geneviève, 1650-1718","key":"GillotdeSainctongeLouise-Geneviève1650-1718","viafid":"95333931","merge":{"source":"viaf","id":"010334aa33d19f5d9407db5de374dcb6","type":"document"},"lc":"nr2001031968","bnf":"13324011"} {"version":"2013-07-01T14:07:50Z","_id":"010d9ed639f425180e7328befd781d11","dnb":"118949322","term":"Dygasiński, Adolf (1839-1902)","key":"DygasińskiAdolf(1839-1902)","nlilat":"000442420","viafid":"8187131","merge":{"source":"viaf","id":"010d9ed639f425180e7328befd781d11","type":"document"},"lc":"n82018247","bnf":"12475023"} {"version":"2013-07-01T14:07:50Z","_id":"010fd53ed0dc23e0fdad640b23d14ee0","bne":"xx965506","dnb":"120228688","nla":"000035862234","ptbnp":"88786","term":"García Villada, Zacarías, 1879-1936","key":"GarcíaVilladaZacarías1879-1936","viafid":"54973517","nlilat":"000420300","merge":{"source":"viaf","id":"010fd53ed0dc23e0fdad640b23d14ee0","type":"document"},"lc":"n79061275","bnf":"16194028","bav":"adv10220834"} {"nkc":"xx0123321","version":"2013-07-01T14:07:50Z","_id":"01130c0c62fdf6c28a74dfb0edc3f776","dnb":"128603585","ptbnp":"412507","term":"Groueff, Stéphane, 1922-2006","key":"GroueffStéphane1922-2006","nlilat":"000407419","viafid":"111740137","merge":{"source":"viaf","id":"01130c0c62fdf6c28a74dfb0edc3f776","type":"document"},"lc":"n50031027","bnf":"11906034"} {"version":"2013-07-01T14:07:50Z","_id":"0116f800e73598ce4e24cdaebf3a74e1","dnb":"115635572","nla":"000036591984","term":"Pesselier, Charles-Étienne, 1712-1763","key":"PesselierCharles-Étienne1712-1763","viafid":"12313544","merge":{"source":"viaf","id":"0116f800e73598ce4e24cdaebf3a74e1","type":"document"},"lc":"no91006000","bnf":"11919341"} {"version":"2013-07-01T14:07:50Z","_id":"0137d710d4034a3d74a24a34d17546df","dnb":"17205060x","nla":"000048864378","ptbnp":"96138","term":"Durand de Maillane, Pièrre Toussaint, 1729-1814","key":"DuranddeMaillanePièrreToussaint1729-1814","viafid":"29642211","nlilat":"000492838","merge":{"source":"viaf","id":"0137d710d4034a3d74a24a34d17546df","type":"document"},"lc":"n88070893","bnf":"12524422","bav":"adv10234074"} {"viafid":"184975882","merge":{"source":"viaf","id":"0138b8ea4af09a51096be3f08d5ebfdd","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0138b8ea4af09a51096be3f08d5ebfdd","lc":"no2009074709","term":"Köhler, Barbara, 1959- | Poems. Polish. Selections","key":"KöhlerBarbara1959-|PoemsPolishSelections"} {"viafid":"176963320","merge":{"source":"viaf","id":"01399bc902f25cfb19796c63674a8b1e","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"01399bc902f25cfb19796c63674a8b1e","nla":"000035619622","term":"Donner, Jörn, 1933- | Sverigeboken. Finnish","key":"DonnerJörn1933-|SverigebokenFinnish"} {"viafid":"183974757","merge":{"source":"viaf","id":"013cac6edc02893f777949a2ffc6de31","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"013cac6edc02893f777949a2ffc6de31","lc":"n95033509","term":"Haley, George, 1927- | Vicente Espinel and Marcos de Obregón. Spanish","key":"HaleyGeorge1927-|VicenteEspinelandMarcosdeObregónSpanish"} {"viafid":"39325406","merge":{"source":"viaf","id":"014604935af0add6b17f4202669f016c","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"014604935af0add6b17f4202669f016c","lc":"nr2004008946","term":"Palasne de Champeaux, Julien-François, 1736-1795","key":"PalasnedeChampeauxJulien-François1736-1795"} {"version":"2013-07-01T14:07:50Z","_id":"0151b48dc7132c28ba92a926e29eecaa","dnb":"101631642","term":"Liétard, Alfred, 1872-1912","key":"LiétardAlfred1872-1912","viafid":"29523021","merge":{"source":"viaf","id":"0151b48dc7132c28ba92a926e29eecaa","type":"document"},"bnf":"10362029"} {"version":"2013-07-01T14:07:50Z","_id":"015370e084f0eb48fa5bfc0725888a54","dnb":"103166947","term":"Skiadás, Aristóxenos D. 1932-1994","key":"SkiadásAristóxenosD1932-1994","viafid":"46801304","merge":{"source":"viaf","id":"015370e084f0eb48fa5bfc0725888a54","type":"document"},"lc":"n86132338","bnf":"12167546"} {"nkc":"jn19990000170","version":"2013-07-01T14:07:50Z","_id":"016d00af5a09543db20630f890b79c09","bne":"xx4579605","dnb":"118502751","nla":"000035006238","term":"Anders, Günther, 1902-1992","key":"AndersGünther1902-1992","viafid":"9859892","nlilat":"000010121","merge":{"source":"viaf","id":"016d00af5a09543db20630f890b79c09","type":"document"},"lc":"n50021760","bnf":"12020978"} {"nkc":"jn19990210294","version":"2013-07-01T14:07:50Z","_id":"0170a05570660425ba9ee207cdda26ed","bne":"xx956783","dnb":"118555197","nla":"000035828136","ptbnp":"38757","term":"Ibárruri, Dolores 1895-1989","key":"IbárruriDolores1895-1989","viafid":"109366304","merge":{"source":"viaf","id":"0170a05570660425ba9ee207cdda26ed","type":"document"},"lc":"n79066727","bnf":"12130823"} {"nliara":"000003490","selibr":"195610","version":"2013-07-01T14:07:50Z","_id":"017403306a10ef9ca58ad35fb3a756fc","egaxa":"vtls000783338","dnb":"119344238","nla":"000035551157","term":"Māwardī, ʻAlī ibn Muḥammad, 974?-1058","key":"MāwardīʻAlīibnMuḥammad974?-1058","nlilat":"000455598","viafid":"34578551","merge":{"source":"viaf","id":"017403306a10ef9ca58ad35fb3a756fc","type":"document"},"lc":"n83162975","bnf":"12624546","bav":"adv10989620"} {"nkc":"ola2002161472","selibr":"313469","version":"2013-07-01T14:07:50Z","_id":"017ac3329e3f4ada5e521fe1c73e2f12","bne":"xx1095217","dnb":"118671774","nla":"000035035366","ptbnp":"83297","term":"Dhôtel, André, 1900-1991","key":"DhôtelAndré1900-1991","viafid":"109123195","merge":{"source":"viaf","id":"017ac3329e3f4ada5e521fe1c73e2f12","type":"document"},"lc":"n50001694","bnf":"11900058"} {"nkc":"jo20000080640","version":"2013-07-01T14:07:50Z","_id":"017e34f753aad0bf826ac2e1f641cd93","dnb":"116860618","nla":"000036038833","ptbnp":"93052","term":"Léger, Louis, 1843-1923","key":"LégerLouis1843-1923","viafid":"7470950","nlilat":"000252572","merge":{"source":"viaf","id":"017e34f753aad0bf826ac2e1f641cd93","type":"document"},"lc":"n86037863","bnf":"12380380","bav":"adv10877220"} {"version":"2013-07-01T14:07:50Z","_id":"0183f1e24cd55e5d3ccab0dbf333ee84","dnb":"11757628x","nla":"000035599649","ptbnp":"1174734","term":"Guérin-Méneville, F.-E., 1799-1874","key":"Guérin-MénevilleF-E1799-1874","viafid":"51823869","merge":{"source":"viaf","id":"0183f1e24cd55e5d3ccab0dbf333ee84","type":"document"},"lc":"no97031324","bnf":"15325222"} {"viafid":"293258240","merge":{"source":"viaf","id":"0185d13b2692e09ad66257dd7ffa6f67","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0185d13b2692e09ad66257dd7ffa6f67","term":"Konwicki, Tadeusz (1926- ). | Kronika wypadków miłosnych (niem.)","key":"KonwickiTadeusz(1926-)|Kronikawypadkówmiłosnych(niem)"} {"nkc":"jo2012736072","version":"2013-07-01T14:07:50Z","_id":"0187a9abfe13e1e0c18c946023b15fe7","dnb":"116081546","term":"Désaugiers, Marc-Antoine, 1772-1827","key":"DésaugiersMarc-Antoine1772-1827","viafid":"2565306","merge":{"source":"viaf","id":"0187a9abfe13e1e0c18c946023b15fe7","type":"document"},"lc":"n82155075","bnf":"12442988","bav":"adv10126743"} {"nkc":"mub2012720304","version":"2013-07-01T14:07:50Z","_id":"0193fa290117df6b396336374bc83693","dnb":"116684135","ptbnp":"134032","term":"Hélie, Faustin, 1799-1884","key":"HélieFaustin1799-1884","viafid":"51769095","nlilat":"000535904","merge":{"source":"viaf","id":"0193fa290117df6b396336374bc83693","type":"document"},"lc":"no98117099","bnf":"12373434","bav":"adv12126276"} {"version":"2013-07-01T14:07:50Z","_id":"019503e27dd6d578319ee56e9ba9e0dc","dnb":"133168565","term":"Sudeta, Đuro, 1903-1927","key":"SudetaĐuro1903-1927","viafid":"23321266","merge":{"source":"viaf","id":"019503e27dd6d578319ee56e9ba9e0dc","type":"document"},"lc":"n96092627"} {"viafid":"71737590","merge":{"source":"viaf","id":"019ab896a7f10f1ea54573ff64efe160","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"019ab896a7f10f1ea54573ff64efe160","dnb":"100300189","term":"Lange, François, 1610-1684","key":"LangeFrançois1610-1684"} {"nkc":"jk01152931","version":"2013-07-01T14:07:50Z","_id":"019b28f85aafb8e61a637601dee9b26e","dnb":"131054295","term":"Žába, Zbyněk, 1917-1971","key":"ŽábaZbyněk1917-1971","viafid":"60203425","nlilat":"000548565","merge":{"source":"viaf","id":"019b28f85aafb8e61a637601dee9b26e","type":"document"},"lc":"nb2004018264"} {"version":"2013-07-01T14:07:50Z","_id":"019e1992e07862b26ba93c93a8ced5bb","dnb":"101800479","term":"Sillem, Jérome Alexandre, 1840-1912","key":"SillemJéromeAlexandre1840-1912","viafid":"52066195","merge":{"source":"viaf","id":"019e1992e07862b26ba93c93a8ced5bb","type":"document"},"bav":"adv11997926"} {"nkc":"nlk20000084680","version":"2013-07-01T14:07:50Z","_id":"01a4e621a9a8a27f012ba0780a2e2d90","dnb":"1028013906","ptbnp":"42436","term":"Doyen, Eugène-Louis, 1859-1916","key":"DoyenEugène-Louis1859-1916","viafid":"59175623","merge":{"source":"viaf","id":"01a4e621a9a8a27f012ba0780a2e2d90","type":"document"},"lc":"n2006181494","bnf":"12430836"} {"viafid":"182411099","merge":{"source":"viaf","id":"01b9647ae81b889b575f1f742ba27be1","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"01b9647ae81b889b575f1f742ba27be1","lc":"n2005027871","term":"Dupuis, Sylviane, 1956- | Géométrie de l'illimité. Italian & French","key":"DupuisSylviane1956-|Géométriedel'illimitéItalian&French"} {"nkc":"zmp2012739168","selibr":"67124","version":"2013-07-01T14:07:50Z","_id":"01ba9d2c7c54c506a398e7cefc104101","bne":"xx4982218","dnb":"10096673x","nla":"000035487022","term":"Ḳimḥi, Daṿid 1160-1235","key":"ḲimḥiDaṿid1160-1235","viafid":"100213323","nlicyr":"000151969","nlilat":"000075925","nliheb":"000185046","merge":{"source":"viaf","id":"01ba9d2c7c54c506a398e7cefc104101","type":"document"},"lc":"n83120193","bnf":"11997296","bav":"adv10208072"} {"version":"2013-07-01T14:07:50Z","_id":"01c0b5d1fc65e8024030705d90e04dce","dnb":"117162442","term":"Mühlenbruch, Christian Friedrich, 1785-1843","key":"MühlenbruchChristianFriedrich1785-1843","viafid":"25372370","merge":{"source":"viaf","id":"01c0b5d1fc65e8024030705d90e04dce","type":"document"},"lc":"n88158350","bav":"adv10999914"} {"nkc":"jk01030702","version":"2013-07-01T14:07:50Z","_id":"01c0be95ee14379060549d4c25930a51","dnb":"118685856","term":"Fajtl, František, 1912-2006","key":"FajtlFrantišek1912-2006","viafid":"10640038","merge":{"source":"viaf","id":"01c0be95ee14379060549d4c25930a51","type":"document"},"lc":"n81071340"} {"nkc":"mzk2010591943","selibr":"188110","version":"2013-07-01T14:07:50Z","_id":"01c999074161aafa0c1c1b0bf549a3a8","dnb":"100141242","term":"Genesios, Iōsēph, fl. 912-959","key":"GenesiosIōsēphfl912-959","nlilat":"000052068","viafid":"61674606","merge":{"source":"viaf","id":"01c999074161aafa0c1c1b0bf549a3a8","type":"document"},"lc":"n79097681","bnf":"12812981","bav":"adv10302188"} {"version":"2013-07-01T14:07:50Z","_id":"01ca0773ba48560b5446604309741f47","dnb":"14124612x","term":"Pāṇḍe, Hemarāja, fl. 1653-1668","key":"PāṇḍeHemarājafl1653-1668","viafid":"43843943","merge":{"source":"viaf","id":"01ca0773ba48560b5446604309741f47","type":"document"},"lc":"no00048010"} {"viafid":"38088553","merge":{"source":"viaf","id":"01d1a6bf1c7e030cc7657fb33e9f435a","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"01d1a6bf1c7e030cc7657fb33e9f435a","dnb":"132784351","term":"Mückenhausen, Eduard 1907-2005","key":"MückenhausenEduard1907-2005"} {"version":"2013-07-01T14:07:50Z","_id":"01d5eb572db333f314833e64d543746d","dnb":"107338521","term":"Schütrumpf, Rudolf 1909-1986","key":"SchütrumpfRudolf1909-1986","viafid":"295184373","merge":{"source":"viaf","id":"01d5eb572db333f314833e64d543746d","type":"document"},"lc":"nr90014039"} {"nkc":"jn19990209730","version":"2013-07-01T14:07:50Z","_id":"01db9063aadeeba96c253a2945be425a","dnb":"128958499","term":"Rulf, Jiří, 1947-2007","key":"RulfJiří1947-2007","viafid":"5998335","merge":{"source":"viaf","id":"01db9063aadeeba96c253a2945be425a","type":"document"},"lc":"n94021539","bnf":"16235605"} {"selibr":"277129","version":"2013-07-01T14:07:50Z","_id":"01ea9bcb6988461fb0fc1dfdfc0c54fc","dnb":"128367512","term":"Tilenus, Danie͏̈l, 1563-1633","key":"TilenusDanie͏̈l1563-1633","nlilat":"000514751","viafid":"41881844","merge":{"source":"viaf","id":"01ea9bcb6988461fb0fc1dfdfc0c54fc","type":"document"},"lc":"no88000851","bnf":"12173399","bav":"adv11306465"} {"nkc":"js2007382460","version":"2013-07-01T14:07:50Z","_id":"01efe43dda330b454b026f1522af5888","dnb":"119068958","term":"Domjanić, Dragutin, 1875-1933","key":"DomjanićDragutin1875-1933","viafid":"13109569","merge":{"source":"viaf","id":"01efe43dda330b454b026f1522af5888","type":"document"},"lc":"n87125111","bnf":"12134625"} {"nkc":"xx0003720","selibr":"281630","version":"2013-07-01T14:07:50Z","_id":"01f0a8973b22b75443dc0fd16727d9a9","dnb":"123479274","nla":"000035075467","term":"Petròcchi, Policarpo 1852-1902","key":"PetròcchiPolicarpo1852-1902","viafid":"11882482","nlilat":"000510480","merge":{"source":"viaf","id":"01f0a8973b22b75443dc0fd16727d9a9","type":"document"},"lc":"n93118836","bnf":"13482665","bav":"adv10185646"} {"version":"2013-07-01T14:07:50Z","_id":"01f3406f114f535167ab44e24f764ee8","dnb":"133088588","term":"Köhler, Jochen (1944-2007)","key":"KöhlerJochen(1944-2007)","viafid":"3652649","nlilat":"000286884","merge":{"source":"viaf","id":"01f3406f114f535167ab44e24f764ee8","type":"document"},"lc":"n80038798"} {"nkc":"pna2006322488","version":"2013-07-01T14:07:50Z","_id":"01f6f82561aa134233d13eb97350f21e","dnb":"118829181","nla":"000035094111","term":"Artigas, José Gervasio, 1764-1850","key":"ArtigasJoséGervasio1764-1850","viafid":"64804413","nlilat":"000011996","merge":{"source":"viaf","id":"01f6f82561aa134233d13eb97350f21e","type":"document"},"lc":"n50001870"} {"selibr":"210553","version":"2013-07-01T14:07:50Z","_id":"0200082478ad4c65a70665600ccb4a5a","dnb":"135655714","term":"Höglund, Zeth, 1884-1956","key":"HöglundZeth1884-1956","viafid":"15992916","merge":{"source":"viaf","id":"0200082478ad4c65a70665600ccb4a5a","type":"document"}} {"nkc":"xx0102999","version":"2013-07-01T14:07:50Z","_id":"02014b6f6f34229b0eab783d4f5967ac","dnb":"118839977","nla":"000050002915","ptbnp":"264199","term":"Essen, Léon van der, 1883-1963","key":"EssenLéonvander1883-1963","viafid":"22272593","merge":{"source":"viaf","id":"02014b6f6f34229b0eab783d4f5967ac","type":"document"},"lc":"no96045632","bnf":"12948897","bav":"adv10176119"} {"version":"2013-07-01T14:07:50Z","_id":"020971cf95093bf96980b0e38c1e230b","dnb":"117559768","term":"Mazois, François, 1783-1826","key":"MazoisFrançois1783-1826","viafid":"54140480","merge":{"source":"viaf","id":"020971cf95093bf96980b0e38c1e230b","type":"document"},"jpg":"500047988","lc":"nr97017047","bnf":"11076597","bav":"adv11019655"} {"selibr":"200168","version":"2013-07-01T14:07:50Z","_id":"020cb175cf01a0620e67def4d81d7083","dnb":"152093338","term":"Tingström, Bertel, 1912-2004","key":"TingströmBertel1912-2004","viafid":"30951839","merge":{"source":"viaf","id":"020cb175cf01a0620e67def4d81d7083","type":"document"},"lc":"n84219321"} {"nkc":"mzk2010589930","version":"2013-07-01T14:07:50Z","_id":"0216d129d11cb2b59089114826e2dce6","dnb":"136358756","term":"Börner, Friedrich, 1723-1761","key":"BörnerFriedrich1723-1761","viafid":"80716903","nlilat":"000022381","merge":{"source":"viaf","id":"0216d129d11cb2b59089114826e2dce6","type":"document"},"bnf":"16215913","bav":"adv10006228"} {"nkc":"jz8001457","version":"2013-07-01T14:07:50Z","_id":"0217fd48022674cec08b7c4702cb8fe0","dnb":"118995782","term":"Zábrana, Jan, 1931-1984","key":"ZábranaJan1931-1984","viafid":"71448238","merge":{"source":"viaf","id":"0217fd48022674cec08b7c4702cb8fe0","type":"document"},"lc":"n84184266","bnf":"12261202"} {"version":"2013-07-01T14:07:50Z","_id":"0225c0e0b8331307c978addd3c190fb0","egaxa":"vtls000821692","term":"Ibn al-Ḥājj, Muḥammad ibn Muḥammad, d. 1336","key":"Ibnal-ḤājjMuḥammadibnMuḥammadd1336","viafid":"26198000","merge":{"source":"viaf","id":"0225c0e0b8331307c978addd3c190fb0","type":"document"},"lc":"n89239785"} {"nkc":"mzk2003174055","selibr":"186825","version":"2013-07-01T14:07:50Z","_id":"0229c939fcf37b8171d358b67cddacd9","bne":"xx850854","dnb":"11949924x","nla":"000035082386","ptbnp":"153635","term":"Fétis, François-Joseph, 1784-1871","key":"FétisFrançois-Joseph1784-1871","viafid":"69078568","nlilat":"000050348","merge":{"source":"viaf","id":"0229c939fcf37b8171d358b67cddacd9","type":"document"},"lc":"n82246099","bnf":"13474481","bav":"adv10133548"} {"version":"2013-07-01T14:07:50Z","_id":"022a70c29f317f37b68c87d89504101b","dnb":"100282881","ptbnp":"98028","term":"Ferrière, Claude Joseph de, d. ca. 1748","key":"FerrièreClaudeJosephdedca1748","nlilat":"000491499","viafid":"2514410","merge":{"source":"viaf","id":"022a70c29f317f37b68c87d89504101b","type":"document"},"lc":"n88002655","bnf":"12176473","bav":"adv10193885"} {"nkc":"kup19950000031479","version":"2013-07-01T14:07:50Z","_id":"02355c2ceeb3300a38f376cc341c300b","dnb":"17361843x","nla":"000035123545","ptbnp":"569207","term":"Gilbert, Alan 1944-.... spécialiste de l'Amérique latine","key":"GilbertAlan1944-spécialistedel'Amériquelatine","viafid":"61607588","nlilat":"000430906","merge":{"source":"viaf","id":"02355c2ceeb3300a38f376cc341c300b","type":"document"},"lc":"n80112938","bnf":"12036429"} {"nkc":"mzk2010579552","version":"2013-07-01T14:07:50Z","_id":"023ed3e06a7aeaedcf108011421d1cb2","dnb":"117178756","nla":"000035325601","term":"Münter, Balthasar, 1735-1793","key":"MünterBalthasar1735-1793","viafid":"17992858","merge":{"source":"viaf","id":"023ed3e06a7aeaedcf108011421d1cb2","type":"document"},"lc":"nr93027643","bnf":"14333881"} {"nkc":"nlk20010102907","version":"2013-07-01T14:07:50Z","_id":"024c5736a5557d4e35622e47793706ca","dnb":"120076276","term":"Thümmig, Ludwig Philipp, 1697-1728","key":"ThümmigLudwigPhilipp1697-1728","viafid":"56686391","nlilat":"000131357","merge":{"source":"viaf","id":"024c5736a5557d4e35622e47793706ca","type":"document"},"lc":"n83300950","bnf":"12357938"} {"viafid":"177676627","merge":{"source":"viaf","id":"02526d0e1cee01de2d7a09f52b536056","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02526d0e1cee01de2d7a09f52b536056","lc":"no2006071929","term":"Bánk, Zsuzsa, 1965- | Schwimmer. Hungarian","key":"BánkZsuzsa1965-|SchwimmerHungarian"} {"nkc":"jn20000700452","version":"2013-07-01T14:07:50Z","_id":"02581c0f4c008827aa22b353e7d4c137","bne":"xx1068385","dnb":"118672770","nla":"000035267699","term":"Dupanloup, Félix, 1802-1878","key":"DupanloupFélix1802-1878","viafid":"27102015","nlilat":"000452277","merge":{"source":"viaf","id":"02581c0f4c008827aa22b353e7d4c137","type":"document"},"lc":"n83025558","bnf":"12138603","bav":"adv10216063"} {"viafid":"64069592","merge":{"source":"viaf","id":"02591d96186457508c5e96f01ef957d6","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02591d96186457508c5e96f01ef957d6","bnf":"12291175","term":"Couder, André (1897-1979)","key":"CouderAndré(1897-1979)"} {"viafid":"176771452","merge":{"source":"viaf","id":"025e78ffafe0bdde6be6d97db22c4226","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"025e78ffafe0bdde6be6d97db22c4226","lc":"n2007088491","term":"Hirdman, Yvonne, 1943- | Tänkande hjärtat. English","key":"HirdmanYvonne1943-|TänkandehjärtatEnglish"} {"nkc":"mzk2005299319","selibr":"219031","version":"2013-07-01T14:07:50Z","_id":"025e94e995c02a62abd0d6462fbad9ad","dnb":"119071606","nla":"000035975049","term":"Oehlenschläger, Adam Gottlieb, 1779-1850","key":"OehlenschlägerAdamGottlieb1779-1850","viafid":"27105324","nlilat":"000423229","merge":{"source":"viaf","id":"025e94e995c02a62abd0d6462fbad9ad","type":"document"},"lc":"n79109270","bnf":"12159197","bav":"adv10259974"} {"nkc":"skuk0004030","version":"2013-07-01T14:07:50Z","_id":"02645d03181fc8a250edea063d492ef8","dnb":"172243912","nla":"000035561825","term":"MʹCrie, Thomas, 1772-1835","key":"MʹCrieThomas1772-1835","viafid":"18823512","merge":{"source":"viaf","id":"02645d03181fc8a250edea063d492ef8","type":"document"},"lc":"n89607204","bav":"adv10955598"} {"nkc":"nlk20010098823","version":"2013-07-01T14:07:50Z","_id":"0266163c312d632d56c0fcae54151f06","dnb":"124546420","term":"Purmann, Matthäus Gottfried, 1649-1711","key":"PurmannMatthäusGottfried1649-1711","viafid":"84828429","merge":{"source":"viaf","id":"0266163c312d632d56c0fcae54151f06","type":"document"},"lc":"n83218031"} {"version":"2013-07-01T14:07:50Z","_id":"02672a9e05d30a86c5f069e3e9295354","dnb":"1024153797","ptbnp":"1398774","term":"Hévin, Prudent, 1715-1789","key":"HévinPrudent1715-1789","viafid":"72794021","merge":{"source":"viaf","id":"02672a9e05d30a86c5f069e3e9295354","type":"document"},"lc":"n84102159","bnf":"16223753"} {"selibr":"283218","version":"2013-07-01T14:07:50Z","_id":"026848023bcedfaae863fe50728722ed","dnb":"11622620x","term":"Böttger, Adolf, 1815-1870","key":"BöttgerAdolf1815-1870","viafid":"78353371","nlilat":"000383926","merge":{"source":"viaf","id":"026848023bcedfaae863fe50728722ed","type":"document"},"lc":"no94003344"} {"selibr":"216017","version":"2013-07-01T14:07:50Z","_id":"0279d6c60a065794970619d534507457","dnb":"117098485","term":"Öhman, Ivar, 1914-1989","key":"ÖhmanIvar1914-1989","viafid":"6378846","merge":{"source":"viaf","id":"0279d6c60a065794970619d534507457","type":"document"},"lc":"n85238338"} {"viafid":"181017618","merge":{"source":"viaf","id":"0283b24946c9714314f6adfadb55ee79","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0283b24946c9714314f6adfadb55ee79","lc":"n00089369","term":"Castañeda, Jorge G., 1953- | Herencia. English","key":"CastañedaJorgeG1953-|HerenciaEnglish"} {"viafid":"175740681","merge":{"source":"viaf","id":"02984840a43ef9528abfc3d51d223e5b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02984840a43ef9528abfc3d51d223e5b","nla":"000035017867","term":"Bermudes, João, d. 1570. | Esta he hũa breue relação da embaisada q̃ o patriarcha Dõ João Bermudez trouxe do emperado da Ethiopia. English. 1967","key":"BermudesJoãod1570|Estahehũabreuerelaçãodaembaisadaq̃opatriarchaDõJoãoBermudeztrouxedoemperadodaEthiopiaEnglish1967"} {"viafid":"108115811","merge":{"source":"viaf","id":"029a6f104a614c1e55145c5debb3b1a8","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"029a6f104a614c1e55145c5debb3b1a8","lc":"no2010051600","term":"Dumées, Antoine-François-Joseph, 1722-1765","key":"DuméesAntoine-François-Joseph1722-1765"} {"viafid":"49601082","merge":{"source":"viaf","id":"029b89519eea25f1066b7ce722e92b5f","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"029b89519eea25f1066b7ce722e92b5f","dnb":"101855753","term":"Gens, Eugène, 1814-1881","key":"GensEugène1814-1881"} {"viafid":"180283929","merge":{"source":"viaf","id":"02a27de9a8a199a234c341d0ab789e9e","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02a27de9a8a199a234c341d0ab789e9e","lc":"n87855665","term":"Takasaki, Jikidō, 1926- | Bukkyō nyūmon. English","key":"TakasakiJikidō1926-|BukkyōnyūmonEnglish"} {"viafid":"17600005","merge":{"source":"viaf","id":"02a436b4f76421266d42995ff6e73b6f","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02a436b4f76421266d42995ff6e73b6f","dnb":"101845324","term":"Arendt, Guillaume Amédée Auguste, 1808-1865","key":"ArendtGuillaumeAmédéeAuguste1808-1865"} {"nkc":"kup19990000045589","selibr":"65395","version":"2013-07-01T14:07:50Z","_id":"02a6335cc85d1f2f8475919fa6542d46","dnb":"120115395","nla":"000035383760","ptbnp":"10394","term":"Junqueiro, Abílio Manuel Guerra, 1850-1923","key":"JunqueiroAbílioManuelGuerra1850-1923","viafid":"22150838","merge":{"source":"viaf","id":"02a6335cc85d1f2f8475919fa6542d46","type":"document"},"lc":"n82036031","bnf":"11953741"} {"nkc":"ola2008459836","version":"2013-07-01T14:07:50Z","_id":"02a9329ae1c79dc270c89dc8cfbf617c","dnb":"134073711","term":"Bellenger, François, 1688-1749","key":"BellengerFrançois1688-1749","viafid":"76326749","merge":{"source":"viaf","id":"02a9329ae1c79dc270c89dc8cfbf617c","type":"document"},"lc":"n2011086997","bnf":"12006220","bav":"adv10112830"} {"viafid":"178656182","merge":{"source":"viaf","id":"02aef6485e4b006553e2145b77168e88","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02aef6485e4b006553e2145b77168e88","lc":"n86095545","term":"Markov, A. K. 1858-1920. (Alekseĭ Konstantinovich), O chistki︠e︡ drevnikh monet","key":"MarkovAK1858-1920(AlekseĭKonstantinovich)Ochistki︠e︡drevnikhmonet"} {"nkc":"kup19970000002490","version":"2013-07-01T14:07:50Z","_id":"02b8fc16f8e02e1395e955f30c4dd35b","bne":"xx1050260","nla":"000035255465","term":"Juan Arbó, Sebastián 1902-1984","key":"JuanArbóSebastián1902-1984","nlilat":"000423794","viafid":"66475814","merge":{"source":"viaf","id":"02b8fc16f8e02e1395e955f30c4dd35b","type":"document"},"lc":"n79120237","bnf":"11986915"} {"nkc":"js20020115050","selibr":"245169","version":"2013-07-01T14:07:50Z","_id":"02b93063938f142652e27a73580cc7a3","bne":"xx1164567","dnb":"119349981","ptbnp":"279594","term":"Carranza, Bartolomé, 1503-1576","key":"CarranzaBartolomé1503-1576","nlilat":"000437600","viafid":"14799490","merge":{"source":"viaf","id":"02b93063938f142652e27a73580cc7a3","type":"document"},"lc":"n81072380","bnf":"12100980","bav":"adv10060933"} {"version":"2013-07-01T14:07:50Z","_id":"02bedbd7dee8c7db68327497a6829729","dnb":"117713287","term":"Müller, C. H., 1878-1953","key":"MüllerCH1878-1953","nlilat":"000486965","viafid":"100969846","merge":{"source":"viaf","id":"02bedbd7dee8c7db68327497a6829729","type":"document"},"lc":"n87138140","bnf":"12351968"} {"version":"2013-07-01T14:07:50Z","_id":"02c0aff9e788c7e6bf0469f8aefd5a30","dnb":"117468916","ptbnp":"174894","term":"Second, Albéric, 1817-1887","key":"SecondAlbéric1817-1887","viafid":"5052468","nlilat":"000479237","merge":{"source":"viaf","id":"02c0aff9e788c7e6bf0469f8aefd5a30","type":"document"},"lc":"n86005747","bnf":"12638602"} {"version":"2013-07-01T14:07:50Z","_id":"02c3f25e744e92af2c42ae5075318d58","dnb":"124336698","term":"Champion, Edmé, 1836-1915","key":"ChampionEdmé1836-1915","nlilat":"000525371","viafid":"12306439","merge":{"source":"viaf","id":"02c3f25e744e92af2c42ae5075318d58","type":"document"},"lc":"nr91022441","bnf":"11895990"} {"nkc":"jn20010601136","selibr":"196902","version":"2013-07-01T14:07:50Z","_id":"02cc2db838db4dda3f67cd78bc8026e2","bne":"xx1145509","dnb":"118641654","nla":"000035422942","ptbnp":"42011","term":"Pieyre de Mandiargues, André, 1909-1991","key":"PieyredeMandiarguesAndré1909-1991","viafid":"108228000","nlilat":"000105729","merge":{"source":"viaf","id":"02cc2db838db4dda3f67cd78bc8026e2","type":"document"},"lc":"n50012843","bnf":"11919776","bav":"adv12174762"} {"version":"2013-07-01T14:07:50Z","_id":"02ce71786a3011157d12d72bbcb34f90","dnb":"100190065","ptbnp":"1201811","term":"Licquet, Théodore, 1787-1832","key":"LicquetThéodore1787-1832","viafid":"64044043","merge":{"source":"viaf","id":"02ce71786a3011157d12d72bbcb34f90","type":"document"},"lc":"n82066662","bnf":"12150892","bav":"adv12076465"} {"nkc":"mzk2008479882","version":"2013-07-01T14:07:50Z","_id":"02ce868f4f516fb4a653e46e99816c40","dnb":"174299664","term":"Bénard, Robert, 1734-1777","key":"BénardRobert1734-1777","viafid":"95887207","merge":{"source":"viaf","id":"02ce868f4f516fb4a653e46e99816c40","type":"document"},"lc":"n2005055169","bnf":"14958162"} {"viafid":"245091915","merge":{"source":"viaf","id":"02cec247a5a3631d3d4c0afd80738412","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02cec247a5a3631d3d4c0afd80738412","dnb":"15915782x","term":"Rivière, Hippolyte-Féréol, 1817-1893","key":"RivièreHippolyte-Féréol1817-1893"} {"nliara":"000159024","selibr":"191240","version":"2013-07-01T14:07:50Z","_id":"02cfeb71732d4946b84128d95ca78510","egaxa":"vtls000837220","dnb":"13215532x","term":"Ibn al-Ṣalāḥ al-Shahrazūrī, ʻUthmān ibn ʻAbd al-Raḥmān, 1181 or 2-1245","key":"Ibnal-Ṣalāḥal-ShahrazūrīʻUthmānibnʻAbdal-Raḥmān1181or2-1245","viafid":"79189688","merge":{"source":"viaf","id":"02cfeb71732d4946b84128d95ca78510","type":"document"},"lc":"nr92026123","bnf":"14540321"} {"nkc":"jx20080820011","version":"2013-07-01T14:07:50Z","_id":"02d0df5b90896e9fb8b51b0e181ea545","dnb":"116628324","term":"Macé, Jean, 1815-1894","key":"MacéJean1815-1894","nlilat":"000421092","viafid":"71467271","merge":{"source":"viaf","id":"02d0df5b90896e9fb8b51b0e181ea545","type":"document"},"lc":"n79072856","bnf":"12356458","bav":"adv10891193"} {"viafid":"47521825","merge":{"source":"viaf","id":"02f6ca69eb47e98387fed80b7aecae51","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02f6ca69eb47e98387fed80b7aecae51","dnb":"116769815","term":"Frensdorff, Émile 1818-1909","key":"FrensdorffÉmile1818-1909"} {"nkc":"jn19990003834","version":"2013-07-01T14:07:50Z","_id":"02f7e3d58b98af8f8f28fc458e18d895","dnb":"100441386","nla":"000035369149","ptbnp":"151139","term":"Chéruel, Adolphe, 1809-1891","key":"ChéruelAdolphe1809-1891","viafid":"9931987","nlilat":"000522399","merge":{"source":"viaf","id":"02f7e3d58b98af8f8f28fc458e18d895","type":"document"},"lc":"nr88002431","bnf":"12392284","bav":"adv10151332"} {"viafid":"42620022","merge":{"source":"viaf","id":"02f868a6ed9ab7b8047155bc2a9032cc","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"02f868a6ed9ab7b8047155bc2a9032cc","dnb":"117625507","term":"Thomé, Ludwig Wilhelm 1841-1910","key":"ThoméLudwigWilhelm1841-1910"} {"version":"2013-07-01T14:07:50Z","_id":"02ff177adff46824c9ae122ad6eb06da","dnb":"1021987298","term":"Petropoulos, Geōrgios Andrea, 1897-1964","key":"PetropoulosGeōrgiosAndrea1897-1964","viafid":"45750572","merge":{"source":"viaf","id":"02ff177adff46824c9ae122ad6eb06da","type":"document"},"lc":"n85250825","bav":"adv12086761"} {"version":"2013-07-01T14:07:50Z","_id":"03023d40fbc41b8bc99977ec5cd5e545","dnb":"101916345","term":"Biollay, Léon, 1830-1920","key":"BiollayLéon1830-1920","viafid":"114289550","merge":{"source":"viaf","id":"03023d40fbc41b8bc99977ec5cd5e545","type":"document"},"lc":"no94012267","bnf":"12169328"} {"version":"2013-07-01T14:07:50Z","_id":"0306f6666be652a7020c3e03c2c65330","dnb":"11925249x","nla":"000035823526","ptbnp":"97621","term":"Foulché-Delbosc, Raymond, 1864-1929","key":"Foulché-DelboscRaymond1864-1929","viafid":"49225549","nlilat":"000048154","merge":{"source":"viaf","id":"0306f6666be652a7020c3e03c2c65330","type":"document"},"lc":"n84055843","bnf":"11903228","bav":"adv10196029"} {"nkc":"jo2009532273","version":"2013-07-01T14:07:50Z","_id":"0308464c956db049c7889c3ba6387329","egaxa":"vtls000904154","dnb":"118591819","swnl":"vtls002276744","nla":"000035410238","ptbnp":"117733","term":"Parrot, André, 1901-1980","key":"ParrotAndré1901-1980","viafid":"27069841","nlilat":"000103494","merge":{"source":"viaf","id":"0308464c956db049c7889c3ba6387329","type":"document"},"lc":"n50050793","bnf":"11918661","bav":"adv11560152"} {"selibr":"179566","version":"2013-07-01T14:07:50Z","_id":"030d7f115e474ef8992904d97fe99745","dnb":"1012607119","nla":"000035022347","term":"Brøgger, A.W. 1884-1951","key":"BrøggerAW1884-1951","nlilat":"000457472","viafid":"114431574","merge":{"source":"viaf","id":"030d7f115e474ef8992904d97fe99745","type":"document"},"lc":"n83220467","bav":"adv11143309"} {"version":"2013-07-01T14:07:50Z","_id":"032562f30cb45ed44025a073298197a2","dnb":"172262143","term":"Molé, Guillaume-François-Roger, 1742-1790","key":"MoléGuillaume-François-Roger1742-1790","viafid":"5026144","merge":{"source":"viaf","id":"032562f30cb45ed44025a073298197a2","type":"document"},"bnf":"12449254","bav":"adv10960748"} {"version":"2013-07-01T14:07:50Z","_id":"032abb10db700ae25e127d3347cfaf24","dnb":"133376702","term":"Ansquer de Ponçol, Henri-Simon-Joseph, 1730-1783","key":"AnsquerdePonçolHenri-Simon-Joseph1730-1783","viafid":"9902990","merge":{"source":"viaf","id":"032abb10db700ae25e127d3347cfaf24","type":"document"},"lc":"nr93015692","bnf":"12238142"} {"version":"2013-07-01T14:07:50Z","_id":"032db208e6a28d65cdf07eed40290f81","dnb":"10148206x","nla":"000035209885","ptbnp":"107800","term":"Van Rijnberk, Gérard, 1875-1953","key":"VanRijnberkGérard1875-1953","viafid":"89366293","nlilat":"000111649","merge":{"source":"viaf","id":"032db208e6a28d65cdf07eed40290f81","type":"document"},"lc":"n83141475","bnf":"15523804","bav":"adv11096082"} {"version":"2013-07-01T14:07:50Z","_id":"032e7ec467d740a16f1dda5d873d6902","dnb":"123462096","term":"Mesarić, Kalman (1900-1983)","key":"MesarićKalman(1900-1983)","viafid":"52597351","merge":{"source":"viaf","id":"032e7ec467d740a16f1dda5d873d6902","type":"document"},"lc":"nr98042296","bnf":"11490922"} {"nkc":"ola2002158365","version":"2013-07-01T14:07:50Z","_id":"032f45bae823d220d1c77d6d62353984","bne":"xx897937","dnb":"118668188","nla":"000035648045","ptbnp":"266076","term":"Campra, André, 1660-1744","key":"CampraAndré1660-1744","nlilat":"000436205","viafid":"74036950","merge":{"source":"viaf","id":"032f45bae823d220d1c77d6d62353984","type":"document"},"lc":"n81047490","bnf":"13892105"} {"viafid":"180199665","merge":{"source":"viaf","id":"03345478b7fb3bcd2929941c839c126d","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"03345478b7fb3bcd2929941c839c126d","lc":"n00026607","term":"Mächler, Stefan, 1957- | Fall Wilkomirski. English","key":"MächlerStefan1957-|FallWilkomirskiEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0338eea3c8564130e982240713188bc1","term":"Duparcque, Frédéric, 1788-1879","key":"DuparcqueFrédéric1788-1879","viafid":"86377830","merge":{"source":"viaf","id":"0338eea3c8564130e982240713188bc1","type":"document"},"lc":"no2009060497","bav":"adv10233738"} {"viafid":"174709176","merge":{"source":"viaf","id":"0339c2dc53d026bfc62ee1832d2635b9","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0339c2dc53d026bfc62ee1832d2635b9","lc":"n98108337","term":"Säfve, Torbjörn, 1941- | Hemliga litterära världsakademin","key":"SäfveTorbjörn1941-|Hemligalitteräravärldsakademin"} {"nkc":"jo2003169898","version":"2013-07-01T14:07:50Z","_id":"033a1893fa41fe5fa0a7ac78945ebf08","dnb":"123298679","term":"Béthune, Philippe de (1561-1649)","key":"BéthunePhilippede(1561-1649)","viafid":"51804405","merge":{"source":"viaf","id":"033a1893fa41fe5fa0a7ac78945ebf08","type":"document"},"lc":"n86031977","bav":"adv10300625"} {"version":"2013-07-01T14:07:50Z","_id":"033aa662967208c76ebece545e0a2298","dnb":"1023771381","term":"Fagel, François, 1740-1773","key":"FagelFrançois1740-1773","viafid":"9602583","merge":{"source":"viaf","id":"033aa662967208c76ebece545e0a2298","type":"document"},"lc":"no2006079310"} {"version":"2013-07-01T14:07:50Z","_id":"0341dbf68e43de72d2e1d1dceda144ff","ptbnp":"1207402","term":"Foucher, Émile, 1823-1867","key":"FoucherÉmile1823-1867","viafid":"88927368","merge":{"source":"viaf","id":"0341dbf68e43de72d2e1d1dceda144ff","type":"document"},"bav":"adv10195864"} {"version":"2013-07-01T14:07:50Z","_id":"03496ee8c33b042cd5a1098a9916e71b","bne":"xx1761822","dnb":"118759787","nla":"000035481242","ptbnp":"927818","term":"Schmidt-Görg, Joseph 1897-1981","key":"Schmidt-GörgJoseph1897-1981","viafid":"111892933","merge":{"source":"viaf","id":"03496ee8c33b042cd5a1098a9916e71b","type":"document"},"lc":"n50006704","bnf":"14805666","bav":"adv11553146"} {"version":"2013-07-01T14:07:50Z","_id":"034cc592d68c4366371314ecf545cf56","dnb":"118825127","term":"Loaisel Tréogate, Joseph-Marie, 1752-1812","key":"LoaiselTréogateJoseph-Marie1752-1812","nlilat":"000452867","viafid":"4932831","merge":{"source":"viaf","id":"034cc592d68c4366371314ecf545cf56","type":"document"},"lc":"n83041861","bnf":"11913182"} {"nkc":"ola2003193953","version":"2013-07-01T14:07:50Z","_id":"035a0b12e64b89d6f252da841367949c","dnb":"158511174","term":"Bystrzycki, Przemysław (1923-2004)","key":"BystrzyckiPrzemysław(1923-2004)","viafid":"79416665","merge":{"source":"viaf","id":"035a0b12e64b89d6f252da841367949c","type":"document"},"lc":"n84204624"} {"version":"2013-07-01T14:07:50Z","_id":"03649c73578886fc0d8015be211040d3","dnb":"101342594","nla":"000035294755","ptbnp":"84355","term":"Tournier, Édouard, 1831-1899","key":"TournierÉdouard1831-1899","nlilat":"000213419","viafid":"89376023","merge":{"source":"viaf","id":"03649c73578886fc0d8015be211040d3","type":"document"},"lc":"no2011149821","bav":"adv11105832"} {"version":"2013-07-01T14:07:50Z","_id":"036e6fbff7192f45d46785102305497e","dnb":"118936522","nla":"000036011637","ptbnp":"96547","term":"Renaudot, Théophraste, 1586-1653","key":"RenaudotThéophraste1586-1653","nlilat":"000444219","viafid":"83101172","merge":{"source":"viaf","id":"036e6fbff7192f45d46785102305497e","type":"document"},"lc":"n82058563","bnf":"12335203"} {"nkc":"jn20010316191","version":"2013-07-01T14:07:50Z","_id":"0374f2c34e6f13eca4f14769b8962a72","dnb":"116889292","term":"Von Schönthan, Franz, 1849-1913","key":"VonSchönthanFranz1849-1913","viafid":"66719381","nlilat":"000443875","merge":{"source":"viaf","id":"0374f2c34e6f13eca4f14769b8962a72","type":"document"},"lc":"n82051104","bnf":"14618811"} {"version":"2013-07-01T14:07:50Z","_id":"03847e4c9763d04b976d253cf0c30cb3","bne":"xx1243213","dnb":"136198341","ptbnp":"44694","term":"Chagas, João, 1863-1925","key":"ChagasJoão1863-1925","viafid":"66490689","merge":{"source":"viaf","id":"03847e4c9763d04b976d253cf0c30cb3","type":"document"},"lc":"n87927766","bnf":"12074341"} {"version":"2013-07-01T14:07:50Z","_id":"0388edbbd32cb70508615c57a269755f","dnb":"101326041","nla":"000035791107","ptbnp":"32558","term":"Thévenin, René, 1877-1967","key":"ThéveninRené1877-1967","nlilat":"000478817","viafid":"110022734","merge":{"source":"viaf","id":"0388edbbd32cb70508615c57a269755f","type":"document"},"lc":"n85825172","bnf":"15868284"} {"nkc":"jn20000701323","selibr":"207655","version":"2013-07-01T14:07:50Z","_id":"038c48d9dd7a8ade2ee593afe4e8f420","bne":"xx1148076","dnb":"118588192","nla":"000036012840","ptbnp":"47151","term":"Nin, Anaïs, 1903-1977","key":"NinAnaïs1903-1977","viafid":"14774462","nlilat":"000099832","merge":{"source":"viaf","id":"038c48d9dd7a8ade2ee593afe4e8f420","type":"document"},"jpg":"500257487","lc":"n79041785","bnf":"11917732"} {"viafid":"186015450","merge":{"source":"viaf","id":"0397e6aac2ddcf6d0431779670f9d55c","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0397e6aac2ddcf6d0431779670f9d55c","lc":"n98077051","term":"Sullivan, Henry W., 1942- | Calderón in the German lands and the Low Countries. Spanish","key":"SullivanHenryW1942-|CalderónintheGermanlandsandtheLowCountriesSpanish"} {"nkc":"ola2002153754","version":"2013-07-01T14:07:50Z","_id":"03aec64adc3413f86d58b119ceea2abc","bne":"xx1265318","dnb":"115690158","nla":"000035187595","ptbnp":"16499","term":"Braga, Teófilo, 1843-1924","key":"BragaTeófilo1843-1924","nlilat":"000449474","viafid":"54161310","merge":{"source":"viaf","id":"03aec64adc3413f86d58b119ceea2abc","type":"document"},"lc":"n82211626","bnf":"12025206","bav":"adv10008296"} {"version":"2013-07-01T14:07:50Z","_id":"03afef8f182edb5be7e6b635f90ab2a3","nla":"000036722390","term":"Ku, Chʻeng, 1956- Selections Poems","key":"KuChʻeng1956-SelectionsPoems","viafid":"185421477","merge":{"source":"viaf","id":"03afef8f182edb5be7e6b635f90ab2a3","type":"document"},"lc":"nr96036087"} {"nkc":"jn19990003424","selibr":"60527","version":"2013-07-01T14:07:50Z","_id":"03b0d72a3b3bdd6b53e6850d8a424ae9","dnb":"119309548","nla":"000043077630","term":"Herling-Grudziński, Gustaw, 1919-2000","key":"Herling-GrudzińskiGustaw1919-2000","viafid":"17223996","nlilat":"000062344","merge":{"source":"viaf","id":"03b0d72a3b3bdd6b53e6850d8a424ae9","type":"document"},"lc":"n81056817","bnf":"11907347","bav":"adv11812395"} {"selibr":"190880","version":"2013-07-01T14:07:50Z","_id":"03b194c5f7b088737936d74e7d848622","dnb":"116440821","term":"Hammarsköld, Lorenzo, 1785-1827","key":"HammarsköldLorenzo1785-1827","viafid":"56599544","merge":{"source":"viaf","id":"03b194c5f7b088737936d74e7d848622","type":"document"},"lc":"nr98009139","bnf":"10526434"} {"version":"2013-07-01T14:07:50Z","_id":"03b250a0b1a67e3eb8c41c46f5899f69","bne":"xx1142375","dnb":"100314384","ptbnp":"414663","term":"De Ocampo, Florián, 1499?-1555?","key":"DeOcampoFlorián1499?-1555?","viafid":"100202275","merge":{"source":"viaf","id":"03b250a0b1a67e3eb8c41c46f5899f69","type":"document"},"lc":"n88244726","bav":"adv11388535"} {"viafid":"281671632","merge":{"source":"viaf","id":"03b9688927fd64aae9c71f1b882c5d80","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"03b9688927fd64aae9c71f1b882c5d80","term":"Ysermans, Joan, ca. 1590-ná 1631","key":"YsermansJoanca1590-ná1631"} {"nkc":"zmp2012739168","selibr":"67124","version":"2013-07-01T14:07:50Z","_id":"03bca13274682d086a41673a905cf321","bne":"xx4982218","dnb":"10096673x","nla":"000035487022","term":"Kimḥi, David, ca 1160-ca 1235","key":"KimḥiDavidca1160-ca1235","viafid":"100213323","nlicyr":"000151969","nlilat":"000075925","nliheb":"000185046","merge":{"source":"viaf","id":"03bca13274682d086a41673a905cf321","type":"document"},"lc":"n83120193","bnf":"11997296","bav":"adv10208072"} {"selibr":"216702","version":"2013-07-01T14:07:50Z","_id":"03be88c96f36a7cbceee8e8f181b813c","dnb":"129889512","term":"Högberg, Olof, 1855-1932","key":"HögbergOlof1855-1932","viafid":"6024113","merge":{"source":"viaf","id":"03be88c96f36a7cbceee8e8f181b813c","type":"document"},"lc":"n82142480"} {"viafid":"181623481","merge":{"source":"viaf","id":"03bea4128abba82a2d612931bbe69142","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"03bea4128abba82a2d612931bbe69142","lc":"n2010046632","term":"Urroz Kanan, Eloy, 1967- | Fricción. English","key":"UrrozKananEloy1967-|FricciónEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"03c3cf3001a80f27e47e06f77a3f277d","dnb":"1026769671","term":"Lote, René (1883-1944)","key":"LoteRené(1883-1944)","viafid":"54271583","merge":{"source":"viaf","id":"03c3cf3001a80f27e47e06f77a3f277d","type":"document"},"lc":"no2012126721","bnf":"12707211"} {"nkc":"jo20010091950","selibr":"252156","version":"2013-07-01T14:07:50Z","_id":"03dd5c9976e17d2225c8438f06b582d7","dnb":"118715143","term":"Kościuszko, Tadeusz, 1746-1817","key":"KościuszkoTadeusz1746-1817","viafid":"61554270","nlilat":"000234743","merge":{"source":"viaf","id":"03dd5c9976e17d2225c8438f06b582d7","type":"document"},"jpg":"500082545","lc":"n50042679","bnf":"11942955","bav":"adv12479613"} {"version":"2013-07-01T14:07:50Z","_id":"03e0f84dce1beeec5c950ba1cfdab3bc","dnb":"119181614","swnl":"vtls000105745","term":"Van Hove, Léon 1924-1990","key":"VanHoveLéon1924-1990","viafid":"120747971","merge":{"source":"viaf","id":"03e0f84dce1beeec5c950ba1cfdab3bc","type":"document"},"lc":"n85801639","bnf":"15343147"} {"nkc":"jn20010316190","version":"2013-07-01T14:07:50Z","_id":"03e2b007ece4f44b39197fd05753a2af","dnb":"170464407","nla":"000035047182","term":"Schäffle, Albert Eberhard Friedrich (1831-1903)","key":"SchäffleAlbertEberhardFriedrich(1831-1903)","viafid":"49357405","nlilat":"000119362","merge":{"source":"viaf","id":"03e2b007ece4f44b39197fd05753a2af","type":"document"},"lc":"n87896571","bnf":"13001985","bav":"adv10193854"} {"nkc":"mub2010601907","version":"2013-07-01T14:07:50Z","_id":"03e9516fda777fd728eb684745177989","term":"Kaczor, W. J., 1949-, (Wiesława J.)","key":"KaczorWJ1949-(WiesławaJ)","viafid":"74087975","merge":{"source":"viaf","id":"03e9516fda777fd728eb684745177989","type":"document"},"lc":"n99252423","bnf":"14530343"} {"nkc":"jn19990210225","selibr":"54872","version":"2013-07-01T14:07:50Z","_id":"03ee615ef5fc178700000785c0e5610a","egaxa":"vtls002227033","bne":"xx935590","dnb":"118689207","nla":"000040153226","term":"Gajdar, Arkadij Petrovič, 1904-1941","key":"GajdarArkadijPetrovič1904-1941","viafid":"42632124","nlicyr":"000149658","merge":{"source":"viaf","id":"03ee615ef5fc178700000785c0e5610a","type":"document"},"lc":"n50015461"} {"selibr":"350751","version":"2013-07-01T14:07:50Z","_id":"03f39ba00fb0588c2583abc2b40d4d50","dnb":"117614688","term":"Lefèbure, Louis François Henri, 1754-1840","key":"LefèbureLouisFrançoisHenri1754-1840","viafid":"27112682","merge":{"source":"viaf","id":"03f39ba00fb0588c2583abc2b40d4d50","type":"document"},"lc":"nr88006932","bnf":"12195705"} {"version":"2013-07-01T14:07:50Z","_id":"03f7de51fb3112824e3b5bb61e8907ec","dnb":"101159684","ptbnp":"182775","term":"Dufour, Médéric, b. 1866","key":"DufourMédéricb1866","nlilat":"000500303","viafid":"12307650","merge":{"source":"viaf","id":"03f7de51fb3112824e3b5bb61e8907ec","type":"document"},"lc":"n89633919","bnf":"11900980","bav":"adv11107034"} {"nkc":"js2006345207","version":"2013-07-01T14:07:50Z","_id":"03f93c2c6212c09f91729c3076f80b10","dnb":"131889141","term":"Hanžeković, Mato, 1884-1955","key":"HanžekovićMato1884-1955","viafid":"35601246","merge":{"source":"viaf","id":"03f93c2c6212c09f91729c3076f80b10","type":"document"},"lc":"n89629424","bnf":"11560135"} {"viafid":"287790346","merge":{"source":"viaf","id":"03fe7f0e439eb9a1762a5427e7748b73","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"03fe7f0e439eb9a1762a5427e7748b73","term":"Esdré, Adriaan, 1749-1822","key":"EsdréAdriaan1749-1822"} {"viafid":"175166042","merge":{"source":"viaf","id":"0408e832035b61eec14e6aebd3b58fe5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0408e832035b61eec14e6aebd3b58fe5","lc":"n2010036779","term":"Sŏ, Chae-jŏng, 1960- | Power, interest, and identity in military alliances. Korean","key":"SŏChae-jŏng1960-|PowerinterestandidentityinmilitaryalliancesKorean"} {"nkc":"nlk20000083623","version":"2013-07-01T14:07:50Z","_id":"040a9231004fd808bd23d3be0496686f","dnb":"118796704","swnl":"vtls000035685","term":"Brücke, Ernst, 1819-1892","key":"BrückeErnst1819-1892","viafid":"49441325","nlilat":"000025995","merge":{"source":"viaf","id":"040a9231004fd808bd23d3be0496686f","type":"document"},"lc":"n83211267","bnf":"14431666","bav":"adv10138518"} {"version":"2013-07-01T14:07:50Z","_id":"0410998a6b57bc3e5ed0a7e7a384dccd","bne":"xx917589","dnb":"128491795","ptbnp":"207955","term":"Durán, Diego, d. 1588?","key":"DuránDiegod1588?","viafid":"15030586","merge":{"source":"viaf","id":"0410998a6b57bc3e5ed0a7e7a384dccd","type":"document"},"lc":"n81090283","bnf":"14644307","bav":"adv11998075"} {"nkc":"jx20041102006","version":"2013-07-01T14:07:50Z","_id":"043414f435da087eb8908c59ff77ac87","dnb":"123145805","term":"Sokolov, Jurij Matveevič, 1889-1941","key":"SokolovJurijMatveevič1889-1941","viafid":"74752359","nlilat":"000456547","merge":{"source":"viaf","id":"043414f435da087eb8908c59ff77ac87","type":"document"},"lc":"n83197191"} {"viafid":"209033298","merge":{"source":"viaf","id":"043949491cccd1c41799a212c8b309d5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"043949491cccd1c41799a212c8b309d5","term":"Bossu, Antonin François, 1804-1897","key":"BossuAntoninFrançois1804-1897"} {"nkc":"mzk2003197598","version":"2013-07-01T14:07:50Z","_id":"0439994373e8de0fa5df68ff5ebf3248","dnb":"116653531","term":"De la Métherie, Jean-Claude, 1743-1817","key":"DelaMétherieJean-Claude1743-1817","nlilat":"000461920","viafid":"79028885","merge":{"source":"viaf","id":"0439994373e8de0fa5df68ff5ebf3248","type":"document"},"lc":"n84102385","bnf":"11910296","bav":"adv10872396"} {"version":"2013-07-01T14:07:50Z","_id":"043b7d941a7a7135bbcc5debcb8b5b22","bne":"xx1297861","dnb":"117564737","term":"Barrère, Pierre 1690-1755","key":"BarrèrePierre1690-1755","viafid":"73921885","merge":{"source":"viaf","id":"043b7d941a7a7135bbcc5debcb8b5b22","type":"document"},"lc":"no90025574","bnf":"12318827","bav":"adv10057539"} {"viafid":"201123204","merge":{"source":"viaf","id":"043db4cd9a3e7b5860fd13b05c676296","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"043db4cd9a3e7b5860fd13b05c676296","term":"Chailan, Fortuné, 1801-1840","key":"ChailanFortuné1801-1840"} {"version":"2013-07-01T14:07:50Z","_id":"045e864a7a829f1e7dd894e49d64cf72","dnb":"119184214","term":"Affò, Ireneo, 1741-1797","key":"AffòIreneo1741-1797","viafid":"41894199","nlilat":"000463482","merge":{"source":"viaf","id":"045e864a7a829f1e7dd894e49d64cf72","type":"document"},"lc":"n84158867","bnf":"12239778","bav":"adv10221407"} {"viafid":"6962579","merge":{"source":"viaf","id":"0461fba0848017c50a46d2ef2a64afdf","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0461fba0848017c50a46d2ef2a64afdf","lc":"no93006271","term":"Henze, Clément, b. 1880","key":"HenzeClémentb1880"} {"nkc":"jx20061114001","version":"2013-07-01T14:07:50Z","_id":"0462acc7f04769400aab09059514c4d7","bne":"xx963717","dnb":"129966118","nla":"000035965107","ptbnp":"31286","term":"De Navarrete, Martín Fernández, 1765-1844","key":"DeNavarreteMartínFernández1765-1844","nlilat":"000462196","viafid":"37085577","merge":{"source":"viaf","id":"0462acc7f04769400aab09059514c4d7","type":"document"},"lc":"n84112358","bnf":"13578080","bav":"adv10993049"} {"nkc":"jn19990005515","version":"2013-07-01T14:07:50Z","_id":"046f52476a5a3e2866eb848b20594f21","bne":"xx1145774","dnb":"12102721x","nla":"000035753249","ptbnp":"85932","term":"Mâle, Émile, 1862-1954","key":"MâleÉmile1862-1954","nlilat":"000410677","viafid":"22145190","merge":{"source":"viaf","id":"046f52476a5a3e2866eb848b20594f21","type":"document"},"lc":"n50044319","bnf":"11914085","bav":"adv11542586"} {"nkc":"nlk20000083861","version":"2013-07-01T14:07:50Z","_id":"048017763407c9d0feab8c35bc5766fc","dnb":"102446709","term":"Coindet, Jean-François, 1774-1834","key":"CoindetJean-François1774-1834","viafid":"32387488","merge":{"source":"viaf","id":"048017763407c9d0feab8c35bc5766fc","type":"document"},"lc":"nr97031053"} {"version":"2013-07-01T14:07:50Z","_id":"0480d99ad06a21cda31aec42df022c82","term":"Courty, Amédée, 1819-1886","key":"CourtyAmédée1819-1886","viafid":"17212308","merge":{"source":"viaf","id":"0480d99ad06a21cda31aec42df022c82","type":"document"},"lc":"no2009088056","bnf":"10466367","bav":"adv10140182"} {"nkc":"nlk20000087298","version":"2013-07-01T14:07:50Z","_id":"0489983008b30ffffd5411a765b47605","dnb":"138900612","nla":"000035748595","ptbnp":"1198036","term":"Guyon, Jean-Casimir-Félix, 1831-1920","key":"GuyonJean-Casimir-Félix1831-1920","viafid":"49372271","merge":{"source":"viaf","id":"0489983008b30ffffd5411a765b47605","type":"document"},"lc":"no2008022904","bnf":"13474474","bav":"adv11098073"} {"nkc":"nlk20010098015","version":"2013-07-01T14:07:50Z","_id":"048b9e68a999f3d566e52a3b4daa644f","dnb":"119856379","ptbnp":"602168","term":"Valleriola, François, 1504-1580","key":"ValleriolaFrançois1504-1580","viafid":"14878928","merge":{"source":"viaf","id":"048b9e68a999f3d566e52a3b4daa644f","type":"document"},"lc":"n92072378","bnf":"12512071","bav":"adv11312506"} {"version":"2013-07-01T14:07:50Z","_id":"04906f3898b37f72357ed71ad2aff69a","dnb":"100270565","term":"Sanadon, Noe͏̈l Étienne, 1676-1733","key":"SanadonNoe͏̈lÉtienne1676-1733","viafid":"14901377","merge":{"source":"viaf","id":"04906f3898b37f72357ed71ad2aff69a","type":"document"},"bnf":"12927451"} {"version":"2013-07-01T14:07:50Z","_id":"049ecd672af06be8d79ecf89963a5381","dnb":"100223133","ptbnp":"1386078","term":"Nicolas, Pierre-François, 1743-1816","key":"NicolasPierre-François1743-1816","viafid":"49566096","merge":{"source":"viaf","id":"049ecd672af06be8d79ecf89963a5381","type":"document"},"lc":"n88038862","bav":"adv11042105"} {"version":"2013-07-01T14:07:50Z","_id":"04a63a1f25d0fc9cae5d6f54e41e8195","dnb":"143943103","term":"Kampás, N. G., 1857-1932","key":"KampásNG1857-1932","viafid":"7639616","merge":{"source":"viaf","id":"04a63a1f25d0fc9cae5d6f54e41e8195","type":"document"},"lc":"n2002046131","bnf":"14612965"} {"version":"2013-07-01T14:07:50Z","_id":"04a878079e17522e532dc2144d4d2c59","dnb":"118512404","nla":"000035019885","term":"Bögli, Alfred 1912-1998","key":"BögliAlfred1912-1998","viafid":"74643858","merge":{"source":"viaf","id":"04a878079e17522e532dc2144d4d2c59","type":"document"},"lc":"n80060572","bav":"adv10003538"} {"nkc":"ola2002152506","selibr":"177224","version":"2013-07-01T14:07:50Z","_id":"04acfe101d9233c64beae5b655320ce9","bne":"xx1141963","dnb":"118746014","nla":"000035439635","ptbnp":"1199281","term":"Belov, Vasilij Ivanovič, 1932-2012","key":"BelovVasilijIvanovič1932-2012","viafid":"109315473","nlicyr":"000148162","merge":{"source":"viaf","id":"04acfe101d9233c64beae5b655320ce9","type":"document"},"lc":"n83223060","bnf":"11999476"} {"nkc":"jx20110128004","version":"2013-07-01T14:07:50Z","_id":"04ad72fe439952abdc8313be37e7fcb1","dnb":"116776951","term":"Czermák, Johann Nepomuk 1828-1873","key":"CzermákJohannNepomuk1828-1873","viafid":"54908970","nlilat":"000541882","merge":{"source":"viaf","id":"04ad72fe439952abdc8313be37e7fcb1","type":"document"},"lc":"nr2001006548"} {"nkc":"xx0019155","version":"2013-07-01T14:07:50Z","_id":"04af27814280743e92f89aeaa1cbc08a","dnb":"104747242","term":"Belych, Grigorij Georgievič, 1906-1938","key":"BelychGrigorijGeorgievič1906-1938","viafid":"165762447","nlicyr":"000251614","merge":{"source":"viaf","id":"04af27814280743e92f89aeaa1cbc08a","type":"document"},"lc":"n97030089","bnf":"12171182"} {"version":"2013-07-01T14:07:50Z","_id":"04b126487a1fb32c45979480be877664","bne":"xx1254712","dnb":"118968572","term":"Duller, Éduard 1809-1853","key":"DullerÉduard1809-1853","viafid":"15569672","merge":{"source":"viaf","id":"04b126487a1fb32c45979480be877664","type":"document"},"lc":"n84147603"} {"version":"2013-07-01T14:07:50Z","_id":"04c42fa5aa718c75d0b58bc29012f229","dnb":"159200881","ptbnp":"265529","term":"Salvá y Pérez, Vicente, 1780-1849","key":"SalváyPérezVicente1780-1849","viafid":"100211129","nlilat":"000457441","merge":{"source":"viaf","id":"04c42fa5aa718c75d0b58bc29012f229","type":"document"},"lc":"n83219748","bav":"adv11208671"} {"nkc":"nlk20020118625","version":"2013-07-01T14:07:50Z","_id":"04c6352b06d0feb132cedd13fe3db9d2","dnb":"124682057","term":"Römpp, Hermann, 1901-1964","key":"RömppHermann1901-1964","viafid":"28010996","nlilat":"000458924","merge":{"source":"viaf","id":"04c6352b06d0feb132cedd13fe3db9d2","type":"document"},"lc":"n83828742"} {"version":"2013-07-01T14:07:50Z","_id":"04cd7fd605be05142be248a78266e7ca","dnb":"117611484","term":"Müller, Theodor, 1816-1881","key":"MüllerTheodor1816-1881","viafid":"67247507","nlilat":"000097311","merge":{"source":"viaf","id":"04cd7fd605be05142be248a78266e7ca","type":"document"},"lc":"nr95008187"} {"nkc":"jk01050063","version":"2013-07-01T14:07:50Z","_id":"04e18be2ba3bd4eae200880a29df776f","bne":"xx886025","dnb":"123147646","term":"Chalupecký, Jindřich, 1910-1990","key":"ChalupeckýJindřich1910-1990","nlilat":"000030540","viafid":"14798286","merge":{"source":"viaf","id":"04e18be2ba3bd4eae200880a29df776f","type":"document"},"lc":"n85021133","bnf":"12095419"} {"version":"2013-07-01T14:07:50Z","_id":"04e1f1b48e7a2f70daf85c330545ce0b","dnb":"118941720","term":"De Camelat, Miquèu, 1871-1962","key":"DeCamelatMiquèu1871-1962","viafid":"36915704","merge":{"source":"viaf","id":"04e1f1b48e7a2f70daf85c330545ce0b","type":"document"},"lc":"n88647054","bnf":"11894928"} {"version":"2013-07-01T14:07:50Z","_id":"04e33195d548578281576989a2beca53","dnb":"143676598","term":"Goudriaan, Adrianus François 1768-1829","key":"GoudriaanAdrianusFrançois1768-1829","viafid":"96826309","merge":{"source":"viaf","id":"04e33195d548578281576989a2beca53","type":"document"},"lc":"no2009122052"} {"nkc":"jn20000603839","_id":"04ecfc9e517cf9be9404fe3b22e1e7e3","egaxa":"vtls000991871","bne":"xx1108074","dnb":"118575589","nla":"000035317436","ptbnp":"93770","term":"Lyotard, Jean-François, 1924-1998","key":"LyotardJean-François1924-1998","viafid":"108393539","merge":{"source":"viaf","id":"04ecfc9e517cf9be9404fe3b22e1e7e3","type":"document"},"jpg":"500222976","bnf":"11913700","selibr":"250200","version":"2013-07-01T14:07:50Z","nlilat":"000086756","lc":"n50037407","bav":"adv11113518"} {"nkc":"js20020805188","version":"2013-07-01T14:07:50Z","_id":"04f124d14ddb7c102d2e1ecf43374ba4","dnb":"119450305","term":"Jurčič, Josip, 1844-1881","key":"JurčičJosip1844-1881","viafid":"54483391","merge":{"source":"viaf","id":"04f124d14ddb7c102d2e1ecf43374ba4","type":"document"},"lc":"n84065262","bnf":"15868340"} {"nkc":"xx0004995","selibr":"61990","version":"2013-07-01T14:07:50Z","_id":"04f7b06776c01709ec4b03011a72d1e3","dnb":"119023970","nla":"000035828147","ptbnp":"1020891","term":"Huc, Évariste Régis, 1813-1860","key":"HucÉvaristeRégis1813-1860","nlilat":"000441520","viafid":"36919766","merge":{"source":"viaf","id":"04f7b06776c01709ec4b03011a72d1e3","type":"document"},"lc":"n81149691","bnf":"11907907","bav":"adv10230780"} {"viafid":"174643273","merge":{"source":"viaf","id":"04f87cd63d73d2c1a2111deca3c181f1","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"04f87cd63d73d2c1a2111deca3c181f1","lc":"n88231137","term":"Molloy, Sylvia, 1938- | En breve cárcel. English","key":"MolloySylvia1938-|EnbrevecárcelEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"05087616e17f9e97be581e129aa94197","dnb":"131656783","ptbnp":"147714","term":"Hoüard, David, 1725-1802","key":"HoüardDavid1725-1802","viafid":"17349649","merge":{"source":"viaf","id":"05087616e17f9e97be581e129aa94197","type":"document"},"lc":"no90005628","bnf":"12815184"} {"nliara":"000159322","version":"2013-07-01T14:07:50Z","_id":"050a9b1b7540d2dee4d68c3a04538905","term":"Ibn Ṭawq, Aḥmad ibn Muḥammad, 1430 or 31-1509 or 10","key":"IbnṬawqAḥmadibnMuḥammad1430or31-1509or10","viafid":"88074238","merge":{"source":"viaf","id":"050a9b1b7540d2dee4d68c3a04538905","type":"document"},"lc":"nr2001023499","bnf":"13736638"} {"nkc":"jk01030174","version":"2013-07-01T14:07:50Z","_id":"050f2f336a035b587c45e6b6620f66c2","dnb":"118528378","nla":"000035766995","term":"Dvořák, Max, 1874-1921","key":"DvořákMax1874-1921","viafid":"69052687","nlilat":"000435434","merge":{"source":"viaf","id":"050f2f336a035b587c45e6b6620f66c2","type":"document"},"jpg":"500207175","lc":"n81032850","bnf":"12678464","bav":"adv10179764"} {"nkc":"jn20000603575","selibr":"357043","version":"2013-07-01T14:07:50Z","_id":"0517d5a829f7dbf5ead1b155d2065caa","dnb":"118567306","term":"Kručenych, Aleksej, 1886-1968","key":"KručenychAleksej1886-1968","nlicyr":"000152535","viafid":"71393129","merge":{"source":"viaf","id":"0517d5a829f7dbf5ead1b155d2065caa","type":"document"},"jpg":"500202621","lc":"n84047047","bnf":"11910134"} {"version":"2013-07-01T14:07:50Z","_id":"052ad322c9255c4a341361b79afced42","bne":"xx924064","dnb":"118695010","nla":"000035125741","term":"Giménez Caballero, Ernesto 1899-1988","key":"GiménezCaballeroErnesto1899-1988","viafid":"113723156","merge":{"source":"viaf","id":"052ad322c9255c4a341361b79afced42","type":"document"},"lc":"n80010160","bnf":"12028378","bav":"adv10249073"} {"selibr":"288806","version":"2013-07-01T14:07:50Z","_id":"052b92513e1a3533501e26a0dbdea33e","dnb":"155208411","term":"Söderberg, Tom, 1900-1991","key":"SöderbergTom1900-1991","viafid":"119429326","merge":{"source":"viaf","id":"052b92513e1a3533501e26a0dbdea33e","type":"document"},"lc":"n79043740","bnf":"12164745"} {"version":"2013-07-01T14:07:50Z","_id":"053881bcf789fd21ae61b77acbb79b14","dnb":"117425478","nla":"000035077854","ptbnp":"275324","term":"Troyon, Frédéric, 1815?-1866?","key":"TroyonFrédéric1815?-1866?","viafid":"13084544","merge":{"source":"viaf","id":"053881bcf789fd21ae61b77acbb79b14","type":"document"},"lc":"nb2003070432","bav":"adv11200039"} {"version":"2013-07-01T14:07:50Z","_id":"0539855ff894e2349d851735a5371a4c","nla":"000035483161","term":"Rüter, Adolf Johann Cord, 1907-1965","key":"RüterAdolfJohannCord1907-1965","viafid":"89435404","merge":{"source":"viaf","id":"0539855ff894e2349d851735a5371a4c","type":"document"},"lc":"no2010004672","bav":"adv11189653"} {"version":"2013-07-01T14:07:50Z","_id":"053c90b753c5da9045e9ad53a5b039b9","dnb":"11752350x","term":"Hervé, Georges, 1855-1932","key":"HervéGeorges1855-1932","viafid":"62328807","merge":{"source":"viaf","id":"053c90b753c5da9045e9ad53a5b039b9","type":"document"},"lc":"n2001061601","bnf":"10602999"} {"nkc":"jk01121433","version":"2013-07-01T14:07:50Z","_id":"0545cffa55ff49d2ecfc8b09554afacd","dnb":"170427684","term":"Strmiska, Zdeněk, 1925-2009","key":"StrmiskaZdeněk1925-2009","viafid":"109307221","merge":{"source":"viaf","id":"0545cffa55ff49d2ecfc8b09554afacd","type":"document"},"lc":"n84128652","bnf":"12014522"} {"selibr":"331820","version":"2013-07-01T14:07:50Z","_id":"0557fcc095ac131dfd8a7a3b25362260","dnb":"124679935","term":"Palmén, Johan Philip, 1811-1896","key":"PalménJohanPhilip1811-1896","viafid":"42777810","merge":{"source":"viaf","id":"0557fcc095ac131dfd8a7a3b25362260","type":"document"}} {"version":"2013-07-01T14:07:50Z","_id":"0562fe0f7b923398c7e970c450c014b9","dnb":"100763146","term":"Pâris-Duverney, Joseph, 1684-1770","key":"Pâris-DuverneyJoseph1684-1770","viafid":"49577307","merge":{"source":"viaf","id":"0562fe0f7b923398c7e970c450c014b9","type":"document"},"lc":"n86113539"} {"viafid":"106940966","nkc":"kv2010540375","merge":{"source":"viaf","id":"056c37653c4613fd4c15731200ec47bc","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"056c37653c4613fd4c15731200ec47bc","term":"Piéry, Marius, 1873-1957","key":"PiéryMarius1873-1957"} {"version":"2013-07-01T14:07:50Z","_id":"056f946753c3750ce74f67c785e292cf","dnb":"100112366","term":"Ducamp, Théodore Joseph, 1793-1823","key":"DucampThéodoreJoseph1793-1823","viafid":"51543396","merge":{"source":"viaf","id":"056f946753c3750ce74f67c785e292cf","type":"document"},"lc":"nr91009615","bav":"adv10010403"} {"nkc":"mzk2009532667","version":"2013-07-01T14:07:50Z","_id":"056fe57dfe05468bd2ae1359ac28050c","dnb":"104241616","term":"Rouillé, Pierre-Julien, 1681-1740","key":"RouilléPierre-Julien1681-1740","viafid":"44736092","merge":{"source":"viaf","id":"056fe57dfe05468bd2ae1359ac28050c","type":"document"}} {"selibr":"342338","version":"2013-07-01T14:07:50Z","_id":"05758033ac5d994eded3de27f758483f","dnb":"120325098","term":"Kuripešić, Benedikt, fl. 1530","key":"KuripešićBenediktfl1530","viafid":"121829365","merge":{"source":"viaf","id":"05758033ac5d994eded3de27f758483f","type":"document"},"lc":"n86853205","bnf":"12686571"} {"nkc":"jx20090915002","version":"2013-07-01T14:07:50Z","_id":"057c9fe9600afaa6df596f9be1493d1b","dnb":"122403908","term":"Bucharaev, Ravilʹ Raisovič, 1951-, Vollstaendiger Name","key":"BucharaevRavilʹRaisovič1951-VollstaendigerName","viafid":"116936895","merge":{"source":"viaf","id":"057c9fe9600afaa6df596f9be1493d1b","type":"document"},"lc":"n79027451","bnf":"14416145"} {"viafid":"273620825","merge":{"source":"viaf","id":"057fa630e1e00e7d05294a94b521bb96","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"057fa630e1e00e7d05294a94b521bb96","nla":"000035556824","term":"Béraud, Antony, 1794?-1860","key":"BéraudAntony1794?-1860"} {"nkc":"jo20000082634","selibr":"232832","version":"2013-07-01T14:07:50Z","_id":"0581ad865d919b5884c1e358f3e11b2c","bne":"xx835835","dnb":"118508873","nla":"000035156402","ptbnp":"45871","term":"Benedetti, Mário, 1920-2009","key":"BenedettiMário1920-2009","viafid":"56585930","nlilat":"000018413","merge":{"source":"viaf","id":"0581ad865d919b5884c1e358f3e11b2c","type":"document"},"lc":"n50007687","bnf":"11891178"} {"selibr":"253593","version":"2013-07-01T14:07:50Z","_id":"058c19623a8f0ecdb6615b89db43a50c","nla":"000036462753","term":"Bøyesen, Lars Rostrup, 1915-1996","key":"BøyesenLarsRostrup1915-1996","viafid":"77681165","merge":{"source":"viaf","id":"058c19623a8f0ecdb6615b89db43a50c","type":"document"},"lc":"n83000840"} {"nkc":"xx0013446","selibr":"273488","version":"2013-07-01T14:07:50Z","_id":"058ddc900602a804721042951a576d3e","dnb":"117611425","nla":"000035287723","term":"Müller, Sophus, 1846-1934","key":"MüllerSophus1846-1934","viafid":"74634692","merge":{"source":"viaf","id":"058ddc900602a804721042951a576d3e","type":"document"},"lc":"n85126271"} {"version":"2013-07-01T14:07:50Z","_id":"058f7f33edeeec529a7e56b98852efad","dnb":"107367459","term":"Schazmann, Paul-Émile 1902-1978","key":"SchazmannPaul-Émile1902-1978","viafid":"25116970","merge":{"source":"viaf","id":"058f7f33edeeec529a7e56b98852efad","type":"document"},"lc":"n85804980","bnf":"13007890"} {"nkc":"jo2003192727","version":"2013-07-01T14:07:50Z","_id":"0590e1ff5d2e281aecdbe39a91978b21","dnb":"124653618","ptbnp":"109210","term":"Marillier, Clément-Pierre, 1740-1808","key":"MarillierClément-Pierre1740-1808","viafid":"54151134","nlilat":"000479801","merge":{"source":"viaf","id":"0590e1ff5d2e281aecdbe39a91978b21","type":"document"},"jpg":"500025546","lc":"n86024578","bnf":"11914583"} {"nkc":"js2005303599","version":"2013-07-01T14:07:50Z","_id":"0598cc11455dca3af08bfc49b4d5c06b","dnb":"156295261","term":"Dobrovol'skij, Vladimir Anatol'jevič, 1918-2003","key":"Dobrovol'skijVladimirAnatol'jevič1918-2003","viafid":"84243925","merge":{"source":"viaf","id":"0598cc11455dca3af08bfc49b4d5c06b","type":"document"}} {"nkc":"jo20000082500","selibr":"195080","version":"2013-07-01T14:07:50Z","_id":"059d8c7f7f68e2142a01ff293c08e86d","dnb":"118785281","nla":"000035368864","term":"Münsterberg, Hugo, 1863-1916","key":"MünsterbergHugo1863-1916","nlicyr":"000154128","nlilat":"000097394","viafid":"12370549","merge":{"source":"viaf","id":"059d8c7f7f68e2142a01ff293c08e86d","type":"document"},"lc":"n78094053","bnf":"12283551","bav":"adv10974502"} {"nkc":"xx0153384","version":"2013-07-01T14:07:50Z","_id":"05a1ad199447e7c1e449462c1579d559","bne":"xx937482","dnb":"116543434","ptbnp":"94158","term":"Clément, Félix, 1822-1885","key":"ClémentFélix1822-1885","viafid":"44344471","nlilat":"000032468","merge":{"source":"viaf","id":"05a1ad199447e7c1e449462c1579d559","type":"document"},"lc":"nr97044067","bnf":"12194364","bav":"adv10045031"} {"version":"2013-07-01T14:07:50Z","_id":"05c24a54ad3bb52213c5eeeb9ced6576","dnb":"117610631","term":"Jacques, Amédée Florent (1813-1865)","key":"JacquesAmédéeFlorent(1813-1865)","viafid":"51736445","merge":{"source":"viaf","id":"05c24a54ad3bb52213c5eeeb9ced6576","type":"document"},"bnf":"12198402"} {"version":"2013-07-01T14:07:50Z","_id":"05c35b9bcdfc2047fcd6f18f9b3a8cd9","dnb":"124706576","nla":"000035644009","term":"Rodokanakēs, Platōn, 1883-1919","key":"RodokanakēsPlatōn1883-1919","viafid":"2645998","merge":{"source":"viaf","id":"05c35b9bcdfc2047fcd6f18f9b3a8cd9","type":"document"},"lc":"n88039792","bnf":"13614255"} {"nkc":"mzk2010598102","version":"2013-07-01T14:07:50Z","_id":"05c37a440591de5d1e3f8c2e8d0457dc","dnb":"122173376","term":"Svešnikov, Aleksandr Vasil'evič, 1890-1980","key":"SvešnikovAleksandrVasil'evič1890-1980","viafid":"3347046","merge":{"source":"viaf","id":"05c37a440591de5d1e3f8c2e8d0457dc","type":"document"},"lc":"no92008797","bnf":"13900202"} {"selibr":"208389","version":"2013-07-01T14:07:50Z","_id":"05c3fc9fd5d3b3e5fd907a5acfd90943","bne":"xx1029941","dnb":"119006944","ptbnp":"220895","term":"Silvestre, Israël, 1621-1691","key":"SilvestreIsraël1621-1691","viafid":"66475460","merge":{"source":"viaf","id":"05c3fc9fd5d3b3e5fd907a5acfd90943","type":"document"},"jpg":"500021067","lc":"n80122940","bnf":"11944884","bav":"adv10006903"} {"version":"2013-07-01T14:07:50Z","_id":"05c72c00a134d1495b66eee4afc15a34","dnb":"142840548","term":"François-Franck, Charles-Émile, 1849-1921","key":"François-FranckCharles-Émile1849-1921","viafid":"100306331","merge":{"source":"viaf","id":"05c72c00a134d1495b66eee4afc15a34","type":"document"},"lc":"no2010149793","bnf":"13417947"} {"version":"2013-07-01T14:07:50Z","_id":"05c959e54bbdf650f997c902b0846792","dnb":"119345250","term":"İnönü, Erdal 1926-2007","key":"İnönüErdal1926-2007","viafid":"22949166","merge":{"source":"viaf","id":"05c959e54bbdf650f997c902b0846792","type":"document"},"lc":"n83827751","bnf":"16254580"} {"viafid":"213994337","merge":{"source":"viaf","id":"05ce66441eb5a08942c65043f203fae3","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"05ce66441eb5a08942c65043f203fae3","dnb":"942203305","term":"Dewarrat, Marie-Claire 1949- | Carême","key":"DewarratMarie-Claire1949-|Carême"} {"nkc":"xx0103929","version":"2013-07-01T14:07:50Z","_id":"05d0e7932b99f33bbc0513f988a9f7b2","dnb":"116663170","term":"Lampe, Félix, 1868-1946","key":"LampeFélix1868-1946","viafid":"89210033","nlilat":"000504783","merge":{"source":"viaf","id":"05d0e7932b99f33bbc0513f988a9f7b2","type":"document"},"lc":"n91003138"} {"version":"2013-07-01T14:07:50Z","_id":"05d16511c8e130f180b3b0565a2741cf","dnb":"13161598x","nla":"000036554819","term":"Bouvier, Eugène-Louis (1856-1944)","key":"BouvierEugène-Louis(1856-1944)","viafid":"2534337","nlilat":"000440347","merge":{"source":"viaf","id":"05d16511c8e130f180b3b0565a2741cf","type":"document"},"lc":"n81127111","bnf":"12284756"} {"version":"2013-07-01T14:07:50Z","_id":"05d941f1d3d61dfe8de9a0dccfb3cbbb","dnb":"104306335","term":"Sarlandière, Jean-Baptiste, 1787-1838","key":"SarlandièreJean-Baptiste1787-1838","viafid":"74286485","merge":{"source":"viaf","id":"05d941f1d3d61dfe8de9a0dccfb3cbbb","type":"document"},"lc":"nr98019480","bnf":"16567409","bav":"adv11167022"} {"version":"2013-07-01T14:07:50Z","_id":"05dfcb4aa84b067168e5dc11659455b6","dnb":"100495311","ptbnp":"169769","term":"Hamonière, G., b. 1789","key":"HamonièreGb1789","nlilat":"000530739","viafid":"88849653","merge":{"source":"viaf","id":"05dfcb4aa84b067168e5dc11659455b6","type":"document"},"lc":"no97012776","bnf":"13479011","bav":"adv10146162"} {"nkc":"jn19990003087","selibr":"59004","version":"2013-07-01T14:07:50Z","_id":"05e842c4e471293dcc10cc8a81943e5d","egaxa":"vtls001285557","bne":"xx1052465","dnb":"118919660","nla":"000035162657","ptbnp":"55875","term":"Halévy, Ludovic, 1834-1908","key":"HalévyLudovic1834-1908","viafid":"64006915","nlilat":"000059373","merge":{"source":"viaf","id":"05e842c4e471293dcc10cc8a81943e5d","type":"document"},"lc":"n50017872","bnf":"11906722","bav":"adv10075439"} {"version":"2013-07-01T14:07:50Z","_id":"05ed3c129ca6b131fa5362410068cb0a","dnb":"121788210","ptbnp":"125001","term":"Pommier, Amédée, 1804-1877","key":"PommierAmédée1804-1877","viafid":"49359340","merge":{"source":"viaf","id":"05ed3c129ca6b131fa5362410068cb0a","type":"document"},"lc":"nr2005030141","bnf":"13055646"} {"version":"2013-07-01T14:07:50Z","_id":"05ede19b60a708516bda152edfc27d5a","dnb":"101015526","term":"Sudre, Théodore, 1718-1795","key":"SudreThéodore1718-1795","viafid":"29309422","merge":{"source":"viaf","id":"05ede19b60a708516bda152edfc27d5a","type":"document"},"lc":"no2007056275"} {"nkc":"jn20000700787","selibr":"207703","version":"2013-07-01T14:07:50Z","_id":"05f10c464f25789b07e6b4a93c357b11","bne":"xx887177","dnb":"118811215","ptbnp":"35297","term":"Jabès, Edmond, 1912-1991","key":"JabèsEdmond1912-1991","nlilat":"000428803","viafid":"76317331","merge":{"source":"viaf","id":"05f10c464f25789b07e6b4a93c357b11","type":"document"},"lc":"n80064201","bnf":"11908353"} {"nkc":"jx20100106001","version":"2013-07-01T14:07:50Z","_id":"05f8570478b25de8cc8d951afbe0fede","bne":"xx1008983","dnb":"119262304","nla":"000036569745","term":"Barragán, Luis, 1902-1988","key":"BarragánLuis1902-1988","viafid":"22947293","merge":{"source":"viaf","id":"05f8570478b25de8cc8d951afbe0fede","type":"document"},"jpg":"500009714","lc":"n82144420","bav":"adv11637906"} {"viafid":"22568156","merge":{"source":"viaf","id":"05ff888ce9fe83516be75d0a30da480c","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"05ff888ce9fe83516be75d0a30da480c","dnb":"104087897","term":"Enschedé, Joannes 1708-1780","key":"EnschedéJoannes1708-1780"} {"version":"2013-07-01T14:07:50Z","_id":"0603a772eaf1607a68f4e71d83b25e7a","dnb":"101699425","term":"Haigneré, Daniel, 1824-1893","key":"HaigneréDaniel1824-1893","viafid":"100287388","nlilat":"000483090","merge":{"source":"viaf","id":"0603a772eaf1607a68f4e71d83b25e7a","type":"document"},"lc":"n86142430","bnf":"12327707","bav":"adv10159068"} {"nliara":"000159542","selibr":"191232","version":"2013-07-01T14:07:50Z","_id":"060d2fab1d446583d38ec2cca02a5121","egaxa":"vtls001520919","dnb":"118885855","nla":"000036506257","term":"Ibn Ḥanbal, Aḥmad ibn Muḥammad, 780-855","key":"IbnḤanbalAḥmadibnMuḥammad780-855","nlilat":"000066400","viafid":"90072121","merge":{"source":"viaf","id":"060d2fab1d446583d38ec2cca02a5121","type":"document"},"lc":"n82120532","bnf":"14560951","bav":"adv12057691"} {"viafid":"184363174","merge":{"source":"viaf","id":"062d341d00721973497081061b2d717f","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"062d341d00721973497081061b2d717f","lc":"n92118505","term":"Becker, Jörg, 1946- | Informationstechnologie in der Dritten Welt. Spanish","key":"BeckerJörg1946-|InformationstechnologieinderDrittenWeltSpanish"} {"nkc":"jn20011018021","version":"2013-07-01T14:07:50Z","_id":"0639300b20d95253d5fcccb6e86b451d","dnb":"117616443","nla":"000035020398","term":"Börnstein, R., 1852-1913","key":"BörnsteinR1852-1913","viafid":"45084919","nlilat":"000439755","merge":{"source":"viaf","id":"0639300b20d95253d5fcccb6e86b451d","type":"document"},"lc":"n81114103"} {"version":"2013-07-01T14:07:50Z","_id":"06445f6f14737794c92dfdecaca526a5","dnb":"100466613","term":"Du Wés, Giles, d. 1535","key":"DuWésGilesd1535","viafid":"56958313","nlilat":"000526977","merge":{"source":"viaf","id":"06445f6f14737794c92dfdecaca526a5","type":"document"},"lc":"nr93003317"} {"nkc":"nlk20010095088","version":"2013-07-01T14:07:50Z","_id":"064a3bcdcd373f3d69a3d7c11299ad01","bne":"xx1509955","dnb":"172865581","swnl":"vtls001845815","ptbnp":"1170490","term":"Burggraeve, Adolphe 1806-1902 médecin","key":"BurggraeveAdolphe1806-1902médecin","nlilat":"000487154","viafid":"22356578","merge":{"source":"viaf","id":"064a3bcdcd373f3d69a3d7c11299ad01","type":"document"},"lc":"n87143921","bnf":"14411246","bav":"adv10039822"} {"nkc":"jn20000601841","selibr":"188306","version":"2013-07-01T14:07:50Z","_id":"064c8f328a561cf6b785d5fe0075f34b","bne":"xx949471","dnb":"118639250","nla":"000035494819","ptbnp":"1184722","term":"Gladkov, Fedor Vasil'evič, 1883-1958","key":"GladkovFedorVasil'evič1883-1958","viafid":"14808548","nlilat":"000053687","nlicyr":"000149906","merge":{"source":"viaf","id":"064c8f328a561cf6b785d5fe0075f34b","type":"document"},"lc":"n83033940","bnf":"12153434"} {"version":"2013-07-01T14:07:50Z","_id":"064fcdb7d1de507dd756a9557de520c0","dnb":"104359129","term":"Benoît, André, 1919-1999","key":"BenoîtAndré1919-1999","viafid":"91254540","nlilat":"000275776","merge":{"source":"viaf","id":"064fcdb7d1de507dd756a9557de520c0","type":"document"},"lc":"n87814894","bnf":"12039796","bav":"adv11363714"} {"nkc":"jn20030707002","selibr":"178463","version":"2013-07-01T14:07:50Z","_id":"06591d91c150c92af9835cf50d2c62fb","dnb":"121628965","term":"Bjurström, Carl-Gustaf (1919-2001)","key":"BjurströmCarl-Gustaf(1919-2001)","viafid":"111662582","merge":{"source":"viaf","id":"06591d91c150c92af9835cf50d2c62fb","type":"document"},"lc":"n86048828","bnf":"12124245"} {"version":"2013-07-01T14:07:50Z","_id":"065c50ea12cb2d80a999478d239a9ab8","dnb":"174299559","term":"Bellicard, Jérôme-Charles, 1726-1786","key":"BellicardJérôme-Charles1726-1786","viafid":"19795286","merge":{"source":"viaf","id":"065c50ea12cb2d80a999478d239a9ab8","type":"document"},"jpg":"500056684","lc":"nr90023327","bnf":"12563614","bav":"adv10231647"} {"version":"2013-07-01T14:07:50Z","_id":"066563a6e5eed341f77180a4a21741f9","dnb":"12108972x","term":"Vendôme, César de Bourbon, 1594-1665, duc de","key":"VendômeCésardeBourbon1594-1665ducde","viafid":"51834768","merge":{"source":"viaf","id":"066563a6e5eed341f77180a4a21741f9","type":"document"},"lc":"n87921604","bnf":"13320597","bav":"adv12218451"} {"viafid":"197153509","merge":{"source":"viaf","id":"0669f8ea262f3b8052985c7bc2e67ec3","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0669f8ea262f3b8052985c7bc2e67ec3","bnf":"10848291","term":"Condé, Bruno, 1920-2004","key":"CondéBruno1920-2004"} {"version":"2013-07-01T14:07:50Z","_id":"066e22c971053b945164b1c3c0211929","dnb":"131424092","term":"Cadier, Léon, 1862-1889","key":"CadierLéon1862-1889","viafid":"17341513","nlilat":"000278813","merge":{"source":"viaf","id":"066e22c971053b945164b1c3c0211929","type":"document"},"lc":"n81098089","bnf":"12594274","bav":"adv10001382"} {"viafid":"182579379","merge":{"source":"viaf","id":"066fa0f96497ef25024fb2ce97b50fdf","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"066fa0f96497ef25024fb2ce97b50fdf","lc":"no2011145982","term":"Popescu, Dumitru Radu, 1935- | Plays (Scrisul Românesc (Firm))","key":"PopescuDumitruRadu1935-|Plays(ScrisulRomânesc(Firm))"} {"viafid":"175860653","merge":{"source":"viaf","id":"0671438f6a218e762d6c1af41e376cd8","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0671438f6a218e762d6c1af41e376cd8","lc":"n90675555","term":"Ríos Ruiz, Manuel, 1934- | Poems. Selections","key":"RíosRuizManuel1934-|PoemsSelections"} {"version":"2013-07-01T14:07:50Z","_id":"0679f0944f5a75db66565e7cbd4bb36e","dnb":"119194449","term":"Slüter, Joachim 1490?-1532","key":"SlüterJoachim1490?-1532","viafid":"73941663","merge":{"source":"viaf","id":"0679f0944f5a75db66565e7cbd4bb36e","type":"document"},"lc":"nr88003093","bnf":"12417587"} {"version":"2013-07-01T14:07:50Z","_id":"067cc02a3ea7a2aeb2076b9146b12c73","dnb":"138434794","term":"Tzitzéica, Georges, 1873-1939","key":"TzitzéicaGeorges1873-1939","viafid":"22285232","merge":{"source":"viaf","id":"067cc02a3ea7a2aeb2076b9146b12c73","type":"document"},"bnf":"13206058"} {"nkc":"jn20000600676","version":"2013-07-01T14:07:50Z","_id":"067f8a57622cb14e2b37f6879ec652f1","dnb":"118928139","nla":"000036240777","term":"Bažov, Pavel Petrovič, 1879-1950","key":"BažovPavelPetrovič1879-1950","viafid":"61747706","merge":{"source":"viaf","id":"067f8a57622cb14e2b37f6879ec652f1","type":"document"},"lc":"n82276231","bnf":"12302154"} {"viafid":"100262560","merge":{"source":"viaf","id":"0687cf0da966e787af9a417f771272af","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0687cf0da966e787af9a417f771272af","bnf":"10477669","term":"Marjolin, René, 1812-1895","key":"MarjolinRené1812-1895"} {"version":"2013-07-01T14:07:50Z","_id":"069004114bebe77076f82823a45bc54c","bne":"xx1000933","dnb":"118778072","term":"Krüger, Fritz, b. 1889","key":"KrügerFritzb1889","viafid":"20476475","merge":{"source":"viaf","id":"069004114bebe77076f82823a45bc54c","type":"document"},"jpg":"500348408","lc":"n93098114","bav":"adv10001814"} {"version":"2013-07-01T14:07:50Z","_id":"0690c1862a77f156369675346ef98f96","dnb":"128745398","nla":"000049287147","term":"Mulot, François-Valentin, 1749-1804","key":"MulotFrançois-Valentin1749-1804","viafid":"5041159","nlilat":"000495994","merge":{"source":"viaf","id":"0690c1862a77f156369675346ef98f96","type":"document"},"lc":"n88277093","bnf":"12528830"} {"version":"2013-07-01T14:07:50Z","_id":"0693c5f038b384e677c5e77e154c2530","dnb":"100114245","term":"Dubois, Léon-Jean-Joseph, 1780-1846","key":"DuboisLéon-Jean-Joseph1780-1846","viafid":"14896063","merge":{"source":"viaf","id":"0693c5f038b384e677c5e77e154c2530","type":"document"},"bnf":"12718516"} {"nkc":"jx20110607011","version":"2013-07-01T14:07:50Z","_id":"069f1bb9058b863e69f380b2fa393d5e","dnb":"118154346","term":"Müller, Klaus-Jürgen, 1930-2011","key":"MüllerKlaus-Jürgen1930-2011","viafid":"193716647","merge":{"source":"viaf","id":"069f1bb9058b863e69f380b2fa393d5e","type":"document"}} {"nkc":"ola2003198070","version":"2013-07-01T14:07:50Z","_id":"06a8355a8f1d760ee3d0eef8733a5c81","dnb":"120151804","term":"Ważyk, Adam, 1905-1982","key":"WażykAdam1905-1982","viafid":"54162839","nlilat":"000452096","merge":{"source":"viaf","id":"06a8355a8f1d760ee3d0eef8733a5c81","type":"document"},"lc":"n83019835","bnf":"12029894"} {"version":"2013-07-01T14:07:50Z","_id":"06af10eff23a8b0676a64a7599915cc8","dnb":"171979176","term":"Béraud, Paul-Émilien, 1751-1836","key":"BéraudPaul-Émilien1751-1836","viafid":"69027028","merge":{"source":"viaf","id":"06af10eff23a8b0676a64a7599915cc8","type":"document"},"lc":"n84001362","bnf":"12459996"} {"nkc":"xx0097292","version":"2013-07-01T14:07:50Z","_id":"06b41cdb86d2d8d686541df0311b827b","dnb":"117186058","term":"Muñoz, Antonio, 1884-1960","key":"MuñozAntonio1884-1960","nlilat":"000469506","viafid":"140062","merge":{"source":"viaf","id":"06b41cdb86d2d8d686541df0311b827b","type":"document"},"jpg":"500061003","lc":"n85101793","bnf":"12898573","bav":"adv10191773"} {"version":"2013-07-01T14:07:50Z","_id":"06b6e21b0c20cc0e2f9150570cf73ce2","dnb":"119421607","nla":"000036500020","term":"De Maré, Eric Samuel (1910-2002)","key":"DeMaréEricSamuel(1910-2002)","nlilat":"000037760","viafid":"97764159","merge":{"source":"viaf","id":"06b6e21b0c20cc0e2f9150570cf73ce2","type":"document"},"jpg":"500226038","lc":"n50040408","bnf":"12762896"} {"nkc":"jk01042148","version":"2013-07-01T14:07:50Z","_id":"06be3bc85bb78e50239873e37aae4573","dnb":"102367817","term":"Horálek, Karel, 1908-1992","key":"HorálekKarel1908-1992","viafid":"17236384","merge":{"source":"viaf","id":"06be3bc85bb78e50239873e37aae4573","type":"document"},"lc":"n80138924","bnf":"12023715"} {"nkc":"mzk2010564361","version":"2013-07-01T14:07:50Z","_id":"06c16ad77d3b5db8889a3045f51b7371","dnb":"172988926","ptbnp":"913753","term":"Callet, Jean-François, 1744-1799, Mathématicien","key":"CalletJean-François1744-1799Mathématicien","viafid":"232873357","merge":{"source":"viaf","id":"06c16ad77d3b5db8889a3045f51b7371","type":"document"},"bnf":"10544471"} {"version":"2013-07-01T14:07:50Z","_id":"06c1745c811e98ea73a860675bc41719","nla":"000035602103","term":"André, Michel, 1803-1878","key":"AndréMichel1803-1878","viafid":"55605061","merge":{"source":"viaf","id":"06c1745c811e98ea73a860675bc41719","type":"document"},"lc":"n85305068","bnf":"10721511","bav":"adv10231930"} {"version":"2013-07-01T14:07:50Z","_id":"06c1a0e3f042ce5c336789ac550baf29","dnb":"12297221x","ptbnp":"207043","term":"Pleščeev, Sergej Ivanovič, 1752-1802","key":"PleščeevSergejIvanovič1752-1802","viafid":"67361637","merge":{"source":"viaf","id":"06c1a0e3f042ce5c336789ac550baf29","type":"document"},"lc":"no91027760"} {"version":"2013-07-01T14:07:50Z","_id":"06cf451ff38a7c1653f5a5f3b41265ac","nla":"000036364850","term":"Hoffmann, Gretl, 1925- | Dekorative türen. English & German","key":"HoffmannGretl1925-|DekorativetürenEnglish&German","viafid":"180143985","merge":{"source":"viaf","id":"06cf451ff38a7c1653f5a5f3b41265ac","type":"document"},"lc":"no2011126833"} {"nkc":"jn20000700349","selibr":"229818","version":"2013-07-01T14:07:50Z","_id":"06d413fcbd39fdc70db8e1d3224181af","dnb":"118638300","nla":"000035781201","ptbnp":"38023","term":"Černenko, Konstantin Ustinovič, 1911-1985","key":"ČernenkoKonstantinUstinovič1911-1985","nlicyr":"000158452","viafid":"27077285","merge":{"source":"viaf","id":"06d413fcbd39fdc70db8e1d3224181af","type":"document"},"lc":"n79115293","bnf":"12017771"} {"version":"2013-07-01T14:07:50Z","_id":"06d7102b4e65cffa8be66b8cb182e32d","bne":"xx837149","dnb":"121603830","term":"Fita y Colomé, Fidel, 1835-1918","key":"FitayColoméFidel1835-1918","nlilat":"000550950","viafid":"89018496","merge":{"source":"viaf","id":"06d7102b4e65cffa8be66b8cb182e32d","type":"document"},"lc":"n2005041558","bnf":"13608608","bav":"adv10258860"} {"nkc":"kup19990000064005","version":"2013-07-01T14:07:50Z","_id":"06dd896ca27269ba2ea2f788a41a86d8","bne":"xx916122","dnb":"11885559x","ptbnp":"265163","term":"Mejía Vallejo, Manuel, 1923-1998","key":"MejíaVallejoManuel1923-1998","viafid":"102370369","nlilat":"000431397","merge":{"source":"viaf","id":"06dd896ca27269ba2ea2f788a41a86d8","type":"document"},"lc":"n80122793","bnf":"12052333"} {"nkc":"mzk2006323048","version":"2013-07-01T14:07:50Z","_id":"06e4d60284f5b4c25e5350286f446804","bne":"xx1411114","dnb":"118788035","ptbnp":"57456","term":"Raynouard, François-Just-Marie, 1761-1836","key":"RaynouardFrançois-Just-Marie1761-1836","viafid":"59088344","nlilat":"000452871","merge":{"source":"viaf","id":"06e4d60284f5b4c25e5350286f446804","type":"document"},"lc":"n83041906","bnf":"11921295","bav":"adv11085166"} {"nkc":"jn20000602226","selibr":"237916","version":"2013-07-01T14:07:50Z","_id":"06eba25de6cfa6d132ee4be56fa93d03","dnb":"119559803","nla":"000035846136","term":"Grabarʹ, Igorʹ Ėmmanuilovič, 1871-1960","key":"GrabarʹIgorʹĖmmanuilovič1871-1960","viafid":"106964268","nlicyr":"000150164","merge":{"source":"viaf","id":"06eba25de6cfa6d132ee4be56fa93d03","type":"document"},"jpg":"500030709","lc":"n81118316","bnf":"15052887","bav":"adv10136326"} {"version":"2013-07-01T14:07:50Z","_id":"06f0234e6a391afdc25605df0c29ffc0","dnb":"102079056","term":"Renau d'Eliçagaray, Bernard, 1652-1719","key":"Renaud'EliçagarayBernard1652-1719","viafid":"69078990","merge":{"source":"viaf","id":"06f0234e6a391afdc25605df0c29ffc0","type":"document"},"lc":"nr93033093","bnf":"13475600"} {"nkc":"mzk2003196114","selibr":"359717","version":"2013-07-01T14:07:50Z","_id":"06f5a795af4d5a07f91b01a4030dcf09","dnb":"101290896","nla":"000035030224","ptbnp":"147394","term":"Compayré, Gabriel, 1843-1913","key":"CompayréGabriel1843-1913","nlilat":"000407506","viafid":"22140258","merge":{"source":"viaf","id":"06f5a795af4d5a07f91b01a4030dcf09","type":"document"},"lc":"n50031444","bnf":"11897473"} {"viafid":"176079419","merge":{"source":"viaf","id":"06feace3bae356739005c82dcf5f9169","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"06feace3bae356739005c82dcf5f9169","lc":"no2008139072","term":"Yamada, Shōji, 1963- | Zen to iu na no Nihon Maru. English","key":"YamadaShōji1963-|ZentoiunanoNihonMaruEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"07012c7f391f17eec35571a4a43fdd59","nla":"000035585401","ptbnp":"1016568","term":"Waagé, Frederick Oswin, 1906-1985","key":"WaagéFrederickOswin1906-1985","viafid":"89453146","merge":{"source":"viaf","id":"07012c7f391f17eec35571a4a43fdd59","type":"document"},"lc":"no2010129722","bav":"adv11204416"} {"selibr":"221619","version":"2013-07-01T14:07:50Z","_id":"07061328a26927d12ce58a93b51594b3","dnb":"119076403","term":"Kriland, Gösta, 1917-1989","key":"KrilandGösta1917-1989","viafid":"13109716","merge":{"source":"viaf","id":"07061328a26927d12ce58a93b51594b3","type":"document"},"lc":"nb2003102459"} {"nkc":"jn20010601851","selibr":"210629","version":"2013-07-01T14:07:50Z","_id":"07082f29f457c049509b8838b7f68f19","bne":"xx878894","dnb":"118619799","nla":"000035711762","ptbnp":"29515","term":"Suárez, Francisco, 1548-1617","key":"SuárezFrancisco1548-1617","viafid":"39385631","nlilat":"000128559","merge":{"source":"viaf","id":"07082f29f457c049509b8838b7f68f19","type":"document"},"lc":"n78095702","bnf":"11930010","bav":"adv10259186"} {"viafid":"14203195","merge":{"source":"viaf","id":"070dd09c86c5eebdb440dfb7af250e97","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"070dd09c86c5eebdb440dfb7af250e97","lc":"n2006081406","term":"Teleszky, István, 1836-1899","key":"TeleszkyIstván1836-1899"} {"selibr":"265239","version":"2013-07-01T14:07:50Z","_id":"070e472ad2d8b0b3a20837aa00e01b2f","dnb":"128772530","term":"De Ridder, André (1888-1961)","key":"DeRidderAndré(1888-1961)","viafid":"44443789","merge":{"source":"viaf","id":"070e472ad2d8b0b3a20837aa00e01b2f","type":"document"},"bnf":"13324451"} {"selibr":"181100","version":"2013-07-01T14:07:50Z","_id":"0713c7b3126aedb05de82e427bcced8d","bne":"xx971231","term":"Carlén, Johan Gabriel, 1814-1875","key":"CarlénJohanGabriel1814-1875","viafid":"87975148","merge":{"source":"viaf","id":"0713c7b3126aedb05de82e427bcced8d","type":"document"}} {"selibr":"294047","version":"2013-07-01T14:07:50Z","_id":"07186c4adfce3f2328740f4c397a024e","term":"Cederschiöld, Wilhelm, 1882-1959","key":"CederschiöldWilhelm1882-1959","viafid":"36902558","merge":{"source":"viaf","id":"07186c4adfce3f2328740f4c397a024e","type":"document"},"bav":"adv12068688"} {"nliara":"000158636","selibr":"175993","version":"2013-07-01T14:07:50Z","_id":"072aaa0999f39c62e0edc9339cd9abc5","egaxa":"vtls000878522","nla":"000041505649","term":"Abū al-ʻAtāhiyah, Ismāʻīl ibn al-Qāsim, 747 or 8-826?","key":"Abūal-ʻAtāhiyahIsmāʻīlibnal-Qāsim747or8-826?","viafid":"100164509","nlilat":"000456008","merge":{"source":"viaf","id":"072aaa0999f39c62e0edc9339cd9abc5","type":"document"},"lc":"n83179246","bav":"adv10034420"} {"viafid":"26694402","merge":{"source":"viaf","id":"072ed64c2ae2a2fa5a769e08a759412a","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"072ed64c2ae2a2fa5a769e08a759412a","lc":"no99019211","term":"Ionică, Ion I., 1907-1944","key":"IonicăIonI1907-1944"} {"viafid":"185964337","merge":{"source":"viaf","id":"0731c92cb7083207efa31829349d0c7c","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0731c92cb7083207efa31829349d0c7c","lc":"n91016204","term":"Collado, Faustino, 1954- | Partidismo político dominicano","key":"ColladoFaustino1954-|Partidismopolíticodominicano"} {"version":"2013-07-01T14:07:50Z","_id":"073b299bee6ca03188299d332dcc7609","bne":"xx962422","dnb":"124328563","term":"Richter, Günter, 1931 Mar. 18-","key":"RichterGünter1931Mar18-","viafid":"43548553","merge":{"source":"viaf","id":"073b299bee6ca03188299d332dcc7609","type":"document"},"lc":"n95051309","bnf":"12634957"} {"selibr":"325788","version":"2013-07-01T14:07:50Z","_id":"073b984781b3093bc127f932354405f5","bne":"xx1763249","dnb":"11663426x","term":"Kyriakidēs, Stilpōn Paraskeua, 1887-1964","key":"KyriakidēsStilpōnParaskeua1887-1964","viafid":"69687416","merge":{"source":"viaf","id":"073b984781b3093bc127f932354405f5","type":"document"},"lc":"n86122581","bnf":"12171147","bav":"adv11683886"} {"selibr":"351154","version":"2013-07-01T14:07:50Z","_id":"073c2d618d0ab73d183d88598a8af374","bne":"xx1183065","dnb":"116427310","nla":"000035450353","ptbnp":"169829","term":"Fée, Antoine Laurent Apollinaire, 1789-1874","key":"FéeAntoineLaurentApollinaire1789-1874","nlilat":"000503594","viafid":"49249817","merge":{"source":"viaf","id":"073c2d618d0ab73d183d88598a8af374","type":"document"},"lc":"n90674184","bnf":"12078882"} {"nkc":"jn20030827002","version":"2013-07-01T14:07:50Z","_id":"073c3efb70e7e7730859e80d2ecdda94","bne":"xx1243414","dnb":"101145799","ptbnp":"174311","term":"Champsaur, Félicien, 1859-1934","key":"ChampsaurFélicien1859-1934","viafid":"49253009","nlilat":"000515789","merge":{"source":"viaf","id":"073c3efb70e7e7730859e80d2ecdda94","type":"document"},"lc":"no90020373","bnf":"12094974","bav":"adv12205170"} {"viafid":"186609991","merge":{"source":"viaf","id":"073f9bdbf094631ee4dedddbd13ca64b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"073f9bdbf094631ee4dedddbd13ca64b","lc":"no2011035899","term":"Waldenfels, Bernhard, 1934- | Grundmotive einer Phänomenologie des Fremden. English","key":"WaldenfelsBernhard1934-|GrundmotiveeinerPhänomenologiedesFremdenEnglish"} {"viafid":"181500746","merge":{"source":"viaf","id":"073fa31e89d1c48159a9e1030a866083","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"073fa31e89d1c48159a9e1030a866083","lc":"n88298550","term":"Härtling, Peter, 1933- | Alter John. English","key":"HärtlingPeter1933-|AlterJohnEnglish"} {"nkc":"jn19990007243","selibr":"197612","version":"2013-07-01T14:07:50Z","_id":"074e783c2f5c713b64196686df2b3690","bne":"xx1719678","dnb":"118791540","nla":"000035749002","ptbnp":"56462","term":"Ruiz de Alarcón, Juan, 1580?-1639","key":"RuizdeAlarcónJuan1580?-1639","viafid":"88975006","nlilat":"000406196","merge":{"source":"viaf","id":"074e783c2f5c713b64196686df2b3690","type":"document"},"lc":"n50026232","bnf":"12176085","bav":"adv11144440"} {"nkc":"js2007409741","version":"2013-07-01T14:07:50Z","_id":"075f6a8230cf5195935d9e4e25e0db53","dnb":"133168581","term":"Vlaisavljević, Vlado, 1901-1943","key":"VlaisavljevićVlado1901-1943","viafid":"77496415","merge":{"source":"viaf","id":"075f6a8230cf5195935d9e4e25e0db53","type":"document"},"bnf":"11561803"} {"version":"2013-07-01T14:07:50Z","_id":"07712f3f0168a77c35198ce83c14e963","dnb":"102750998","term":"Tripier, Léon 1842-1891","key":"TripierLéon1842-1891","viafid":"49622265","merge":{"source":"viaf","id":"07712f3f0168a77c35198ce83c14e963","type":"document"},"bnf":"10457047","bav":"adv11323234"} {"version":"2013-07-01T14:07:50Z","_id":"0773d9d3625f21a6e6f54a849cf18fd6","dnb":"172370264","nla":"000049287319","ptbnp":"97142","term":"Sérieys, Antoine, 1755-1829","key":"SérieysAntoine1755-1829","nlilat":"000120450","viafid":"36473672","merge":{"source":"viaf","id":"0773d9d3625f21a6e6f54a849cf18fd6","type":"document"},"lc":"no89010699","bav":"adv12186963"} {"version":"2013-07-01T14:07:50Z","_id":"0776428e7734a400d990b22721d148a8","dnb":"176857249","ptbnp":"414660","term":"Núñez de Villaizán, Juan, 14th cent","key":"NúñezdeVillaizánJuan14thcent","viafid":"79274519","merge":{"source":"viaf","id":"0776428e7734a400d990b22721d148a8","type":"document"},"lc":"no2007130239","bav":"adv10994005"} {"version":"2013-07-01T14:07:50Z","_id":"077eccad165f75a370de8ffbdba9698c","dnb":"104327995","term":"Mynas, C. Minoïde, 1790-1860","key":"MynasCMinoïde1790-1860","viafid":"61986166","nlilat":"000531538","merge":{"source":"viaf","id":"077eccad165f75a370de8ffbdba9698c","type":"document"},"lc":"nr97018121","bav":"adv10975640"} {"nkc":"mzk2003198828","selibr":"187803","version":"2013-07-01T14:07:50Z","_id":"07814ed292b5f17b350c9f7546e60a67","dnb":"11854389x","swnl":"vtls003074795","nla":"000035159024","term":"Guyon, Jeanne-Marie Bouvières de La Motte, 1648-1717","key":"GuyonJeanne-MarieBouvièresdeLaMotte1648-1717","nlilat":"000058203","viafid":"61540026","merge":{"source":"viaf","id":"07814ed292b5f17b350c9f7546e60a67","type":"document"},"lc":"n81108294","bnf":"11886493","bav":"adv12163693"} {"viafid":"9796406","merge":{"source":"viaf","id":"0785ea831da0756e5a6777d783082da7","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0785ea831da0756e5a6777d783082da7","lc":"nr2004021587","term":"Tourneux, Frédéric, b. 1852","key":"TourneuxFrédéricb1852"} {"nkc":"ola2009507571","selibr":"342231","version":"2013-07-01T14:07:50Z","_id":"0790e7593308adf8ce4a23b410de7094","dnb":"118660535","term":"Böckler, Georg Andreas, 1617-1687","key":"BöcklerGeorgAndreas1617-1687","viafid":"95968387","merge":{"source":"viaf","id":"0790e7593308adf8ce4a23b410de7094","type":"document"}} {"viafid":"206937247","merge":{"source":"viaf","id":"0791e668e8b99a085e0f24117348e710","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0791e668e8b99a085e0f24117348e710","term":"Le Boursier du Coudray, Angélique Marguerite, 1715-1794","key":"LeBoursierduCoudrayAngéliqueMarguerite1715-1794"} {"version":"2013-07-01T14:07:50Z","_id":"079b1850f2ab5db57f07ecc26c90aa22","dnb":"173256023","nla":"000035180102","term":"Royer, Jean, 1938-, poète","key":"RoyerJean1938-poète","viafid":"95323450","merge":{"source":"viaf","id":"079b1850f2ab5db57f07ecc26c90aa22","type":"document"},"lc":"n82088337","bnf":"11923039"} {"nkc":"jn20021203005","selibr":"284839","version":"2013-07-01T14:07:50Z","_id":"07ad68bf80d0fd9b3283648fb065bfa8","bne":"xx1332188","dnb":"118713507","nla":"000035283942","term":"Körner, Carl Theodor, 1791-1813","key":"KörnerCarlTheodor1791-1813","nlilat":"000079845","viafid":"51723180","merge":{"source":"viaf","id":"07ad68bf80d0fd9b3283648fb065bfa8","type":"document"},"lc":"n84045242","bnf":"12125148","bav":"adv10882046"} {"nkc":"jx20041208021","selibr":"235812","version":"2013-07-01T14:07:50Z","_id":"07b7375e7c918a0d36bf0b469c7bb85a","dnb":"103370390","nla":"000036505730","ptbnp":"15166","term":"Bogomolov, Vladimir Osipovič, 1926-2003","key":"BogomolovVladimirOsipovič1926-2003","viafid":"54559822","merge":{"source":"viaf","id":"07b7375e7c918a0d36bf0b469c7bb85a","type":"document"},"lc":"n83216531","bnf":"14046290"} {"nkc":"jn20000710488","selibr":"196695","version":"2013-07-01T14:07:50Z","_id":"07bfd705791a7bc0362f18a99cd3ae82","bne":"xx902959","dnb":"118596462","nla":"000036562374","ptbnp":"328305","term":"Prévost D'Exiles, Antoine François 1697-1763","key":"PrévostD'ExilesAntoineFrançois1697-1763","viafid":"17228264","nlilat":"000107716","merge":{"source":"viaf","id":"07bfd705791a7bc0362f18a99cd3ae82","type":"document"},"lc":"n50027694","bnf":"11920607","bav":"adv11051898"} {"version":"2013-07-01T14:07:50Z","_id":"07c5b2a28ea57dd817f8663f22ce8d63","dnb":"119095041","nla":"000049783634","term":"Molé, Louis-Mathieu (1781-1855)","key":"MoléLouis-Mathieu(1781-1855)","viafid":"7440787","nlilat":"000490971","merge":{"source":"viaf","id":"07c5b2a28ea57dd817f8663f22ce8d63","type":"document"},"lc":"n87933602","bnf":"12217781"} {"version":"2013-07-01T14:07:50Z","_id":"07c5bf44d8512ac8f51c1631fd37e185","dnb":"117732621","term":"Mailly, Édouard, 1810-1891","key":"MaillyÉdouard1810-1891","viafid":"31002223","merge":{"source":"viaf","id":"07c5bf44d8512ac8f51c1631fd37e185","type":"document"},"bnf":"10363117","bav":"adv10983139"} {"version":"2013-07-01T14:07:50Z","_id":"07ca03916ef0b70935b47ec8aaa20951","dnb":"151137250","term":"Guillén Robles, Francisco, d. 1920","key":"GuillénRoblesFranciscod1920","nlilat":"000057730","viafid":"100176392","merge":{"source":"viaf","id":"07ca03916ef0b70935b47ec8aaa20951","type":"document"},"lc":"n81106856","bnf":"12186334"} {"version":"2013-07-01T14:07:50Z","_id":"07cbb3fbf1432f4ec0f4de8e8a5f6c4d","dnb":"102693145","term":"Sörbom, Gunnar, 1899-1992","key":"SörbomGunnar1899-1992","viafid":"39773714","merge":{"source":"viaf","id":"07cbb3fbf1432f4ec0f4de8e8a5f6c4d","type":"document"},"lc":"no2009188094","bav":"adv10088767"} {"nkc":"kup19970000059228","selibr":"278658","version":"2013-07-01T14:07:50Z","_id":"07d5d5f1bd824668cfb78de8e96725ee","dnb":"11734138x","term":"Lugné-Poe, Aurélien-Françoise, 1869-1940","key":"Lugné-PoeAurélien-Françoise1869-1940","nlilat":"000467106","viafid":"54187174","merge":{"source":"viaf","id":"07d5d5f1bd824668cfb78de8e96725ee","type":"document"},"lc":"n85017309","bnf":"12159281","bav":"adv12247038"} {"version":"2013-07-01T14:07:50Z","_id":"07de67cc1194f3dbc6d6e4e54b300447","term":"André, Robert 1925-2001","key":"AndréRobert1925-2001","viafid":"110008401","merge":{"source":"viaf","id":"07de67cc1194f3dbc6d6e4e54b300447","type":"document"},"lc":"n81087066","bnf":"11930756","bav":"adv10107863"} {"nkc":"mzk2010580693","version":"2013-07-01T14:07:50Z","_id":"07df3dc1e5aea3037235c5ea2206a78d","dnb":"131592459","nla":"000035164553","ptbnp":"172047","term":"Darmesteter, Arséne, 1846-1888","key":"DarmesteterArséne1846-1888","viafid":"24600230","nlilat":"000037029","merge":{"source":"viaf","id":"07df3dc1e5aea3037235c5ea2206a78d","type":"document"},"lc":"n83826298","bnf":"11898644","bav":"adv10073900"} {"nkc":"xx0010873","version":"2013-07-01T14:07:50Z","_id":"07e7744ccd84935a8e6bc5ca5aea2dd3","bne":"xx1055879","dnb":"11889921x","nla":"000035301759","ptbnp":"144172","term":"Lévêque, Pierre, 1921-2004","key":"LévêquePierre1921-2004","nlilat":"000411857","viafid":"109605207","merge":{"source":"viaf","id":"07e7744ccd84935a8e6bc5ca5aea2dd3","type":"document"},"lc":"n50049987","bnf":"11912783","bav":"adv10433888"} {"nkc":"jk01090667","version":"2013-07-01T14:07:50Z","_id":"07e822a099f4dafae747dbda09b45a11","dnb":"119022753","nla":"000035949388","term":"Novotný, František, 1881-1964","key":"NovotnýFrantišek1881-1964","nlilat":"000432644","viafid":"42638825","merge":{"source":"viaf","id":"07e822a099f4dafae747dbda09b45a11","type":"document"},"lc":"n80146066","bav":"adv11035454"} {"nkc":"mzk2009533679","version":"2013-07-01T14:07:50Z","_id":"07edcd568edb6e6690981921f95a23b5","dnb":"122855043","term":"Bruslé de Montpleinchamp, Jean-Chrysostome, 1641-1724","key":"BruslédeMontpleinchampJean-Chrysostome1641-1724","viafid":"19812402","merge":{"source":"viaf","id":"07edcd568edb6e6690981921f95a23b5","type":"document"},"lc":"no96015544","bnf":"13007480","bav":"adv10125688"} {"version":"2013-07-01T14:07:50Z","_id":"07f3223f3ced71e78378bff70cf920a9","dnb":"130372617","term":"Nemčić, Antun, 1813-1849","key":"NemčićAntun1813-1849","viafid":"15876000","merge":{"source":"viaf","id":"07f3223f3ced71e78378bff70cf920a9","type":"document"},"lc":"n2001030324"} {"version":"2013-07-01T14:07:50Z","_id":"07f375c531d44be0982e59c6d2f65183","dnb":"1029580375","ptbnp":"100916","term":"Gossart, Ernest Édouard, 1837-1919","key":"GossartErnestÉdouard1837-1919","viafid":"88727666","merge":{"source":"viaf","id":"07f375c531d44be0982e59c6d2f65183","type":"document"},"bnf":"12770397","bav":"adv10070455"} {"nkc":"js2006345178","version":"2013-07-01T14:07:50Z","_id":"07f86f0aed45c69e9e61e929721ccc5e","dnb":"118555405","term":"Ikonnikov, Vladimir Stepanovič, 1841-1923","key":"IkonnikovVladimirStepanovič1841-1923","viafid":"42629624","merge":{"source":"viaf","id":"07f86f0aed45c69e9e61e929721ccc5e","type":"document"},"lc":"n85193526","bav":"adv10025976"} {"version":"2013-07-01T14:07:50Z","_id":"07f9ae537ecb7698b75a822341cf9834","dnb":"118778161","nla":"000035284607","term":"Kühn, Alfred, 1885-1968","key":"KühnAlfred1885-1968","nlilat":"000477778","viafid":"39491936","merge":{"source":"viaf","id":"07f9ae537ecb7698b75a822341cf9834","type":"document"},"lc":"n85802982","bnf":"12553466","bav":"adv10883437"} {"version":"2013-07-01T14:07:50Z","_id":"07fd336129efdfd90231764f1c508b4e","dnb":"122677560","nla":"000036080446","ptbnp":"79148","term":"Van Praag, H. M., 1929-, (Herman Meïr)","key":"VanPraagHM1929-(HermanMeïr)","viafid":"108391730","merge":{"source":"viaf","id":"07fd336129efdfd90231764f1c508b4e","type":"document"},"lc":"n79073510","bnf":"11927612"} {"viafid":"66517086","merge":{"source":"viaf","id":"08021f92c833cd0977b3faff7b65f871","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"08021f92c833cd0977b3faff7b65f871","bnf":"12218906","term":"Marçais, Jean, 1904-1991","key":"MarçaisJean1904-1991"} {"nkc":"jk01091352","version":"2013-07-01T14:07:50Z","_id":"080ad84beb72a14be032de4e7f66b6af","dnb":"103699333","ptbnp":"138792","term":"Otčenášek, Jan, 1924-1979","key":"OtčenášekJan1924-1979","viafid":"49644726","nlilat":"000102221","merge":{"source":"viaf","id":"080ad84beb72a14be032de4e7f66b6af","type":"document"},"lc":"n50049605"} {"viafid":"286779140","merge":{"source":"viaf","id":"080c4c63ddc6a405776c479d7c2bace0","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"080c4c63ddc6a405776c479d7c2bace0","term":"Fardé, Pieter, 1651-1691","key":"FardéPieter1651-1691"} {"viafid":"127442574","merge":{"source":"viaf","id":"080ffc546a9df71a5eb53f22937d9635","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"080ffc546a9df71a5eb53f22937d9635","dnb":"142377139","term":"Pée, Julius, 1871-1951","key":"PéeJulius1871-1951"} {"viafid":"8129006","merge":{"source":"viaf","id":"0826759c571514fa5c86701154c0a9c6","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0826759c571514fa5c86701154c0a9c6","dnb":"116036982","term":"Bärtling, Richard, 1878-1936","key":"BärtlingRichard1878-1936"} {"version":"2013-07-01T14:07:50Z","_id":"082bd4b1618e3fbd719a4f2a6f82abfa","dnb":"127516352","term":"Dennery, Étienne (1903-1979)","key":"DenneryÉtienne(1903-1979)","viafid":"79521759","nlilat":"000533465","merge":{"source":"viaf","id":"082bd4b1618e3fbd719a4f2a6f82abfa","type":"document"},"lc":"no97066112","bnf":"11899617","bav":"adv10105269"} {"viafid":"175057572","merge":{"source":"viaf","id":"082f747ac733058264ecf7d112a974a6","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"082f747ac733058264ecf7d112a974a6","lc":"n90711938","term":"Kostrhun, Jan, 1942- | Modrý kvíteček","key":"KostrhunJan1942-|Modrýkvíteček"} {"nkc":"mzk2002110329","version":"2013-07-01T14:07:50Z","_id":"08380fac4349836d985ebaa82a911206","dnb":"10044668x","swnl":"vtls001892514","nla":"000035825083","ptbnp":"95242","term":"Crétineau-Joly, Jacques Augustin Marie, 1803-1875","key":"Crétineau-JolyJacquesAugustinMarie1803-1875","nlilat":"000524485","viafid":"95175944","merge":{"source":"viaf","id":"08380fac4349836d985ebaa82a911206","type":"document"},"lc":"nr90012336","bnf":"12599060","bav":"adv10180719"} {"viafid":"215964382","merge":{"source":"viaf","id":"083bee80111fcbd6959714cca513821d","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"083bee80111fcbd6959714cca513821d","dnb":"989175995","term":"Jungheinrich, Hans-Klaus 1938- | Dmitri oder Der Künstler und die Macht","key":"JungheinrichHans-Klaus1938-|DmitrioderDerKünstlerunddieMacht"} {"nkc":"jn20000703239","selibr":"196794","version":"2013-07-01T14:07:50Z","_id":"083ec04cb31fbba6f2d866dd4960a8bd","bne":"xx1104029","dnb":"118641476","ptbnp":"58743","term":"Pardo Bazán, Emilia, 1851-1921","key":"PardoBazánEmilia1851-1921","viafid":"51699645","merge":{"source":"viaf","id":"083ec04cb31fbba6f2d866dd4960a8bd","type":"document"},"bnf":"12004268"} {"nkc":"jo20000082541","selibr":"97744","version":"2013-07-01T14:07:50Z","_id":"08520ea81f31f6b6c8896919456e6dd2","bne":"xx955263","dnb":"118802801","nla":"000035556677","term":"Trubeckoj, Nikolaj Sergeevič, 1890-1938","key":"TrubeckojNikolajSergeevič1890-1938","viafid":"95300260","nlilat":"000132813","nlicyr":"000366469","merge":{"source":"viaf","id":"08520ea81f31f6b6c8896919456e6dd2","type":"document"},"lc":"n85102285","bnf":"11927154","bav":"adv11200062"} {"version":"2013-07-01T14:07:50Z","_id":"085e1b961651672f453eb21b89dde84c","dnb":"123429641","term":"Fréteau de Saint-Just, Émmanuel-Marie-Michel-Philippe 1745-1794","key":"FréteaudeSaint-JustÉmmanuel-Marie-Michel-Philippe1745-1794","viafid":"37027035","merge":{"source":"viaf","id":"085e1b961651672f453eb21b89dde84c","type":"document"},"lc":"nr00039834","bnf":"12528907"} {"viafid":"293673101","merge":{"source":"viaf","id":"086246289efa743751d551b8740ca6c4","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"086246289efa743751d551b8740ca6c4","term":"Georgievski, Taško (1935- ). | Crno seme (maced.)","key":"GeorgievskiTaško(1935-)|Crnoseme(maced)"} {"version":"2013-07-01T14:07:50Z","_id":"0862bacba0bfc9620826527a56cb3fb3","bne":"xx1767867","dnb":"117369918","nla":"000035903047","term":"Wießner, Edmund, 1875-1956","key":"WießnerEdmund1875-1956","nlilat":"000488478","viafid":"12390488","merge":{"source":"viaf","id":"0862bacba0bfc9620826527a56cb3fb3","type":"document"},"lc":"n87829709","bnf":"12386934"} {"nkc":"jn19981000289","version":"2013-07-01T14:07:50Z","_id":"086acc40c4caf51f99b41dc6603196fd","dnb":"121000842","term":"Bloch-Lainé, François (1912-2002)","key":"Bloch-LainéFrançois(1912-2002)","viafid":"108594372","merge":{"source":"viaf","id":"086acc40c4caf51f99b41dc6603196fd","type":"document"},"lc":"n82127136","bnf":"11892379"} {"nkc":"mzk2009528285","version":"2013-07-01T14:07:50Z","_id":"086ca4c9a359555e7c24c528d7a8b42b","dnb":"118943383","term":"Bröder, Christian Gottlob, 1745-1819","key":"BröderChristianGottlob1745-1819","viafid":"35255737","merge":{"source":"viaf","id":"086ca4c9a359555e7c24c528d7a8b42b","type":"document"},"lc":"nr92000531","bav":"adv10115030"} {"selibr":"338391","version":"2013-07-01T14:07:50Z","_id":"0871858b19c2b00a1ca266e018915646","bne":"xx999835","dnb":"128777931","term":"García, Carlos ca. 1575-ca. 1630","key":"GarcíaCarlosca1575-ca1630","viafid":"51704909","merge":{"source":"viaf","id":"0871858b19c2b00a1ca266e018915646","type":"document"},"lc":"n99025815","bnf":"12030324","bav":"adv10219607"} {"nkc":"vse2010558384","version":"2013-07-01T14:07:50Z","_id":"08758fa8478ce795835f51ec719dc08d","dnb":"124080308","nla":"000035942592","term":"Přibram, Karl, 1877-1973","key":"PřibramKarl1877-1973","viafid":"25953","nlilat":"000446041","merge":{"source":"viaf","id":"08758fa8478ce795835f51ec719dc08d","type":"document"},"lc":"n82094894","bnf":"12031401","bav":"adv11051743"} {"nkc":"js2012736957","version":"2013-07-01T14:07:50Z","_id":"087b147b1af0909e81d09923924abaae","dnb":"121377539","ptbnp":"179667","term":"Teslar, Józef Andrzej, 1889-1961","key":"TeslarJózefAndrzej1889-1961","viafid":"113417081","merge":{"source":"viaf","id":"087b147b1af0909e81d09923924abaae","type":"document"},"lc":"nr89007428","bnf":"11232417"} {"nkc":"kup19950000045493","version":"2013-07-01T14:07:50Z","_id":"087c72f03807241d69c5cbdacba2e1c8","bne":"xx959214","dnb":"121327949","ptbnp":"440589","term":"Julien, Charles-André, 1891-1991","key":"JulienCharles-André1891-1991","viafid":"98370336","nlilat":"000264204","merge":{"source":"viaf","id":"087c72f03807241d69c5cbdacba2e1c8","type":"document"},"lc":"n50038763","bnf":"11909199","bav":"adv12038222"} {"viafid":"243869426","merge":{"source":"viaf","id":"087c9bc6944213114ef3394088ff1aab","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"087c9bc6944213114ef3394088ff1aab","dnb":"961969415","term":"Grüntuch-Ernst, Almut, 1966-, Architekt","key":"Grüntuch-ErnstAlmut1966-Architekt"} {"nkc":"mzk2009511265","selibr":"328286","version":"2013-07-01T14:07:50Z","_id":"0886f9ac812f460b82cd86a1b9feccb4","dnb":"128269014","term":"Masson, Charles François Philibert, 1762-1807","key":"MassonCharlesFrançoisPhilibert1762-1807","nlilat":"000473665","viafid":"15817572","merge":{"source":"viaf","id":"0886f9ac812f460b82cd86a1b9feccb4","type":"document"},"lc":"n85253401","bnf":"12108234","bav":"adv10995016"} {"viafid":"49359871","merge":{"source":"viaf","id":"0893741295f7a7e66ac0cdf427a020ae","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0893741295f7a7e66ac0cdf427a020ae","bnf":"13078966","term":"Saint-Hilaire, Étienne 1865-1932","key":"Saint-HilaireÉtienne1865-1932"} {"nkc":"mzk2010585198","version":"2013-07-01T14:07:50Z","_id":"089507fae522e479c4cfc8711b561186","bne":"xx845628","dnb":"1016403488","term":"Allix, André, 1889-1966","key":"AllixAndré1889-1966","viafid":"22243254","merge":{"source":"viaf","id":"089507fae522e479c4cfc8711b561186","type":"document"},"lc":"no2010137107","bnf":"12482325"} {"nkc":"mzk2003195509","selibr":"297126","version":"2013-07-01T14:07:50Z","_id":"089535b8304bf319cf943b94ef89bf83","bne":"xx839712","dnb":"118647385","nla":"000035197604","ptbnp":"3099","term":"Agustín, Antonio, 1517-1586","key":"AgustínAntonio1517-1586","viafid":"120697822","nlilat":"000282827","merge":{"source":"viaf","id":"089535b8304bf319cf943b94ef89bf83","type":"document"},"lc":"n81127403","bnf":"11885587","bav":"adv10231518"} {"nkc":"ola2002153763","selibr":"328645","version":"2013-07-01T14:07:50Z","_id":"08986700373e687785e527e02f2eb1e0","dnb":"129736414","term":"Brandt, Jørgen Gustava, 1929-2006","key":"BrandtJørgenGustava1929-2006","viafid":"84968625","merge":{"source":"viaf","id":"08986700373e687785e527e02f2eb1e0","type":"document"},"lc":"n79060032","bnf":"11893785"} {"nkc":"xx0165006","selibr":"342946","version":"2013-07-01T14:07:50Z","_id":"089d0ee2fc697bc65fb3fcb7f17fa6c9","bne":"xx899240","dnb":"100009670","nla":"000035831922","ptbnp":"92627","term":"Ampère, Jean-Jacques, 1800-1864","key":"AmpèreJean-Jacques1800-1864","viafid":"14765429","nlilat":"000009946","merge":{"source":"viaf","id":"089d0ee2fc697bc65fb3fcb7f17fa6c9","type":"document"},"lc":"n86041191","bnf":"11888698","bav":"adv11356392"} {"nkc":"jn20000700968","selibr":"206039","version":"2013-07-01T14:07:50Z","_id":"08aa6f544736cb7468bad8aab761baaa","bne":"xx1157250","dnb":"118724827","nla":"000035825105","term":"Krupskaja, Nadežda Konstantinovna, 1869-1939","key":"KrupskajaNadeždaKonstantinovna1869-1939","nlicyr":"000152532","viafid":"2600852","nlilat":"000209944","merge":{"source":"viaf","id":"08aa6f544736cb7468bad8aab761baaa","type":"document"},"lc":"n79029718","bnf":"12882934"} {"version":"2013-07-01T14:07:50Z","_id":"08c18fadf8f5279b43d7934999b9e9c2","dnb":"129530123","term":"Du Creux, François (1596-1666)","key":"DuCreuxFrançois(1596-1666)","viafid":"42142926","merge":{"source":"viaf","id":"08c18fadf8f5279b43d7934999b9e9c2","type":"document"},"lc":"no2002038346","bnf":"15317798","bav":"adv11026413"} {"nkc":"xx0011445","selibr":"220321","version":"2013-07-01T14:07:50Z","_id":"08ce86b3888dfbfe4b725116c17c3192","egaxa":"vtls001048753","dnb":"118669176","swnl":"vtls003026295","nla":"000035748724","ptbnp":"133394","term":"Chedid, Andrée, 1920-2011","key":"ChedidAndrée1920-2011","viafid":"111004523","nlilat":"000031065","merge":{"source":"viaf","id":"08ce86b3888dfbfe4b725116c17c3192","type":"document"},"lc":"n50036246","bnf":"11896485"} {"version":"2013-07-01T14:07:50Z","_id":"08d51b4bb6bde0be2ecaf95e4103f0e2","dnb":"10213118x","nla":"000035754920","term":"Brender à Brandis, Gerrit, 1751-1802","key":"BrenderàBrandisGerrit1751-1802","viafid":"61109455","merge":{"source":"viaf","id":"08d51b4bb6bde0be2ecaf95e4103f0e2","type":"document"},"lc":"no92005545"} {"selibr":"328778","version":"2013-07-01T14:07:50Z","_id":"08e606b662aeb5fe3e6f267926445ea0","dnb":"118936549","nla":"000035857464","ptbnp":"40943","term":"Guillaumin, Émile, 1873-1951","key":"GuillauminÉmile1873-1951","viafid":"4930804","nlilat":"000431587","merge":{"source":"viaf","id":"08e606b662aeb5fe3e6f267926445ea0","type":"document"},"lc":"n80125784","bnf":"11906370"} {"nkc":"jn20000720061","selibr":"183876","version":"2013-07-01T14:07:50Z","_id":"08ef4972c4ab0d9d3b6cc7c14662df37","dnb":"119190907","nla":"000035878690","term":"Djagilev, Sergej Pavlovič, 1872-1929","key":"DjagilevSergejPavlovič1872-1929","viafid":"67208262","nlilat":"000039269","merge":{"source":"viaf","id":"08ef4972c4ab0d9d3b6cc7c14662df37","type":"document"},"jpg":"500078133","lc":"n79081931","bnf":"11900087","bav":"adv10045700"} {"nkc":"skuk0004692","selibr":"334691","version":"2013-07-01T14:07:50Z","_id":"08f245995e319cc1ed731f260418239a","dnb":"11920911x","nla":"000035432989","ptbnp":"538315","term":"Prévost, Jean, 1901-1944","key":"PrévostJean1901-1944","nlilat":"000379872","viafid":"9852191","merge":{"source":"viaf","id":"08f245995e319cc1ed731f260418239a","type":"document"},"lc":"n87903482","bnf":"11920613","bav":"adv11541526"} {"viafid":"166264563","merge":{"source":"viaf","id":"08f899ab263e594b3814385d8f8d75b0","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"08f899ab263e594b3814385d8f8d75b0","term":"Petković, Vladimir R. (1874-1956)","key":"PetkovićVladimirR(1874-1956)"} {"viafid":"5823870","merge":{"source":"viaf","id":"08fceb7018c0e5f3c2cb856795bb56e0","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"08fceb7018c0e5f3c2cb856795bb56e0","dnb":"12280077x","term":"Brückner, August 1769-1797","key":"BrücknerAugust1769-1797"} {"nkc":"ola2002156653","selibr":"207597","version":"2013-07-01T14:07:50Z","_id":"08ff7cbaee85429fda3628cbd9a0ccea","dnb":"118789813","nla":"000035719449","term":"Pasquier, Étienne, 1529-1615","key":"PasquierÉtienne1529-1615","viafid":"61560863","nlilat":"000103651","merge":{"source":"viaf","id":"08ff7cbaee85429fda3628cbd9a0ccea","type":"document"},"lc":"n50050635","bnf":"12027737","bav":"adv10016283"} {"viafid":"183968551","merge":{"source":"viaf","id":"0900c1d826aba21c64b5d933dfa48195","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0900c1d826aba21c64b5d933dfa48195","lc":"n94017739","term":"Birolini, Alessandro, 1940- | Qualität und Zuverlässigkeit technischer Systeme. English","key":"BiroliniAlessandro1940-|QualitätundZuverlässigkeittechnischerSystemeEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0900d8c6ae2f65e90f9174d91e033304","dnb":"130628697","term":"Draženović, Josip (1863-1942)","key":"DraženovićJosip(1863-1942)","viafid":"5581","merge":{"source":"viaf","id":"0900d8c6ae2f65e90f9174d91e033304","type":"document"},"bnf":"11562606"} {"version":"2013-07-01T14:07:50Z","_id":"0905d787a5d8f8689d4843470dd7788a","dnb":"101933010","term":"Mannier, Eugène, 1811-1895","key":"MannierEugène1811-1895","viafid":"24604764","merge":{"source":"viaf","id":"0905d787a5d8f8689d4843470dd7788a","type":"document"},"lc":"n85822045","bnf":"11914286"} {"version":"2013-07-01T14:07:50Z","_id":"090c09d3129bf841838ab2de37747e83","dnb":"116888180","term":"Gründler, Johann Ernst, 1677-1720","key":"GründlerJohannErnst1677-1720","viafid":"24611446","merge":{"source":"viaf","id":"090c09d3129bf841838ab2de37747e83","type":"document"},"lc":"n88132027","bnf":"12003156"} {"selibr":"356328","version":"2013-07-01T14:07:50Z","_id":"090edb00bb6a693eb166f769bfd905d3","dnb":"122509528","term":"Meshorer, Yaʿaḳov 1935-2004","key":"MeshorerYaʿaḳov1935-2004","nlilat":"000092558","viafid":"29563112","nliheb":"000218529","merge":{"source":"viaf","id":"090edb00bb6a693eb166f769bfd905d3","type":"document"},"lc":"n82221337","bnf":"12100097","bav":"adv10928962"} {"version":"2013-07-01T14:07:50Z","_id":"0919be69b4116eefebf63070089d7d0f","term":"Sørensen, Søren, 1848-1902","key":"SørensenSøren1848-1902","viafid":"4244532","nlilat":"000534498","merge":{"source":"viaf","id":"0919be69b4116eefebf63070089d7d0f","type":"document"},"lc":"n98027617"} {"nkc":"xx0068899","selibr":"314742","version":"2013-07-01T14:07:50Z","_id":"091f662b284692555f6f489f422f5b5f","dnb":"101866003","nla":"000035003104","ptbnp":"85656","term":"Alexandre, Arséne, 1859-1937","key":"AlexandreArséne1859-1937","nlilat":"000454512","viafid":"142432","merge":{"source":"viaf","id":"091f662b284692555f6f489f422f5b5f","type":"document"},"lc":"n83132619","bnf":"12956187","bav":"adv10151963"} {"nkc":"nlk20000083847","version":"2013-07-01T14:07:50Z","_id":"0933fb83f6d0c7334ced8364ac746106","dnb":"118676253","nla":"000036552234","ptbnp":"33368","term":"Claparéde, Édouard, 1873-1940","key":"ClaparédeÉdouard1873-1940","viafid":"106976487","nlilat":"000412971","merge":{"source":"viaf","id":"0933fb83f6d0c7334ced8364ac746106","type":"document"},"lc":"n50062963","bnf":"12212638"} {"viafid":"171410395","merge":{"source":"viaf","id":"093a421467a2c52ec2cb5e23b4bbeb16","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"093a421467a2c52ec2cb5e23b4bbeb16","bnf":"13050558","term":"Sauvez, Émile, 1866-1927","key":"SauvezÉmile1866-1927"} {"version":"2013-07-01T14:07:50Z","_id":"093a8a7d3e79fceb89fd81842acf4191","dnb":"154318582","term":"Oikonomos, Geōrgios P., d. 1952","key":"OikonomosGeōrgiosPd1952","viafid":"2514468","merge":{"source":"viaf","id":"093a8a7d3e79fceb89fd81842acf4191","type":"document"},"lc":"n86033984","bnf":"12176769"} {"version":"2013-07-01T14:07:50Z","_id":"09416dfb24fbe376cf386b76f4c0c808","bne":"xx966972","dnb":"173537863","term":"Montaner, Joaquín, 1892-1957","key":"MontanerJoaquín1892-1957","viafid":"36083632","nlilat":"000504370","merge":{"source":"viaf","id":"09416dfb24fbe376cf386b76f4c0c808","type":"document"},"lc":"n90710082"} {"nkc":"jk01071520","version":"2013-07-01T14:07:50Z","_id":"094253ea7c6600ea363111b96b408eba","dnb":"118778684","nla":"000035780309","term":"Langer, František, 1888-1965","key":"LangerFrantišek1888-1965","nlilat":"000080919","viafid":"12430171","merge":{"source":"viaf","id":"094253ea7c6600ea363111b96b408eba","type":"document"},"lc":"n82112974","bnf":"12705556"} {"version":"2013-07-01T14:07:50Z","_id":"0947e4adaff9ab3bad131620819fb543","bne":"xx1717306","dnb":"103892419","term":"Gailhard, André 1885-1966","key":"GailhardAndré1885-1966","viafid":"39567713","merge":{"source":"viaf","id":"0947e4adaff9ab3bad131620819fb543","type":"document"},"lc":"no2004059607","bnf":"13950219"} {"nkc":"js2011627405","version":"2013-07-01T14:07:50Z","_id":"0950d962980bbe75a90f3cfe0f60dc34","dnb":"130649384","term":"Petrović, Boško, 1915-2001","key":"PetrovićBoško1915-2001","viafid":"111604289","merge":{"source":"viaf","id":"0950d962980bbe75a90f3cfe0f60dc34","type":"document"},"lc":"n80156054","bnf":"12077517"} {"viafid":"185584205","merge":{"source":"viaf","id":"095149127bf0bb7b68d5f9b62138809d","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"095149127bf0bb7b68d5f9b62138809d","lc":"n95047380","term":"Golvers, Noël, 1950- | Astronomia Europaea. English & Latin","key":"GolversNoël1950-|AstronomiaEuropaeaEnglish&Latin"} {"selibr":"170116","version":"2013-07-01T14:07:50Z","_id":"09570517d728f703bf1b0cf10fb91a62","dnb":"129017035","term":"Åström, Paul, 1929-2008","key":"ÅströmPaul1929-2008","nlilat":"000425027","viafid":"4945088","merge":{"source":"viaf","id":"09570517d728f703bf1b0cf10fb91a62","type":"document"},"lc":"n79142142","bnf":"12029330","bav":"adv11712370"} {"version":"2013-07-01T14:07:50Z","_id":"095cdeb6e599417cb22561c2b3ae8f6e","egaxa":"vtls000895530","bne":"xx944024","dnb":"129267074","nla":"000035850216","ptbnp":"1720","term":"Muñiz Higuera, Carlos, 1927-1994","key":"MuñizHigueraCarlos1927-1994","viafid":"38490711","merge":{"source":"viaf","id":"095cdeb6e599417cb22561c2b3ae8f6e","type":"document"},"lc":"n88624013","bnf":"16039867"} {"viafid":"176214988","merge":{"source":"viaf","id":"095d290bb75b248241d5bd0c9e4a9bb1","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"095d290bb75b248241d5bd0c9e4a9bb1","lc":"n84165479","term":"Muchembled, Robert, 1944- | Culture populaire et culture des élites dans la France moderne. English","key":"MuchembledRobert1944-|CulturepopulaireetculturedesélitesdanslaFrancemoderneEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"095eb27805a7100c6b6ec740c8080e71","dnb":"116301708","term":"Köstlin, Otto, 1818-1884","key":"KöstlinOtto1818-1884","viafid":"49973166","merge":{"source":"viaf","id":"095eb27805a7100c6b6ec740c8080e71","type":"document"},"bav":"adv10030538"} {"nkc":"xx0105423","version":"2013-07-01T14:07:50Z","_id":"09601055cabf7c9a77171e86b20045eb","dnb":"13248403x","term":"Köhler, Bruno, 1855-1925","key":"KöhlerBruno1855-1925","viafid":"45464186","merge":{"source":"viaf","id":"09601055cabf7c9a77171e86b20045eb","type":"document"}} {"viafid":"276077369","merge":{"source":"viaf","id":"0960ec9e9749531677b491d66003dabc","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0960ec9e9749531677b491d66003dabc","lc":"n92112352","term":"Wolff, Jürgen, 1956-2","key":"WolffJürgen1956-2"} {"nkc":"jn20040205030","nliara":"000195697","selibr":"181731","version":"2013-07-01T14:07:50Z","_id":"096c59e029b0f04cabd2365ecad95d65","dnb":"11649669x","nla":"000035715415","term":"Cheïkho, Louis, 1859-1927","key":"CheïkhoLouis1859-1927","nlilat":"000031078","viafid":"77068906","merge":{"source":"viaf","id":"096c59e029b0f04cabd2365ecad95d65","type":"document"},"lc":"n82234894","bnf":"12951216","bav":"adv10029888"} {"nkc":"mzk2005286743","version":"2013-07-01T14:07:50Z","_id":"09750ad3cd36e30f268b06fe75bd7dae","dnb":"15121641x","term":"Maretić, Tomislav, 1854-1938","key":"MaretićTomislav1854-1938","viafid":"32370714","merge":{"source":"viaf","id":"09750ad3cd36e30f268b06fe75bd7dae","type":"document"},"lc":"n84184846","bnf":"11548439","bav":"adv10907142"} {"version":"2013-07-01T14:07:50Z","_id":"0980ade6c517799267d666c4659dbd3d","dnb":"130460400","term":"De Cock, César 1823-1904","key":"DeCockCésar1823-1904","viafid":"5202944","merge":{"source":"viaf","id":"0980ade6c517799267d666c4659dbd3d","type":"document"},"jpg":"500013324","lc":"n95114978","bnf":"14971761"} {"nkc":"mub2011675241","version":"2013-07-01T14:07:50Z","_id":"098bc6500b17c70627afacf6e4414c27","dnb":"117048879","nla":"000036379248","term":"Hülsen, Christian, 1858-1935","key":"HülsenChristian1858-1935","viafid":"2527887","nlilat":"000489258","merge":{"source":"viaf","id":"098bc6500b17c70627afacf6e4414c27","type":"document"},"jpg":"500319792","lc":"n87869161","bnf":"12247789","bav":"adv10081447"} {"nkc":"kup19970000034377","selibr":"238107","version":"2013-07-01T14:07:50Z","_id":"0995b87436732b33d7f51eadb84713a2","bne":"xx1154051","dnb":"118543202","swnl":"vtls002022868","nla":"000036069456","term":"Von Günderode, Karoline, 1780-1806","key":"VonGünderodeKaroline1780-1806","viafid":"54159634","nlilat":"000444286","merge":{"source":"viaf","id":"0995b87436732b33d7f51eadb84713a2","type":"document"},"lc":"n82059428","bnf":"12017208"} {"nkc":"jn20010601019","selibr":"216621","version":"2013-07-01T14:07:50Z","_id":"09a21db32c5b16ef6fe7c4a058399871","dnb":"101971588x","term":"Hedberg, Tor, ‬1862-1931","key":"HedbergTor‬1862-1931","viafid":"78365667","merge":{"source":"viaf","id":"09a21db32c5b16ef6fe7c4a058399871","type":"document"},"lc":"no95048953","bnf":"13930974"} {"version":"2013-07-01T14:07:50Z","_id":"09a60539bdf2d8f1fed1cb4a0713eedc","dnb":"102017263","term":"Mérignhac, A., 1857-1927, (Alexandre Giraud Jacques Antoine)","key":"MérignhacA1857-1927(AlexandreGiraudJacquesAntoine)","nlilat":"000474154","viafid":"17267136","merge":{"source":"viaf","id":"09a60539bdf2d8f1fed1cb4a0713eedc","type":"document"},"lc":"n85273789","bnf":"12185733"} {"viafid":"183654491","merge":{"source":"viaf","id":"09abde89289fb2f230ceccfd8b3dd69d","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"09abde89289fb2f230ceccfd8b3dd69d","lc":"n2010061226","term":"Sacré, James, 1939- | Selections. 2008","key":"SacréJames1939-|Selections2008"} {"version":"2013-07-01T14:07:50Z","_id":"09b3f237e11a9c32604bb7e22d32d8f6","dnb":"116308958","nla":"000035054535","term":"Andreadēs, Andreas Michaēl, 1876-1935","key":"AndreadēsAndreasMichaēl1876-1935","nlilat":"000428519","viafid":"66510544","merge":{"source":"viaf","id":"09b3f237e11a9c32604bb7e22d32d8f6","type":"document"},"lc":"n80057397","bnf":"12183510","bav":"adv10992808"} {"version":"2013-07-01T14:07:50Z","_id":"09c8c274053c0d0922bb652709993bbc","dnb":"123893887","nla":"000049682876","term":"Gérard, Jo, 1919-2006","key":"GérardJo1919-2006","viafid":"22142267","nlilat":"000058316","merge":{"source":"viaf","id":"09c8c274053c0d0922bb652709993bbc","type":"document"},"lc":"n79070117","bnf":"11904676"} {"version":"2013-07-01T14:07:50Z","_id":"09ca72d2818ee26e90615932eb1c29f9","dnb":"116810505","term":"Martin de Noirlieu, François, 1792-1870","key":"MartindeNoirlieuFrançois1792-1870","viafid":"27055342","nlilat":"000089537","merge":{"source":"viaf","id":"09ca72d2818ee26e90615932eb1c29f9","type":"document"},"bnf":"10693163","bav":"adv11015482"} {"version":"2013-07-01T14:07:50Z","_id":"09dcc1a19a5aa863da93bb88702c09b0","dnb":"123114829","term":"Mieusement, Séraphin-Médéric 1840-1905","key":"MieusementSéraphin-Médéric1840-1905","viafid":"27099563","merge":{"source":"viaf","id":"09dcc1a19a5aa863da93bb88702c09b0","type":"document"},"lc":"n91087801","bnf":"14976561","bav":"adv12086541"} {"version":"2013-07-01T14:07:50Z","_id":"09e0a470102064ac18523541a3c0e61f","term":"Noël, Eugéne, 1816-1899","key":"NoëlEugéne1816-1899","viafid":"24711642","merge":{"source":"viaf","id":"09e0a470102064ac18523541a3c0e61f","type":"document"},"bnf":"12529715","bav":"adv11035985"} {"version":"2013-07-01T14:07:50Z","_id":"09e6427b6396ea3e3211eed18740fe8a","dnb":"101856261","term":"Devillers, Léopold (1830-1910)","key":"DevillersLéopold(1830-1910)","viafid":"59072407","merge":{"source":"viaf","id":"09e6427b6396ea3e3211eed18740fe8a","type":"document"},"lc":"nb2004023543","bnf":"10467378","bav":"adv10110731"} {"nkc":"jn19992001173","selibr":"96042","version":"2013-07-01T14:07:50Z","_id":"09e8d96b26c238b25153f74779f93602","bne":"xx1066017","dnb":"118801384","nla":"000035539434","ptbnp":"245367","term":"Tarle, Evgenij Viktorovič, 1875-1955","key":"TarleEvgenijViktorovič1875-1955","viafid":"51733707","nlilat":"000445779","nlicyr":"000156874","merge":{"source":"viaf","id":"09e8d96b26c238b25153f74779f93602","type":"document"},"lc":"n82090310","bnf":"12185803"} {"viafid":"175918653","merge":{"source":"viaf","id":"09f372085c61cdfff7411fdc8ba9b695","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"09f372085c61cdfff7411fdc8ba9b695","lc":"n99017963","term":"Edström, Vivi Blom, 1923- | Astrid Lindgren, vildtoring och lägereld. English","key":"EdströmViviBlom1923-|AstridLindgrenvildtoringochlägereldEnglish"} {"viafid":"184376801","merge":{"source":"viaf","id":"09f6a3806fc86adb675f4828bece8dab","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"09f6a3806fc86adb675f4828bece8dab","lc":"n95037472","term":"Júdice, Nuno, 1949- | Poems. Selections","key":"JúdiceNuno1949-|PoemsSelections"} {"nkc":"ola2009522933","version":"2013-07-01T14:07:50Z","_id":"09fb5bd1425f269456433674417ac4d2","dnb":"119424770","nla":"000035854959","term":"Brès, Guy de, 1522-1567","key":"BrèsGuyde1522-1567","nlilat":"000025971","viafid":"22174787","merge":{"source":"viaf","id":"09fb5bd1425f269456433674417ac4d2","type":"document"},"lc":"n81055730","bnf":"12123233"} {"viafid":"294885090","selibr":"359548","merge":{"source":"viaf","id":"0a005720ef2f9de056dc4247785b7710","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0a005720ef2f9de056dc4247785b7710","term":"Axelsson, Majgull, 1947-. | Långt borta från Nifelheim. Polska","key":"AxelssonMajgull1947-|LångtbortafrånNifelheimPolska"} {"version":"2013-07-01T14:07:50Z","_id":"0a043b4df610e8d466b11dc88691c2b6","dnb":"116295198","term":"Köpke, Friedrich Karl (1785-1865)","key":"KöpkeFriedrichKarl(1785-1865)","viafid":"2571534","merge":{"source":"viaf","id":"0a043b4df610e8d466b11dc88691c2b6","type":"document"},"lc":"nb2002025553","bnf":"12469798"} {"nkc":"js2008439213","version":"2013-07-01T14:07:50Z","_id":"0a0cdb6c91d3320b937e697c44a46593","dnb":"103216995","term":"Ozga-Michalski, Józef, 1919-2002","key":"Ozga-MichalskiJózef1919-2002","viafid":"34862661","merge":{"source":"viaf","id":"0a0cdb6c91d3320b937e697c44a46593","type":"document"},"lc":"n86868929"} {"version":"2013-07-01T14:07:50Z","_id":"0a1002129ddd5867acb541237acf0b8e","bne":"xx1774957","dnb":"14381981x","nla":"000035717136","term":"Martin, François, 1867-1928","key":"MartinFrançois1867-1928","viafid":"12389009","nlilat":"000549208","merge":{"source":"viaf","id":"0a1002129ddd5867acb541237acf0b8e","type":"document"},"lc":"nb2004300169"} {"nkc":"xx0075839","version":"2013-07-01T14:07:50Z","_id":"0a24be53faa20572ef6b15189aaceaf2","dnb":"118683829","nla":"000035794308","term":"Flaischlen, Cäsar, 1864-1920","key":"FlaischlenCäsar1864-1920","viafid":"62342738","nlilat":"000497142","merge":{"source":"viaf","id":"0a24be53faa20572ef6b15189aaceaf2","type":"document"},"lc":"n88626629"} {"version":"2013-07-01T14:07:50Z","_id":"0a2a05e70c86782813ad1523ca4bc1a0","dnb":"122223624","term":"Brönner, Herbert, 1930-, Beziehung familiaer","key":"BrönnerHerbert1930-Beziehungfamiliaer","viafid":"112577131","nlilat":"000412836","merge":{"source":"viaf","id":"0a2a05e70c86782813ad1523ca4bc1a0","type":"document"},"lc":"n50059163"} {"version":"2013-07-01T14:07:50Z","_id":"0a2e072d211e85a980c72506bf9ccc7e","bne":"xx1132637","nla":"000036010610","term":"Martin, André 1884-1963","key":"MartinAndré1884-1963","viafid":"50301136","merge":{"source":"viaf","id":"0a2e072d211e85a980c72506bf9ccc7e","type":"document"},"lc":"n2007182382","bnf":"12215676","bav":"adv12332922"} {"nkc":"mzk2006356127","selibr":"316260","version":"2013-07-01T14:07:50Z","_id":"0a30a1eac61e6778b17df17cb0b9debb","dnb":"124098282","ptbnp":"168389","term":"Oudin, César, d. 1625","key":"OudinCésard1625","viafid":"12295511","merge":{"source":"viaf","id":"0a30a1eac61e6778b17df17cb0b9debb","type":"document"},"lc":"nr93008123","bnf":"11918284","bav":"adv10964662"} {"version":"2013-07-01T14:07:50Z","_id":"0a3811cdc4bf9e50da74190116a95fa7","dnb":"124007481","term":"Tailliar, Eugène, 1803-1878","key":"TailliarEugène1803-1878","viafid":"32130378","merge":{"source":"viaf","id":"0a3811cdc4bf9e50da74190116a95fa7","type":"document"},"bnf":"12982935"} {"nkc":"ola2007364165","selibr":"322387","version":"2013-07-01T14:07:50Z","_id":"0a62c224d945445f5fbecda77e4017c2","dnb":"118714570","nla":"000036004036","term":"Kästner, Abraham Gotthelf, 1719-1800","key":"KästnerAbrahamGotthelf1719-1800","viafid":"39450522","nlilat":"000079761","merge":{"source":"viaf","id":"0a62c224d945445f5fbecda77e4017c2","type":"document"},"lc":"n85241161","bnf":"12339233","bav":"adv10286851"} {"version":"2013-07-01T14:07:50Z","_id":"0a6de044bb18ee42b2692aae02ddf18e","dnb":"10469209x","term":"Mörchen, Hermann (1906-1990)","key":"MörchenHermann(1906-1990)","viafid":"27079901","nlilat":"000097186","merge":{"source":"viaf","id":"0a6de044bb18ee42b2692aae02ddf18e","type":"document"},"lc":"n81092158","bnf":"12028119","bav":"adv11437043"} {"viafid":"286545948","merge":{"source":"viaf","id":"0a6e39c405f03eb064bfe27c3ffa7f83","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0a6e39c405f03eb064bfe27c3ffa7f83","lc":"no2012144930","term":"Guénoun, Denis, 1946- | Hypothèses sur l'Europe. English","key":"GuénounDenis1946-|Hypothèsessurl'EuropeEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0a6fbf4291a67e1f752f38e8c6a5df54","bne":"xx1560356","dnb":"120562944","ptbnp":"133752","term":"Bellot, Pierre-François, 1776-1836","key":"BellotPierre-François1776-1836","viafid":"15603918","merge":{"source":"viaf","id":"0a6fbf4291a67e1f752f38e8c6a5df54","type":"document"},"lc":"no2008017373"} {"nkc":"ola2006340224","selibr":"273835","version":"2013-07-01T14:07:50Z","_id":"0a73a2534a2d4b5851210d6f7e6074e2","dnb":"118785710","nla":"000035765406","ptbnp":"987782","term":"Alexandre, Noël, 1639-1724","key":"AlexandreNoël1639-1724","nlilat":"000540481","viafid":"22151431","merge":{"source":"viaf","id":"0a73a2534a2d4b5851210d6f7e6074e2","type":"document"},"lc":"no96066946","bnf":"11990956","bav":"adv10034801"} {"selibr":"243392","version":"2013-07-01T14:07:50Z","_id":"0a750d756f540a47686f366cc729d12b","dnb":"116044640","ptbnp":"1440748","term":"Kannegießer, Karl Ludwig 1781-1864","key":"KannegießerKarlLudwig1781-1864","viafid":"59059890","nlilat":"000282793","merge":{"source":"viaf","id":"0a750d756f540a47686f366cc729d12b","type":"document"},"lc":"n85317484"} {"nkc":"mzk2003195776","selibr":"277710","version":"2013-07-01T14:07:50Z","_id":"0a7617aa6157d52e6239eb938e3fa745","bne":"xx1309288","dnb":"11560720x","ptbnp":"166798","term":"Bernis, François-Joachim de Pierre de, 1715-1794","key":"BernisFrançois-JoachimdePierrede1715-1794","viafid":"68925438","nlilat":"000019585","merge":{"source":"viaf","id":"0a7617aa6157d52e6239eb938e3fa745","type":"document"},"jpg":"500314299","lc":"n82165748","bnf":"11891582","bav":"adv10003870"} {"viafid":"73886528","merge":{"source":"viaf","id":"0a79f7e10c6b55855b27e20a81e316c5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0a79f7e10c6b55855b27e20a81e316c5","dnb":"118836838","term":"Rodríguez, Alfonso, 1526-1616","key":"RodríguezAlfonso1526-1616"} {"version":"2013-07-01T14:07:50Z","_id":"0a7c336d48e3eba772809417fdf62a1a","ptbnp":"155323","term":"Piatier, André (1914-1991)","key":"PiatierAndré(1914-1991)","viafid":"73858552","merge":{"source":"viaf","id":"0a7c336d48e3eba772809417fdf62a1a","type":"document"},"bnf":"11919623"} {"nkc":"jk01032899","version":"2013-07-01T14:07:50Z","_id":"0a7ee00767e81ac3fb656e3bbe2213df","dnb":"118699792","nla":"000036015059","term":"Hába, Alois, 1893-1973","key":"HábaAlois1893-1973","nlilat":"000066100","viafid":"71657828","merge":{"source":"viaf","id":"0a7ee00767e81ac3fb656e3bbe2213df","type":"document"},"lc":"n83172253","bnf":"14785739"} {"nkc":"jn19992000657","nliara":"000202719","selibr":"208307","version":"2013-07-01T14:07:50Z","_id":"0a886e842671b537d390d61bcd61c790","bne":"xx931300","dnb":"118576259","nla":"000035322426","ptbnp":"24297","term":"Maḥfūẓ, Najīb, 1911-2006","key":"MaḥfūẓNajīb1911-2006","viafid":"89803944","nlilat":"000087703","merge":{"source":"viaf","id":"0a886e842671b537d390d61bcd61c790","type":"document"},"lc":"n82091918","bnf":"12001087"} {"version":"2013-07-01T14:07:50Z","_id":"0a88d3ae3b5127b5a9b13ffbd9bf6cf7","dnb":"128386495","ptbnp":"1046139","term":"Gacon, François, 1667-1725","key":"GaconFrançois1667-1725","viafid":"71412505","nlilat":"000528322","merge":{"source":"viaf","id":"0a88d3ae3b5127b5a9b13ffbd9bf6cf7","type":"document"},"lc":"nr94015816","bnf":"12063049"} {"version":"2013-07-01T14:07:50Z","_id":"0a963063c003c9643fa33ad66ba86268","dnb":"130192309","nla":"000035400896","ptbnp":"168742","term":"Babié de Bercenay, François (1761-ca 1830)","key":"BabiédeBercenayFrançois(1761-ca1830)","viafid":"73986061","merge":{"source":"viaf","id":"0a963063c003c9643fa33ad66ba86268","type":"document"},"lc":"nr93015814","bnf":"13009419","bav":"adv10072631"} {"nkc":"mzk2004243993","selibr":"334438","version":"2013-07-01T14:07:50Z","_id":"0a9d89963fbe12b26b632ae8048ee3c8","bne":"xx1039701","dnb":"187118655","nla":"000035672926","ptbnp":"718622","term":"Rodríguez, Alonso, 1538-1616","key":"RodríguezAlonso1538-1616","viafid":"71570078","merge":{"source":"viaf","id":"0a9d89963fbe12b26b632ae8048ee3c8","type":"document"},"lc":"n50048918"} {"version":"2013-07-01T14:07:50Z","_id":"0aa02a0326b5a1cb9a6503a9691ec363","dnb":"124692540","ptbnp":"90223","term":"Régnault, Élias, 1801-1868","key":"RégnaultÉlias1801-1868","nlilat":"000115050","viafid":"9910357","merge":{"source":"viaf","id":"0aa02a0326b5a1cb9a6503a9691ec363","type":"document"},"lc":"n88623052","bnf":"12282457","bav":"adv11097753"} {"nkc":"jn19990006368","version":"2013-07-01T14:07:50Z","_id":"0aa177354b4d56577a64713daaffef19","dnb":"104714964","nla":"000035408818","ptbnp":"51942","term":"Parinaud, André, 1924-2006","key":"ParinaudAndré1924-2006","viafid":"98106261","nlilat":"000103349","merge":{"source":"viaf","id":"0aa177354b4d56577a64713daaffef19","type":"document"},"lc":"n50050313","bnf":"11918613","bav":"adv10045385"} {"nkc":"js2007409769","version":"2013-07-01T14:07:50Z","_id":"0aa948da75ef1657582cc6a253cdb635","dnb":"127614699","term":"Kostrzewski, Józef, 1885-1969","key":"KostrzewskiJózef1885-1969","nlilat":"000510410","viafid":"3500883","merge":{"source":"viaf","id":"0aa948da75ef1657582cc6a253cdb635","type":"document"},"lc":"n93111995","bnf":"12770159","bav":"adv10024566"} {"nkc":"mzk2010585189","version":"2013-07-01T14:07:50Z","_id":"0aa987a619447d27f9fa8da16f627441","dnb":"128187042","term":"Dobrzański, Bohdan, 1909-1987","key":"DobrzańskiBohdan1909-1987","viafid":"91758279","merge":{"source":"viaf","id":"0aa987a619447d27f9fa8da16f627441","type":"document"},"lc":"n82085510"} {"version":"2013-07-01T14:07:50Z","_id":"0aaf672d68f60a8edc61771e78cc0d53","dnb":"121588734","term":"Verhaegen, Pierre-Théodore, 1796-1862","key":"VerhaegenPierre-Théodore1796-1862","viafid":"47622291","merge":{"source":"viaf","id":"0aaf672d68f60a8edc61771e78cc0d53","type":"document"},"lc":"n2002027912"} {"nkc":"zmp2012726785","version":"2013-07-01T14:07:50Z","_id":"0ab11fc65836d4c8f56f7c36022a972f","dnb":"105833363","nla":"000035773185","term":"Horn, Ignace Édouard, 1825-1875","key":"HornIgnaceÉdouard1825-1875","viafid":"56718546","nlilat":"000064859","merge":{"source":"viaf","id":"0ab11fc65836d4c8f56f7c36022a972f","type":"document"},"lc":"nr98044513"} {"viafid":"224420756","merge":{"source":"viaf","id":"0aba069590b9a8b2cc630617b5d431ff","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0aba069590b9a8b2cc630617b5d431ff","bnf":"12016134","term":"Mercier, Jacques 1933-.... géologue","key":"MercierJacques1933-géologue"} {"version":"2013-07-01T14:07:50Z","_id":"0ac50ef47dbdc9ca95b9310e70d6b49c","dnb":"120847280","term":"Demény͏̈, Georges, 1850-1917","key":"Demény͏̈Georges1850-1917","viafid":"44337483","merge":{"source":"viaf","id":"0ac50ef47dbdc9ca95b9310e70d6b49c","type":"document"},"lc":"n88676702","bnf":"12157859"} {"nkc":"kup20030000021014","version":"2013-07-01T14:07:50Z","_id":"0ac89f2ab469a3fa5949b4887702912e","dnb":"101399502","nla":"000035784607","ptbnp":"145705","term":"Déprez, Eugène, 1874-1951","key":"DéprezEugène1874-1951","viafid":"44435780","nlilat":"000281240","merge":{"source":"viaf","id":"0ac89f2ab469a3fa5949b4887702912e","type":"document"},"lc":"nr91009898","bnf":"13092522","bav":"adv10924095"} {"version":"2013-07-01T14:07:50Z","_id":"0ad1cd6f32cb1b2b6785ae670f28e96b","dnb":"123825792","term":"Le Clerc, Sébastien, 1637-1714","key":"LeClercSébastien1637-1714","nlilat":"000468571","viafid":"99735429","merge":{"source":"viaf","id":"0ad1cd6f32cb1b2b6785ae670f28e96b","type":"document"},"jpg":"500021137","lc":"n85066159","bav":"adv10906530"} {"nkc":"jn19990001823","_id":"0ae1b7bd53660ff54bd85eeb4f77422b","bne":"xx1164088","dnb":"118526839","nla":"000035041510","ptbnp":"34939","term":"Doré, Gustave, 1832-1883","key":"DoréGustave1832-1883","viafid":"41839207","nliheb":"000170985","merge":{"source":"viaf","id":"0ae1b7bd53660ff54bd85eeb4f77422b","type":"document"},"jpg":"500013657","bnf":"11900422","selibr":"183977","version":"2013-07-01T14:07:50Z","nlicyr":"000150638","nlilat":"000040461","lc":"n79089221","bav":"adv11670777"} {"version":"2013-07-01T14:07:50Z","_id":"0ae39066a6c1e03197f5a00d2a7850b3","dnb":"117596620","term":"Müller, Johann, 1832-1918","key":"MüllerJohann1832-1918","viafid":"7206645","merge":{"source":"viaf","id":"0ae39066a6c1e03197f5a00d2a7850b3","type":"document"},"lc":"no2008101292"} {"nkc":"ola2006340279","version":"2013-07-01T14:07:50Z","_id":"0ae61fb92910aa5c3a40a80cb1c7d2a1","dnb":"12105764x","term":"Coleti, Niccoló, 1680-1765","key":"ColetiNiccoló1680-1765","viafid":"46873648","merge":{"source":"viaf","id":"0ae61fb92910aa5c3a40a80cb1c7d2a1","type":"document"},"lc":"n88070742","bnf":"12544566","bav":"adv10053483"} {"selibr":"329195","version":"2013-07-01T14:07:50Z","_id":"0ae86ae78ae8c5c203c362d2b3ebeaf0","dnb":"117105392","nla":"000035783089","term":"Jéquier, Gustave, 1868-1946","key":"JéquierGustave1868-1946","viafid":"22212511","nlilat":"000464986","merge":{"source":"viaf","id":"0ae86ae78ae8c5c203c362d2b3ebeaf0","type":"document"},"lc":"n84211924","bnf":"12331292","bav":"adv10098378"} {"version":"2013-07-01T14:07:50Z","_id":"0af89ea10874552daee4d12285c18f69","bne":"xx860535","dnb":"123568641","nla":"000035162079","ptbnp":"28853","term":"Galvão, António, d. 1557","key":"GalvãoAntóniod1557","viafid":"25513758","merge":{"source":"viaf","id":"0af89ea10874552daee4d12285c18f69","type":"document"},"lc":"n50083204"} {"viafid":"175798492","merge":{"source":"viaf","id":"0afb729968ea0dcf09ad65512341cfc0","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0afb729968ea0dcf09ad65512341cfc0","lc":"n83168030","term":"Kunt, İ. Metin, 1942- | Sancaktan eyalete. English","key":"KuntİMetin1942-|SancaktaneyaleteEnglish"} {"nkc":"mzk2009528561","version":"2013-07-01T14:07:50Z","_id":"0afbb7c6428e4825e6c17b916b1f3e28","dnb":"123447976","ptbnp":"269286","term":"Forteguerri, Niccolò, 1674-1735","key":"ForteguerriNiccolò1674-1735","viafid":"99738830","nlilat":"000468749","merge":{"source":"viaf","id":"0afbb7c6428e4825e6c17b916b1f3e28","type":"document"},"lc":"n85071912","bnf":"14537953","bav":"adv12129196"} {"version":"2013-07-01T14:07:50Z","_id":"0b004563b2123fcef297ae26bc108899","nla":"000035346128","term":"Śāstrī, Bālacandra, 1905-19..?","key":"ŚāstrīBālacandra1905-19?","viafid":"114115692","merge":{"source":"viaf","id":"0b004563b2123fcef297ae26bc108899","type":"document"},"lc":"n88147150","bnf":"14445853"} {"version":"2013-07-01T14:07:50Z","_id":"0b01d2a9700a7d54ee731d6383b2e4bf","bne":"xx1316028","dnb":"13895335x","term":"Samper, José María 1828-1888","key":"SamperJoséMaría1828-1888","viafid":"1399395","merge":{"source":"viaf","id":"0b01d2a9700a7d54ee731d6383b2e4bf","type":"document"},"lc":"n83800651","bnf":"12745736","bav":"adv11183840"} {"version":"2013-07-01T14:07:50Z","_id":"0b0c46f0bd96bf9e0469039fa39cb8b0","dnb":"118766481","term":"Weiße, Christian Hermann, 1801-1866","key":"WeißeChristianHermann1801-1866","nlilat":"000140772","viafid":"54254106","merge":{"source":"viaf","id":"0b0c46f0bd96bf9e0469039fa39cb8b0","type":"document"},"lc":"n85295270","bnf":"12511914"} {"selibr":"222958","version":"2013-07-01T14:07:50Z","_id":"0b1108aa92054e88756f44823b144f71","dnb":"122343107","ptbnp":"1201889","term":"Ståhle, Carl Ivar, 1913-1980","key":"StåhleCarlIvar1913-1980","viafid":"114713155","merge":{"source":"viaf","id":"0b1108aa92054e88756f44823b144f71","type":"document"},"lc":"n82075557"} {"nkc":"mzk2009533063","version":"2013-07-01T14:07:50Z","_id":"0b144989a23c9e2ba44316c2c4e9ac49","dnb":"102179026","term":"Schöner, Lazarus, ca 1543-1607","key":"SchönerLazarusca1543-1607","viafid":"7769720","merge":{"source":"viaf","id":"0b144989a23c9e2ba44316c2c4e9ac49","type":"document"},"lc":"n88043976"} {"nkc":"js20010125076","selibr":"275117","version":"2013-07-01T14:07:50Z","_id":"0b1b5781047638aebb626ba9e39475b6","dnb":"118624334","nla":"000035587201","term":"Tschižewskij, Dmitrij, 1894-1977","key":"TschižewskijDmitrij1894-1977","nlicyr":"000158492","nlilat":"000132910","viafid":"18015229","merge":{"source":"viaf","id":"0b1b5781047638aebb626ba9e39475b6","type":"document"},"lc":"n50041483","bnf":"12108185"} {"selibr":"206623","version":"2013-07-01T14:07:50Z","_id":"0b1d6738beedab2a53e876692fedb655","term":"Andersson, Håkan, 1959-, jurist","key":"AnderssonHåkan1959-jurist","viafid":"33983455","merge":{"source":"viaf","id":"0b1d6738beedab2a53e876692fedb655","type":"document"},"lc":"nb2007008625"} {"viafid":"175549786","merge":{"source":"viaf","id":"0b1eead043d4bb8ecd52a8d2286ca013","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0b1eead043d4bb8ecd52a8d2286ca013","lc":"n2006023638","term":"Narbonne, Jean-Marc, 1957- | Lévinas et l'héritage Grec. English","key":"NarbonneJean-Marc1957-|Lévinasetl'héritageGrecEnglish"} {"nkc":"mzk2009511491","version":"2013-07-01T14:07:50Z","_id":"0b1fe78196a6e1c0be50e6ae52c0c1b9","dnb":"100214908","ptbnp":"240169","term":"Perreau, Jean-André, 1749-1813","key":"PerreauJean-André1749-1813","nlilat":"000509787","viafid":"2506832","merge":{"source":"viaf","id":"0b1fe78196a6e1c0be50e6ae52c0c1b9","type":"document"},"lc":"n93063231","bnf":"12136042"} {"nkc":"xx0007365","selibr":"214160","version":"2013-07-01T14:07:50Z","_id":"0b26e997eaa55d77bd0d9667db589d37","dnb":"118748513","nla":"000035131141","term":"Šmelev, Ivan Sergeevič, 1873-1950","key":"ŠmelevIvanSergeevič1873-1950","nlicyr":"000160131","viafid":"91565066","merge":{"source":"viaf","id":"0b26e997eaa55d77bd0d9667db589d37","type":"document"},"lc":"n81117011","bnf":"12129144"} {"viafid":"174329054","merge":{"source":"viaf","id":"0b2780bbacafe75d5ba0bf63f0cbfc92","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0b2780bbacafe75d5ba0bf63f0cbfc92","lc":"n2004044744","term":"Grøndahl, Jens Christian, 1959- | Andet lys. English","key":"GrøndahlJensChristian1959-|AndetlysEnglish"} {"nkc":"kup19960000064133","selibr":"208174","version":"2013-07-01T14:07:50Z","_id":"0b2b84c876538c955105edad1dbaab36","bne":"xx1365935","dnb":"118783106","nla":"000035752190","term":"Pečerskij, Andrej, 1819-1883","key":"PečerskijAndrej1819-1883","viafid":"73967483","merge":{"source":"viaf","id":"0b2b84c876538c955105edad1dbaab36","type":"document"},"lc":"n84154998","bnf":"12555735"} {"nkc":"ola2002161226","selibr":"284056","version":"2013-07-01T14:07:50Z","_id":"0b31740d71378e3019d4a0b2541c8f7d","dnb":"118672703","nla":"000035816243","ptbnp":"90600","term":"Dumouriez, Charles François Du Périer, 1739-1823","key":"DumouriezCharlesFrançoisDuPérier1739-1823","nlilat":"000247028","viafid":"69039374","merge":{"source":"viaf","id":"0b31740d71378e3019d4a0b2541c8f7d","type":"document"},"lc":"n85008400","bnf":"12524528","bav":"adv10129907"} {"nkc":"jx20100915004","selibr":"175588","version":"2013-07-01T14:07:50Z","_id":"0b3553ddd1a1281db36fc5e68d5fa6a9","bne":"xx996656","dnb":"118551469","swnl":"vtls002052758","nla":"000035006801","term":"Andō, Hiroshige, 1797-1858","key":"AndōHiroshige1797-1858","viafid":"19678928","nlilat":"000063509","merge":{"source":"viaf","id":"0b3553ddd1a1281db36fc5e68d5fa6a9","type":"document"},"lc":"n50044379","bnf":"11907554"} {"nkc":"skuk0005425","version":"2013-07-01T14:07:50Z","_id":"0b358779228fcca0aa669691a6cf2864","dnb":"11861844x","term":"Stökl, Günther (1916-1998)","key":"StöklGünther(1916-1998)","nlilat":"000436352","viafid":"89676189","merge":{"source":"viaf","id":"0b358779228fcca0aa669691a6cf2864","type":"document"},"lc":"n81050114","bnf":"12023579","bav":"adv11951305"} {"nkc":"jn19981001314","version":"2013-07-01T14:07:50Z","_id":"0b392bdf63889fecefa2ae47079e796f","bne":"xx923661","dnb":"122339347","nla":"000035785518","ptbnp":"275656","term":"García Bacca, Juan David, 1901-1992","key":"GarcíaBaccaJuanDavid1901-1992","viafid":"112824971","merge":{"source":"viaf","id":"0b392bdf63889fecefa2ae47079e796f","type":"document"},"lc":"n81068915","bnf":"11886376","bav":"adv10219898"} {"nkc":"mzk2009533253","version":"2013-07-01T14:07:50Z","_id":"0b4371e3286ce4567cb75f297dc96380","dnb":"172533910","term":"Istvánffy, Miklós, 1538-1615","key":"IstvánffyMiklós1538-1615","nlilat":"000492379","viafid":"76444890","merge":{"source":"viaf","id":"0b4371e3286ce4567cb75f297dc96380","type":"document"},"lc":"n88049285","bnf":"12915473","bav":"adv10290168"} {"selibr":"207683","version":"2013-07-01T14:07:50Z","_id":"0b48d235c8823e467002935d39a9ef4f","bne":"xx5016110","dnb":"118565346","swnl":"vtls001886746","nla":"000035280046","term":"Koraīs, Adamantios (1748-1833)","key":"KoraīsAdamantios(1748-1833)","nlilat":"000449376","viafid":"95174123","merge":{"source":"viaf","id":"0b48d235c8823e467002935d39a9ef4f","type":"document"},"lc":"n82208074","bnf":"12183568","bav":"adv10296629"} {"nkc":"ola2008460009","version":"2013-07-01T14:07:50Z","_id":"0b48f16cd146bdbd10521a2f73947714","bne":"xx1727372","dnb":"117661236","term":"André, Yves-Marie, 1675-1764","key":"AndréYves-Marie1675-1764","viafid":"51732793","merge":{"source":"viaf","id":"0b48f16cd146bdbd10521a2f73947714","type":"document"},"lc":"n2006066584","bnf":"12180932","bav":"adv10231928"} {"nkc":"mzk2008468972","version":"2013-07-01T14:07:50Z","_id":"0b4f1e9c2efdd1ac283422cc1d94c3b4","dnb":"119117983","term":"Häberlin, Franz Dominicus, 1720-1787","key":"HäberlinFranzDominicus1720-1787","viafid":"32019945","merge":{"source":"viaf","id":"0b4f1e9c2efdd1ac283422cc1d94c3b4","type":"document"},"bnf":"12072626","bav":"adv10167432"} {"nkc":"nlk20000079474","version":"2013-07-01T14:07:50Z","_id":"0b505506c130ec7f71785970d5a172cf","bne":"xx1509951","dnb":"117581577","term":"Béclard, Jules 1817-1887","key":"BéclardJules1817-1887","viafid":"84790772","merge":{"source":"viaf","id":"0b505506c130ec7f71785970d5a172cf","type":"document"},"lc":"n87803195","bnf":"13165778","bav":"adv10070923"} {"nkc":"kup19940000041679","selibr":"334829","version":"2013-07-01T14:07:50Z","_id":"0b542cad55af46e65e5b6a797b13ffe4","dnb":"119244322","nla":"000035216538","ptbnp":"39803","term":"Huyghe, René, 1906-1997","key":"HuygheRené1906-1997","nlilat":"000407249","viafid":"7391755","merge":{"source":"viaf","id":"0b542cad55af46e65e5b6a797b13ffe4","type":"document"},"lc":"n50030362","bnf":"11908115","bav":"adv10042791"} {"nkc":"mzk2003203577","version":"2013-07-01T14:07:50Z","_id":"0b5951fa6f9f328462dac7a67ebaab85","dnb":"120859718","nla":"000035731292","term":"Von Reinsberg-Düringsfeld, Otto, 1822-1876","key":"VonReinsberg-DüringsfeldOtto1822-1876","nlilat":"000518852","viafid":"51866388","merge":{"source":"viaf","id":"0b5951fa6f9f328462dac7a67ebaab85","type":"document"},"lc":"no94025440","bnf":"13620607"} {"nkc":"xx0163289","version":"2013-07-01T14:07:50Z","_id":"0b5e32448bf96341c274810b19807da6","nla":"000036133604","term":"Guérin, Marcel, 1873-1948","key":"GuérinMarcel1873-1948","viafid":"54251295","merge":{"source":"viaf","id":"0b5e32448bf96341c274810b19807da6","type":"document"},"lc":"n81042631","bnf":"12496738","bav":"adv12227711"} {"version":"2013-07-01T14:07:50Z","_id":"0b6b1325923ef33c1921943d7841fb83","dnb":"130597198","term":"Beauvais de Préau, Charles-Théodore (1772-1830)","key":"BeauvaisdePréauCharles-Théodore(1772-1830)","viafid":"119187","merge":{"source":"viaf","id":"0b6b1325923ef33c1921943d7841fb83","type":"document"},"lc":"n2007013911","bnf":"12521155","bav":"adv10283417"} {"viafid":"178650267","merge":{"source":"viaf","id":"0b762fcab4b109a81685eb99a5c28093","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0b762fcab4b109a81685eb99a5c28093","lc":"n85124853","term":"Ōmae, Kenʼichi, 1943- | Triad power. Japanese","key":"ŌmaeKenʼichi1943-|TriadpowerJapanese"} {"viafid":"184522096","merge":{"source":"viaf","id":"0b7906a5457ee18ca53e17e20bc56692","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0b7906a5457ee18ca53e17e20bc56692","lc":"no2002035195","term":"Lindström, Martin, 1970- | Mærkevarer på Internettet. English","key":"LindströmMartin1970-|MærkevarerpåInternettetEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0b92335de725ebb682d787ebb2459509","bne":"xx1597897","dnb":"101846509","ptbnp":"1205863","term":"Van Drival, Eugéne, 1815-1887","key":"VanDrivalEugéne1815-1887","viafid":"2604273","merge":{"source":"viaf","id":"0b92335de725ebb682d787ebb2459509","type":"document"},"bnf":"12982992","bav":"adv12446024"} {"version":"2013-07-01T14:07:50Z","_id":"0b943a2a8481c5d4f2724c25549a794a","ptbnp":"36679","term":"De Sousa, António, 1898-1981","key":"DeSousaAntónio1898-1981","viafid":"11223045","merge":{"source":"viaf","id":"0b943a2a8481c5d4f2724c25549a794a","type":"document"},"lc":"n83139854"} {"nkc":"ola2009507589","version":"2013-07-01T14:07:50Z","_id":"0ba500e534508b319b0601cb4f8664c2","dnb":"116221364","term":"Böhmer, Georg Wilhelm, 1761-1839","key":"BöhmerGeorgWilhelm1761-1839","viafid":"17968330","nlilat":"000027072","merge":{"source":"viaf","id":"0ba500e534508b319b0601cb4f8664c2","type":"document"},"lc":"n91092686"} {"nkc":"mzk2009511737","selibr":"169244","version":"2013-07-01T14:07:50Z","_id":"0ba67b929cf30059b68c4b2d311451dc","bne":"xx1606252","dnb":"117631620","term":"Saint-Lambert, Jean-François (1716-1803)","key":"Saint-LambertJean-François(1716-1803)","nlilat":"000516045","viafid":"71423453","merge":{"source":"viaf","id":"0ba67b929cf30059b68c4b2d311451dc","type":"document"},"lc":"no91005600","bnf":"12121287"} {"version":"2013-07-01T14:07:50Z","_id":"0bacd6137de9f2e52433700a640b7440","bne":"xx1134740","dnb":"152369368","term":"Esclasans, Agustí 1895-1967","key":"EsclasansAgustí1895-1967","viafid":"40405799","merge":{"source":"viaf","id":"0bacd6137de9f2e52433700a640b7440","type":"document"},"lc":"n84213564"} {"nkc":"xx0130308","selibr":"313582","version":"2013-07-01T14:07:50Z","_id":"0bbc4567feb0b4044cedeb24aa798466","dnb":"119042134","nla":"000035013406","term":"Barbé-Marbois, François, 1745-1837","key":"Barbé-MarboisFrançois1745-1837","viafid":"9958036","nlilat":"000454887","merge":{"source":"viaf","id":"0bbc4567feb0b4044cedeb24aa798466","type":"document"},"lc":"n83141373","bnf":"12529633"} {"viafid":"174888919","merge":{"source":"viaf","id":"0bdab7710358159e91bf9565d1e10472","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0bdab7710358159e91bf9565d1e10472","lc":"no2010116242","term":"Howard, Ronald A., 1934-, (Ronald Arthur), Dinamicheskoe programmirovanie i markovskie prot︠s︡essy","key":"HowardRonaldA1934-(RonaldArthur)Dinamicheskoeprogrammirovanieimarkovskieprot︠s︡essy"} {"selibr":"200241","version":"2013-07-01T14:07:50Z","_id":"0be07a1e4d63546f1090d26bd62d6c1d","egaxa":"vtls000814446","dnb":"118854860","term":"ʻUrābī, Aḥmad, 1840 or 41-1911","key":"ʻUrābīAḥmad1840or41-1911","nlilat":"000451615","viafid":"17232266","merge":{"source":"viaf","id":"0be07a1e4d63546f1090d26bd62d6c1d","type":"document"},"lc":"n83009078","bnf":"11989530"} {"viafid":"84814614","merge":{"source":"viaf","id":"0be2e27da3102e9f0999bab06b544313","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0be2e27da3102e9f0999bab06b544313","lc":"no2011090962","term":"Rossolimo, Grigoriĭ Ivanovich, 1860-1928","key":"RossolimoGrigoriĭIvanovich1860-1928"} {"nliara":"000159417","selibr":"191053","version":"2013-07-01T14:07:50Z","_id":"0be5749bc5cd2620d955259d8764ef31","egaxa":"vtls000806176","bne":"xx1157245","dnb":"119526409","nla":"000035125590","term":"Ibn Qutaybah, ʻAbd Allāh ibn Muslim, 828-889?","key":"IbnQutaybahʻAbdAllāhibnMuslim828-889?","viafid":"17336324","nlilat":"000066436","merge":{"source":"viaf","id":"0be5749bc5cd2620d955259d8764ef31","type":"document"},"lc":"n83043339","bnf":"12551842","bav":"adv10299371"} {"viafid":"200220677","merge":{"source":"viaf","id":"0bf0f923a53ede8b30719e403be1c11b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0bf0f923a53ede8b30719e403be1c11b","dnb":"172582202","term":"Landré, George Nicolas, 1762-1824","key":"LandréGeorgeNicolas1762-1824"} {"version":"2013-07-01T14:07:50Z","_id":"0bfb2f2b849685526c8b4983fa3c437c","dnb":"118844431","term":"Möller, Eberhard Wolfgang (1906-1972)","key":"MöllerEberhardWolfgang(1906-1972)","viafid":"50022687","merge":{"source":"viaf","id":"0bfb2f2b849685526c8b4983fa3c437c","type":"document"},"lc":"n85057292"} {"nkc":"xx0150847","version":"2013-07-01T14:07:50Z","_id":"0c122418227c6ebf7ebd8eed91f8135d","dnb":"102762600","nla":"000035406854","term":"Palmén, E., 1898-1985, (Erik)","key":"PalménE1898-1985(Erik)","viafid":"39509314","merge":{"source":"viaf","id":"0c122418227c6ebf7ebd8eed91f8135d","type":"document"},"lc":"no2007068414","bnf":"12981645"} {"version":"2013-07-01T14:07:50Z","_id":"0c17ef143a12c52c7593c6957048c7c0","dnb":"11636341x","term":"Häpke, Rudolf, 1884-1930","key":"HäpkeRudolf1884-1930","viafid":"40128011","nlilat":"000530621","merge":{"source":"viaf","id":"0c17ef143a12c52c7593c6957048c7c0","type":"document"},"lc":"no97010368","bav":"adv10137458"} {"viafid":"185412290","merge":{"source":"viaf","id":"0c19339b32db062d00eef169cde79252","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0c19339b32db062d00eef169cde79252","lc":"nr00012282","term":"Yoshimi, Yoshiaki, 1946- | Jūgun ianfu. English","key":"YoshimiYoshiaki1946-|JūgunianfuEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0c310b9fc82f0c92a7db6eefb902a069","dnb":"119394510","term":"Šejka, Leonid, 1932-1970","key":"ŠejkaLeonid1932-1970","viafid":"69737954","merge":{"source":"viaf","id":"0c310b9fc82f0c92a7db6eefb902a069","type":"document"},"lc":"nr99028641"} {"nliara":"000246372","selibr":"218347","version":"2013-07-01T14:07:50Z","_id":"0c317a78084881f8e6b6eac34df666eb","egaxa":"vtls000852028","dnb":"118868233","nla":"000035244657","term":"Zurayq, Qusṭanṭīn, 1909-2000","key":"ZurayqQusṭanṭīn1909-2000","nlilat":"000146560","viafid":"22939272","merge":{"source":"viaf","id":"0c317a78084881f8e6b6eac34df666eb","type":"document"},"lc":"n82270605","bnf":"12133582","bav":"adv12490769"} {"selibr":"299997","version":"2013-07-01T14:07:50Z","_id":"0c321cdd9e30dc1294ab65ab278d33a3","bne":"xx866279","dnb":"118540742","nla":"000035133036","ptbnp":"79923","term":"González, Julio, 1876-1942","key":"GonzálezJulio1876-1942","viafid":"4960044","nlilat":"000410496","merge":{"source":"viaf","id":"0c321cdd9e30dc1294ab65ab278d33a3","type":"document"},"jpg":"500024353","lc":"n50043484","bnf":"12102718","bav":"adv10213428"} {"version":"2013-07-01T14:07:50Z","_id":"0c33c62403c4ad649c3f65ae2d690bd2","dnb":"116050365","term":"Baratier, François, 1682-1751","key":"BaratierFrançois1682-1751","viafid":"62290305","merge":{"source":"viaf","id":"0c33c62403c4ad649c3f65ae2d690bd2","type":"document"},"lc":"nr91009487"} {"nkc":"jx20070207001","version":"2013-07-01T14:07:50Z","_id":"0c343d6f38346ac7675873bd9477dbb9","dnb":"118973819","nla":"000035866652","term":"Andriolli, Michał Elwiro, 1836-1893","key":"AndriolliMichałElwiro1836-1893","viafid":"50025644","nlilat":"000010368","merge":{"source":"viaf","id":"0c343d6f38346ac7675873bd9477dbb9","type":"document"},"jpg":"500073832","lc":"n80148723","bnf":"11888842"} {"version":"2013-07-01T14:07:50Z","_id":"0c37c568159acea2b1b27231a6346955","dnb":"124817343","term":"Armengaud, Jacques-Eugène, 1810-1891","key":"ArmengaudJacques-Eugène1810-1891","viafid":"159767","merge":{"source":"viaf","id":"0c37c568159acea2b1b27231a6346955","type":"document"},"lc":"n88256903","bnf":"13475530"} {"nkc":"jo20000082489","selibr":"232115","version":"2013-07-01T14:07:50Z","_id":"0c38c5716f8a577ed2d4523328825d00","bne":"xx893071","dnb":"118644483","nla":"000036551688","ptbnp":"287","term":"Aldanov, Mark Aleksandrovič 1889-1957","key":"AldanovMarkAleksandrovič1889-1957","viafid":"100256052","nlilat":"000008342","nlicyr":"000147244","merge":{"source":"viaf","id":"0c38c5716f8a577ed2d4523328825d00","type":"document"},"lc":"n84204710","bnf":"12132372","bav":"adv10873268"} {"version":"2013-07-01T14:07:50Z","_id":"0c3af7531a6ae86b5a5e8b262af5e461","dnb":"118526340","term":"Dörpfeld, Friedrich Wilhelm, 1824-1893","key":"DörpfeldFriedrichWilhelm1824-1893","viafid":"20471563","nlilat":"000406829","merge":{"source":"viaf","id":"0c3af7531a6ae86b5a5e8b262af5e461","type":"document"},"lc":"n50028850","bav":"adv10227244"} {"nkc":"mzk2009510493","version":"2013-07-01T14:07:50Z","_id":"0c3dc90679162fb80abe5913a169cae4","dnb":"13389097x","nla":"000036020630","term":"Aubert de la Chesnaye-des-Bois, François-Alexandre, 1699-1784","key":"AubertdelaChesnaye-des-BoisFrançois-Alexandre1699-1784","viafid":"51802151","nlilat":"000013018","merge":{"source":"viaf","id":"0c3dc90679162fb80abe5913a169cae4","type":"document"},"lc":"no90023096","bnf":"12539429","bav":"adv10032449"} {"nkc":"mzk2004234281","version":"2013-07-01T14:07:50Z","_id":"0c4129814ef8ac3bf2dbb51dbe314690","dnb":"117683922","ptbnp":"47010","term":"Quérard, Joseph-Marie, 1797-1865","key":"QuérardJoseph-Marie1797-1865","viafid":"9937773","nlilat":"000523225","merge":{"source":"viaf","id":"0c4129814ef8ac3bf2dbb51dbe314690","type":"document"},"lc":"nr89003391","bnf":"12422351","bav":"adv11050052"} {"nkc":"jn19990004906","version":"2013-07-01T14:07:50Z","_id":"0c463703c7bbe1d11b82304bfdd341d0","dnb":"119172046","nla":"000035765635","ptbnp":"84691","term":"De Laveleye, Émile Louis Victor, 1822-1892","key":"DeLaveleyeÉmileLouisVictor1822-1892","viafid":"12339853","nlilat":"000462900","merge":{"source":"viaf","id":"0c463703c7bbe1d11b82304bfdd341d0","type":"document"},"lc":"n84135848","bnf":"12117322","bav":"adv10874948"} {"version":"2013-07-01T14:07:50Z","_id":"0c5483eddbe4489895a7acfb2f2c53cf","dnb":"100304567","term":"Massoulié, Antonin (1632-1706)","key":"MassouliéAntonin(1632-1706)","viafid":"52033741","merge":{"source":"viaf","id":"0c5483eddbe4489895a7acfb2f2c53cf","type":"document"},"bav":"adv10995044"} {"viafid":"26935908","merge":{"source":"viaf","id":"0c6b50aca864af04e08686a062794739","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0c6b50aca864af04e08686a062794739","lc":"nr93018046","term":"De Gouvêa, Alexandre, 1751-1808","key":"DeGouvêaAlexandre1751-1808"} {"nkc":"mzk2009528374","version":"2013-07-01T14:07:50Z","_id":"0c6c4c087e4eafe531b9c676956d3ade","dnb":"100102840","term":"Delbrück, Ferdinand, 1772-1848","key":"DelbrückFerdinand1772-1848","viafid":"76655444","merge":{"source":"viaf","id":"0c6c4c087e4eafe531b9c676956d3ade","type":"document"},"lc":"nr2002041667","bav":"adv10141934"} {"version":"2013-07-01T14:07:50Z","_id":"0c6d8ff88c4cc3b6fb315e83cef7ddfd","dnb":"116916338","term":"Guérin, Jules, 1801-1886","key":"GuérinJules1801-1886","viafid":"66563840","merge":{"source":"viaf","id":"0c6d8ff88c4cc3b6fb315e83cef7ddfd","type":"document"},"bnf":"12462139","bav":"adv10134822"} {"viafid":"185005790","merge":{"source":"viaf","id":"0c768174d747babce75da88fdd17e042","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0c768174d747babce75da88fdd17e042","lc":"no2011149688","term":"Engelhardt, Heinz, 1936- | Hochdruck-Flüssigkeits-Chromatographie. English","key":"EngelhardtHeinz1936-|Hochdruck-Flüssigkeits-ChromatographieEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0c949f3997b94b82b1e3ebcb923d7c03","dnb":"123044286","term":"Huszár, Vilmos, 1884-1960","key":"HuszárVilmos1884-1960","viafid":"27968832","merge":{"source":"viaf","id":"0c949f3997b94b82b1e3ebcb923d7c03","type":"document"},"jpg":"500012149","lc":"n84222126"} {"nkc":"jk01151482","version":"2013-07-01T14:07:50Z","_id":"0c95d2cc40b1b83662510a375b4f1f99","dnb":"121434354","term":"Weil, Jiří, 1900-1959","key":"WeilJiří1900-1959","viafid":"17278482","merge":{"source":"viaf","id":"0c95d2cc40b1b83662510a375b4f1f99","type":"document"},"lc":"no88001051","bnf":"12245477"} {"nkc":"jn19990008399","selibr":"95477","version":"2013-07-01T14:07:50Z","_id":"0c96100ad6ecc90eca42c5b5a20e637a","egaxa":"vtls001124370","bne":"xx1223734","dnb":"119449048","nla":"000035811541","ptbnp":"910861","term":"Szymborska, Wisława, 1923-2012","key":"SzymborskaWisława1923-2012","viafid":"88346011","nlilat":"000129149","merge":{"source":"viaf","id":"0c96100ad6ecc90eca42c5b5a20e637a","type":"document"},"lc":"n81035696","bnf":"12118182"} {"nkc":"jcu2012721145","version":"2013-07-01T14:07:50Z","_id":"0ca18ed2867025b393b053133fae9a13","dnb":"138445362","nla":"000049886082","term":"Willaert, Léopold, 1878-1963","key":"WillaertLéopold1878-1963","viafid":"34466149","merge":{"source":"viaf","id":"0ca18ed2867025b393b053133fae9a13","type":"document"},"bnf":"11996019","bav":"adv10183604"} {"nkc":"mzk2009510930","selibr":"338397","version":"2013-07-01T14:07:50Z","_id":"0ca82f349c75de71d8bcc560a947f379","dnb":"12208263x","term":"Gürtler, Nicolaus, 1654-1711","key":"GürtlerNicolaus1654-1711","nlilat":"000523586","viafid":"55020168","merge":{"source":"viaf","id":"0ca82f349c75de71d8bcc560a947f379","type":"document"},"lc":"nr89009958","bav":"adv10068847"} {"viafid":"78762051","selibr":"289202","merge":{"source":"viaf","id":"0cac38d3be3844f7df65298dc43af32f","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0cac38d3be3844f7df65298dc43af32f","term":"Tegnér, Christopher, 1807-1885","key":"TegnérChristopher1807-1885"} {"version":"2013-07-01T14:07:50Z","_id":"0cac5dc31fa0b80404311858184f7938","dnb":"158719301","nla":"000036019729","term":"Rizos Neroulos, Jakōbos, 1778-1849/50","key":"RizosNeroulosJakōbos1778-1849/50","viafid":"7520398","merge":{"source":"viaf","id":"0cac5dc31fa0b80404311858184f7938","type":"document"},"lc":"nr92000655","bnf":"12977083","bav":"adv12179668"} {"selibr":"268169","version":"2013-07-01T14:07:50Z","_id":"0cadd6086295c1eab4804102b7314707","dnb":"127292632","term":"Leander, Åke, 1919-2003","key":"LeanderÅke1919-2003","viafid":"71371646","merge":{"source":"viaf","id":"0cadd6086295c1eab4804102b7314707","type":"document"}} {"version":"2013-07-01T14:07:50Z","_id":"0cafa7b92e627e31380fc66f1e11bd4f","dnb":"118735055","term":"Münster, Hans A. 1901-1963","key":"MünsterHansA1901-1963","viafid":"22936766","nlilat":"000468353","merge":{"source":"viaf","id":"0cafa7b92e627e31380fc66f1e11bd4f","type":"document"},"lc":"n85058981"} {"nkc":"jn19990209034","version":"2013-07-01T14:07:50Z","_id":"0cb13e6232bd2acfee59cb73b5099dbf","dnb":"118850407","term":"Bednár, Alfonz, 1914-1989","key":"BednárAlfonz1914-1989","viafid":"36959832","merge":{"source":"viaf","id":"0cb13e6232bd2acfee59cb73b5099dbf","type":"document"},"lc":"n85165574","bnf":"12175626"} {"version":"2013-07-01T14:07:50Z","_id":"0cb2d1662c9bb4afa5c8b38d4fb5771a","dnb":"172319854","term":"Plaaß, Peter, 1934-1965","key":"PlaaßPeter1934-1965","viafid":"208615685","merge":{"source":"viaf","id":"0cb2d1662c9bb4afa5c8b38d4fb5771a","type":"document"},"lc":"n94008532","bnf":"12504267"} {"viafid":"274401699","merge":{"source":"viaf","id":"0cb563cb3268d3600255b91934b96294","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0cb563cb3268d3600255b91934b96294","dnb":"116888199","term":"Gründler, Carl August, 1769-1843","key":"GründlerCarlAugust1769-1843"} {"version":"2013-07-01T14:07:50Z","_id":"0cb8162365f84bfec6cef3edbaf8ab76","dnb":"116367334","term":"Gallée, Johan Hendrik, 1847-1908","key":"GalléeJohanHendrik1847-1908","nlilat":"000450063","viafid":"37015462","merge":{"source":"viaf","id":"0cb8162365f84bfec6cef3edbaf8ab76","type":"document"},"lc":"n82231018","bnf":"12465031"} {"nkc":"jn20020723170","nliara":"000158961","selibr":"62724","version":"2013-07-01T14:07:50Z","_id":"0ccc262ef7773b93f61a33e330c9b59d","egaxa":"vtls001509627","nla":"000035416285","term":"Ibn al-Jawzī, Abū al-Faraj ʻAbd al-Raḥmān ibn ʻAlī, ca 1116-1201","key":"Ibnal-JawzīAbūal-FarajʻAbdal-RaḥmānibnʻAlīca1116-1201","nlilat":"000066491","viafid":"100186291","merge":{"source":"viaf","id":"0ccc262ef7773b93f61a33e330c9b59d","type":"document"},"bnf":"12052125","bav":"adv10219685"} {"version":"2013-07-01T14:07:50Z","_id":"0cd10f96b0b78521f0d5fd69631b7a48","dnb":"130108081","term":"Macler, Frédéric, 1869-1938","key":"MaclerFrédéric1869-1938","viafid":"7513167","nlilat":"000087347","merge":{"source":"viaf","id":"0cd10f96b0b78521f0d5fd69631b7a48","type":"document"},"lc":"n82063735","bnf":"12730350","bav":"adv10179324"} {"nkc":"jcu2011666724","version":"2013-07-01T14:07:50Z","_id":"0cd9f08e8ce32b989dc3a240531ff5ad","dnb":"107654121","term":"Stürzinger, Jakob, 1853-1903","key":"StürzingerJakob1853-1903","viafid":"10370821","merge":{"source":"viaf","id":"0cd9f08e8ce32b989dc3a240531ff5ad","type":"document"},"lc":"n89608130","bav":"adv12290597"} {"nkc":"nlk20000088160","version":"2013-07-01T14:07:50Z","_id":"0cda7371e4e6163ad55e34dc1764d7d5","dnb":"117265063","term":"Stöhr, Philipp, 1849-1911","key":"StöhrPhilipp1849-1911","viafid":"64779480","nlilat":"000478208","merge":{"source":"viaf","id":"0cda7371e4e6163ad55e34dc1764d7d5","type":"document"},"lc":"n85809731"} {"viafid":"13876831","merge":{"source":"viaf","id":"0cefcb6e118099ad981df18655d19da0","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0cefcb6e118099ad981df18655d19da0","lc":"n88256560","term":"Behr, Frédéric, 1805-1863","key":"BehrFrédéric1805-1863"} {"version":"2013-07-01T14:07:50Z","_id":"0cf421f395faf1f7dd492bbdfcac0b2d","dnb":"11756463x","nla":"000035014300","term":"Barrault, Émile (1799-1869)","key":"BarraultÉmile(1799-1869)","viafid":"7386569","nlilat":"000493928","merge":{"source":"viaf","id":"0cf421f395faf1f7dd492bbdfcac0b2d","type":"document"},"lc":"n88130557","bnf":"11890310"} {"nkc":"js2007382546","version":"2013-07-01T14:07:50Z","_id":"0cfac024df6fc576fcb8849429018271","dnb":"129200727","term":"Wóycicki, Kazimierz, b. 1876","key":"WóycickiKazimierzb1876","viafid":"3546002","nlilat":"000318400","merge":{"source":"viaf","id":"0cfac024df6fc576fcb8849429018271","type":"document"},"lc":"no95009982"} {"selibr":"104062","version":"2013-07-01T14:07:50Z","_id":"0d0347b9d673fa0837389c7778881029","dnb":"119480840","nla":"000035904497","term":"Åkerman, Johan, 1896-1982","key":"ÅkermanJohan1896-1982","viafid":"4992460","merge":{"source":"viaf","id":"0d0347b9d673fa0837389c7778881029","type":"document"},"lc":"n79060752","bnf":"12280744","bav":"adv12095662"} {"version":"2013-07-01T14:07:50Z","_id":"0d046c7e1361b56324a97c0c96f9ebb9","dnb":"100204198","ptbnp":"96863","term":"Marquet, François Nicolas, 1687-1759","key":"MarquetFrançoisNicolas1687-1759","viafid":"34796299","merge":{"source":"viaf","id":"0d046c7e1361b56324a97c0c96f9ebb9","type":"document"},"lc":"n2001061082","bav":"adv10954696"} {"selibr":"189040","version":"2013-07-01T14:07:50Z","_id":"0d06c7c564a081727520c9f455d2becb","dnb":"171499689","term":"Gårdlund, Torsten, 1911-2003","key":"GårdlundTorsten1911-2003","viafid":"201546144","merge":{"source":"viaf","id":"0d06c7c564a081727520c9f455d2becb","type":"document"},"bnf":"12238024"} {"nkc":"xx0009086","selibr":"292114","version":"2013-07-01T14:07:50Z","_id":"0d08d5e826896f3002eee6cf5ced023e","bne":"xx1142073","dnb":"119089580","nla":"000035017084","ptbnp":"223562","term":"De Belleforest, François, 1530-1583","key":"DeBelleforestFrançois1530-1583","viafid":"61541619","nlilat":"000435080","merge":{"source":"viaf","id":"0d08d5e826896f3002eee6cf5ced023e","type":"document"},"lc":"n81025991","bnf":"11891047","bav":"adv10133457"} {"version":"2013-07-01T14:07:50Z","_id":"0d0b7c265587574dbf77eed551f6fe4a","dnb":"11663510x","term":"Föppl, A., 1854-1924","key":"FöpplA1854-1924","viafid":"52446756","nlilat":"000050357","merge":{"source":"viaf","id":"0d0b7c265587574dbf77eed551f6fe4a","type":"document"},"lc":"n91085919"} {"version":"2013-07-01T14:07:50Z","_id":"0d0c5be53ff4901fb1e2d2c4177a9665","dnb":"118092847","term":"Bujac, Jean Léopold Emile, 1852-1935","key":"BujacJeanLéopoldEmile1852-1935","viafid":"3259121","merge":{"source":"viaf","id":"0d0c5be53ff4901fb1e2d2c4177a9665","type":"document"},"lc":"n90609786","bnf":"11264035"} {"version":"2013-07-01T14:07:50Z","_id":"0d11020628f0c1bc9fa2e52944540338","dnb":"155182145","term":"Ōjihara, Yutaka, 1923-1991","key":"ŌjiharaYutaka1923-1991","viafid":"24667950","merge":{"source":"viaf","id":"0d11020628f0c1bc9fa2e52944540338","type":"document"},"lc":"n89670444","bnf":"12305125"} {"viafid":"181616576","merge":{"source":"viaf","id":"0d3b0ba1ad64e2f4fcce69fcc27eb973","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0d3b0ba1ad64e2f4fcce69fcc27eb973","lc":"n2008076342","term":"Yamaguchi, Zuihō, 1926- | Chibetto. Chinese","key":"YamaguchiZuihō1926-|ChibettoChinese"} {"nkc":"xx0029954","selibr":"187317","version":"2013-07-01T14:07:50Z","_id":"0d4b70fadb4c3e6a29966a85088ab8e0","dnb":"118534726","term":"François-Poncet, André, 1887-1978","key":"François-PoncetAndré1887-1978","nlilat":"000048789","viafid":"29533980","merge":{"source":"viaf","id":"0d4b70fadb4c3e6a29966a85088ab8e0","type":"document"},"lc":"n85381411","bnf":"11903434","bav":"adv10182017"} {"viafid":"208860535","merge":{"source":"viaf","id":"0d4f6eebbda90f2e276e84eb1616b128","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0d4f6eebbda90f2e276e84eb1616b128","term":"Lemaître, Henri, 1851-1946","key":"LemaîtreHenri1851-1946"} {"version":"2013-07-01T14:07:50Z","_id":"0d538ed3853ca271d1ee0bf33560a39b","dnb":"115430989","term":"Riboutté, François-Louis 1770-1834","key":"RibouttéFrançois-Louis1770-1834","viafid":"68935013","merge":{"source":"viaf","id":"0d538ed3853ca271d1ee0bf33560a39b","type":"document"},"lc":"nr95020680","bnf":"11921804"} {"nkc":"jn20000720221","version":"2013-07-01T14:07:50Z","_id":"0d5c2a6f1c5b22c9eaf86831f81181e8","dnb":"119390256","nla":"000035579842","term":"Pelouze, Théophile-Jules (1807-1867)","key":"PelouzeThéophile-Jules(1807-1867)","viafid":"39487493","merge":{"source":"viaf","id":"0d5c2a6f1c5b22c9eaf86831f81181e8","type":"document"},"lc":"nr96026093","bnf":"12529341"} {"nkc":"hka2011644356","version":"2013-07-01T14:07:50Z","_id":"0d6540c989fce3572e090c261a2c6e7d","dnb":"101367112","term":"Brière, Gaston, 1871-1962","key":"BrièreGaston1871-1962","nlilat":"000523635","viafid":"22161070","merge":{"source":"viaf","id":"0d6540c989fce3572e090c261a2c6e7d","type":"document"},"lc":"nr89010853","bnf":"12052786","bav":"adv11356055"} {"nkc":"xx0006322","version":"2013-07-01T14:07:50Z","_id":"0d6a1cf8afcaf281258fc57ed977d47b","dnb":"118986716","nla":"000035821306","term":"Đalski, Ksaver Šandor, 1854-1935","key":"ĐalskiKsaverŠandor1854-1935","nlilat":"000256256","viafid":"17362607","merge":{"source":"viaf","id":"0d6a1cf8afcaf281258fc57ed977d47b","type":"document"},"lc":"n82081914","bnf":"13180765"} {"viafid":"267967935","merge":{"source":"viaf","id":"0d6a6cfff71b0a9055c00fb5733016e5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0d6a6cfff71b0a9055c00fb5733016e5","dnb":"124664032","term":"Plöchinger, Benno 1917-2006","key":"PlöchingerBenno1917-2006"} {"version":"2013-07-01T14:07:50Z","_id":"0d77900253ba388b5255d55ef81c9d7f","bne":"xx924118","nla":"000036591700","term":"Giménez-Frontín, José Luis 1943-2008","key":"Giménez-FrontínJoséLuis1943-2008","viafid":"34467951","merge":{"source":"viaf","id":"0d77900253ba388b5255d55ef81c9d7f","type":"document"},"lc":"n79059089","bnf":"12015500"} {"viafid":"279610630","selibr":"284122","merge":{"source":"viaf","id":"0d7da04566ad2be7a22cc8be18e81028","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0d7da04566ad2be7a22cc8be18e81028","term":"Lilljebjörn, Erik Gustaf Jonas, 1848-1925","key":"LilljebjörnErikGustafJonas1848-1925"} {"version":"2013-07-01T14:07:50Z","_id":"0d7dade0911712b55aa24d96a9d3524a","dnb":"102089590","term":"Provó Kluit, Hendrik, 1803-1860","key":"ProvóKluitHendrik1803-1860","viafid":"54529531","merge":{"source":"viaf","id":"0d7dade0911712b55aa24d96a9d3524a","type":"document"},"lc":"n85248076"} {"viafid":"174732175","merge":{"source":"viaf","id":"0d88f308f076eaedd7ffdd41c9207753","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0d88f308f076eaedd7ffdd41c9207753","lc":"n2004043153","term":"Guégan, Gérard, 1942- | Seul ensemble","key":"GuéganGérard1942-|Seulensemble"} {"version":"2013-07-01T14:07:50Z","_id":"0d89f4c1368cc3443b30bf0223ee69d1","bne":"xx2348633","term":"Antunes, António Lobo 1942- | Biblioteca Lobo Antunes","key":"AntunesAntónioLobo1942-|BibliotecaLoboAntunes","viafid":"182211032","merge":{"source":"viaf","id":"0d89f4c1368cc3443b30bf0223ee69d1","type":"document"},"lc":"no2005039578"} {"nkc":"mzk2009511598","version":"2013-07-01T14:07:50Z","_id":"0d8c1d1c4cae1333c440e2be5a99cc4f","dnb":"118866737","nla":"000035757848","term":"Quatremère de Quincy, Antoine-Chrysostome, 1755-1849","key":"QuatremèredeQuincyAntoine-Chrysostome1755-1849","viafid":"29539526","nlilat":"000428576","merge":{"source":"viaf","id":"0d8c1d1c4cae1333c440e2be5a99cc4f","type":"document"},"jpg":"500033639","lc":"n80059796","bnf":"11920830","bav":"adv10163258"} {"version":"2013-07-01T14:07:50Z","_id":"0d8ca45ad1ce4eff41c281326fcb9786","dnb":"119804867","term":"Richardot, François, 1507-1574","key":"RichardotFrançois1507-1574","viafid":"78715907","merge":{"source":"viaf","id":"0d8ca45ad1ce4eff41c281326fcb9786","type":"document"},"lc":"nr2002028465","bav":"adv11135631"} {"nkc":"jn19990210299","selibr":"213389","version":"2013-07-01T14:07:50Z","_id":"0d908b08f07fa23b335207b78606b91f","bne":"xx886759","dnb":"118556193","nla":"000036369859","term":"Ivanov, Vjačeslav Ivanovič, 1866-1949","key":"IvanovVjačeslavIvanovič1866-1949","viafid":"68930563","nlilat":"000069765","nlicyr":"000151228","merge":{"source":"viaf","id":"0d908b08f07fa23b335207b78606b91f","type":"document"},"lc":"n80089640","bnf":"11908326","bav":"adv10219564"} {"nkc":"jn19990210290","_id":"0d921699c4cdaccfdf25b7961b7aa557","bne":"xx1066187","dnb":"118675427","nla":"000035777950","ptbnp":"671963","term":"Chačaturjan, Aram Il'ič, 1903-1978","key":"ChačaturjanAramIl'ič1903-1978","viafid":"19865761","merge":{"source":"viaf","id":"0d921699c4cdaccfdf25b7961b7aa557","type":"document"},"bnf":"13895967","selibr":"45666","version":"2013-07-01T14:07:50Z","swnl":"vtls000044089","nlilat":"000075515","nlicyr":"000157997","lc":"n81059831"} {"version":"2013-07-01T14:07:50Z","_id":"0da37aeeadc6cd096b3e160ee7017e81","dnb":"1012408485","term":"Moh, Günter 1929-1993","key":"MohGünter1929-1993","viafid":"43095460","merge":{"source":"viaf","id":"0da37aeeadc6cd096b3e160ee7017e81","type":"document"},"lc":"n78048959"} {"version":"2013-07-01T14:07:50Z","_id":"0da6eb9390fd6a3232bf28ccfdedbfbd","dnb":"119554518","ptbnp":"140206","term":"Much, Matthäus, 1832-1909","key":"MuchMatthäus1832-1909","viafid":"45114674","merge":{"source":"viaf","id":"0da6eb9390fd6a3232bf28ccfdedbfbd","type":"document"},"lc":"no2008179776","bav":"adv12167851"} {"nkc":"ola2003162780","version":"2013-07-01T14:07:50Z","_id":"0db248862775acb9e5344df646af375d","dnb":"124019307","nla":"000035645036","term":"Fersman, A. E., 1883-1945, (Aleksandr Evgenʹevich)","key":"FersmanAE1883-1945(AleksandrEvgenʹevich)","viafid":"3394664","nlicyr":"000366728","merge":{"source":"viaf","id":"0db248862775acb9e5344df646af375d","type":"document"},"lc":"n80149916"} {"viafid":"275893","merge":{"source":"viaf","id":"0db63c09c9c039737cead7c4aba2a4d9","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0db63c09c9c039737cead7c4aba2a4d9","bnf":"14802102","term":"Mouzin, Édouard 1822-1894","key":"MouzinÉdouard1822-1894"} {"version":"2013-07-01T14:07:50Z","_id":"0db6a378901fe3736da78a1853b6f709","dnb":"117330426","term":"Schloßmacher, Karl, 1887-1980","key":"SchloßmacherKarl1887-1980","viafid":"116400696","nlilat":"000488124","merge":{"source":"viaf","id":"0db6a378901fe3736da78a1853b6f709","type":"document"},"lc":"n87818615"} {"nkc":"utb2009505221","version":"2013-07-01T14:07:50Z","_id":"0dc6029867e2dc01df6e53726430a960","dnb":"122194500","term":"Meyer-Stamer, Jörg, 1958-2009","key":"Meyer-StamerJörg1958-2009","viafid":"42713678","merge":{"source":"viaf","id":"0dc6029867e2dc01df6e53726430a960","type":"document"},"lc":"nr88001110"} {"nkc":"jk01140140","selibr":"347172","version":"2013-07-01T14:07:50Z","_id":"0dcc07561b14205dfa907ef5ea4f68f1","dnb":"119015439","nla":"000036271261","term":"Trnka, Jiří, 1912-1969","key":"TrnkaJiří1912-1969","viafid":"27072375","nlilat":"000249003","merge":{"source":"viaf","id":"0dcc07561b14205dfa907ef5ea4f68f1","type":"document"},"lc":"n81108583","bnf":"11927123"} {"viafid":"183476808","merge":{"source":"viaf","id":"0dce28fc37e89fdbd1fb5303b8c54960","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0dce28fc37e89fdbd1fb5303b8c54960","lc":"n82270890","term":"Tünnermann Bernheim, Carlos, 1933- | Sesenta años de la reforma universitaria de Córdoba, 1918-1978","key":"TünnermannBernheimCarlos1933-|SesentaañosdelareformauniversitariadeCórdoba1918-1978"} {"version":"2013-07-01T14:07:50Z","_id":"0dcf234aca92746d45a9c8f135ca0401","dnb":"118964844","term":"Van Goens, Rijklof Michaël, 1748-1810","key":"VanGoensRijklofMichaël1748-1810","viafid":"76442020","nlilat":"000398227","merge":{"source":"viaf","id":"0dcf234aca92746d45a9c8f135ca0401","type":"document"},"lc":"n88253924","bnf":"12784344","bav":"adv12488416"} {"viafid":"289776829","merge":{"source":"viaf","id":"0dd1c91db9067e1e91d7b0213232a415","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0dd1c91db9067e1e91d7b0213232a415","term":"Stanski, Gaëtan Pierre, 1807-1879","key":"StanskiGaëtanPierre1807-1879"} {"nkc":"jn19990210139","_id":"0dddacf71ac77b52f33212dd0ed427dc","egaxa":"vtls001068508","bne":"xx1159306","dnb":"118638084","nla":"000036145708","ptbnp":"39251","term":"Bunin, Ivan Alekseevič, 1870-1953","key":"BuninIvanAlekseevič1870-1953","viafid":"7387402","merge":{"source":"viaf","id":"0dddacf71ac77b52f33212dd0ed427dc","type":"document"},"bnf":"11893350","selibr":"220532","version":"2013-07-01T14:07:50Z","swnl":"vtls000036816","nlicyr":"000148988","nlilat":"000026444","lc":"n80028431"} {"nkc":"ola2007404638","selibr":"336218","version":"2013-07-01T14:07:50Z","_id":"0de06cae674edbf886e528a1a9a62c97","dnb":"117592803","term":"Müller, Johann Heinrich Jacob, 1809-1875","key":"MüllerJohannHeinrichJacob1809-1875","viafid":"32777854","nlilat":"000484695","merge":{"source":"viaf","id":"0de06cae674edbf886e528a1a9a62c97","type":"document"},"lc":"n86840984"} {"nkc":"ola2003199600","version":"2013-07-01T14:07:50Z","_id":"0de229987ab5a04d9b19e21d6f6e69ab","dnb":"129010596","term":"Łasicki, Jan, 1534-1605","key":"ŁasickiJan1534-1605","viafid":"265803596","nlilat":"000481864","merge":{"source":"viaf","id":"0de229987ab5a04d9b19e21d6f6e69ab","type":"document"},"lc":"n86097277","bav":"adv10870843"} {"nkc":"kup19980000017516","selibr":"182925","version":"2013-07-01T14:07:50Z","_id":"0de536a793a5732bcd3129ccdb5b8634","bne":"xx1131016","dnb":"118677276","swnl":"vtls000051810","nla":"000035032083","ptbnp":"54654","term":"De Crébillon, Claude-Prosper Jolyot, 1707-1777","key":"DeCrébillonClaude-ProsperJolyot1707-1777","viafid":"24600044","nlilat":"000035875","merge":{"source":"viaf","id":"0de536a793a5732bcd3129ccdb5b8634","type":"document"},"lc":"n50017130","bnf":"11898114","bav":"adv10138107"} {"version":"2013-07-01T14:07:50Z","_id":"0de77299cbc27e571f919464dd45e29e","nla":"000035129775","term":"Dussane, Béatrix, 1888-1969","key":"DussaneBéatrix1888-1969","nlilat":"000414404","viafid":"79078480","merge":{"source":"viaf","id":"0de77299cbc27e571f919464dd45e29e","type":"document"},"lc":"n78007044","bnf":"12210660"} {"version":"2013-07-01T14:07:50Z","_id":"0e075a99b15576a4e2d54e0f36be31b1","dnb":"119302179","term":"Blaze, Elzéar, 1786-1848","key":"BlazeElzéar1786-1848","nlilat":"000511655","viafid":"100298928","merge":{"source":"viaf","id":"0e075a99b15576a4e2d54e0f36be31b1","type":"document"},"lc":"n94092630","bnf":"12662470"} {"nkc":"xx0091675","version":"2013-07-01T14:07:50Z","_id":"0e0803083e84c67c9f5b2906ef1163c2","dnb":"104080485","ptbnp":"158974","term":"Böhmert, Victor (1829-1918)","key":"BöhmertVictor(1829-1918)","viafid":"22568016","merge":{"source":"viaf","id":"0e0803083e84c67c9f5b2906ef1163c2","type":"document"}} {"version":"2013-07-01T14:07:50Z","_id":"0e16a49d225d69fa660864f97143ce3f","dnb":"119014416","term":"Lévy, Michel, 1821-1875","key":"LévyMichel1821-1875","viafid":"17253800","merge":{"source":"viaf","id":"0e16a49d225d69fa660864f97143ce3f","type":"document"},"lc":"n84193991","bnf":"12110020"} {"nkc":"nlk20000090049","version":"2013-07-01T14:07:50Z","_id":"0e1a64e180204f0f0a89a51b6fce0aec","dnb":"116168080","term":"Pflüger, Eduard Friedrich Wilhelm (1829-1910)","key":"PflügerEduardFriedrichWilhelm(1829-1910)","viafid":"20424836","merge":{"source":"viaf","id":"0e1a64e180204f0f0a89a51b6fce0aec","type":"document"},"lc":"n85033204"} {"nkc":"mzk2009510623","selibr":"286673","version":"2013-07-01T14:07:50Z","_id":"0e1c30b1441bcb480beadd75adabeeff","bne":"xx837505","dnb":"123315352","term":"Brisson, Barnabé, 1531-1591","key":"BrissonBarnabé1531-1591","viafid":"19865","nlilat":"000468663","merge":{"source":"viaf","id":"0e1c30b1441bcb480beadd75adabeeff","type":"document"},"lc":"n85068727","bnf":"11984672","bav":"adv10108718"} {"version":"2013-07-01T14:07:50Z","_id":"0e1d0bb2873e8724f44acfbf80d38d83","dnb":"141162651","term":"Waller, F. G., 1867-1934, (François Gerard)","key":"WallerFG1867-1934(FrançoisGerard)","viafid":"120401780","merge":{"source":"viaf","id":"0e1d0bb2873e8724f44acfbf80d38d83","type":"document"},"lc":"n82000684"} {"nkc":"jx20111222009","version":"2013-07-01T14:07:50Z","_id":"0e20eb516c2a20b696445a41d49f0a9b","dnb":"151609896","term":"Brancour, René, 1862-1948","key":"BrancourRené1862-1948","nlilat":"000529499","viafid":"5197311","merge":{"source":"viaf","id":"0e20eb516c2a20b696445a41d49f0a9b","type":"document"},"lc":"nr95031656","bnf":"14842061","bav":"adv11484442"} {"version":"2013-07-01T14:07:50Z","_id":"0e283dfa306747436735242d416e753b","dnb":"137481233","nla":"000035958867","term":"Meyer, Michael, 1945-...., professeur de littérature","key":"MeyerMichael1945-professeurdelittérature","viafid":"108719909","nlilat":"000423525","merge":{"source":"viaf","id":"0e283dfa306747436735242d416e753b","type":"document"},"lc":"n79115521","bnf":"12348664"} {"version":"2013-07-01T14:07:50Z","_id":"0e37b01c16a4474130556cc6e83fc883","dnb":"152110461","term":"Ristelhueber, René, 1881-1960","key":"RistelhueberRené1881-1960","viafid":"221617447","nlilat":"000111831","merge":{"source":"viaf","id":"0e37b01c16a4474130556cc6e83fc883","type":"document"},"lc":"no98070124","bnf":"12462131","bav":"adv11136424"} {"version":"2013-07-01T14:07:50Z","_id":"0e3c74c95aa91d82ef22d793b5b27975","dnb":"117708070","term":"Bergmann, Günter, 1910-1998","key":"BergmannGünter1910-1998","viafid":"32022641","merge":{"source":"viaf","id":"0e3c74c95aa91d82ef22d793b5b27975","type":"document"},"lc":"n83017393"} {"version":"2013-07-01T14:07:50Z","_id":"0e441e0bb761aebd15b0f62a8c11628c","dnb":"119035944","nla":"000035771263","term":"Prémare, Joseph Henri, 1666-1736","key":"PrémareJosephHenri1666-1736","viafid":"77116925","merge":{"source":"viaf","id":"0e441e0bb761aebd15b0f62a8c11628c","type":"document"},"lc":"nr92025347","bnf":"12122472","bav":"adv11101689"} {"viafid":"290468810","merge":{"source":"viaf","id":"0e596d6ed6166b545e05beeb2709a917","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0e596d6ed6166b545e05beeb2709a917","term":"De Maeyer, Aloi͏̈s, 1888-1973","key":"DeMaeyerAloi͏̈s1888-1973"} {"version":"2013-07-01T14:07:50Z","_id":"0e5e3f24fbed75f7fc072eba0d4ae00a","bne":"xx996166","dnb":"142705241","term":"Le Cerf de la Viéville, Jean-Laurent, 1674-1707","key":"LeCerfdelaViévilleJean-Laurent1674-1707","viafid":"74577825","nlilat":"000500134","merge":{"source":"viaf","id":"0e5e3f24fbed75f7fc072eba0d4ae00a","type":"document"},"lc":"n89629099","bnf":"12103149"} {"version":"2013-07-01T14:07:50Z","_id":"0e6bbb2b44222826b0166b00f288c754","dnb":"151375550","term":"Sallnäs, Hilding (1902-1989)","key":"SallnäsHilding(1902-1989)","viafid":"38260286","merge":{"source":"viaf","id":"0e6bbb2b44222826b0166b00f288c754","type":"document"},"lc":"n82075536"} {"version":"2013-07-01T14:07:50Z","_id":"0e6dd60204af837812d065d12c5260ee","dnb":"117613770","nla":"000035964602","ptbnp":"280861","term":"Ledrain, Eugène, 1844-1910","key":"LedrainEugène1844-1910","viafid":"34585328","merge":{"source":"viaf","id":"0e6dd60204af837812d065d12c5260ee","type":"document"},"lc":"no2004118005","bnf":"12791525","bav":"adv10109669"} {"nkc":"mub2012721647","version":"2013-07-01T14:07:50Z","_id":"0e6fe1039278b5f9765de1d73df1369f","dnb":"171997670","nla":"000036000025","ptbnp":"58420","term":"Huet, Gédéon Busken, 1860-1921","key":"HuetGédéonBusken1860-1921","viafid":"64087869","merge":{"source":"viaf","id":"0e6fe1039278b5f9765de1d73df1369f","type":"document"},"lc":"no2006006757","bnf":"12384910","bav":"adv10179609"} {"viafid":"279146848","merge":{"source":"viaf","id":"0e7163f9e5665d7f661c5330e67dca1e","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0e7163f9e5665d7f661c5330e67dca1e","lc":"no2012136795","term":"Mančev, Vase, 1949- | Šuplivi orevi. English","key":"MančevVase1949-|ŠuplivioreviEnglish"} {"viafid":"176213157","merge":{"source":"viaf","id":"0e7f0fa71072dd4ce7b328baaeb656f2","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0e7f0fa71072dd4ce7b328baaeb656f2","lc":"n84038870","term":"Cienfuegos, Fermán, 1947- | Habla el comandante Fermán Cienfuegos. English","key":"CienfuegosFermán1947-|HablaelcomandanteFermánCienfuegosEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0e8788ebf1d57e2bab3bc8e3021a6597","dnb":"172684811","nla":"000036022185","term":"Chapuis, Félicien, 1824-1879","key":"ChapuisFélicien1824-1879","viafid":"69022505","merge":{"source":"viaf","id":"0e8788ebf1d57e2bab3bc8e3021a6597","type":"document"},"lc":"n92040537","bnf":"12437293"} {"nkc":"xx0132639","version":"2013-07-01T14:07:50Z","_id":"0e9185b8ce0f0a2d4c7b593c531d28a1","dnb":"117681857","nla":"000035248871","term":"Verboeckhoven, Eugène-Joseph, 1798-1881","key":"VerboeckhovenEugène-Joseph1798-1881","viafid":"95692980","merge":{"source":"viaf","id":"0e9185b8ce0f0a2d4c7b593c531d28a1","type":"document"},"jpg":"500002047","lc":"no2006080275","bnf":"14966523"} {"viafid":"108724485","merge":{"source":"viaf","id":"0ea820b31fc39adedb07b444b7434e55","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0ea820b31fc39adedb07b444b7434e55","lc":"n79010809","term":"Kobayashi, Chishō, 1911-1974","key":"KobayashiChishō1911-1974"} {"version":"2013-07-01T14:07:50Z","_id":"0ea8654fc1a4e9f1049e93c661ff1225","dnb":"103173684","nla":"000036082169","term":"Mētsakēs, Michaēl, 1868?-1916","key":"MētsakēsMichaēl1868?-1916","viafid":"51839530","merge":{"source":"viaf","id":"0ea8654fc1a4e9f1049e93c661ff1225","type":"document"},"lc":"nr90012174"} {"version":"2013-07-01T14:07:50Z","_id":"0ea9351580e7d75545c0c149bd982a9f","term":"Machelard, Eugène, 1815-1880","key":"MachelardEugène1815-1880","viafid":"89166685","merge":{"source":"viaf","id":"0ea9351580e7d75545c0c149bd982a9f","type":"document"},"lc":"no2010117826","bav":"adv10891687"} {"version":"2013-07-01T14:07:50Z","_id":"0eb8a7f0e2dd692c7c63e0f0847f40bb","dnb":"117038881","term":"Nörrenberg, C., 1862-1937","key":"NörrenbergC1862-1937","viafid":"10612611","merge":{"source":"viaf","id":"0eb8a7f0e2dd692c7c63e0f0847f40bb","type":"document"},"lc":"nr2003040472"} {"nkc":"jk01093344","version":"2013-07-01T14:07:50Z","_id":"0ebeca200cee3ec7707f30fd921025f5","dnb":"103338594","term":"Plachta, Jindřich, 1899-1951","key":"PlachtaJindřich1899-1951","viafid":"66877206","nlilat":"000106206","merge":{"source":"viaf","id":"0ebeca200cee3ec7707f30fd921025f5","type":"document"},"lc":"nr87000471"} {"nkc":"mzk2007430464","selibr":"44249","version":"2013-07-01T14:07:50Z","_id":"0ec381ef78b87472a39195a120d223ce","dnb":"123891361","term":"Büchsenschütz, B., 1828-1922","key":"BüchsenschützB1828-1922","nlilat":"000466662","viafid":"19762056","merge":{"source":"viaf","id":"0ec381ef78b87472a39195a120d223ce","type":"document"},"lc":"n84806564","bnf":"12395843","bav":"adv12180050"} {"version":"2013-07-01T14:07:50Z","_id":"0ece6c301030863a054d62690594c45c","dnb":"116184442","term":"Bjørnbo, Axel Anthon, 1874-1911","key":"BjørnboAxelAnthon1874-1911","viafid":"12607369","nlilat":"000565910","merge":{"source":"viaf","id":"0ece6c301030863a054d62690594c45c","type":"document"},"lc":"n89631377","bnf":"15335841","bav":"adv10180825"} {"version":"2013-07-01T14:07:50Z","_id":"0ed394ec6506428d2dd5e5f4a3154834","dnb":"116640901","nla":"000036022768","term":"Lacordaire, Théodore, 1801-1870","key":"LacordaireThéodore1801-1870","viafid":"42594135","merge":{"source":"viaf","id":"0ed394ec6506428d2dd5e5f4a3154834","type":"document"},"lc":"n92040532","bnf":"13483831"} {"nkc":"js2008443334","version":"2013-07-01T14:07:50Z","_id":"0ed8e49e715d13cf2a42961776aab666","dnb":"104357347","nla":"000035121260","term":"Timašev, Nikolaj Sergeevič, 1886-1970","key":"TimaševNikolajSergeevič1886-1970","viafid":"44363458","nlilat":"000131503","merge":{"source":"viaf","id":"0ed8e49e715d13cf2a42961776aab666","type":"document"},"lc":"n50012948","bnf":"12298069","bav":"adv11306603"} {"viafid":"175003053","merge":{"source":"viaf","id":"0edbf05dd0d593ce3fdc3c3de16149bb","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0edbf05dd0d593ce3fdc3c3de16149bb","bne":"xx3384826","term":"Pombo, Álvaro 1939- | El héroe de las mansardas de Mansard Alemán","key":"PomboÁlvaro1939-|ElhéroedelasmansardasdeMansardAlemán"} {"nkc":"nlk20000083849","version":"2013-07-01T14:07:50Z","_id":"0ee157a23b92aaa2068f99d7bd1397a7","egaxa":"vtls000081511","dnb":"117691569","term":"Clot, Antoine-Barthélémy, 1793-1868","key":"ClotAntoine-Barthélémy1793-1868","nlilat":"000032555","viafid":"81980325","merge":{"source":"viaf","id":"0ee157a23b92aaa2068f99d7bd1397a7","type":"document"},"lc":"nr92003031","bnf":"12356531","bav":"adv10049373"} {"nkc":"ola2002152597","version":"2013-07-01T14:07:50Z","_id":"0ee69f56297059a0c0aeb34dafdc0a67","dnb":"11865828x","nla":"000035383352","ptbnp":"39123","term":"Benveniste, Émile, 1902-1976","key":"BenvenisteÉmile1902-1976","nlicyr":"000148241","nlilat":"000018742","viafid":"12372277","merge":{"source":"viaf","id":"0ee69f56297059a0c0aeb34dafdc0a67","type":"document"},"lc":"n78096113","bnf":"12292189","bav":"adv10183689"} {"version":"2013-07-01T14:07:50Z","_id":"0eeb4de16481eec3e3f44d7195454b70","dnb":"123065984","term":"Beyens, Eugène, 1855-1934","key":"BeyensEugène1855-1934","viafid":"66558771","nlilat":"000454466","merge":{"source":"viaf","id":"0eeb4de16481eec3e3f44d7195454b70","type":"document"},"lc":"n83131223","bnf":"12436862","bav":"adv10047100"} {"viafid":"179100705","merge":{"source":"viaf","id":"0ef6f7057b84daae59d2ec1234343784","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0ef6f7057b84daae59d2ec1234343784","lc":"n92052984","term":"Pleijel, Agneta, 1940- | Ögon ur en dröm. English","key":"PleijelAgneta1940-|ÖgonurendrömEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"0ef7896b0b6f17042c2a29db13cc3e7e","dnb":"180610783","term":"Constant, Léonard, d. 1610","key":"ConstantLéonardd1610","viafid":"81807326","merge":{"source":"viaf","id":"0ef7896b0b6f17042c2a29db13cc3e7e","type":"document"},"lc":"nr93019262","bnf":"10430708"} {"viafid":"178891954","merge":{"source":"viaf","id":"0ef9becce1ae1422064ccd31b09450e1","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0ef9becce1ae1422064ccd31b09450e1","lc":"no2007003544","term":"Chang, Chʻung-ho, 1914- | Poems. English & Chinese. Selections","key":"ChangChʻung-ho1914-|PoemsEnglish&ChineseSelections"} {"viafid":"181453740","merge":{"source":"viaf","id":"0efdef64f8a8c12cb7ed1e0215ccb376","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0efdef64f8a8c12cb7ed1e0215ccb376","lc":"n83301850","term":"Moisan, Clément, 1933-, Poetry of frontiers","key":"MoisanClément1933-Poetryoffrontiers"} {"version":"2013-07-01T14:07:50Z","_id":"0f01d861478596f9fd5fdd08d9757f1e","dnb":"124968740","term":"Kneżević, Božidar (1862-1905)","key":"KneżevićBožidar(1862-1905)","viafid":"25550737","merge":{"source":"viaf","id":"0f01d861478596f9fd5fdd08d9757f1e","type":"document"},"lc":"n80070545"} {"version":"2013-07-01T14:07:50Z","_id":"0f02ab2bd5aed6d8fcb45b44f8a851fa","term":"Armand, François Huguet, 1699-1765","key":"ArmandFrançoisHuguet1699-1765","viafid":"34765388","merge":{"source":"viaf","id":"0f02ab2bd5aed6d8fcb45b44f8a851fa","type":"document"},"lc":"no2009091501","bnf":"15536062"} {"version":"2013-07-01T14:07:50Z","_id":"0f16ea57d2f23eb9cec9b0e32497d55f","dnb":"116859989","term":"Schönbach, Anton Emanuel (1848-1911)","key":"SchönbachAntonEmanuel(1848-1911)","viafid":"7520092","nlilat":"000504074","merge":{"source":"viaf","id":"0f16ea57d2f23eb9cec9b0e32497d55f","type":"document"},"lc":"n90695936","bnf":"12969025","bav":"adv11990615"} {"version":"2013-07-01T14:07:50Z","_id":"0f189b1655d62698c32a0a6f4d24b425","dnb":"118750267","term":"Rühl, Alfred, 1882-1935","key":"RühlAlfred1882-1935","viafid":"807843","nlilat":"000475766","merge":{"source":"viaf","id":"0f189b1655d62698c32a0a6f4d24b425","type":"document"},"lc":"n85330811"} {"version":"2013-07-01T14:07:50Z","_id":"0f1db990eb0733d2f4bd55c1c0248673","dnb":"119160560","ptbnp":"999191","term":"Svorōnos, Iōannēs N., 1863-1922","key":"SvorōnosIōannēsN1863-1922","viafid":"47565490","merge":{"source":"viaf","id":"0f1db990eb0733d2f4bd55c1c0248673","type":"document"},"lc":"no98082190","bav":"adv12150996"} {"viafid":"181574919","merge":{"source":"viaf","id":"0f21a51ebe1d94c16b4ed5ff9b34117a","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f21a51ebe1d94c16b4ed5ff9b34117a","lc":"n2001046887","term":"Naṣr Allāh, Ḥasan, 1941- | Mawsūʻat Baʻlabakk","key":"NaṣrAllāhḤasan1941-|MawsūʻatBaʻlabakk"} {"viafid":"211211502","merge":{"source":"viaf","id":"0f28dcd9f3d864d9d64eebf4cef971e8","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f28dcd9f3d864d9d64eebf4cef971e8","term":"Gébelin, Jacques, 1848-1898","key":"GébelinJacques1848-1898"} {"nkc":"mzk2012721940","version":"2013-07-01T14:07:50Z","_id":"0f2a98ff2bd1e1349ad7fb63e32e8fe0","dnb":"118750240","nla":"000035467680","term":"Rüdiger, Horst, 1908-1984","key":"RüdigerHorst1908-1984","viafid":"36932340","nlilat":"000258002","merge":{"source":"viaf","id":"0f2a98ff2bd1e1349ad7fb63e32e8fe0","type":"document"},"lc":"n50022676","bnf":"12027830","bav":"adv10118122"} {"viafid":"208066292","merge":{"source":"viaf","id":"0f32ffd1320f0941bd4cb0256c5b21aa","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f32ffd1320f0941bd4cb0256c5b21aa","term":"Lawalrée, André, 1921-2005","key":"LawalréeAndré1921-2005"} {"viafid":"294433420","merge":{"source":"viaf","id":"0f3b876d6c5b78b863089e108eefd056","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f3b876d6c5b78b863089e108eefd056","lc":"n86808350","term":"Alemany y Bolufer, José, 1866-1934","key":"AlemanyyBoluferJosé1866-1934"} {"nkc":"jn19981002228","selibr":"97153","version":"2013-07-01T14:07:50Z","_id":"0f4bb448bd75b98aeb542937c17c5438","bne":"xx946183","dnb":"11875839x","swnl":"vtls003590895","nla":"000036541692","term":"Tjutčev, Fedor Ivanovič, 1803-1873","key":"TjutčevFedorIvanovič1803-1873","viafid":"95260021","nlilat":"000557466","nlicyr":"000157136","merge":{"source":"viaf","id":"0f4bb448bd75b98aeb542937c17c5438","type":"document"},"lc":"n50047826","bnf":"11990391","bav":"adv12016709"} {"version":"2013-07-01T14:07:50Z","_id":"0f6141133fb05a4a763e24c8e8a212a6","nla":"000036552511","term":"Fahr-Becker, Gabriele, 1946- | Barcelona, Antoni Gaudí y Corn'et. English","key":"Fahr-BeckerGabriele1946-|BarcelonaAntoniGaudíyCorn'etEnglish","viafid":"181040822","merge":{"source":"viaf","id":"0f6141133fb05a4a763e24c8e8a212a6","type":"document"},"lc":"n82053834"} {"nkc":"jn19990210590","selibr":"293103","version":"2013-07-01T14:07:50Z","_id":"0f6d922721c3daafa8d40b865cb72b9c","bne":"xx1722259","dnb":"119072343","ptbnp":"264159","term":"Strugackij, Boris Natanovič, 1933-2012","key":"StrugackijBorisNatanovič1933-2012","nlicyr":"000156768","viafid":"97139204","merge":{"source":"viaf","id":"0f6d922721c3daafa8d40b865cb72b9c","type":"document"},"lc":"n79105865","bnf":"11925679"} {"version":"2013-07-01T14:07:50Z","_id":"0f710128fe92cfda5b058bc4b2d69d87","nla":"000036518953","term":"Adriani, Götz, 1940- | Paul Cézanne, Aquarelle. English","key":"AdrianiGötz1940-|PaulCézanneAquarelleEnglish","viafid":"186709920","merge":{"source":"viaf","id":"0f710128fe92cfda5b058bc4b2d69d87","type":"document"},"lc":"n83008816"} {"nkc":"ola2008481222","version":"2013-07-01T14:07:50Z","_id":"0f73ceb2078943e769d2de728592b1f4","dnb":"132365820","ptbnp":"456620","term":"Berthier, Guillaume François, 1704-1782","key":"BerthierGuillaumeFrançois1704-1782","viafid":"32117071","merge":{"source":"viaf","id":"0f73ceb2078943e769d2de728592b1f4","type":"document"},"lc":"n81092459","bnf":"12589868","bav":"adv10291716"} {"nkc":"jn20000720118","version":"2013-07-01T14:07:50Z","_id":"0f761b580a31b7f53cad15a9ecc6f0da","dnb":"118776231","nla":"000036563138","term":"Joffre, Joseph Jacques Césaire, 1852-1931","key":"JoffreJosephJacquesCésaire1852-1931","viafid":"56648875","nlilat":"000481145","merge":{"source":"viaf","id":"0f761b580a31b7f53cad15a9ecc6f0da","type":"document"},"lc":"n86069973","bnf":"12159258","bav":"adv10215500"} {"nkc":"mzk2012709563","version":"2013-07-01T14:07:50Z","_id":"0f8077efb18866a5e285773bb2fcf111","bne":"xx877270","dnb":"118659456","term":"Bouchardon, Edmé, 1698-1762","key":"BouchardonEdmé1698-1762","viafid":"64206515","merge":{"source":"viaf","id":"0f8077efb18866a5e285773bb2fcf111","type":"document"},"jpg":"500024658","lc":"nr99034050","bnf":"14035404","bav":"adv10138997"} {"nkc":"mzk2009511495","version":"2013-07-01T14:07:50Z","_id":"0f87b9aad4ab592431c5cef28a9cc7de","dnb":"172309549","term":"Pérau, Gabriel Louis Calabre, 1700-1767","key":"PérauGabrielLouisCalabre1700-1767","nlilat":"000468017","viafid":"12313425","merge":{"source":"viaf","id":"0f87b9aad4ab592431c5cef28a9cc7de","type":"document"},"lc":"n85049189","bnf":"11919082","bav":"adv11037621"} {"version":"2013-07-01T14:07:50Z","_id":"0f8ca5164cd05aedeb41e80a7ffbd6b6","dnb":"120953986","term":"Dubos, Charles-François, 1661-1724","key":"DubosCharles-François1661-1724","viafid":"15613694","merge":{"source":"viaf","id":"0f8ca5164cd05aedeb41e80a7ffbd6b6","type":"document"},"bnf":"12927494","bav":"adv10202532"} {"version":"2013-07-01T14:07:50Z","_id":"0f8da0813bbc2ba6d1e24423f01b52d8","dnb":"300078285","nla":"000035619115","term":"Indy, Vincent d' 1851-1931 Symphonie sur un chant montagnard français Op. 25","key":"IndyVincentd'1851-1931SymphoniesurunchantmontagnardfrançaisOp25","viafid":"183500801","merge":{"source":"viaf","id":"0f8da0813bbc2ba6d1e24423f01b52d8","type":"document"},"lc":"n85006601","bnf":"13913754"} {"nkc":"xx0003107","version":"2013-07-01T14:07:50Z","_id":"0f8e9a11d6dfad11b27a6262d14c1420","bne":"xx1008040","dnb":"128414103","nla":"000035443977","ptbnp":"134818","term":"Čakovskij, Aleksandr Borisovič, 1913-1994","key":"ČakovskijAleksandrBorisovič1913-1994","nlicyr":"000209302","viafid":"99145990","merge":{"source":"viaf","id":"0f8e9a11d6dfad11b27a6262d14c1420","type":"document"},"lc":"n50060515","bnf":"13480284"} {"viafid":"175517916","merge":{"source":"viaf","id":"0f9465c2861b030c5eeb868d0d76cab5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f9465c2861b030c5eeb868d0d76cab5","lc":"n2001024737","term":"Riesz, János, 1941- | Europäisch-afrikanische Literaturbeziehungen","key":"RieszJános1941-|Europäisch-afrikanischeLiteraturbeziehungen"} {"nliara":"000002606","selibr":"33826","version":"2013-07-01T14:07:50Z","_id":"0f94d73891d7e410ff0301b67bb100ee","egaxa":"vtls001583788","dnb":"118867989","term":"Subkī, Tāj al-Dīn ʻAbd al-Wahhāb ibn ʻAlī, ca. 1327-1370","key":"SubkīTājal-DīnʻAbdal-WahhābibnʻAlīca1327-1370","nlilat":"000459542","viafid":"40175990","merge":{"source":"viaf","id":"0f94d73891d7e410ff0301b67bb100ee","type":"document"},"lc":"n84020872","bav":"adv10036315"} {"viafid":"286070985","merge":{"source":"viaf","id":"0f96e3bab7037903d2ef43db82d1b1c8","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f96e3bab7037903d2ef43db82d1b1c8","term":"Büttgenbach, Franz, 1832-1900","key":"BüttgenbachFranz1832-1900"} {"nkc":"js20020812324","version":"2013-07-01T14:07:50Z","_id":"0f985a988663c1d2387804679a6207fe","dnb":"118947362","term":"Kranjec, Miško, 1908-1983","key":"KranjecMiško1908-1983","viafid":"68989420","merge":{"source":"viaf","id":"0f985a988663c1d2387804679a6207fe","type":"document"},"lc":"n84045929","bnf":"12275878"} {"viafid":"98747924","merge":{"source":"viaf","id":"0f99c0eaaf256ca1b160bd46482423e9","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f99c0eaaf256ca1b160bd46482423e9","bnf":"10421220","term":"Valérius, Hubert 1820-1897","key":"ValériusHubert1820-1897"} {"viafid":"179865357","merge":{"source":"viaf","id":"0f9a3dbde3a433ec1213bae468035c1e","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0f9a3dbde3a433ec1213bae468035c1e","lc":"n85814842","term":"Brongersma, L. D., 1907-1994., (Leo Daniël), Animal world of Netherlands New Guinea","key":"BrongersmaLD1907-1994(LeoDaniël)AnimalworldofNetherlandsNewGuinea"} {"nkc":"mzk2011652736","version":"2013-07-01T14:07:50Z","_id":"0f9c66ef4387f951cb8eb750ab18c18f","bne":"xx1759164","dnb":"11615232x","term":"Döbereiner, Christian, 1874-1961","key":"DöbereinerChristian1874-1961","nlilat":"000553202","viafid":"25346194","merge":{"source":"viaf","id":"0f9c66ef4387f951cb8eb750ab18c18f","type":"document"},"lc":"n85023247","bav":"adv11536525"} {"nkc":"jx20050601011","selibr":"137272","version":"2013-07-01T14:07:50Z","_id":"0f9d2b40874b458272fba9aa5732ad11","bne":"xx893780","dnb":"118947370","nla":"000035426996","ptbnp":"38794","term":"Poliakov, Léon, 1910-1997","key":"PoliakovLéon1910-1997","viafid":"9852041","nlilat":"000106612","nlicyr":"000155288","merge":{"source":"viaf","id":"0f9d2b40874b458272fba9aa5732ad11","type":"document"},"lc":"n50020456","bnf":"11920171","bav":"adv12061671"} {"nkc":"mzk2009510727","version":"2013-07-01T14:07:50Z","_id":"0fa30fcbad5199c59a33885b0a93cbed","dnb":"116178124","nla":"000035789370","ptbnp":"76551","term":"Pichot, Amédée, 1795-1877","key":"PichotAmédée1795-1877","viafid":"59117355","nlilat":"000105593","merge":{"source":"viaf","id":"0fa30fcbad5199c59a33885b0a93cbed","type":"document"},"lc":"n85800955","bnf":"12127349","bav":"adv11088462"} {"nkc":"mzk2009511164","selibr":"258735","version":"2013-07-01T14:07:50Z","_id":"0fa4f1af66b69d2e1382d32abcfba43b","dnb":"117141054","term":"Schütz, Johann Jacob, 1640-1690","key":"SchützJohannJacob1640-1690","viafid":"52459463","merge":{"source":"viaf","id":"0fa4f1af66b69d2e1382d32abcfba43b","type":"document"},"lc":"nr2003014150"} {"nkc":"skuk0004128","selibr":"213223","version":"2013-07-01T14:07:50Z","_id":"0fa55f17c77ac3243c5691b7fa058cea","dnb":"104273895","nla":"000036297614","ptbnp":"119312","term":"Millot, Claude-François-Xavier, 1726-1785","key":"MillotClaude-François-Xavier1726-1785","nlilat":"000473668","viafid":"22182699","merge":{"source":"viaf","id":"0fa55f17c77ac3243c5691b7fa058cea","type":"document"},"lc":"n85253488","bnf":"12171118","bav":"adv10973209"} {"nkc":"jn19981001367","selibr":"240574","version":"2013-07-01T14:07:50Z","_id":"0fa5d44349d22c73185e1c60d07ced1d","bne":"xx954979","dnb":"118699156","nla":"000035461431","ptbnp":"61961","term":"Guimarães Rosa, João, 1908-1967","key":"GuimarãesRosaJoão1908-1967","viafid":"59088739","nlilat":"000113028","merge":{"source":"viaf","id":"0fa5d44349d22c73185e1c60d07ced1d","type":"document"},"lc":"n79095563","bnf":"11922577"} {"viafid":"72161427","merge":{"source":"viaf","id":"0facb0ff43ccbcd007efe10fdc821293","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"0facb0ff43ccbcd007efe10fdc821293","dnb":"117053481","term":"Bücking, H., 1851-1932","key":"BückingH1851-1932"} {"version":"2013-07-01T14:07:50Z","_id":"0fbaf55e356396606b528bdd74e92323","dnb":"102714436","term":"Darmois, Eugène (1884-1958)","key":"DarmoisEugène(1884-1958)","viafid":"27215136","nlilat":"000037031","merge":{"source":"viaf","id":"0fbaf55e356396606b528bdd74e92323","type":"document"},"bnf":"13474878"} {"version":"2013-07-01T14:07:50Z","_id":"0fc03de01de143c90044f51bfce7ac7c","dnb":"11931942x","term":"Porée, Charles, 1872-1940","key":"PoréeCharles1872-1940","viafid":"34508165","nlilat":"000525850","merge":{"source":"viaf","id":"0fc03de01de143c90044f51bfce7ac7c","type":"document"},"lc":"nr91042385","bnf":"12221244","bav":"adv11083383"} {"nkc":"uk2007353640","version":"2013-07-01T14:07:50Z","_id":"0fc38da6be3afcc7194bca75c4917b45","dnb":"117661287","nla":"000036001657","ptbnp":"1199877","term":"Duméril, André-Marie-Constant, 1774-1860","key":"DumérilAndré-Marie-Constant1774-1860","viafid":"71508982","nlilat":"000041337","merge":{"source":"viaf","id":"0fc38da6be3afcc7194bca75c4917b45","type":"document"},"lc":"n86863676","bnf":"12566453","bav":"adv10129428"} {"nkc":"nlk20010095053","version":"2013-07-01T14:07:50Z","_id":"0fc4948567c1fc67abef00a68113a57c","dnb":"1023569116","term":"Laboulbène, Alexandre (1825-1898)","key":"LaboulbèneAlexandre(1825-1898)","viafid":"84820815","merge":{"source":"viaf","id":"0fc4948567c1fc67abef00a68113a57c","type":"document"},"lc":"no2012103707","bnf":"10618555"} {"version":"2013-07-01T14:07:50Z","_id":"0fd289dd6da72599ca54dee1506ebf42","dnb":"115829814","term":"Dralet, Étienne François (1754-1844)","key":"DraletÉtienneFrançois(1754-1844)","viafid":"57353451","merge":{"source":"viaf","id":"0fd289dd6da72599ca54dee1506ebf42","type":"document"},"lc":"n86004989","bnf":"15317647"} {"version":"2013-07-01T14:07:50Z","_id":"0fe7c906dfb08c96f7b4cb00ccd591f7","dnb":"116079576","term":"Perles, Félix 1874-1933","key":"PerlesFélix1874-1933","viafid":"32324176","nlilat":"000104695","merge":{"source":"viaf","id":"0fe7c906dfb08c96f7b4cb00ccd591f7","type":"document"},"lc":"nr95008768","bnf":"15668516","bav":"adv11002914"} {"nkc":"mzk2003169557","selibr":"185310","version":"2013-07-01T14:07:50Z","_id":"0ffc6261c89fbc37dee3c1a4ad4c7e66","dnb":"118994050","nla":"000036575015","term":"Erdős, Paul, 1913-1996","key":"ErdősPaul1913-1996","viafid":"51768730","nlilat":"000044035","merge":{"source":"viaf","id":"0ffc6261c89fbc37dee3c1a4ad4c7e66","type":"document"},"lc":"n50010022","bnf":"12371592"} {"nkc":"kv2009520740","version":"2013-07-01T14:07:50Z","_id":"1001463adc0d5335f15f13f7faff80a7","dnb":"118595997","term":"Potonié, Robert, 1889-1974","key":"PotoniéRobert1889-1974","viafid":"27322147","merge":{"source":"viaf","id":"1001463adc0d5335f15f13f7faff80a7","type":"document"},"bnf":"14636361"} {"nkc":"mzk2009511691","version":"2013-07-01T14:07:50Z","_id":"100317d03b6f9f53bb9ca68b6281f364","dnb":"124636853","term":"Giannettasio, Niccolò Partenio, 1648-1715","key":"GiannettasioNiccolòPartenio1648-1715","viafid":"54292153","merge":{"source":"viaf","id":"100317d03b6f9f53bb9ca68b6281f364","type":"document"},"bnf":"13325672","bav":"adv10244636"} {"version":"2013-07-01T14:07:50Z","_id":"100946de3226d9a033f1f95880bd9417","dnb":"128885998","nla":"000035389871","term":"Raguenet, François, 1660?-1722","key":"RaguenetFrançois1660?-1722","nlilat":"000413129","viafid":"12314051","merge":{"source":"viaf","id":"100946de3226d9a033f1f95880bd9417","type":"document"},"lc":"n50069180","bnf":"11921031","bav":"adv11097435"} {"version":"2013-07-01T14:07:50Z","_id":"10139278c5bae5ff15af953229f4619d","dnb":"132034875","term":"Danjou, Félix (1812-1866)","key":"DanjouFélix(1812-1866)","viafid":"61664547","merge":{"source":"viaf","id":"10139278c5bae5ff15af953229f4619d","type":"document"},"bnf":"12567375","bav":"adv10063447"} {"nkc":"mzk2009510591","version":"2013-07-01T14:07:50Z","_id":"101a7d3d8ae73468235147c98a5485e9","dnb":"102457093","ptbnp":"1401112","term":"Coste, Jean-François, 1741-1819","key":"CosteJean-François1741-1819","nlilat":"000469415","viafid":"9893183","merge":{"source":"viaf","id":"101a7d3d8ae73468235147c98a5485e9","type":"document"},"lc":"n85099522","bnf":"12189204"} {"version":"2013-07-01T14:07:50Z","_id":"101cbdb6de587b8195299c65963e0f9a","nla":"000035568546","term":"Todd, Emmanuel, 1951- | Troisième planète. English","key":"ToddEmmanuel1951-|TroisièmeplanèteEnglish","viafid":"182275228","merge":{"source":"viaf","id":"101cbdb6de587b8195299c65963e0f9a","type":"document"},"lc":"n84215646"} {"version":"2013-07-01T14:07:50Z","_id":"1024f72043e91daae2482ec0376c4587","bne":"xx960081","dnb":"121133125","term":"Ynduráin, F. J. 1940-2008","key":"YnduráinFJ1940-2008","viafid":"73918013","merge":{"source":"viaf","id":"1024f72043e91daae2482ec0376c4587","type":"document"},"lc":"n82215939","bnf":"12298455"} {"nkc":"kup20030000015349","selibr":"341657","version":"2013-07-01T14:07:50Z","_id":"102812bcdbcbc47376e41be4a339a1fb","bne":"xx888031","dnb":"118981102","nla":"000035856344","term":"Chraïbi, Driss, 1926-2007","key":"ChraïbiDriss1926-2007","nlilat":"000031692","viafid":"51687399","merge":{"source":"viaf","id":"102812bcdbcbc47376e41be4a339a1fb","type":"document"},"lc":"n84043146","bnf":"11896803"} {"nkc":"jn19990210194","_id":"102936ce534a74681de740a0dee9de06","egaxa":"vtls000890085","bne":"xx950248","dnb":"118529269","nla":"000036555544","term":"Ėrenburg, Ilʹja Grigorʹevič, 1891-1967","key":"ĖrenburgIlʹjaGrigorʹevič1891-1967","viafid":"40169930","nliheb":"000228544","merge":{"source":"viaf","id":"102936ce534a74681de740a0dee9de06","type":"document"},"bnf":"11901820","selibr":"184634","version":"2013-07-01T14:07:50Z","swnl":"vtls000075176","nlicyr":"000161054","nlilat":"000044049","lc":"n50030508"} {"version":"2013-07-01T14:07:50Z","_id":"10298c8a8ece765eacc88c4b8ad9d5db","dnb":"137943989","ptbnp":"66133","term":"Outes, Félix F. 1878-1939","key":"OutesFélixF1878-1939","viafid":"72910328","nlilat":"000487990","merge":{"source":"viaf","id":"10298c8a8ece765eacc88c4b8ad9d5db","type":"document"},"lc":"n87814839"} {"version":"2013-07-01T14:07:50Z","_id":"102ab9f93ebbb24eb00eeed562b75a82","dnb":"1023958287","term":"Grützmacher, Georg, 1866-1939","key":"GrützmacherGeorg1866-1939","viafid":"42234899","merge":{"source":"viaf","id":"102ab9f93ebbb24eb00eeed562b75a82","type":"document"},"bav":"adv10211809"} {"version":"2013-07-01T14:07:50Z","_id":"1030d39616cd5bb62adbf2ea36973493","dnb":"117657085","term":"Sessa, Karl Borromäus Alexander, 1786-1813","key":"SessaKarlBorromäusAlexander1786-1813","viafid":"57398018","nlilat":"000335086","merge":{"source":"viaf","id":"1030d39616cd5bb62adbf2ea36973493","type":"document"},"lc":"no2002059298"} {"viafid":"202306364","merge":{"source":"viaf","id":"1037a976e077f372b49c3e51ac7dd9c4","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1037a976e077f372b49c3e51ac7dd9c4","term":"Béclard, Ferdinand, 1848-1897","key":"BéclardFerdinand1848-1897"} {"nkc":"ola2008452289","version":"2013-07-01T14:07:50Z","_id":"10396db75e279b62c46ca46dc1bd619c","dnb":"118657305","term":"Barnes, Robert, 1495?–1540","key":"BarnesRobert1495?–1540","viafid":"74646733","merge":{"source":"viaf","id":"10396db75e279b62c46ca46dc1bd619c","type":"document"},"lc":"n79139058","bnf":"16177672","bav":"adv10286587"} {"version":"2013-07-01T14:07:50Z","_id":"103e02fb4c3fd528a578f87cd54656a2","bne":"xx1291972","dnb":"11860208x","term":"Rötscher, Heinrich Theodor, 1803-1871","key":"RötscherHeinrichTheodor1803-1871","viafid":"69722312","nlilat":"000115133","merge":{"source":"viaf","id":"103e02fb4c3fd528a578f87cd54656a2","type":"document"},"lc":"n82255732"} {"version":"2013-07-01T14:07:50Z","_id":"104682fa9fad80d30396f5cc8dec9e8b","bne":"xx848487","dnb":"118780840","ptbnp":"151201","term":"De Luzán, Ignacio, 1702-1754","key":"DeLuzánIgnacio1702-1754","viafid":"9889846","merge":{"source":"viaf","id":"104682fa9fad80d30396f5cc8dec9e8b","type":"document"},"lc":"n92068023","bnf":"12174727","bav":"adv10913221"} {"version":"2013-07-01T14:07:50Z","_id":"1051e2004526eeccb98b67b35c37bd58","dnb":"104377526","term":"De Smet, François Joseph, 1771-1854","key":"DeSmetFrançoisJoseph1771-1854","viafid":"74288231","merge":{"source":"viaf","id":"1051e2004526eeccb98b67b35c37bd58","type":"document"},"lc":"no2009122108"} {"selibr":"334338","version":"2013-07-01T14:07:50Z","_id":"1053d5a5708a914861d36d2f22b601e3","term":"Bourg, Edme-Théodore, 1785-1852","key":"BourgEdme-Théodore1785-1852","viafid":"43510090","merge":{"source":"viaf","id":"1053d5a5708a914861d36d2f22b601e3","type":"document"},"lc":"n93029999","bnf":"13007660"} {"nkc":"xx0033966","selibr":"345117","version":"2013-07-01T14:07:50Z","_id":"10568eab636f8a0186c12e3f0774758d","bne":"xx959312","dnb":"152102094","nla":"000035544312","term":"Tétry, Andrée, 1907-1992","key":"TétryAndrée1907-1992","viafid":"92715419","merge":{"source":"viaf","id":"10568eab636f8a0186c12e3f0774758d","type":"document"},"lc":"n83239551","bnf":"11926277"} {"nliara":"000002270","selibr":"34577","version":"2013-07-01T14:07:50Z","_id":"1061d2e161a871e2117a97ade266e66d","egaxa":"vtls000837588","dnb":"102412804","term":"al-Khaṭīb al-Baghdādī, Abū Bakr Aḥmad ibn ʻAlī, 1002-1071","key":"al-Khaṭībal-BaghdādīAbūBakrAḥmadibnʻAlī1002-1071","nlilat":"000472941","viafid":"69222089","merge":{"source":"viaf","id":"1061d2e161a871e2117a97ade266e66d","type":"document"},"lc":"n85231280","bnf":"15083328"} {"nkc":"jn20030211012","version":"2013-07-01T14:07:50Z","_id":"10655fda3036f8db9223654e6f263811","dnb":"124663079","nla":"000036550465","term":"Sinai, Ya. G., 1935-, (I︠A︡kov Grigorʹevich)","key":"SinaiYaG1935-(I︠A︡kovGrigorʹevich)","viafid":"34589101","merge":{"source":"viaf","id":"10655fda3036f8db9223654e6f263811","type":"document"},"lc":"n81032623","bnf":"12942333"} {"nkc":"jx20041207003","version":"2013-07-01T14:07:50Z","_id":"106b7e07eb7827c7d64379eea6963a85","dnb":"118790560","term":"Petković-Dis, Vladislav, 1880-1917","key":"Petković-DisVladislav1880-1917","viafid":"5076277","merge":{"source":"viaf","id":"106b7e07eb7827c7d64379eea6963a85","type":"document"},"lc":"no90005661","bnf":"13322185"} {"viafid":"61418701","merge":{"source":"viaf","id":"1071ff31eb699c7503c8433f63bef173","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1071ff31eb699c7503c8433f63bef173","lc":"nr93028472","term":"Nikitin, Vasiliĭ Nikitich, 1737-1809","key":"NikitinVasiliĭNikitich1737-1809"} {"version":"2013-07-01T14:07:50Z","_id":"1078a85e038b49636c6d028de6846ce3","dnb":"12112651x","term":"Röer, Edward, 1805-1866","key":"RöerEdward1805-1866","viafid":"90777453","nlilat":"000292041","merge":{"source":"viaf","id":"1078a85e038b49636c6d028de6846ce3","type":"document"},"lc":"n88634702"} {"viafid":"9829491","selibr":"285404","merge":{"source":"viaf","id":"107c3d1089608516341f07af70c2dc83","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"107c3d1089608516341f07af70c2dc83","term":"Lundström, Ingeborg, 1878-1976","key":"LundströmIngeborg1878-1976"} {"viafid":"209066983","merge":{"source":"viaf","id":"107f3499ac5e6c0a23fe2c1b5d2c79b5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"107f3499ac5e6c0a23fe2c1b5d2c79b5","term":"Létiévant, Jean-Joseph-Émile, 1830-1884","key":"LétiévantJean-Joseph-Émile1830-1884"} {"selibr":"88805","version":"2013-07-01T14:07:50Z","_id":"108276aaa6a548c2d02eaf03200196dd","dnb":"118641891","nla":"000035444709","term":"Récamier, Jeanne Françoise Julie Adélaïde Bernard, 1777-1849","key":"RécamierJeanneFrançoiseJulieAdélaïdeBernard1777-1849","viafid":"36967757","nlilat":"000110081","merge":{"source":"viaf","id":"108276aaa6a548c2d02eaf03200196dd","type":"document"},"lc":"n50046071","bnf":"12215767","bav":"adv11163421"} {"viafid":"186469969","merge":{"source":"viaf","id":"10848be81c138b9062b260910e15af44","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"10848be81c138b9062b260910e15af44","lc":"n2008031582","term":"Sicking, Louis, 1966- | Frontières d'outre-mer. English","key":"SickingLouis1966-|Frontièresd'outre-merEnglish"} {"nkc":"jn19990210201","_id":"10969aa6eb4759fd834b1a22b4558381","bne":"xx1074813","dnb":"118686399","nla":"000036299652","ptbnp":"27312","term":"Fedin, Konstantin Aleksandrovič, 1892-1977","key":"FedinKonstantinAleksandrovič1892-1977","viafid":"29533778","merge":{"source":"viaf","id":"10969aa6eb4759fd834b1a22b4558381","type":"document"},"jpg":"500068153","bnf":"11902471","selibr":"186714","version":"2013-07-01T14:07:50Z","nlilat":"000400111","nlicyr":"000157673","lc":"n50001089"} {"version":"2013-07-01T14:07:50Z","_id":"10a01ac8ec2e85f7f93aee1aeaf8fb68","bne":"xx859935","dnb":"126754438","term":"Nádasi, Ferenc, 1893-1966","key":"NádasiFerenc1893-1966","viafid":"122010407","merge":{"source":"viaf","id":"10a01ac8ec2e85f7f93aee1aeaf8fb68","type":"document"},"lc":"n96001595"} {"version":"2013-07-01T14:07:50Z","_id":"10c06350f5bcb4071b269b7f61edc7ab","bne":"xx4838633","dnb":"100057845","nla":"000035725210","term":"De Mirbel, Charles-François Brisseau, 1776-1854","key":"DeMirbelCharles-FrançoisBrisseau1776-1854","nlilat":"000483841","viafid":"17356254","merge":{"source":"viaf","id":"10c06350f5bcb4071b269b7f61edc7ab","type":"document"},"lc":"n86815883","bnf":"13013884"} {"nkc":"jn20000603211","selibr":"191545","version":"2013-07-01T14:07:50Z","_id":"10c90d7301027d9afdaec66dbbf78106","dnb":"12008970x","nla":"000035746019","term":"Jastrun, Mieczysław, 1903-1983","key":"JastrunMieczysław1903-1983","viafid":"66482806","nlilat":"000433300","merge":{"source":"viaf","id":"10c90d7301027d9afdaec66dbbf78106","type":"document"},"lc":"n80159204","bnf":"12032635"} {"nkc":"js20020805294","version":"2013-07-01T14:07:50Z","_id":"10ceb6579f3bff4af2bce2eede39e171","dnb":"119277727","term":"Jorgovanić, Rikard, 1853-1880","key":"JorgovanićRikard1853-1880","viafid":"14762932","merge":{"source":"viaf","id":"10ceb6579f3bff4af2bce2eede39e171","type":"document"},"lc":"nr2003000688","bnf":"11150922"} {"nkc":"jo2003169857","selibr":"314210","version":"2013-07-01T14:07:50Z","_id":"10cebad9e509da3a730ac5a554d666ea","dnb":"117516449","nla":"000035786176","term":"Hénault, Charles-Jean-François, 1685-1770","key":"HénaultCharles-Jean-François1685-1770","viafid":"118096","nlilat":"000527278","merge":{"source":"viaf","id":"10cebad9e509da3a730ac5a554d666ea","type":"document"},"lc":"nr93016004","bnf":"12515502","bav":"adv10214038"} {"nkc":"mzk2009510387","selibr":"200683","version":"2013-07-01T14:07:50Z","_id":"10d406dbad0f5f6d3ab67d7e1090054d","bne":"xx1459172","dnb":"100278884","term":"De Forbonnais, François Véron Duverger, 1722-1800","key":"DeForbonnaisFrançoisVéronDuverger1722-1800","viafid":"46796949","nlilat":"000498699","merge":{"source":"viaf","id":"10d406dbad0f5f6d3ab67d7e1090054d","type":"document"},"lc":"n88680604","bnf":"12141360","bav":"adv11239873"} {"nkc":"jn19990007272","selibr":"312868","version":"2013-07-01T14:07:50Z","_id":"10d63d3de97935150b6044af291c6ff8","dnb":"118603957","nla":"000036536008","term":"Rühmkorf, Peter, 1929-2008","key":"RühmkorfPeter1929-2008","viafid":"73861894","nlilat":"000405188","merge":{"source":"viaf","id":"10d63d3de97935150b6044af291c6ff8","type":"document"},"lc":"n50022486","bnf":"11953862"} {"nkc":"nlk20010092510","version":"2013-07-01T14:07:50Z","_id":"10d9cb8c7501eaf822ca50296a7cd5fd","dnb":"129731811","nla":"000035876824","ptbnp":"1402088","term":"Sénac, Jean-Baptiste, 1693-1770","key":"SénacJean-Baptiste1693-1770","viafid":"71540730","nlilat":"000120304","merge":{"source":"viaf","id":"10d9cb8c7501eaf822ca50296a7cd5fd","type":"document"},"lc":"n86811220","bnf":"13475545","bav":"adv11209849"} {"nkc":"ola2007364628","selibr":"346109","version":"2013-07-01T14:07:50Z","_id":"10ded25f702630bc82b9800396f96cd5","bne":"xx1309781","dnb":"104234059","swnl":"vtls002162556","nla":"000035883578","term":"De Lalande, Joseph Jérôme Le Français, 1732-1807","key":"DeLalandeJosephJérômeLeFrançais1732-1807","viafid":"95196947","nlilat":"000317402","merge":{"source":"viaf","id":"10ded25f702630bc82b9800396f96cd5","type":"document"},"jpg":"500220946","lc":"n81143855","bnf":"12012398","bav":"adv10022875"} {"nkc":"skuk0004230","selibr":"79061","version":"2013-07-01T14:07:50Z","_id":"10e212b2ab8f662d8b6e3b81106f2476","dnb":"118585045","swnl":"vtls000148090","term":"Von Müller, Johannes, 1752-1809","key":"VonMüllerJohannes1752-1809","viafid":"89266014","nlilat":"000097280","merge":{"source":"viaf","id":"10e212b2ab8f662d8b6e3b81106f2476","type":"document"},"lc":"n85383155","bnf":"12565364","bav":"adv10198782"} {"nkc":"xx0157726","version":"2013-07-01T14:07:50Z","_id":"10e4d6033cd06328a9dcecd8ea47d334","dnb":"188352910","term":"Chavance, René, b. 1879","key":"ChavanceRenéb1879","viafid":"17341597","nlilat":"000496780","merge":{"source":"viaf","id":"10e4d6033cd06328a9dcecd8ea47d334","type":"document"},"lc":"n88614786","bnf":"12596595"} {"version":"2013-07-01T14:07:50Z","_id":"10f27bba6ceb75e1703adfed6fc843d6","bne":"xx1121458","dnb":"121363155","ptbnp":"818799","term":"Sánchez Pérez, José Augusto, 1882-1958","key":"SánchezPérezJoséAugusto1882-1958","nlilat":"000129201","viafid":"114927865","merge":{"source":"viaf","id":"10f27bba6ceb75e1703adfed6fc843d6","type":"document"},"lc":"n84805690","bav":"adv12014594"} {"viafid":"177461909","merge":{"source":"viaf","id":"110ce361b4232db54d5d2faf97d92b3b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"110ce361b4232db54d5d2faf97d92b3b","lc":"n88152932","term":"Landau, Yoan D., 1938- | Identification et commande de systèmes. English","key":"LandauYoanD1938-|IdentificationetcommandedesystèmesEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"11118dadcc1b16a5e60cc6386f1281cc","dnb":"116531428","term":"Erdmannsdörffer, Bernhard, 1833-1901","key":"ErdmannsdörfferBernhard1833-1901","nlilat":"000388323","viafid":"30290221","merge":{"source":"viaf","id":"11118dadcc1b16a5e60cc6386f1281cc","type":"document"},"bav":"adv10166222"} {"nkc":"nlk20010101064","version":"2013-07-01T14:07:50Z","_id":"1115e2bae72c8132130fb4d7683af0d4","dnb":"142391883","ptbnp":"1197392","term":"Le Dentu, Jean-François-Auguste, 1841-1926","key":"LeDentuJean-François-Auguste1841-1926","viafid":"41639981","merge":{"source":"viaf","id":"1115e2bae72c8132130fb4d7683af0d4","type":"document"},"lc":"no2008018145","bnf":"12981138"} {"nkc":"jk01051864","version":"2013-07-01T14:07:50Z","_id":"1116f1357dc5ad779854b99b750730e8","dnb":"117134961","term":"Jireček, Hermenegild, 1827-1909","key":"JirečekHermenegild1827-1909","viafid":"54918137","merge":{"source":"viaf","id":"1116f1357dc5ad779854b99b750730e8","type":"document"},"lc":"n92038864","bav":"adv10025869"} {"viafid":"116475869","merge":{"source":"viaf","id":"111d4f46ab21312b9f4d7b2333b84172","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"111d4f46ab21312b9f4d7b2333b84172","bnf":"15325237","term":"Gueymard, Émile, 1788-1869","key":"GueymardÉmile1788-1869"} {"version":"2013-07-01T14:07:50Z","_id":"111f6022aba15f84339277b8845df023","dnb":"119153246","nla":"000036392225","term":"Kavvadías, Níkos, 1910-1975","key":"KavvadíasNíkos1910-1975","viafid":"59116018","merge":{"source":"viaf","id":"111f6022aba15f84339277b8845df023","type":"document"},"lc":"n83049445","bnf":"12120274"} {"version":"2013-07-01T14:07:50Z","_id":"1126d7c539d1fd3ac7f02a3a3bdda42f","dnb":"118986090","nla":"000035731624","term":"Kampouroglous, Dēmētrios Grēgoriou, 1852-1942","key":"KampouroglousDēmētriosGrēgoriou1852-1942","viafid":"37098092","merge":{"source":"viaf","id":"1126d7c539d1fd3ac7f02a3a3bdda42f","type":"document"},"lc":"n82106117","bnf":"13756621","bav":"adv11991433"} {"version":"2013-07-01T14:07:50Z","_id":"112d183ddc5577efe6293cf6363ee4de","dnb":"102254079","nla":"000035228165","term":"Champion, Édouard (1882-1938)","key":"ChampionÉdouard(1882-1938)","nlilat":"000475711","viafid":"12368538","merge":{"source":"viaf","id":"112d183ddc5577efe6293cf6363ee4de","type":"document"},"lc":"n85327696","bnf":"12276364","bav":"adv10076516"} {"version":"2013-07-01T14:07:50Z","_id":"112f9e648c86cf6bb5bd057d857c312e","dnb":"116893389","nla":"000035155269","term":"Grünwedel, Albert, 1856-1935","key":"GrünwedelAlbert1856-1935","nlilat":"000247332","viafid":"74071156","merge":{"source":"viaf","id":"112f9e648c86cf6bb5bd057d857c312e","type":"document"},"lc":"n81082991","bnf":"14437728","bav":"adv10285053"} {"viafid":"181572703","merge":{"source":"viaf","id":"1133c08a712378785f3cc04fbb48afab","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1133c08a712378785f3cc04fbb48afab","lc":"n99834152","term":"Chemin-Dupontès, J.-B., 1760 or 61-1852?, (Jean-Baptiste), Morality of the sans-culottes of every age, sex, country, and condition, or, The republican gospel","key":"Chemin-DupontèsJ-B1760or61-1852?(Jean-Baptiste)Moralityofthesans-culottesofeveryagesexcountryandconditionorTherepublicangospel"} {"selibr":"317874","version":"2013-07-01T14:07:50Z","_id":"1134c97ceab8aad8e366a0ac7fd02f98","dnb":"100371922","term":"Lycklama à Nyeholt, Marcus, 1573-1625","key":"LycklamaàNyeholtMarcus1573-1625","viafid":"69274628","merge":{"source":"viaf","id":"1134c97ceab8aad8e366a0ac7fd02f98","type":"document"},"bav":"adv10913495"} {"nkc":"jo20000073713","version":"2013-07-01T14:07:50Z","_id":"11367ab8534652bfd099be91b9314534","bne":"xx825055","dnb":"122613007","nla":"000035749438","ptbnp":"85379","term":"De Solís, Antonio, 1610-1686","key":"DeSolísAntonio1610-1686","viafid":"73860294","nlilat":"000448890","merge":{"source":"viaf","id":"11367ab8534652bfd099be91b9314534","type":"document"},"jpg":"500040516","lc":"n82157906","bnf":"11925109","bav":"adv11246673"} {"viafid":"182124104","merge":{"source":"viaf","id":"11372ecbaf238474979fa728e902f917","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"11372ecbaf238474979fa728e902f917","lc":"no2006108537","term":"Procházková, Petra, 1964- | Aluminium queen. French","key":"ProcházkováPetra1964-|AluminiumqueenFrench"} {"nkc":"ola2002157572","selibr":"101288","version":"2013-07-01T14:07:50Z","_id":"1137548b1b4cc1776c31724045022c2a","dnb":"118630709","nla":"000035248582","ptbnp":"268478","term":"Weizmann, Chai͏̈m, 1874-1952","key":"WeizmannChai͏̈m1874-1952","viafid":"61778920","nlilat":"000140867","nliheb":"000209413","merge":{"source":"viaf","id":"1137548b1b4cc1776c31724045022c2a","type":"document"},"lc":"n50003498","bnf":"14509036","bav":"adv11218889"} {"version":"2013-07-01T14:07:50Z","_id":"114c59e6c1ebbab4e0631c937da0db71","dnb":"117601330","term":"Morand, Sauveur-François, 1697-1773","key":"MorandSauveur-François1697-1773","viafid":"22200045","merge":{"source":"viaf","id":"114c59e6c1ebbab4e0631c937da0db71","type":"document"},"lc":"n83027719","bnf":"12264634","bav":"adv10988687"} {"nliara":"000162895","version":"2013-07-01T14:07:50Z","_id":"115220040f493dc93d8f98d60f41ca72","egaxa":"vtls000773205","dnb":"173564186","term":"Ṭūsūn, ʿUmar, 1872-1944","key":"ṬūsūnʿUmar1872-1944","nlilat":"000133307","viafid":"32062711","merge":{"source":"viaf","id":"115220040f493dc93d8f98d60f41ca72","type":"document"},"lc":"n84173650","bnf":"12300459","bav":"adv10096141"} {"version":"2013-07-01T14:07:50Z","_id":"116923376afa947886a12a8ba148c795","bne":"xx1720389","dnb":"118863517","term":"Capmany, Maria Aurèlia 1918-1991","key":"CapmanyMariaAurèlia1918-1991","viafid":"54142662","nlilat":"000426353","merge":{"source":"viaf","id":"116923376afa947886a12a8ba148c795","type":"document"},"lc":"n80014872","bnf":"11885892"} {"nkc":"jn20000701929","selibr":"250058","version":"2013-07-01T14:07:50Z","_id":"11708df76838ac4d4180628604e1bc7f","bne":"xx1161075","dnb":"118806068","nla":"000035589236","ptbnp":"40958","term":"Walras, Léon, 1834-1910","key":"WalrasLéon1834-1910","viafid":"76324284","nlilat":"000405752","merge":{"source":"viaf","id":"11708df76838ac4d4180628604e1bc7f","type":"document"},"lc":"n50024510","bnf":"11928836"} {"nkc":"jn20000701289","selibr":"79144","version":"2013-07-01T14:07:50Z","_id":"117b852cf99760bf93a860515db27e12","bne":"xx1110492","dnb":"160074479","nla":"000035368914","ptbnp":"209500","term":"Münzer, Thomas, ca. 1490-1525","key":"MünzerThomasca1490-1525","viafid":"17226919","nlilat":"000097409","merge":{"source":"viaf","id":"117b852cf99760bf93a860515db27e12","type":"document"},"lc":"n50038387"} {"nkc":"ola2008452326","version":"2013-07-01T14:07:50Z","_id":"117f6a68d7ea3b41191e577cf760bde0","bne":"xx1609671","dnb":"117567574","nla":"000036046921","term":"De Bastide, Jean-François, 1724-1798","key":"DeBastideJean-François1724-1798","viafid":"71429857","merge":{"source":"viaf","id":"117f6a68d7ea3b41191e577cf760bde0","type":"document"},"jpg":"500291738","lc":"nr91010211","bnf":"12160164"} {"version":"2013-07-01T14:07:50Z","_id":"117f804889ca3987513526c46462cb4c","bne":"xx1141658","dnb":"119152746","nla":"000035811638","term":"Tsatsos, Kōnstantinos 1899-1987","key":"TsatsosKōnstantinos1899-1987","viafid":"113257497","merge":{"source":"viaf","id":"117f804889ca3987513526c46462cb4c","type":"document"},"lc":"n84058420","bnf":"11927192"} {"nkc":"mzk2008448947","version":"2013-07-01T14:07:50Z","_id":"117fddd937367626b711a47996528f83","dnb":"121418855","term":"Zückert, Johann Friedrich, 1737-1778","key":"ZückertJohannFriedrich1737-1778","viafid":"77171048","merge":{"source":"viaf","id":"117fddd937367626b711a47996528f83","type":"document"},"lc":"n82162883"} {"version":"2013-07-01T14:07:50Z","_id":"118a2816dcb9481f84205d478ec0de37","dnb":"117560928","term":"Ménageot, François-Guillaume, 1744-1816","key":"MénageotFrançois-Guillaume1744-1816","viafid":"22407226","merge":{"source":"viaf","id":"118a2816dcb9481f84205d478ec0de37","type":"document"},"jpg":"500022295","lc":"n80080813","bnf":"11939517"} {"nkc":"xx0061273","version":"2013-07-01T14:07:50Z","_id":"119202c9cc2b634699d075e68c5c55da","dnb":"117631779","term":"Demachy, Jacques-François, 1728-1803","key":"DemachyJacques-François1728-1803","viafid":"73913783","nlilat":"000499167","merge":{"source":"viaf","id":"119202c9cc2b634699d075e68c5c55da","type":"document"},"lc":"n89225538","bnf":"12276855"} {"nkc":"xx0035591","version":"2013-07-01T14:07:50Z","_id":"119d2ff342b8990a361bdcd609d68f58","dnb":"101453221","ptbnp":"94085","term":"Despois, Eugène, 1818-1876","key":"DespoisEugène1818-1876","viafid":"39466134","nlilat":"000515282","merge":{"source":"viaf","id":"119d2ff342b8990a361bdcd609d68f58","type":"document"},"lc":"no89021110","bnf":"12413678","bav":"adv12360332"} {"version":"2013-07-01T14:07:50Z","_id":"119f55841b3cc8c3f22b9df32440450b","dnb":"117098574","term":"Schäfer, Klaus, 1910-1984","key":"SchäferKlaus1910-1984","viafid":"100970163","merge":{"source":"viaf","id":"119f55841b3cc8c3f22b9df32440450b","type":"document"},"lc":"n83827812","bnf":"12367404"} {"nkc":"jn19981000689","version":"2013-07-01T14:07:50Z","_id":"11a4369ec430c44cd9e45a9e398ea046","dnb":"12403148x","nla":"000035038628","ptbnp":"62772","term":"Dobrée, Bonamy, 1891-1974","key":"DobréeBonamy1891-1974","viafid":"66531126","nlilat":"000039948","merge":{"source":"viaf","id":"11a4369ec430c44cd9e45a9e398ea046","type":"document"},"lc":"n80050351","bnf":"12298055"} {"selibr":"136568","version":"2013-07-01T14:07:50Z","_id":"11b0eb45fbd9c5ba815c8293e5a0bea4","dnb":"102012315x","nla":"000035193690","term":"Lindberger, Örjan, 1912-2005","key":"LindbergerÖrjan1912-2005","nlilat":"000426733","viafid":"59127749","merge":{"source":"viaf","id":"11b0eb45fbd9c5ba815c8293e5a0bea4","type":"document"},"lc":"n80023087","bnf":"12184262"} {"nkc":"ola2003169789","version":"2013-07-01T14:07:50Z","_id":"11b39f8826bac5900ccfeb5499596014","dnb":"118787772","nla":"000036192635","term":"Rakić, Milan, 1876-1938","key":"RakićMilan1876-1938","viafid":"27095545","merge":{"source":"viaf","id":"11b39f8826bac5900ccfeb5499596014","type":"document"},"lc":"n85115423","bnf":"12103296"} {"nkc":"jx20080318020","version":"2013-07-01T14:07:50Z","_id":"11b3bf132ba9dd0a3eca7e8d7b104b26","dnb":"121572196","term":"Rudenko, Sergej Ivanovič, 1885-1969","key":"RudenkoSergejIvanovič1885-1969","viafid":"110475939","nlilat":"000467438","merge":{"source":"viaf","id":"11b3bf132ba9dd0a3eca7e8d7b104b26","type":"document"},"lc":"n85029023"} {"selibr":"279420","version":"2013-07-01T14:07:50Z","_id":"11b5a88f37ff5a16b0f69e6414608dc2","dnb":"123420350","nla":"000035085946","term":"Vizyēnos, G. M., 1849-1896","key":"VizyēnosGM1849-1896","viafid":"4937943","merge":{"source":"viaf","id":"11b5a88f37ff5a16b0f69e6414608dc2","type":"document"},"lc":"n85256047","bnf":"11928594","bav":"adv12236065"} {"version":"2013-07-01T14:07:50Z","_id":"11ca0616d5df9fe3db55eae69a2a09ba","nla":"000036141898","term":"Fantouré, Alioum, 1938- | Cercle des tropiques. English","key":"FantouréAlioum1938-|CercledestropiquesEnglish","viafid":"184692357","merge":{"source":"viaf","id":"11ca0616d5df9fe3db55eae69a2a09ba","type":"document"},"lc":"n83194635"} {"nkc":"vse2006351626","version":"2013-07-01T14:07:50Z","_id":"11cb34544a11f8ce4b635940b3d08523","dnb":"124758789","nla":"000035058068","term":"Edwards, Richard, 1944-...., économiste","key":"EdwardsRichard1944-économiste","viafid":"108305061","merge":{"source":"viaf","id":"11cb34544a11f8ce4b635940b3d08523","type":"document"},"lc":"n78091995","bnf":"12283735"} {"version":"2013-07-01T14:07:50Z","_id":"11cc6de999448caf91dd103736d8b2b7","dnb":"131965182","ptbnp":"92134","term":"Spuller, Eugène, 1835-1896","key":"SpullerEugène1835-1896","nlilat":"000468673","viafid":"2568983","merge":{"source":"viaf","id":"11cc6de999448caf91dd103736d8b2b7","type":"document"},"lc":"n85068903","bnf":"12459339","bav":"adv11372118"} {"nkc":"mzk2009528177","selibr":"343466","version":"2013-07-01T14:07:50Z","_id":"11d898c8c8fc152ff7cfa63e3a12cc05","dnb":"118650939","swnl":"vtls004072532","nla":"000035010034","ptbnp":"169439","term":"Hédelin, François, 1604-1676","key":"HédelinFrançois1604-1676","viafid":"41836011","nlilat":"000013026","merge":{"source":"viaf","id":"11d898c8c8fc152ff7cfa63e3a12cc05","type":"document"},"lc":"n84141096","bnf":"11889409","bav":"adv12033472"} {"nkc":"jx20100607004","version":"2013-07-01T14:07:50Z","_id":"11d987f31f828af3822f4bc4c060da3f","dnb":"101699255","nla":"000035967432","ptbnp":"252866","term":"Favre, Léopold, 1817-1890","key":"FavreLéopold1817-1890","viafid":"59150551","nlilat":"000534313","merge":{"source":"viaf","id":"11d987f31f828af3822f4bc4c060da3f","type":"document"},"lc":"n98019681","bnf":"12308886","bav":"adv10188666"} {"selibr":"183286","version":"2013-07-01T14:07:50Z","_id":"11e9eda3d3f2a272ff3af8f62c5bcd2f","term":"Dalén, Uno, 1920-2006","key":"DalénUno1920-2006","viafid":"53002882","nlilat":"000289082","merge":{"source":"viaf","id":"11e9eda3d3f2a272ff3af8f62c5bcd2f","type":"document"},"lc":"n81018994"} {"nkc":"nlk20000091780","version":"2013-07-01T14:07:50Z","_id":"11f7ba3a936cb04bd351bf1818c4444a","bne":"xx1153857","dnb":"118750097","ptbnp":"79559","term":"Rubinshteĭn, Sergeĭ Leonidovich, 1889-1960","key":"RubinshteĭnSergeĭLeonidovich1889-1960","viafid":"64327469","merge":{"source":"viaf","id":"11f7ba3a936cb04bd351bf1818c4444a","type":"document"},"lc":"n50052990","bnf":"12848149"} {"viafid":"793596","merge":{"source":"viaf","id":"11f8fec54584ab2eb451c88154b2707c","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"11f8fec54584ab2eb451c88154b2707c","dnb":"117582441","term":"Béhier, Louis Jules Félix, 1813-1876","key":"BéhierLouisJulesFélix1813-1876"} {"version":"2013-07-01T14:07:50Z","_id":"11ffa2bf241015a028fa82d09ff5bafa","bne":"xx1204553","dnb":"127425446","ptbnp":"375905","term":"Boillot, Félix François, b. 1880","key":"BoillotFélixFrançoisb1880","viafid":"87020333","nlilat":"000517994","merge":{"source":"viaf","id":"11ffa2bf241015a028fa82d09ff5bafa","type":"document"},"lc":"no93027215","bnf":"12943480","bav":"adv12233131"} {"nkc":"jn20000700171","selibr":"178240","version":"2013-07-01T14:07:50Z","_id":"120b1f8215aab54ad08bf2b6c4770425","bne":"xx1054412","dnb":"119497042","nla":"000035688819","ptbnp":"88613","term":"Bianciotti, Héctor, 1930-2012","key":"BianciottiHéctor1930-2012","viafid":"7386943","merge":{"source":"viaf","id":"120b1f8215aab54ad08bf2b6c4770425","type":"document"},"lc":"n85261121","bnf":"11891925"} {"selibr":"203767","version":"2013-07-01T14:07:50Z","_id":"120ba597407f2afa1ea787186962a815","term":"Söderlund, Ernst, 1903-1996","key":"SöderlundErnst1903-1996","viafid":"119425542","merge":{"source":"viaf","id":"120ba597407f2afa1ea787186962a815","type":"document"},"lc":"n80098554"} {"nkc":"js20020925060","selibr":"105473","version":"2013-07-01T14:07:50Z","_id":"1210d353657920befeefdb477d0a4208","bne":"xx1063264","dnb":"119183544","swnl":"vtls000237368","nla":"000035028309","term":"Čukovskaja, Lidija Korneevna, 1907-1996","key":"ČukovskajaLidijaKorneevna1907-1996","viafid":"95164668","nlilat":"000031839","nlicyr":"000158528","merge":{"source":"viaf","id":"1210d353657920befeefdb477d0a4208","type":"document"},"lc":"n79119170","bnf":"11926146"} {"version":"2013-07-01T14:07:50Z","_id":"12122cdecff80f2c27dd7f7f220093ba","bne":"xx1126985","dnb":"100274617","term":"Soto, Andrés de (1553?-1625)","key":"SotoAndrésde(1553?-1625)","viafid":"74194245","merge":{"source":"viaf","id":"12122cdecff80f2c27dd7f7f220093ba","type":"document"},"lc":"nr93009629","bav":"adv11380927"} {"version":"2013-07-01T14:07:50Z","_id":"122449e766637d3ee21db851f9fc5782","dnb":"1020591498","term":"Prévost, Jean-Louis, 1838-1927","key":"PrévostJean-Louis1838-1927","viafid":"67974004","merge":{"source":"viaf","id":"122449e766637d3ee21db851f9fc5782","type":"document"},"lc":"n87106240"} {"viafid":"12608292","merge":{"source":"viaf","id":"122a4942eb0f38918071e005b833d84d","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"122a4942eb0f38918071e005b833d84d","bnf":"15365539","term":"Roumeguère, Casimir, 1828-1892","key":"RoumeguèreCasimir1828-1892"} {"selibr":"33821","version":"2013-07-01T14:07:50Z","_id":"122baaf94d285b58a01b3ef7ef58bfe0","egaxa":"vtls000832519","dnb":"102509441","term":"Silafī, Aḥmad ibn Muḥammad, d. 1180","key":"SilafīAḥmadibnMuḥammadd1180","viafid":"54298152","merge":{"source":"viaf","id":"122baaf94d285b58a01b3ef7ef58bfe0","type":"document"},"lc":"n88662416","bnf":"13483513"} {"nkc":"jn19990006694","_id":"1238d502e90ce7f245cced87d6cd2151","egaxa":"vtls001067598","bne":"xx902779","dnb":"118596446","nla":"000036202545","ptbnp":"87670","term":"Prévert, Jacques, 1900-1977","key":"PrévertJacques1900-1977","viafid":"76321578","merge":{"source":"viaf","id":"1238d502e90ce7f245cced87d6cd2151","type":"document"},"jpg":"500341496","bnf":"11920604","selibr":"220997","version":"2013-07-01T14:07:50Z","nlilat":"000108129","lc":"n79054068"} {"version":"2013-07-01T14:07:50Z","_id":"123d2bc806c71e36d6de5361d0fa43c8","dnb":"11915420x","nla":"000036566765","term":"Xenopoulos, Grēgorios, 1867-1951","key":"XenopoulosGrēgorios1867-1951","viafid":"90728471","merge":{"source":"viaf","id":"123d2bc806c71e36d6de5361d0fa43c8","type":"document"},"lc":"n82106115","bnf":"13538969"} {"viafid":"175949462","merge":{"source":"viaf","id":"124995ac1d8e3a7bb7fae9cb2d6ffbe2","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"124995ac1d8e3a7bb7fae9cb2d6ffbe2","lc":"n2005053411","term":"Diallo, Alpha-Abdoulaye, 1935- | Vérité du ministre","key":"DialloAlpha-Abdoulaye1935-|Véritéduministre"} {"nkc":"mzk2008473336","version":"2013-07-01T14:07:50Z","_id":"125236206f6f8c5f9952f9a56df4bb60","dnb":"122586425","term":"Grégoire, Pierre, 1540-1617","key":"GrégoirePierre1540-1617","viafid":"120702894","merge":{"source":"viaf","id":"125236206f6f8c5f9952f9a56df4bb60","type":"document"},"lc":"n86809119"} {"version":"2013-07-01T14:07:50Z","_id":"1252c4fa8fda1d003423c429c1293265","bne":"xx4579773","ptbnp":"169866","term":"Pessonneaux, Émile 1821-1903","key":"PessonneauxÉmile1821-1903","viafid":"51706429","merge":{"source":"viaf","id":"1252c4fa8fda1d003423c429c1293265","type":"document"},"bnf":"12035547"} {"version":"2013-07-01T14:07:50Z","_id":"12548470f8ff2be03ec799584d37a996","dnb":"118810421","term":"Stübel, Alfons, 1835-1904","key":"StübelAlfons1835-1904","viafid":"5727472","merge":{"source":"viaf","id":"12548470f8ff2be03ec799584d37a996","type":"document"},"lc":"n93120825","bav":"adv12173604"} {"selibr":"37750","version":"2013-07-01T14:07:50Z","_id":"1255b36ca854cac2f4e20610bc5bf801","bne":"xx931440","term":"Shāljī, Abbūd, 1911-1996","key":"ShāljīAbbūd1911-1996","viafid":"37069036","merge":{"source":"viaf","id":"1255b36ca854cac2f4e20610bc5bf801","type":"document"},"lc":"n85018738","bnf":"13485665"} {"viafid":"183561012","merge":{"source":"viaf","id":"12562e5f745215a3bfed72254c2d05f7","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"12562e5f745215a3bfed72254c2d05f7","bne":"xx5127061","term":"Rivera Letelier, Hernán 1950- | La contadora de películas Hebreo","key":"RiveraLetelierHernán1950-|LacontadoradepelículasHebreo"} {"nkc":"ola2002151598","selibr":"285733","version":"2013-07-01T14:07:50Z","_id":"1256a26ef31c01ceb6dbbd359c05a9c9","bne":"xx1128193","dnb":"118752529","swnl":"vtls000194478","nla":"000035519037","term":"De Staël, Nicolas, 1914-1955","key":"DeStaëlNicolas1914-1955","viafid":"68938567","merge":{"source":"viaf","id":"1256a26ef31c01ceb6dbbd359c05a9c9","type":"document"},"jpg":"500026376","lc":"n82017607","bnf":"11993741"} {"viafid":"54931286","merge":{"source":"viaf","id":"126dbfd985269e5619338e7f9bbd1542","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"126dbfd985269e5619338e7f9bbd1542","dnb":"117657530","term":"Dürr, Ernst (1878-1913)","key":"DürrErnst(1878-1913)"} {"nkc":"xx0049458","selibr":"253232","version":"2013-07-01T14:07:50Z","_id":"126e7f9827eaf481386f8f168e49ea71","dnb":"118598228","nla":"000035570120","ptbnp":"495226","term":"De La Ramée, Pierre, 1515-1572","key":"DeLaRaméePierre1515-1572","nlilat":"000109442","viafid":"39399236","merge":{"source":"viaf","id":"126e7f9827eaf481386f8f168e49ea71","type":"document"},"lc":"n81129403","bnf":"12064509","bav":"adv10014647"} {"nkc":"jn19990210293","_id":"1280e322b76f2747b3ee1f62bfacf410","bne":"xx983446","dnb":"118638378","nla":"000035269636","ptbnp":"89870","term":"Hrusčev, Nikita S., 1894-1971","key":"HrusčevNikitaS1894-1971","viafid":"64007537","merge":{"source":"viaf","id":"1280e322b76f2747b3ee1f62bfacf410","type":"document"},"bnf":"11909712","selibr":"46096","version":"2013-07-01T14:07:50Z","swnl":"vtls000045610","nlilat":"000075679","nlicyr":"000158075","lc":"n80021705"} {"nkc":"kup19990000055331","selibr":"231195","version":"2013-07-01T14:07:50Z","_id":"1286911ca50010b4675f5c3ee092d7a8","dnb":"118898221","ptbnp":"238746","term":"Landström, Björn, 1917-2002","key":"LandströmBjörn1917-2002","viafid":"121575064","nlilat":"000409329","merge":{"source":"viaf","id":"1286911ca50010b4675f5c3ee092d7a8","type":"document"},"lc":"n50038730","bnf":"12180906","bav":"adv10310733"} {"version":"2013-07-01T14:07:50Z","_id":"12896cfe1e87a4a422e590df417b9a74","dnb":"128753943","nla":"000035105247","term":"Solovʹëv, Boris Ivanovič 1904-1976","key":"SolovʹëvBorisIvanovič1904-1976","viafid":"59198278","nlicyr":"000214020","merge":{"source":"viaf","id":"12896cfe1e87a4a422e590df417b9a74","type":"document"},"lc":"n86037949","bnf":"12550043"} {"viafid":"81633191","merge":{"source":"viaf","id":"128f2cb3f749a024ea65f5a05148d385","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"128f2cb3f749a024ea65f5a05148d385","dnb":"137442343","term":"Fuchs, Günter, 1924-1964","key":"FuchsGünter1924-1964"} {"version":"2013-07-01T14:07:50Z","_id":"129637765c5fb0467ea01693c1e382e2","dnb":"101063806","term":"Quesnay de Saint-Germain, Robert-François-Joseph, 1751-1805","key":"QuesnaydeSaint-GermainRobert-François-Joseph1751-1805","viafid":"44393631","merge":{"source":"viaf","id":"129637765c5fb0467ea01693c1e382e2","type":"document"},"lc":"nr93032062","bnf":"12449297"} {"nkc":"xx0004105","version":"2013-07-01T14:07:50Z","_id":"1299a7c1f7357bc44dd194b3734fb452","bne":"xx926821","dnb":"122760247","nla":"000035331415","term":"Martín-Santos, Luis, 1924-1964","key":"Martín-SantosLuis1924-1964","viafid":"7462521","merge":{"source":"viaf","id":"1299a7c1f7357bc44dd194b3734fb452","type":"document"},"lc":"n50054896","bnf":"12338532"} {"version":"2013-07-01T14:07:50Z","_id":"129b494767416c8b87e408dd1e0cc9bf","dnb":"138723702","term":"Krygowski, Bogumił, 1905-1977","key":"KrygowskiBogumił1905-1977","nlilat":"000461762","viafid":"125074948","merge":{"source":"viaf","id":"129b494767416c8b87e408dd1e0cc9bf","type":"document"},"lc":"n84094887","bnf":"11242342"} {"nkc":"jo2001100056","selibr":"37267","version":"2013-07-01T14:07:50Z","_id":"129e0e84ee8fb00c1b567817c5c8b2dd","bne":"xx1044131","dnb":"118997203","nla":"000036515854","term":"Krapiva, Kandrat Kandratavič, 1896-1991","key":"KrapivaKandratKandratavič1896-1991","nlicyr":"000332559","viafid":"109448884","merge":{"source":"viaf","id":"129e0e84ee8fb00c1b567817c5c8b2dd","type":"document"},"lc":"n82125088","bnf":"14507009"} {"viafid":"186335322","merge":{"source":"viaf","id":"12a628c80f83e5ba972925302bfd57d6","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"12a628c80f83e5ba972925302bfd57d6","lc":"n85372679","term":"O'Neill, Brian Juan, 1950- | Proprietários, lavradores e jornaleiras. English","key":"O'NeillBrianJuan1950-|ProprietárioslavradoresejornaleirasEnglish"} {"selibr":"223306","version":"2013-07-01T14:07:50Z","_id":"12a7858dc33486d37130e6994bbe1038","dnb":"128514124","nla":"000035489080","ptbnp":"393890","term":"Seltman, Charles Théodore 1886-1957","key":"SeltmanCharlesThéodore1886-1957","viafid":"2598262","nlilat":"000225935","merge":{"source":"viaf","id":"12a7858dc33486d37130e6994bbe1038","type":"document"},"lc":"n82222989","bnf":"12763808","bav":"adv12154268"} {"nkc":"js2007400423","selibr":"338050","version":"2013-07-01T14:07:50Z","_id":"12acc80a38d1e9f7e4a109ac92b9fce5","dnb":"100130828","nla":"000035650522","ptbnp":"158206","term":"De Ségur, Louis-Philippe, 1753-1830","key":"DeSégurLouis-Philippe1753-1830","nlilat":"000448585","viafid":"76361034","merge":{"source":"viaf","id":"12acc80a38d1e9f7e4a109ac92b9fce5","type":"document"},"lc":"n82152242","bnf":"12185861","bav":"adv11172695"} {"nkc":"xx0020472","version":"2013-07-01T14:07:50Z","_id":"12b0e98b979fc01132804d18da580a2b","dnb":"117039691","term":"Nogaret, François Felix, 1740-1831","key":"NogaretFrançoisFelix1740-1831","viafid":"61555612","merge":{"source":"viaf","id":"12b0e98b979fc01132804d18da580a2b","type":"document"},"lc":"n90692754","bnf":"11997595"} {"selibr":"336260","version":"2013-07-01T14:07:50Z","_id":"12c6615bffa0a392f0383d2608428f88","dnb":"124738710","term":"Kis, István, 1505-1572","key":"KisIstván1505-1572","viafid":"18164975","merge":{"source":"viaf","id":"12c6615bffa0a392f0383d2608428f88","type":"document"},"lc":"nr93015424","bav":"adv11384407"} {"viafid":"292419344","merge":{"source":"viaf","id":"12c6704b2b35949c64d8bdad4ee7bfa3","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"12c6704b2b35949c64d8bdad4ee7bfa3","bnf":"13456551","term":"Pénasse, Eugène 1853-19","key":"PénasseEugène1853-19"} {"nkc":"kup19970000022583","version":"2013-07-01T14:07:50Z","_id":"12c76112c6c21460f53e5fb9d2f17f92","bne":"xx1151975","dnb":"118672169","ptbnp":"211734","term":"Dörpfeld, Wilhelm, 1853-1940","key":"DörpfeldWilhelm1853-1940","viafid":"106965312","nlilat":"000547614","merge":{"source":"viaf","id":"12c76112c6c21460f53e5fb9d2f17f92","type":"document"},"jpg":"500288114","lc":"no2003088451","bnf":"10433194","bav":"adv10202850"} {"nkc":"ola2004235422","version":"2013-07-01T14:07:50Z","_id":"12d1ae3009278fd235b3a5583bc15511","bne":"xx958086","dnb":"106279467","nla":"000035292396","ptbnp":"62431","term":"Lartéguy, Jean, 1920-2011","key":"LartéguyJean1920-2011","nlilat":"000081198","viafid":"68931538","merge":{"source":"viaf","id":"12d1ae3009278fd235b3a5583bc15511","type":"document"},"lc":"n79061369","bnf":"11911167"} {"nkc":"jn20020213016","selibr":"72064","version":"2013-07-01T14:07:50Z","_id":"12d881d9f05759b6a15921bdfbf7c8c2","dnb":"123541476","term":"Ljublinskij, Vladimir Sergeevič, 1903-1968","key":"LjublinskijVladimirSergeevič1903-1968","nlicyr":"000153198","viafid":"50137979","merge":{"source":"viaf","id":"12d881d9f05759b6a15921bdfbf7c8c2","type":"document"},"lc":"n83228471","bnf":"15971556"} {"nkc":"jx20050608005","selibr":"316991","version":"2013-07-01T14:07:50Z","_id":"12e7ac401844ae4a6c0087cbdb8e210e","bne":"xx982888","dnb":"118839152","nla":"000036590116","ptbnp":"153891","term":"Medina, José Toribio, 1852-1930","key":"MedinaJoséToribio1852-1930","viafid":"26820","nlilat":"000091327","merge":{"source":"viaf","id":"12e7ac401844ae4a6c0087cbdb8e210e","type":"document"},"lc":"n50009972","bnf":"12034483","bav":"adv10212780"} {"version":"2013-07-01T14:07:50Z","_id":"12ec2800982ec67adb303f404fc8e37a","dnb":"1017304882","term":"Cérou, Pierre, 1709-1797?","key":"CérouPierre1709-1797?","viafid":"29662759","merge":{"source":"viaf","id":"12ec2800982ec67adb303f404fc8e37a","type":"document"},"lc":"no91028393","bnf":"12927174"} {"version":"2013-07-01T14:07:50Z","_id":"12efbcd9749a7397ec8cb9a10c3e86f1","dnb":"119044072","nla":"000036608830","term":"Li, Lüyuan, 1707-1790","key":"LiLüyuan1707-1790","viafid":"64239913","merge":{"source":"viaf","id":"12efbcd9749a7397ec8cb9a10c3e86f1","type":"document"},"lc":"n81152098","bnf":"14517541"} {"version":"2013-07-01T14:07:50Z","_id":"12f74a969b6e77233ac0c55e8a55d2e5","dnb":"1021419966","nla":"000035701552","term":"Gätje, Helmut, 1927-1986","key":"GätjeHelmut1927-1986","nlilat":"000491334","viafid":"29561534","merge":{"source":"viaf","id":"12f74a969b6e77233ac0c55e8a55d2e5","type":"document"},"lc":"n87949742","bnf":"12092987","bav":"adv10197544"} {"version":"2013-07-01T14:07:50Z","_id":"12fd9d16853a861511046653bdc63370","term":"Kostrenčić, Marko (1884-1976)","key":"KostrenčićMarko(1884-1976)","viafid":"115237338","nlilat":"000422031","merge":{"source":"viaf","id":"12fd9d16853a861511046653bdc63370","type":"document"},"lc":"n79089243","bnf":"12163981","bav":"adv10024559"} {"nkc":"jo2003169871","version":"2013-07-01T14:07:50Z","_id":"12ff51fd0c7e477b8856ae5bac739455","dnb":"12584252x","term":"Van Aerssen, François, 1572-1641","key":"VanAerssenFrançois1572-1641","viafid":"4923795","merge":{"source":"viaf","id":"12ff51fd0c7e477b8856ae5bac739455","type":"document"},"lc":"no91000108","bnf":"11290581","bav":"adv10309229"} {"viafid":"184367346","merge":{"source":"viaf","id":"1303160506202c6d74933bac1beb066b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1303160506202c6d74933bac1beb066b","lc":"n93083929","term":"Casalis, E., 1812-1891., (Eugène), Basutos","key":"CasalisE1812-1891(Eugène)Basutos"} {"version":"2013-07-01T14:07:50Z","_id":"1304bc1461a93f24883d94aa998966e9","dnb":"117585084","term":"Van Beneden, Édouard 1846-1910","key":"VanBenedenÉdouard1846-1910","viafid":"74634040","merge":{"source":"viaf","id":"1304bc1461a93f24883d94aa998966e9","type":"document"},"lc":"no99059626"} {"version":"2013-07-01T14:07:50Z","_id":"1306a2283451d9f165122b248fe23436","dnb":"115353240","term":"Bareau de Girac, François, 1730-1820","key":"BareaudeGiracFrançois1730-1820","viafid":"257352072","merge":{"source":"viaf","id":"1306a2283451d9f165122b248fe23436","type":"document"},"lc":"nr93015817"} {"viafid":"195134671","merge":{"source":"viaf","id":"130d569773a442f899ce9a00cbe0b8fc","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"130d569773a442f899ce9a00cbe0b8fc","term":"Martin, Pierre Étienne, 1771-1846, médecin","key":"MartinPierreÉtienne1771-1846médecin"} {"viafid":"270180801","merge":{"source":"viaf","id":"1313ef313c5253723f9737258d6a580f","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1313ef313c5253723f9737258d6a580f","lc":"no2012135771","term":"Jačev, Risto Ǵ., 1942- | Sivite grebeni. English","key":"JačevRistoǴ1942-|SivitegrebeniEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"1316f1c4b060a1898f7cd0cb64055a6b","dnb":"173668690","term":"LeBesgue, Victor Amédée 1791-1875","key":"LeBesgueVictorAmédée1791-1875","viafid":"51035174","merge":{"source":"viaf","id":"1316f1c4b060a1898f7cd0cb64055a6b","type":"document"},"lc":"n2001080119","bnf":"13025002"} {"nkc":"js20020925008","version":"2013-07-01T14:07:50Z","_id":"13186acb8b0c44c7b802d47816611076","dnb":"119548623","nla":"000036033420","ptbnp":"1200494","term":"Vinokur, Grigorij Osipovič, 1896-1947","key":"VinokurGrigorijOsipovič1896-1947","nlicyr":"000149340","viafid":"64227621","merge":{"source":"viaf","id":"13186acb8b0c44c7b802d47816611076","type":"document"},"lc":"n87847122","bnf":"14447439"} {"nkc":"jo20000080732","selibr":"86598","version":"2013-07-01T14:07:50Z","_id":"131ecb77c88f17ec076ec2a7feeecfef","dnb":"118744488","nla":"000036566268","ptbnp":"1441922","term":"Remizov, Aleksej Michajlovič, 1877-1957","key":"RemizovAleksejMichajlovič1877-1957","viafid":"51953667","nlilat":"000412093","nlicyr":"000155632","merge":{"source":"viaf","id":"131ecb77c88f17ec076ec2a7feeecfef","type":"document"},"jpg":"500052237","lc":"n50051063","bnf":"11921459","bav":"adv12225474"} {"viafid":"163847732","merge":{"source":"viaf","id":"131f40bb6661611488d3ee87d00a033e","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"131f40bb6661611488d3ee87d00a033e","lc":"no2004024183","term":"Valdés Acosta, Gema, 1948-, (Gema Del Carmen)","key":"ValdésAcostaGema1948-(GemaDelCarmen)"} {"version":"2013-07-01T14:07:50Z","_id":"1320dd7b76175957502b24c72545ca79","dnb":"117622087","term":"Bottin, Sébastien, 1764-1853","key":"BottinSébastien1764-1853","viafid":"7430095","merge":{"source":"viaf","id":"1320dd7b76175957502b24c72545ca79","type":"document"},"lc":"n87860767","bnf":"12163856"} {"viafid":"177774196","merge":{"source":"viaf","id":"132179ff6435225476e4d3d61c9ab632","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"132179ff6435225476e4d3d61c9ab632","nla":"000035795924","term":"Breton, Roland J.-L., 1931- | Géographie des langues. Italian","key":"BretonRolandJ-L1931-|GéographiedeslanguesItalian"} {"nkc":"mzk2009532937","selibr":"287100","version":"2013-07-01T14:07:50Z","_id":"1323a5e9d31ceab66d8bc0c2c6ef5cc8","dnb":"119241226","term":"Savary, Anne-Jean-Marie-René, 1774-1833","key":"SavaryAnne-Jean-Marie-René1774-1833","nlilat":"000114134","viafid":"22231617","merge":{"source":"viaf","id":"1323a5e9d31ceab66d8bc0c2c6ef5cc8","type":"document"},"lc":"n87896516","bnf":"12425645","bav":"adv11186928"} {"version":"2013-07-01T14:07:50Z","_id":"132c4267b889526f124c2c59d5694133","dnb":"118728822","ptbnp":"156872","term":"Lösch, August, 1906-1945","key":"LöschAugust1906-1945","viafid":"49354029","nlilat":"000492756","merge":{"source":"viaf","id":"132c4267b889526f124c2c59d5694133","type":"document"},"lc":"n88069679","bnf":"12917299"} {"selibr":"275223","version":"2013-07-01T14:07:50Z","_id":"13327dcb552f22567b1d6f0c27bd5d67","bne":"xx1659253","dnb":"10427736x","term":"Gersaint, Edme-François, d. 1750","key":"GersaintEdme-Françoisd1750","nlilat":"000474978","viafid":"100185623","merge":{"source":"viaf","id":"13327dcb552f22567b1d6f0c27bd5d67","type":"document"},"lc":"n85301441","bnf":"13011021","bav":"adv10214445"} {"nkc":"mzk2007395146","selibr":"239393","version":"2013-07-01T14:07:50Z","_id":"133371bb9282a1d8ead004a1e237338e","dnb":"172514533","nla":"000035926290","ptbnp":"182221","term":"Clüver, Philipp, 1580-1622","key":"ClüverPhilipp1580-1622","nlilat":"000032604","viafid":"29833013","merge":{"source":"viaf","id":"133371bb9282a1d8ead004a1e237338e","type":"document"},"lc":"n85086963","bnf":"15327077","bav":"adv10049515"} {"version":"2013-07-01T14:07:50Z","_id":"1333cb8714f1197d884318699e12bf0b","dnb":"172441544","nla":"000035589693","ptbnp":"148091","term":"Walter, Gérard, 1896-1974","key":"WalterGérard1896-1974","viafid":"100184549","nlilat":"000219078","merge":{"source":"viaf","id":"1333cb8714f1197d884318699e12bf0b","type":"document"},"lc":"n83022460","bnf":"12161707","bav":"adv10206542"} {"nkc":"jk01051869","version":"2013-07-01T14:07:50Z","_id":"133de31b35d469ac98840a2f70781722","dnb":"119224178","term":"Jíreček, Konstantin, 1854-1918","key":"JírečekKonstantin1854-1918","nlilat":"000514779","nlicyr":"000151595","viafid":"71464501","merge":{"source":"viaf","id":"133de31b35d469ac98840a2f70781722","type":"document"},"lc":"no88002779","bnf":"12343924","bav":"adv10000111"} {"viafid":"292646925","merge":{"source":"viaf","id":"1340cca6d5420138121e02f34c70d28c","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1340cca6d5420138121e02f34c70d28c","bnf":"13521106","term":"Connes, Alain 1947-.... Matière à pensée","key":"ConnesAlain1947-Matièreàpensée"} {"version":"2013-07-01T14:07:50Z","_id":"134c05717bb6fb6482a90088f841d0b4","dnb":"100188141","term":"Legallois, César Julien, 1770-1814","key":"LegalloisCésarJulien1770-1814","viafid":"120775682","merge":{"source":"viaf","id":"134c05717bb6fb6482a90088f841d0b4","type":"document"},"lc":"n86837058","bnf":"10652620"} {"nkc":"jn20011211066","selibr":"200401","version":"2013-07-01T14:07:50Z","_id":"135ce84257418bcc78568750a2111e60","bne":"xx1005644","dnb":"138087563","nla":"000036585051","ptbnp":"186073","term":"Valbuena Prat, Ángel, 1900-1977","key":"ValbuenaPratÁngel1900-1977","viafid":"110455808","nlilat":"000430020","merge":{"source":"viaf","id":"135ce84257418bcc78568750a2111e60","type":"document"},"lc":"n80094272","bnf":"12028549","bav":"adv10143108"} {"nkc":"nlk20000090057","version":"2013-07-01T14:07:50Z","_id":"1376e493e318f49ee5a6bc7de59d29cd","dnb":"101866313","term":"Lépine, Raphaël, 1840-1919","key":"LépineRaphaël1840-1919","viafid":"2603660","merge":{"source":"viaf","id":"1376e493e318f49ee5a6bc7de59d29cd","type":"document"},"bnf":"12966050"} {"nkc":"js20050703013","version":"2013-07-01T14:07:50Z","_id":"137f20b36063fe82a71c804ec1d5ea0d","dnb":"121576531","swnl":"vtls002011955","nla":"000035047927","term":"Grobéty, Anne-Lise 1949-2010","key":"GrobétyAnne-Lise1949-2010","viafid":"91354976","nlilat":"000056875","merge":{"source":"viaf","id":"137f20b36063fe82a71c804ec1d5ea0d","type":"document"},"lc":"n86074554","bnf":"12104361"} {"version":"2013-07-01T14:07:50Z","_id":"1382ed5f9c62681680678a4765249ec6","dnb":"102866341","term":"Du Pré, Galliot, d. 1561","key":"DuPréGalliotd1561","viafid":"100294987","merge":{"source":"viaf","id":"1382ed5f9c62681680678a4765249ec6","type":"document"},"lc":"nr94028497","bnf":"12487007"} {"version":"2013-07-01T14:07:50Z","_id":"1383061015604866b10b40be09d50a0e","bne":"xx1266708","dnb":"117618284","nla":"000035077674","ptbnp":"203589","term":"Salverte, Eusèbe, 1771-1839","key":"SalverteEusèbe1771-1839","viafid":"14822860","nlilat":"000492702","merge":{"source":"viaf","id":"1383061015604866b10b40be09d50a0e","type":"document"},"lc":"n88067883","bnf":"12227688","bav":"adv11209050"} {"nkc":"jx20070612019","selibr":"178868","version":"2013-07-01T14:07:50Z","_id":"1385be4e3cdef2172f0727458e7eb8ec","dnb":"118662473","swnl":"vtls000033876","term":"Boy-Ed, Idá (1852-1928)","key":"Boy-EdIdá(1852-1928)","nlilat":"000023721","viafid":"50019156","merge":{"source":"viaf","id":"1385be4e3cdef2172f0727458e7eb8ec","type":"document"},"lc":"n50043125"} {"nkc":"jn20000700664","selibr":"211403","version":"2013-07-01T14:07:50Z","_id":"1397f1a12df8a2f5d334d64cec4be38a","dnb":"118545388","swnl":"vtls002029343","nla":"000035166507","ptbnp":"150722","term":"Hammarskjöld, Dag, 1905-1961","key":"HammarskjöldDag1905-1961","viafid":"9861820","nlilat":"000211029","merge":{"source":"viaf","id":"1397f1a12df8a2f5d334d64cec4be38a","type":"document"},"lc":"n79034467","bnf":"12029110","bav":"adv12352150"} {"selibr":"228146","version":"2013-07-01T14:07:50Z","_id":"1398870983365a4e9950886a61a77fe8","dnb":"101388896","term":"Lagerström, Hugo, 1873-1956","key":"LagerströmHugo1873-1956","viafid":"61916489","merge":{"source":"viaf","id":"1398870983365a4e9950886a61a77fe8","type":"document"},"lc":"no2008180427"} {"version":"2013-07-01T14:07:50Z","_id":"13aadd027bb3321ff7ddf55d9d145337","dnb":"100507484","term":"Lepan, Édouard-Marie-Joseph, 1767-1836?","key":"LepanÉdouard-Marie-Joseph1767-1836?","viafid":"73856477","merge":{"source":"viaf","id":"13aadd027bb3321ff7ddf55d9d145337","type":"document"},"bnf":"11912514","bav":"adv11018991"} {"version":"2013-07-01T14:07:50Z","_id":"13b27848965db8d48114e5ede6a2c59b","dnb":"115143858","term":"De Valenzuela, Nicolás, 17th cent","key":"DeValenzuelaNicolás17thcent","viafid":"47485171","merge":{"source":"viaf","id":"13b27848965db8d48114e5ede6a2c59b","type":"document"},"lc":"n80111260"} {"version":"2013-07-01T14:07:50Z","_id":"13b8a42eaeba8156429b4d05e5251faf","dnb":"118762117","ptbnp":"114100","term":"Schücking, Walther, 1875-1935","key":"SchückingWalther1875-1935","nlilat":"000119422","viafid":"32142447","merge":{"source":"viaf","id":"13b8a42eaeba8156429b4d05e5251faf","type":"document"},"lc":"n88071815","bnf":"13322345","bav":"adv12238341"} {"version":"2013-07-01T14:07:50Z","_id":"13bb3ba59e44985b154b108f1c1ab542","dnb":"123388775","term":"Bouchu, Étienne Jean (1714-1773)","key":"BouchuÉtienneJean(1714-1773)","viafid":"919671","merge":{"source":"viaf","id":"13bb3ba59e44985b154b108f1c1ab542","type":"document"},"lc":"no91022030","bnf":"16568135"} {"nkc":"xx0096940","version":"2013-07-01T14:07:50Z","_id":"13bc64cf5d33bc19b12af6d8b9650c54","dnb":"12453970x","term":"Desmahis, Marin Grostête, 1649-1694","key":"DesmahisMarinGrostête1649-1694","viafid":"56600306","merge":{"source":"viaf","id":"13bc64cf5d33bc19b12af6d8b9650c54","type":"document"},"lc":"nr93017500","bnf":"10681119"} {"nkc":"jk01152975","version":"2013-07-01T14:07:50Z","_id":"13c4e87bac899be9c34fc6cddd7c0ceb","dnb":"103461736","term":"Žák, Jaroslav, 1906-1960","key":"ŽákJaroslav1906-1960","viafid":"49638770","nlilat":"000145123","merge":{"source":"viaf","id":"13c4e87bac899be9c34fc6cddd7c0ceb","type":"document"},"lc":"n92026015"} {"version":"2013-07-01T14:07:50Z","_id":"13d8534d4717431ab106c16aa2505b50","dnb":"105851337","nla":"000035242650","term":"Jánossy, Lajos (1912-1978)","key":"JánossyLajos(1912-1978)","nlilat":"000413248","viafid":"108565657","merge":{"source":"viaf","id":"13d8534d4717431ab106c16aa2505b50","type":"document"},"lc":"n50076011","bnf":"11473144","bav":"adv10290089"} {"nkc":"nlk20000084604","version":"2013-07-01T14:07:50Z","_id":"13dddaa9ccb7504b36b899eb93a840ac","bne":"xx1252301","dnb":"119081822","term":"Döderlein, Albert, 1860-1941","key":"DöderleinAlbert1860-1941","viafid":"20482478","nlilat":"000510144","merge":{"source":"viaf","id":"13dddaa9ccb7504b36b899eb93a840ac","type":"document"},"lc":"n93088538"} {"version":"2013-07-01T14:07:50Z","_id":"13e092bc20255ee05d824f8749990197","dnb":"121350177","nla":"000036577128","term":"Bestmann, Hans Jürgen, 1925-2005","key":"BestmannHansJürgen1925-2005","viafid":"94951367","merge":{"source":"viaf","id":"13e092bc20255ee05d824f8749990197","type":"document"},"lc":"n83001765"} {"version":"2013-07-01T14:07:50Z","_id":"13e2d8c4dc31844a867b6de39b505803","bne":"xx849594","dnb":"124372597","term":"Schuler, Théophile, 1821-1878","key":"SchulerThéophile1821-1878","nlilat":"000525235","viafid":"17229379","merge":{"source":"viaf","id":"13e2d8c4dc31844a867b6de39b505803","type":"document"},"jpg":"500003958","lc":"nr91017449","bnf":"11924142"} {"nkc":"jn20030723002","selibr":"347560","version":"2013-07-01T14:07:50Z","_id":"13e527207ff40989842240429371ee23","dnb":"100213723","term":"Minato, Niccolò, 1627-1698","key":"MinatoNiccolò1627-1698","nlilat":"000552701","viafid":"100204455","merge":{"source":"viaf","id":"13e527207ff40989842240429371ee23","type":"document"},"lc":"n82139122","bnf":"13925233","bav":"adv11019887"} {"version":"2013-07-01T14:07:50Z","_id":"13f3cd38a6899b1b9ed5ecdc9d2dd83d","dnb":"100757510","term":"Benoît, Philippe Martin Narcisse, 1791-1867","key":"BenoîtPhilippeMartinNarcisse1791-1867","viafid":"107498","merge":{"source":"viaf","id":"13f3cd38a6899b1b9ed5ecdc9d2dd83d","type":"document"},"lc":"n88132726","bnf":"12459635"} {"version":"2013-07-01T14:07:50Z","_id":"13fb7b3ce61d32d193657045a7144100","dnb":"100835244","nla":"000035287364","term":"Lachèvre, Frédéric, 1855-1943","key":"LachèvreFrédéric1855-1943","nlilat":"000409956","viafid":"66480802","merge":{"source":"viaf","id":"13fb7b3ce61d32d193657045a7144100","type":"document"},"lc":"n50041323","bnf":"12025019","bav":"adv10187258"} {"nkc":"ola2003172178","version":"2013-07-01T14:07:50Z","_id":"13fe19afd531a7178532ce2c6587cf81","dnb":"12328354x","term":"Topîrceanu, George, 1886-1937","key":"TopîrceanuGeorge1886-1937","viafid":"2484379","nlilat":"000450056","merge":{"source":"viaf","id":"13fe19afd531a7178532ce2c6587cf81","type":"document"},"lc":"n82230847","bnf":"12026787"} {"nkc":"ola2008460009","version":"2013-07-01T14:07:50Z","_id":"1404dd471b278ac0f6a7e20435519181","bne":"xx1727372","dnb":"117661236","term":"De l'Isle André, Yves Marie, 1675-1764","key":"Del'IsleAndréYvesMarie1675-1764","viafid":"51732793","merge":{"source":"viaf","id":"1404dd471b278ac0f6a7e20435519181","type":"document"},"lc":"n2006066584","bnf":"12180932","bav":"adv10231928"} {"nkc":"jn20000603991","selibr":"194998","version":"2013-07-01T14:07:50Z","_id":"1410a071456c9e4a0c12eaa6a9825b5d","bne":"xx1020593","dnb":"118580817","nla":"000035346765","ptbnp":"181363","term":"Menéndez y Pelayo, Marcelino, 1856-1912","key":"MenéndezyPelayoMarcelino1856-1912","viafid":"64018425","nlilat":"000092132","merge":{"source":"viaf","id":"1410a071456c9e4a0c12eaa6a9825b5d","type":"document"},"lc":"n50045147","bnf":"12020646","bav":"adv10475174"} {"nkc":"xx0001988","_id":"141b2c94c573f20c3f8dca411aa423b7","egaxa":"vtls001110051","bne":"xx998466","dnb":"118964038","nla":"000035960643","ptbnp":"10526","term":"Saramago, José de Sousa, 1922-2010","key":"SaramagoJosédeSousa1922-2010","viafid":"114473675","merge":{"source":"viaf","id":"141b2c94c573f20c3f8dca411aa423b7","type":"document"},"bnf":"12027213","selibr":"89703","version":"2013-07-01T14:07:50Z","swnl":"vtls002352195","nlilat":"000116640","lc":"n85130797"} {"viafid":"212912232","merge":{"source":"viaf","id":"141e055ae72686ee2e118d57a4325696","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"141e055ae72686ee2e118d57a4325696","dnb":"957302584","term":"Barbéris, Pierre 1926- Verfasserschaft1","key":"BarbérisPierre1926-Verfasserschaft1"} {"version":"2013-07-01T14:07:50Z","_id":"141e1e5bd08b42bd1c7523b0ecaca044","dnb":"172506344","ptbnp":"1172693","term":"Rouché, Eugène (1832-1910)","key":"RouchéEugène(1832-1910)","viafid":"37000162","merge":{"source":"viaf","id":"141e1e5bd08b42bd1c7523b0ecaca044","type":"document"},"lc":"n87831201","bnf":"12386318"} {"version":"2013-07-01T14:07:50Z","_id":"1426e4bd0805ce3c6f3643b25bd9a81b","dnb":"116234539","ptbnp":"108843","term":"Ducpétiaux, Edouard, 1804-1868","key":"DucpétiauxEdouard1804-1868","viafid":"61587699","merge":{"source":"viaf","id":"1426e4bd0805ce3c6f3643b25bd9a81b","type":"document"},"jpg":"500234955","lc":"n82104179","bnf":"12170910","bav":"adv11026398"} {"selibr":"250996","version":"2013-07-01T14:07:50Z","_id":"142909d5324b2231e8a041cacbd74558","dnb":"127139303","term":"Malmeström, Elis, 1895-1977","key":"MalmeströmElis1895-1977","viafid":"98029004","nlilat":"000088225","merge":{"source":"viaf","id":"142909d5324b2231e8a041cacbd74558","type":"document"},"lc":"n85806075"} {"selibr":"104037","version":"2013-07-01T14:07:50Z","_id":"142ad28dd919fbda26ef14679815a112","dnb":"157685276","term":"Åhfeldt, Clemens, 1860-1941","key":"ÅhfeldtClemens1860-1941","viafid":"239951129","merge":{"source":"viaf","id":"142ad28dd919fbda26ef14679815a112","type":"document"}} {"version":"2013-07-01T14:07:50Z","_id":"1433fc0f8e5054788e6c0e91bf3fce71","egaxa":"vtls000823801","dnb":"121160238","term":"Ibn Sūdūn, ʻAlī, 1407 or 8-1463 or 4","key":"IbnSūdūnʻAlī1407or8-1463or4","viafid":"90044089","merge":{"source":"viaf","id":"1433fc0f8e5054788e6c0e91bf3fce71","type":"document"},"lc":"no98086830","bnf":"14508346"} {"version":"2013-07-01T14:07:50Z","_id":"1436864bc103e4414b3b12987838239f","bne":"xx1771604","dnb":"118821024","ptbnp":"64209","term":"Lôbo, Duarte 1565-1646","key":"LôboDuarte1565-1646","nlilat":"000085415","viafid":"87553403","merge":{"source":"viaf","id":"1436864bc103e4414b3b12987838239f","type":"document"},"lc":"n85098951","bnf":"13896734"} {"viafid":"207955847","merge":{"source":"viaf","id":"14399ebb07f3dea868a636906e8b4f69","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"14399ebb07f3dea868a636906e8b4f69","dnb":"995200688","term":"Karahasan, Dževad 1953- | Noćno vijeće","key":"KarahasanDževad1953-|Noćnovijeće"} {"viafid":"180606272","merge":{"source":"viaf","id":"143b157c6aec0022b010d38d4ed94b63","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"143b157c6aec0022b010d38d4ed94b63","nla":"000036513819","term":"Heiberg, Hans, 1904- | Født til kunstner. English","key":"HeibergHans1904-|FødttilkunstnerEnglish"} {"viafid":"292809469","merge":{"source":"viaf","id":"144f5f10aeb12edadd93364ce17c2901","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"144f5f10aeb12edadd93364ce17c2901","term":"Odojewski, Włodzimierz (1930- ). | Dobrej drogi, Mario (pol.)","key":"OdojewskiWłodzimierz(1930-)|DobrejdrogiMario(pol)"} {"version":"2013-07-01T14:07:50Z","_id":"145ab3d7dc37ee27e5c496f713925069","dnb":"151061343","nla":"000035720479","term":"Chassé, Charles, 1883-1965","key":"ChasséCharles1883-1965","nlilat":"000030950","viafid":"7409159","merge":{"source":"viaf","id":"145ab3d7dc37ee27e5c496f713925069","type":"document"},"lc":"no99078971","bnf":"12050988","bav":"adv10024278"} {"nkc":"nlk20010095241","selibr":"351243","version":"2013-07-01T14:07:50Z","_id":"145d11f9d0517861b19b0d27f3b12dc0","dnb":"117609331","nla":"000035956182","term":"Müller, Otto Frederik, 1730-1784","key":"MüllerOttoFrederik1730-1784","viafid":"22132538","nlilat":"000483822","merge":{"source":"viaf","id":"145d11f9d0517861b19b0d27f3b12dc0","type":"document"},"lc":"n86815213","bnf":"10553686"} {"version":"2013-07-01T14:07:50Z","_id":"145e023dd68a559040311fe1dd9031ef","dnb":"100554989","term":"Piron, Aîmé, 1640-1727","key":"PironAîmé1640-1727","viafid":"29543417","merge":{"source":"viaf","id":"145e023dd68a559040311fe1dd9031ef","type":"document"},"lc":"no2010080838","bnf":"11991661"} {"nkc":"mzk2005282332","version":"2013-07-01T14:07:50Z","_id":"145f93c5c06487dcd3fff23b4ee899ff","dnb":"135631211","term":"Pavček, Tone, 1928-2011","key":"PavčekTone1928-2011","viafid":"59227179","nlilat":"000399829","merge":{"source":"viaf","id":"145f93c5c06487dcd3fff23b4ee899ff","type":"document"},"lc":"n82093671","bnf":"13197481"} {"nkc":"xx0051003","version":"2013-07-01T14:07:50Z","_id":"1460328b0407de80ed5b5c9e9531c8a9","dnb":"119142333","term":"Buysse, Cyriël, 1859-1932","key":"BuysseCyriël1859-1932","viafid":"14883922","merge":{"source":"viaf","id":"1460328b0407de80ed5b5c9e9531c8a9","type":"document"},"lc":"n78087593","bnf":"12539587"} {"viafid":"176267770","merge":{"source":"viaf","id":"1461117deedf27e03535258ba41e5683","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1461117deedf27e03535258ba41e5683","lc":"n90686929","term":"Bakewell, P. J., 1943-, (Peter John), Mineros de la Montaña Roja","key":"BakewellPJ1943-(PeterJohn)MinerosdelaMontañaRoja"} {"selibr":"270648","version":"2013-07-01T14:07:50Z","_id":"14644e49c37af5c572ca8d06bbde63b8","dnb":"143355554","term":"Bergström, Richard, 1828-1893","key":"BergströmRichard1828-1893","viafid":"166070125","merge":{"source":"viaf","id":"14644e49c37af5c572ca8d06bbde63b8","type":"document"}} {"nkc":"ola2002150117","selibr":"207286","version":"2013-07-01T14:07:50Z","_id":"146fdc6561d9215b4b72181aca576f83","bne":"xx820681","dnb":"118650947","swnl":"vtls000021296","nla":"000036554013","term":"D'Aubigné, Agrippa, 1552-1630","key":"D'AubignéAgrippa1552-1630","viafid":"56605227","nlilat":"000013029","merge":{"source":"viaf","id":"146fdc6561d9215b4b72181aca576f83","type":"document"},"lc":"n80057183","bnf":"11889411","bav":"adv10024219"} {"nkc":"mzk2008458919","version":"2013-07-01T14:07:50Z","_id":"147f219ad904fd30075ddeeddcad4d97","dnb":"118524518","term":"Delbrück, Hans, 1848-1929","key":"DelbrückHans1848-1929","nlilat":"000038280","viafid":"51867965","merge":{"source":"viaf","id":"147f219ad904fd30075ddeeddcad4d97","type":"document"},"lc":"n79151238","bnf":"13739375","bav":"adv10013661"} {"version":"2013-07-01T14:07:50Z","_id":"1485667c00189da4004dc7c5b03231e7","dnb":"101936370","term":"Port, Célestin (1828-1901)","key":"PortCélestin(1828-1901)","viafid":"22147287","merge":{"source":"viaf","id":"1485667c00189da4004dc7c5b03231e7","type":"document"},"lc":"n81112405","bnf":"11920343","bav":"adv11083613"} {"nkc":"kup19950000113178","version":"2013-07-01T14:07:50Z","_id":"14936d44bb48bd6ef253590bba9af7e9","dnb":"109021762","nla":"000035624512","term":"Yosida, Kôsaku, 1909-1990","key":"YosidaKôsaku1909-1990","viafid":"37718918","merge":{"source":"viaf","id":"14936d44bb48bd6ef253590bba9af7e9","type":"document"},"lc":"n50013601","bnf":"12190126"} {"version":"2013-07-01T14:07:50Z","_id":"14942ddb2b1d77254cd041f905c5d4f6","dnb":"10018667x","term":"Le Blanc, François, d. 1698","key":"LeBlancFrançoisd1698","viafid":"295392725","merge":{"source":"viaf","id":"14942ddb2b1d77254cd041f905c5d4f6","type":"document"},"lc":"n88116916"} {"version":"2013-07-01T14:07:50Z","_id":"149502ce01e11e56077947e42fe4bb75","dnb":"100493912","term":"Guépin, Ange, 1805-1873","key":"GuépinAnge1805-1873","viafid":"61546622","nlilat":"000273572","merge":{"source":"viaf","id":"149502ce01e11e56077947e42fe4bb75","type":"document"},"lc":"n88101326","bnf":"11906150","bav":"adv12500368"} {"nkc":"kup19960000073803","selibr":"82449","version":"2013-07-01T14:07:50Z","_id":"149577f97a722b3cfd151297b0b8a631","dnb":"117680230","term":"Paludan-Müller, Frederik, 1809-1876","key":"Paludan-MüllerFrederik1809-1876","nlilat":"000437385","viafid":"12416841","merge":{"source":"viaf","id":"149577f97a722b3cfd151297b0b8a631","type":"document"},"lc":"n81068795","bnf":"12529532","bav":"adv10260313"} {"version":"2013-07-01T14:07:50Z","_id":"1498aea74677395145635bdce6ab372d","term":"Lombard, Pierre Aimé, 1678-1748","key":"LombardPierreAimé1678-1748","viafid":"7592464","merge":{"source":"viaf","id":"1498aea74677395145635bdce6ab372d","type":"document"},"lc":"nr2006004176","bnf":"14062271"} {"nkc":"mzk2008469051","version":"2013-07-01T14:07:50Z","_id":"149aae21a35233e4e1be474b69b2547d","dnb":"100281117","term":"Félibien, Michel, 1665-1719","key":"FélibienMichel1665-1719","viafid":"68972042","merge":{"source":"viaf","id":"149aae21a35233e4e1be474b69b2547d","type":"document"},"lc":"no2002064523","bnf":"12177715","bav":"adv10222330"} {"nkc":"ola2003196264","version":"2013-07-01T14:07:50Z","_id":"149f28687e86526a8a02e829bd71dbba","dnb":"130160695","term":"Janczarski, Czesław, 1911-1971","key":"JanczarskiCzesław1911-1971","viafid":"84995335","merge":{"source":"viaf","id":"149f28687e86526a8a02e829bd71dbba","type":"document"},"lc":"no95050557"} {"selibr":"317190","version":"2013-07-01T14:07:50Z","_id":"14a277c2c9d56ede2bfc6e0606ac3736","bne":"xx979504","dnb":"158414640","nla":"000035312578","term":"López Anglada, Luis, 1919-2007","key":"LópezAngladaLuis1919-2007","viafid":"20335","merge":{"source":"viaf","id":"14a277c2c9d56ede2bfc6e0606ac3736","type":"document"},"lc":"n50064580","bnf":"11990402"} {"viafid":"293444596","merge":{"source":"viaf","id":"14a67db24557b00ee09221a04664bb3b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"14a67db24557b00ee09221a04664bb3b","dnb":"100174833","term":"Maître-Jan, Antoine 1650-1719","key":"Maître-JanAntoine1650-1719"} {"nkc":"ola2008452294","selibr":"356842","version":"2013-07-01T14:07:50Z","_id":"14a81955590cbd0b8d82382eb4b42715","bne":"xx1149249","dnb":"118972200","nla":"000048220952","ptbnp":"9238","term":"Barradas, Sebastião, 1543-1615","key":"BarradasSebastião1543-1615","viafid":"88777885","merge":{"source":"viaf","id":"14a81955590cbd0b8d82382eb4b42715","type":"document"},"lc":"n88073162","bav":"adv12157777"} {"version":"2013-07-01T14:07:50Z","_id":"14b3899993010f9052892f9c3aeacb83","dnb":"10042631x","nla":"000035776047","term":"Blocquel, Simon-François, 1780-1863","key":"BlocquelSimon-François1780-1863","viafid":"27059746","merge":{"source":"viaf","id":"14b3899993010f9052892f9c3aeacb83","type":"document"},"lc":"n89655433","bnf":"11887930","bav":"adv10009974"} {"viafid":"265323685","merge":{"source":"viaf","id":"14b58b4269d6105cd1746817ec2a47da","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"14b58b4269d6105cd1746817ec2a47da","lc":"n81002887","term":"Alexandrescu, Sică, 1896-1973","key":"AlexandrescuSică1896-1973"} {"version":"2013-07-01T14:07:50Z","_id":"14bb85844d451b9b5e58e79d0fbda309","bne":"xx5000893","ptbnp":"1192678","term":"Bergeret, Louis François Etienne (1814-1893)","key":"BergeretLouisFrançoisEtienne(1814-1893)","viafid":"27055650","merge":{"source":"viaf","id":"14bb85844d451b9b5e58e79d0fbda309","type":"document"},"lc":"n2013180582","bnf":"10725424","bav":"adv10069523"} {"nkc":"mzk2008468991","selibr":"277738","version":"2013-07-01T14:07:50Z","_id":"14c729b90c70967612c34527905e21b2","dnb":"172440173","term":"Wailly, Noël François de, 1724-1801","key":"WaillyNoëlFrançoisde1724-1801","nlilat":"000508741","viafid":"46791857","merge":{"source":"viaf","id":"14c729b90c70967612c34527905e21b2","type":"document"},"lc":"n92115386","bnf":"12112662","bav":"adv11938982"} {"nkc":"ola2002145123","version":"2013-07-01T14:07:50Z","_id":"14c790ebe9ba595baae117f4ba627449","bne":"xx875529","dnb":"185885853","term":"Andújar, Manuel, 1913-1994","key":"AndújarManuel1913-1994","viafid":"27113103","merge":{"source":"viaf","id":"14c790ebe9ba595baae117f4ba627449","type":"document"},"lc":"n50024863","bnf":"12197719"} {"version":"2013-07-01T14:07:50Z","_id":"14c81ddae9ab36c24ab276fb3c21b728","bne":"xx1170172","dnb":"119428164","ptbnp":"142014","term":"Serra Ràfols, Elías 1898-1972","key":"SerraRàfolsElías1898-1972","viafid":"89487779","nlilat":"000433351","merge":{"source":"viaf","id":"14c81ddae9ab36c24ab276fb3c21b728","type":"document"},"lc":"n80160048","bnf":"12570139","bav":"adv11245622"} {"version":"2013-07-01T14:07:50Z","_id":"14cb65d4e6eca6410278586c4d65c458","dnb":"109015452","term":"Klevebring, Björn-Ivar, b.1943","key":"KlevebringBjörn-Ivarb1943","viafid":"113089860","merge":{"source":"viaf","id":"14cb65d4e6eca6410278586c4d65c458","type":"document"},"lc":"no94003942"} {"version":"2013-07-01T14:07:50Z","_id":"14cf34d0fa2a38b89bfdf1090daeb5fd","dnb":"124514200","term":"Buisson, Mathieu-François-Régis, 1776-1805","key":"BuissonMathieu-François-Régis1776-1805","viafid":"23076439","merge":{"source":"viaf","id":"14cf34d0fa2a38b89bfdf1090daeb5fd","type":"document"},"lc":"n86801586","bnf":"10700554","bav":"adv10148841"} {"version":"2013-07-01T14:07:50Z","_id":"14cf7a9a16afc540ea4b7c090de8256d","bne":"xx1364830","dnb":"172511917","nla":"000035725130","term":"Merlin, María de las Mercedes Santa Cruz y Montalvo, 1789-1852","key":"MerlinMaríadelasMercedesSantaCruzyMontalvo1789-1852","viafid":"34495055","merge":{"source":"viaf","id":"14cf7a9a16afc540ea4b7c090de8256d","type":"document"},"lc":"n86820350","bnf":"12152583","bav":"adv12488629"} {"viafid":"178693401","merge":{"source":"viaf","id":"14dc4870dec4453bfd863fa35ea66256","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"14dc4870dec4453bfd863fa35ea66256","lc":"n91060889","term":"Huelle, Paweł, 1957- | Weiser Dawidek. English","key":"HuellePaweł1957-|WeiserDawidekEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"14e028324138d65cb42fbed1fc730f64","dnb":"100143873","term":"Gerstäcker, Carl Friedrich Wilhelm 1773-1852","key":"GerstäckerCarlFriedrichWilhelm1773-1852","viafid":"10626189","nlilat":"000474743","merge":{"source":"viaf","id":"14e028324138d65cb42fbed1fc730f64","type":"document"},"lc":"n85295074","bav":"adv12137352"} {"nkc":"nlk20000083830","version":"2013-07-01T14:07:50Z","_id":"14e382e0c851407d46f80bfb421cbf79","bne":"xx1051448","dnb":"132149974","swnl":"vtls001861867","nla":"000035026566","ptbnp":"43010","term":"De Castro, Josué, 1908-1973","key":"DeCastroJosué1908-1973","viafid":"46875949","nlilat":"000029257","merge":{"source":"viaf","id":"14e382e0c851407d46f80bfb421cbf79","type":"document"},"lc":"n50038278","bnf":"12557057"} {"version":"2013-07-01T14:07:50Z","_id":"14e3be59329a8f032e46a3e8d8c869cb","dnb":"135967198","nla":"000035776905","ptbnp":"319798","term":"Zéraffa, Michel, 1918-1983","key":"ZéraffaMichel1918-1983","nlilat":"000470404","viafid":"71399333","merge":{"source":"viaf","id":"14e3be59329a8f032e46a3e8d8c869cb","type":"document"},"lc":"n85129186","bnf":"11929662"} {"version":"2013-07-01T14:07:50Z","_id":"14f4d1d7539a08f6d8d5c4f8e46a2be4","dnb":"172227798","ptbnp":"192607","term":"Linze, Jacques-Gérard (1925-1996)","key":"LinzeJacques-Gérard(1925-1996)","viafid":"110278317","nlilat":"000470013","merge":{"source":"viaf","id":"14f4d1d7539a08f6d8d5c4f8e46a2be4","type":"document"},"lc":"n85117846","bnf":"12028448"} {"selibr":"62902","version":"2013-07-01T14:07:50Z","_id":"14fb8cc177da9fbab9cee94fd2b0a502","egaxa":"vtls001158733","dnb":"102372845","term":"Ibn Faḍl Allāh al-ʻUmarī, Aḥmad ibn Yaḥyá, 1301-1349","key":"IbnFaḍlAllāhal-ʻUmarīAḥmadibnYaḥyá1301-1349","nlilat":"000523737","viafid":"82873343","merge":{"source":"viaf","id":"14fb8cc177da9fbab9cee94fd2b0a502","type":"document"},"lc":"nr89013200","bnf":"12085579","bav":"adv11194402"} {"version":"2013-07-01T14:07:50Z","_id":"14fd09a1a6505b2000aea27fb6fa49a5","dnb":"11604277x","term":"Decazes, Élie, 1780-1860","key":"DecazesÉlie1780-1860","viafid":"76466485","merge":{"source":"viaf","id":"14fd09a1a6505b2000aea27fb6fa49a5","type":"document"},"lc":"n88101090","bnf":"13484480","bav":"adv12123388"} {"nkc":"skuk0003741","version":"2013-07-01T14:07:50Z","_id":"150b7db59770c7d17898440b0654170a","bne":"xx1082692","dnb":"121741729","nla":"000035304747","term":"Lichnerowicz, André, 1915-1998","key":"LichnerowiczAndré1915-1998","viafid":"109114301","merge":{"source":"viaf","id":"150b7db59770c7d17898440b0654170a","type":"document"},"lc":"n50050381","bnf":"11912970","bav":"adv10880820"} {"nkc":"mzk2009510846","version":"2013-07-01T14:07:50Z","_id":"150e614d77e283eae215073665e76353","dnb":"118685767","ptbnp":"25651","term":"Büchlein, Paul, 1504-1549","key":"BüchleinPaul1504-1549","viafid":"17275147","nlilat":"000045229","merge":{"source":"viaf","id":"150e614d77e283eae215073665e76353","type":"document"},"lc":"n98064016","bnf":"12229466","bav":"adv10165483"} {"nkc":"nlk20000091144","version":"2013-07-01T14:07:50Z","_id":"151a8baa34f4c42ec651cf89a5da836d","dnb":"100393047","nla":"000035836472","ptbnp":"1389127","term":"Rivière, Lazare, 1589-1655","key":"RivièreLazare1589-1655","viafid":"64118232","merge":{"source":"viaf","id":"151a8baa34f4c42ec651cf89a5da836d","type":"document"},"lc":"n84184713","bnf":"12544579","bav":"adv11137685"} {"nkc":"ola2010605730","version":"2013-07-01T14:07:50Z","_id":"1521faaff9b1af2f4621eb2ec5d83791","dnb":"100287352","term":"Girava, Gerónimo, d. 1556","key":"GiravaGerónimod1556","viafid":"66809658","nlilat":"000531920","merge":{"source":"viaf","id":"1521faaff9b1af2f4621eb2ec5d83791","type":"document"},"lc":"no97040910","bav":"adv12371136"} {"nkc":"mzk2009528458","selibr":"342846","version":"2013-07-01T14:07:50Z","_id":"1525f82242157126f1b56cda3ef4cec8","bne":"xx1713081","dnb":"135852544","ptbnp":"246162","term":"Fessard, Étienne, 1714-1777","key":"FessardÉtienne1714-1777","viafid":"71457400","merge":{"source":"viaf","id":"1525f82242157126f1b56cda3ef4cec8","type":"document"},"jpg":"500017211","lc":"nr00004572","bnf":"12306936","bav":"adv10374907"} {"version":"2013-07-01T14:07:50Z","_id":"152d9f4cc2130662c4cf60c3ddc7e389","dnb":"129065463","ptbnp":"1174477","term":"Mony, Stéphane, 1800-1884","key":"MonyStéphane1800-1884","viafid":"24722059","merge":{"source":"viaf","id":"152d9f4cc2130662c4cf60c3ddc7e389","type":"document"},"lc":"n88101171","bnf":"12605982"} {"version":"2013-07-01T14:07:50Z","_id":"152f70b3175ccd761042f5d53ad5533c","dnb":"118793853","nla":"000035316627","term":"Ryleev, Kondratij Fëdorovič (1795-1826)","key":"RyleevKondratijFëdorovič(1795-1826)","viafid":"35252682","nlicyr":"000155995","merge":{"source":"viaf","id":"152f70b3175ccd761042f5d53ad5533c","type":"document"},"lc":"n81040581"} {"version":"2013-07-01T14:07:50Z","_id":"1531327f46d23fc38bb56603eee281f1","dnb":"121221059","ptbnp":"179073","term":"Hugo, François-Victor, 1828-1873","key":"HugoFrançois-Victor1828-1873","viafid":"100267715","nlilat":"000518774","merge":{"source":"viaf","id":"1531327f46d23fc38bb56603eee281f1","type":"document"},"lc":"no94021099","bnf":"11907962"} {"viafid":"40136090","merge":{"source":"viaf","id":"1532fca5855ec505296ed98bf4e8bff5","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1532fca5855ec505296ed98bf4e8bff5","dnb":"116674628","term":"Rüdiger, Karl August 1793-1869","key":"RüdigerKarlAugust1793-1869"} {"nkc":"jn19990005247","version":"2013-07-01T14:07:50Z","_id":"1535e272ce0837291a23ae9b9ff7bb1f","bne":"xx1348887","dnb":"118820095","nla":"000035316541","ptbnp":"1441984","term":"Lützeler, Heinrich, 1902-1988","key":"LützelerHeinrich1902-1988","nlilat":"000411310","viafid":"27182952","merge":{"source":"viaf","id":"1535e272ce0837291a23ae9b9ff7bb1f","type":"document"},"lc":"n50047325","bnf":"12561976","bav":"adv10909862"} {"version":"2013-07-01T14:07:50Z","_id":"154207a532fc786937d23723bcf05e04","dnb":"12838686x","nla":"000035852975","term":"Benoîst, Elie, 1640-1728","key":"BenoîstElie1640-1728","viafid":"57663498","merge":{"source":"viaf","id":"154207a532fc786937d23723bcf05e04","type":"document"},"lc":"n84233023"} {"viafid":"159870877","merge":{"source":"viaf","id":"154364002341116f2198e2ad60b35e1b","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"154364002341116f2198e2ad60b35e1b","bne":"xx5013404","term":"Bona, Théodore, 1805-1866","key":"BonaThéodore1805-1866"} {"version":"2013-07-01T14:07:50Z","_id":"154ac92e9992d5dd3f10b0fdcfc8328e","dnb":"123513561","term":"Chirnoagă, Marcel, 1930-2008","key":"ChirnoagăMarcel1930-2008","viafid":"214095192","merge":{"source":"viaf","id":"154ac92e9992d5dd3f10b0fdcfc8328e","type":"document"},"jpg":"500030414","lc":"n83328098"} {"version":"2013-07-01T14:07:50Z","_id":"154f71e8b9b3e2399082dd0a2ac69bf4","bne":"xx822112","dnb":"101874138","term":"Codera y Zaidín, Francisco, 1836-1917","key":"CoderayZaidínFrancisco1836-1917","nlilat":"000311806","viafid":"51824216","merge":{"source":"viaf","id":"154f71e8b9b3e2399082dd0a2ac69bf4","type":"document"},"lc":"n87941684","bnf":"13012044","bav":"adv10018476"} {"version":"2013-07-01T14:07:50Z","_id":"1551e5919f87e89974308c8718239043","dnb":"141428864","term":"Béghin, Henri, 1876-1969","key":"BéghinHenri1876-1969","viafid":"44429503","merge":{"source":"viaf","id":"1551e5919f87e89974308c8718239043","type":"document"},"bnf":"12938863"} {"nkc":"jn19990210430","selibr":"77025","version":"2013-07-01T14:07:50Z","_id":"15524ed265fd40ffdcaf034475a257cb","dnb":"11912369x","nla":"000035351495","ptbnp":"196003","term":"Mikszáth, Kálmán, 1847-1910","key":"MikszáthKálmán1847-1910","nlilat":"000093396","viafid":"46774986","merge":{"source":"viaf","id":"15524ed265fd40ffdcaf034475a257cb","type":"document"},"lc":"n50042174","bnf":"12027624","bav":"adv10979308"} {"viafid":"191916511","merge":{"source":"viaf","id":"1552c1a7d742dab4869b7abdd25b2d74","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1552c1a7d742dab4869b7abdd25b2d74","term":"Béra, Joseph Charles, 1758-1839","key":"BéraJosephCharles1758-1839"} {"viafid":"107035248","merge":{"source":"viaf","id":"155732e088a547923384110611c02605","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"155732e088a547923384110611c02605","bnf":"12783902","term":"Frédérix, Gustave, 1834-1894","key":"FrédérixGustave1834-1894"} {"version":"2013-07-01T14:07:50Z","_id":"155ba761038b969ce522ed80d5e56ea6","dnb":"101323484","term":"Aguilar y Santillán, Rafael, 1863-1940","key":"AguilarySantillánRafael1863-1940","viafid":"27430168","merge":{"source":"viaf","id":"155ba761038b969ce522ed80d5e56ea6","type":"document"},"lc":"no2012104147"} {"nkc":"jx20040130026","selibr":"223671","version":"2013-07-01T14:07:50Z","_id":"155f13b5c9f7a0834d056c69bcb0d203","dnb":"119138069","term":"Pokrovskij, N. N., 1930-, (Nikolaj Nikolaevič)","key":"PokrovskijNN1930-(NikolajNikolaevič)","nlicyr":"000155244","viafid":"33383022","merge":{"source":"viaf","id":"155f13b5c9f7a0834d056c69bcb0d203","type":"document"},"lc":"n80116922","bnf":"13573958","bav":"adv10020286"} {"version":"2013-07-01T14:07:50Z","_id":"1560383bce931a3d3721d73c76e61f59","dnb":"157427064","term":"Hovhannēsean, Vahan, 1894-1977","key":"HovhannēseanVahan1894-1977","viafid":"237752024","merge":{"source":"viaf","id":"1560383bce931a3d3721d73c76e61f59","type":"document"},"lc":"n85105597"} {"nkc":"ola2009488167","version":"2013-07-01T14:07:50Z","_id":"1560cf82d3db1898e7a4bfd53d6dc62d","dnb":"117511315","nla":"000035292698","term":"Schmidt-Weißenfels, ... (Eduard), 1833-1893","key":"Schmidt-Weißenfels(Eduard)1833-1893","viafid":"40157682","nlilat":"000118091","merge":{"source":"viaf","id":"1560cf82d3db1898e7a4bfd53d6dc62d","type":"document"},"lc":"no2002059245"} {"version":"2013-07-01T14:07:50Z","_id":"156233eaa1252b487920ff8567724131","dnb":"103507191","term":"Galaunė, Paulius, 1890-1988","key":"GalaunėPaulius1890-1988","viafid":"41966965","nlilat":"000502930","merge":{"source":"viaf","id":"156233eaa1252b487920ff8567724131","type":"document"},"lc":"n90649776","bnf":"12770960","bav":"adv10165457"} {"nkc":"jcu2012721003","selibr":"300940","version":"2013-07-01T14:07:50Z","_id":"156c529b2d7717c0df32e3922f85f224","dnb":"133213544","term":"Moreau, Édouard de, 1879-1952","key":"MoreauÉdouardde1879-1952","viafid":"56715679","merge":{"source":"viaf","id":"156c529b2d7717c0df32e3922f85f224","type":"document"},"lc":"no00048053","bnf":"12504019","bav":"adv10988505"} {"version":"2013-07-01T14:07:50Z","_id":"1579762263815b1941be36ec881bdcfe","bne":"xx924903","dnb":"118717502","ptbnp":"222700","term":"Giner de los Ríos, Francisco, 1839-1915","key":"GinerdelosRíosFrancisco1839-1915","nlilat":"000408131","viafid":"12323303","merge":{"source":"viaf","id":"1579762263815b1941be36ec881bdcfe","type":"document"},"lc":"n50033894","bnf":"12031343"} {"nkc":"mzk2007395149","selibr":"313349","version":"2013-07-01T14:07:50Z","_id":"157e8db1a7423680d4e4818449cd873d","dnb":"124841260","swnl":"vtls000035608","term":"Bruzen de la Martinière, Antoine Augustin 1662-1746","key":"BruzendelaMartinièreAntoineAugustin1662-1746","viafid":"100174728","nlilat":"000025909","merge":{"source":"viaf","id":"157e8db1a7423680d4e4818449cd873d","type":"document"},"lc":"nr95046875","bnf":"11894410","bav":"adv10125001"} {"nkc":"uk2008335146","version":"2013-07-01T14:07:50Z","_id":"1584d0a6a9d44a8b4f8ec5a6113b4471","dnb":"133226700","term":"Epp, René, 1927-2009","key":"EppRené1927-2009","nlilat":"000452483","viafid":"85252385","merge":{"source":"viaf","id":"1584d0a6a9d44a8b4f8ec5a6113b4471","type":"document"},"lc":"n83032682","bnf":"11901807","bav":"adv10127620"} {"viafid":"293127160","merge":{"source":"viaf","id":"1586bca60ac2847b701688ccfc5f21b4","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1586bca60ac2847b701688ccfc5f21b4","term":"Hødnebø, Tone (1962- ). | Lykkelig øyeblikk (norw.)","key":"HødnebøTone(1962-)|Lykkeligøyeblikk(norw)"} {"nkc":"mzk2009510728","version":"2013-07-01T14:07:50Z","_id":"1586f5c9b26fe22deb7e4972ee3a9121","dnb":"118104306","term":"Pluquet, François-André-Adrien, 1716-1790","key":"PluquetFrançois-André-Adrien1716-1790","nlilat":"000461740","viafid":"7432776","merge":{"source":"viaf","id":"1586f5c9b26fe22deb7e4972ee3a9121","type":"document"},"lc":"n84094341","bnf":"12176450","bav":"adv11098930"} {"version":"2013-07-01T14:07:50Z","_id":"158a49241995255ea4e2044ff83b066f","egaxa":"vtls001073138","bne":"xx1100503","dnb":"104115602","term":"Ibn Hudhayl, ʻAlī ibn ʻAbd al-Raḥmān, 14th cent","key":"IbnHudhaylʻAlīibnʻAbdal-Raḥmān14thcent","nlilat":"000526572","viafid":"2505776","merge":{"source":"viaf","id":"158a49241995255ea4e2044ff83b066f","type":"document"},"lc":"nr92030088","bnf":"12130675"} {"nkc":"xx0059929","version":"2013-07-01T14:07:50Z","_id":"158b3f1f2f2dc75f4f16205ffdffa0ba","dnb":"118621246","term":"Tembrock, Günter, 1918-2011","key":"TembrockGünter1918-2011","viafid":"25395490","nlilat":"000457529","merge":{"source":"viaf","id":"158b3f1f2f2dc75f4f16205ffdffa0ba","type":"document"},"lc":"n83222604"} {"nkc":"jn19990005039","version":"2013-07-01T14:07:50Z","_id":"159673e20f8a3fe36b46058121cd2ce2","dnb":"151198411","nla":"000035649576","ptbnp":"175843","term":"Levrault, Léon, b. 1865","key":"LevraultLéonb1865","viafid":"83992592","merge":{"source":"viaf","id":"159673e20f8a3fe36b46058121cd2ce2","type":"document"},"lc":"no2011125074"} {"selibr":"184128","version":"2013-07-01T14:07:50Z","_id":"15972183d2ef170bf6bc288cce067248","bne":"xx1776528","dnb":"119097222","nla":"000035579838","term":"Ducis, Jean-François 1733-1816","key":"DucisJean-François1733-1816","viafid":"36917487","nlilat":"000498199","merge":{"source":"viaf","id":"15972183d2ef170bf6bc288cce067248","type":"document"},"lc":"n88661411","bnf":"11900910","bav":"adv11026285"} {"version":"2013-07-01T14:07:50Z","_id":"159f6e0cdaa31f9a740ed2cfd3387173","dnb":"15116908x","nla":"000035660508","term":"Jorré, Georges, 1899-1957","key":"JorréGeorges1899-1957","viafid":"115316830","nlilat":"000551599","merge":{"source":"viaf","id":"159f6e0cdaa31f9a740ed2cfd3387173","type":"document"},"lc":"no2005097209","bnf":"12185852"} {"nkc":"ola2002153993","version":"2013-07-01T14:07:50Z","_id":"15a530e7fafe9f4f661aa7b4bed61119","dnb":"128696346","ptbnp":"1045680","term":"Milliet de Chales, Claude-François, 1621-1678","key":"MillietdeChalesClaude-François1621-1678","viafid":"5015944","merge":{"source":"viaf","id":"15a530e7fafe9f4f661aa7b4bed61119","type":"document"},"lc":"n85196837","bnf":"12397222","bav":"adv10973115"} {"nkc":"nlk20020107196","version":"2013-07-01T14:07:50Z","_id":"15a568d1a8c36bda45d114dbc3a3cb11","dnb":"117719757","nla":"000035316624","ptbnp":"139534","term":"Lwoff, André, 1902-1994","key":"LwoffAndré1902-1994","viafid":"92093913","nlilat":"000420416","merge":{"source":"viaf","id":"15a568d1a8c36bda45d114dbc3a3cb11","type":"document"},"lc":"n79062986","bnf":"11913683"} {"version":"2013-07-01T14:07:50Z","_id":"15a924ea710f760c1b9496f88006af48","dnb":"140804757","nla":"000036501632","term":"Staudinger, Hansjürgen 1914-1990","key":"StaudingerHansjürgen1914-1990","viafid":"111141598","merge":{"source":"viaf","id":"15a924ea710f760c1b9496f88006af48","type":"document"},"lc":"n85154369"} {"version":"2013-07-01T14:07:50Z","_id":"15bae8790fbe90a2a6956fe7e81890ee","dnb":"100526888","nla":"000036585601","term":"Montémont, Albert (1788-1862)","key":"MontémontAlbert(1788-1862)","viafid":"29538219","nlilat":"000094858","merge":{"source":"viaf","id":"15bae8790fbe90a2a6956fe7e81890ee","type":"document"},"lc":"nr90008612","bnf":"11916640"} {"nkc":"jx20050425007","selibr":"85424","version":"2013-07-01T14:07:50Z","_id":"15bbb12d0e9222b1547b731371a279ac","dnb":"118825321","nla":"000035427907","ptbnp":"370127","term":"Pólya, George, 1887-1985","key":"PólyaGeorge1887-1985","nlilat":"000428130","viafid":"120727470","merge":{"source":"viaf","id":"15bbb12d0e9222b1547b731371a279ac","type":"document"},"lc":"n80049669","bnf":"12117308"} {"viafid":"183009320","merge":{"source":"viaf","id":"15c391f2623bc9e65588f4d527b8faad","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"15c391f2623bc9e65588f4d527b8faad","lc":"nr2003021924","term":"Rapin, Christian, 1931- | Cicle d'Iskèr","key":"RapinChristian1931-|Cicled'Iskèr"} {"version":"2013-07-01T14:07:50Z","_id":"15cf3fcc2aa6cd9bd2e3e1ef09be3061","dnb":"117624799","term":"Thierry, Édouard, 1813-1894","key":"ThierryÉdouard1813-1894","nlilat":"000531316","viafid":"51791564","merge":{"source":"viaf","id":"15cf3fcc2aa6cd9bd2e3e1ef09be3061","type":"document"},"lc":"nr97014802","bnf":"12485324"} {"nkc":"jo2002150582","version":"2013-07-01T14:07:50Z","_id":"15d3d4d14c55a4f701eda42b0121a6e1","dnb":"120220504","nla":"000035380067","term":"Nenadović, Mateja, 1777-1854","key":"NenadovićMateja1777-1854","nlilat":"000474610","viafid":"27100048","merge":{"source":"viaf","id":"15d3d4d14c55a4f701eda42b0121a6e1","type":"document"},"lc":"n85289466","bnf":"12128379"} {"nkc":"nlk20000085667","selibr":"252659","version":"2013-07-01T14:07:50Z","_id":"15d93518be11453240e2a6e33ecae64c","bne":"xx4744701","dnb":"116677635","nla":"000035955803","term":"Fourcroy, Antoine-François 1755-1809","key":"FourcroyAntoine-François1755-1809","nlilat":"000461911","viafid":"27146082","merge":{"source":"viaf","id":"15d93518be11453240e2a6e33ecae64c","type":"document"},"lc":"n84102152","bnf":"12375337","bav":"adv10196189"} {"viafid":"57717861","merge":{"source":"viaf","id":"15dbc49040f2df8a7ce3fbd57eba59a7","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"15dbc49040f2df8a7ce3fbd57eba59a7","dnb":"130372587","term":"Carić, Juraj (1854-1927)","key":"CarićJuraj(1854-1927)"} {"nkc":"pna2012684581","selibr":"269095","version":"2013-07-01T14:07:50Z","_id":"15dd3a20a5fef525474436d5b536ae89","dnb":"128445246","term":"Reformatskij, Aleksandr Aleksandrovič, 1900-1978","key":"ReformatskijAleksandrAleksandrovič1900-1978","viafid":"91966747","nlicyr":"000155646","merge":{"source":"viaf","id":"15dd3a20a5fef525474436d5b536ae89","type":"document"},"lc":"nr88004853"} {"version":"2013-07-01T14:07:50Z","_id":"15e99e40dd0804a850b58d392ff3b56e","dnb":"124365329","term":"Mühlpfort, Heinrich, 1639-1681","key":"MühlpfortHeinrich1639-1681","nlilat":"000544534","viafid":"44398982","merge":{"source":"viaf","id":"15e99e40dd0804a850b58d392ff3b56e","type":"document"},"lc":"no2002059021","bnf":"12473779"} {"viafid":"211747965","merge":{"source":"viaf","id":"15ea2fd851d7a21990ca12fdd4e01ac3","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"15ea2fd851d7a21990ca12fdd4e01ac3","dnb":"972290230","term":"Grandes, Almudena 1960- | Edades de Lulú","key":"GrandesAlmudena1960-|EdadesdeLulú"} {"nkc":"jn19990210380","version":"2013-07-01T14:07:50Z","_id":"15ec26ec9f59d69671ee36ed26453c64","bne":"xx939515","dnb":"158365216","term":"Lidin, Vladimir Germanovič, 1894-1979","key":"LidinVladimirGermanovič1894-1979","nlilat":"000084331","viafid":"61604225","merge":{"source":"viaf","id":"15ec26ec9f59d69671ee36ed26453c64","type":"document"},"lc":"n81056807","bnf":"12263208"} {"nkc":"ola2002152792","version":"2013-07-01T14:07:50Z","_id":"15ec8d592e80a046cbd6d984e1167e6e","dnb":"128747099","nla":"000036153194","term":"Berg, L. S., 1876-1950, (Lev Semenovič)","key":"BergLS1876-1950(LevSemenovič)","viafid":"19823881","nlilat":"000459931","nlicyr":"000148264","merge":{"source":"viaf","id":"15ec8d592e80a046cbd6d984e1167e6e","type":"document"},"lc":"n84035731","bnf":"13326692"} {"nkc":"jn20000701917","selibr":"212569","version":"2013-07-01T14:07:50Z","_id":"15ef686a43d7e52cff157662a4974dd5","bne":"xx899903","dnb":"118635077","nla":"000035427686","term":"Vološin, Maksimilian Aleksandrovič, 1877-1932","key":"VološinMaksimilianAleksandrovič1877-1932","nlicyr":"000149467","viafid":"51697196","merge":{"source":"viaf","id":"15ef686a43d7e52cff157662a4974dd5","type":"document"},"jpg":"500064726","lc":"n82070428","bnf":"11928662"} {"version":"2013-07-01T14:07:50Z","_id":"15f4b09f18b06b6653c05168a5f75327","dnb":"116221038","term":"Böhme, Herbert, 1907-1971","key":"BöhmeHerbert1907-1971","viafid":"77061632","nlilat":"000482208","merge":{"source":"viaf","id":"15f4b09f18b06b6653c05168a5f75327","type":"document"},"lc":"n86113505"} {"version":"2013-07-01T14:07:50Z","_id":"15f645bfd16d5da6ce4cb837861ed965","dnb":"126225451","term":"Coty, François, 1874-1934","key":"CotyFrançois1874-1934","viafid":"4986112","merge":{"source":"viaf","id":"15f645bfd16d5da6ce4cb837861ed965","type":"document"},"lc":"n96017024","bnf":"12241032","bav":"adv10034057"} {"version":"2013-07-01T14:07:50Z","_id":"15ffcf89dfaa108a8d6ffc07034a2f6c","bne":"xx5103166","dnb":"120530791","term":"Croÿ, Charles, 1560-1612, duc de","key":"CroÿCharles1560-1612ducde","viafid":"40211877","merge":{"source":"viaf","id":"15ffcf89dfaa108a8d6ffc07034a2f6c","type":"document"},"lc":"n80146612","bav":"adv10117793"} {"version":"2013-07-01T14:07:50Z","_id":"16023ffa4ec525e18f6d01c036c394ad","bne":"xx819600","dnb":"119193418","nla":"000035208184","term":"De Olmos, Andrés, ca. 1491-1570 or 71","key":"DeOlmosAndrésca1491-1570or71","viafid":"17240613","merge":{"source":"viaf","id":"16023ffa4ec525e18f6d01c036c394ad","type":"document"},"lc":"n85239968","bnf":"12039399"} {"nkc":"jk01011622","version":"2013-07-01T14:07:50Z","_id":"1616b107af783a1b9dee06b92c3d1b8d","dnb":"11935344x","nla":"000035869394","ptbnp":"239063","term":"Beneš, Karel Josef, 1896-1969","key":"BenešKarelJosef1896-1969","viafid":"37071193","nlilat":"000018449","merge":{"source":"viaf","id":"1616b107af783a1b9dee06b92c3d1b8d","type":"document"},"lc":"n88636405","bnf":"13493409"} {"nkc":"kup19980000034346","selibr":"57848","version":"2013-07-01T14:07:50Z","_id":"162c133557e2fb2f820caca267a5e8a7","dnb":"103175970","term":"Guljaški, Andrej Stojanov, 1914-1995","key":"GuljaškiAndrejStojanov1914-1995","viafid":"14871383","merge":{"source":"viaf","id":"162c133557e2fb2f820caca267a5e8a7","type":"document"},"lc":"n50018804","bnf":"12470868"} {"version":"2013-07-01T14:07:50Z","_id":"1637141f032aa77f64695792a9df4a40","bne":"xx1635155","dnb":"152824200","term":"Fernández Avello, Manuel 1924-2002","key":"FernándezAvelloManuel1924-2002","viafid":"75091722","merge":{"source":"viaf","id":"1637141f032aa77f64695792a9df4a40","type":"document"},"lc":"n50002732"} {"nkc":"jn20000602773","version":"2013-07-01T14:07:50Z","_id":"16380a87a889409fbc14e1a28c66bb6b","dnb":"118719971","nla":"000035162625","ptbnp":"55870","term":"Halévy, Daniel, 1872-1962","key":"HalévyDaniel1872-1962","viafid":"14771013","nlilat":"000059369","merge":{"source":"viaf","id":"16380a87a889409fbc14e1a28c66bb6b","type":"document"},"lc":"n88613711","bnf":"11906721","bav":"adv10075417"} {"version":"2013-07-01T14:07:50Z","_id":"163db3b14fa0101c30dac0219dc57035","dnb":"117566217","nla":"000035341551","term":"Vasilʹev, V. P., 1818-1900","key":"VasilʹevVP1818-1900","nlicyr":"000149203","viafid":"97099290","nlilat":"000542016","merge":{"source":"viaf","id":"163db3b14fa0101c30dac0219dc57035","type":"document"},"lc":"n2001060994","bav":"adv11760096"} {"selibr":"305989","version":"2013-07-01T14:07:50Z","_id":"1645b612e8ec735900975143cafa80c4","dnb":"151374074","term":"Ahlström, Stellan, 1916-1984","key":"AhlströmStellan1916-1984","viafid":"12293539","merge":{"source":"viaf","id":"1645b612e8ec735900975143cafa80c4","type":"document"}} {"viafid":"175987148","merge":{"source":"viaf","id":"165da77647b8aaa501d6773904235df8","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"165da77647b8aaa501d6773904235df8","lc":"no00072608","term":"Lipovetsky, Gilles, 1944- | Crépuscule du devoir. Czech","key":"LipovetskyGilles1944-|CrépusculedudevoirCzech"} {"selibr":"175555","version":"2013-07-01T14:07:50Z","_id":"16642d0fbc0936d2fa014c73facda099","dnb":"131123629","nla":"000035225638","term":"Axel-Nilsson, Göran, 1907-1999","key":"Axel-NilssonGöran1907-1999","viafid":"114680398","merge":{"source":"viaf","id":"16642d0fbc0936d2fa014c73facda099","type":"document"},"lc":"n81014441","bnf":"12211599","bav":"adv10049454"} {"viafid":"189373722","merge":{"source":"viaf","id":"1664fa15165dfd2ac431cd36700d99f7","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1664fa15165dfd2ac431cd36700d99f7","dnb":"958800723","term":"Eibl-Eibesfeldt, Irenäus 1928- | Fremdenfurcht und Ausgrenzung","key":"Eibl-EibesfeldtIrenäus1928-|FremdenfurchtundAusgrenzung"} {"nkc":"jk01110324","version":"2013-07-01T14:07:50Z","_id":"166b2642619c3f32be4de10af8bcb7a9","dnb":"104611928","nla":"000035762819","term":"Salač, Antonín, 1885-1960","key":"SalačAntonín1885-1960","viafid":"73893731","nlilat":"000439841","merge":{"source":"viaf","id":"166b2642619c3f32be4de10af8bcb7a9","type":"document"},"lc":"n81116832","bnf":"12162484","bav":"adv11394839"} {"nkc":"mzk2010587601","version":"2013-07-01T14:07:50Z","_id":"166d32100061891986d0c0526150f59d","dnb":"13044197x","term":"Hauteroche, Noël Lebreton, 1617-1707, sieur de","key":"HauterocheNoëlLebreton1617-1707sieurde","viafid":"76326314","merge":{"source":"viaf","id":"166d32100061891986d0c0526150f59d","type":"document"},"lc":"no96006187","bnf":"12001323","bav":"adv10228960"} {"viafid":"177380880","merge":{"source":"viaf","id":"167605eac4740d11240ab88f98a9e2d3","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"167605eac4740d11240ab88f98a9e2d3","nla":"000036573854","term":"Ollén, Gunnar, 1913- | August Strindberg. English","key":"OllénGunnar1913-|AugustStrindbergEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"167e39d68c46663035c2e09849a67d54","dnb":"119504545","term":"De Smet, Léon, 1881-1966","key":"DeSmetLéon1881-1966","viafid":"42649910","merge":{"source":"viaf","id":"167e39d68c46663035c2e09849a67d54","type":"document"},"jpg":"500042604","lc":"nr95018350"} {"version":"2013-07-01T14:07:50Z","_id":"169193135cee956b1f50b26c611558a0","bne":"xx830200","term":"Luján, Pedro de, 16th cent","key":"LujánPedrode16thcent","viafid":"51788419","merge":{"source":"viaf","id":"169193135cee956b1f50b26c611558a0","type":"document"},"lc":"nr92032310","bnf":"12466444"} {"viafid":"66872448","merge":{"source":"viaf","id":"169460719ca6bc2a3a69b9f28b3861e8","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"169460719ca6bc2a3a69b9f28b3861e8","dnb":"103123318","term":"Périolas, Louis Nicolas 1785-1859","key":"PériolasLouisNicolas1785-1859"} {"nkc":"jn20000604416","version":"2013-07-01T14:07:50Z","_id":"1699d72f87ed28e489eaabc088f4aa9a","dnb":"118790617","nla":"000036011513","term":"Petrovič, Veljko, 1884-1967","key":"PetrovičVeljko1884-1967","viafid":"62344891","merge":{"source":"viaf","id":"1699d72f87ed28e489eaabc088f4aa9a","type":"document"},"lc":"n85238984","bnf":"12114880"} {"selibr":"347011","version":"2013-07-01T14:07:50Z","_id":"169f786f380c2b493ac78e76bb3c18c9","dnb":"140453954","term":"Höjer, Johan Axel, 1890-1974","key":"HöjerJohanAxel1890-1974","viafid":"44287458","merge":{"source":"viaf","id":"169f786f380c2b493ac78e76bb3c18c9","type":"document"},"lc":"n2009182664"} {"version":"2013-07-01T14:07:50Z","_id":"16a07ddfa8ec8dd47c1a18fba5442a9e","dnb":"100648371","term":"Tuet, Jean-Charles-François, 1742-1797","key":"TuetJean-Charles-François1742-1797","viafid":"56742836","merge":{"source":"viaf","id":"16a07ddfa8ec8dd47c1a18fba5442a9e","type":"document"},"bnf":"12992829","bav":"adv11298524"} {"version":"2013-07-01T14:07:50Z","_id":"16ab3bfad877ae19e773c383698c2a64","dnb":"118567594","term":"Kühn, Heinz (1912-1992)","key":"KühnHeinz(1912-1992)","viafid":"32788595","nlilat":"000443545","merge":{"source":"viaf","id":"16ab3bfad877ae19e773c383698c2a64","type":"document"},"lc":"n82043645"} {"nkc":"jk01101145","version":"2013-07-01T14:07:50Z","_id":"16b8091cd931476cd99b4940a9913a12","bne":"xx908302","dnb":"120453800","nla":"000035434401","term":"Procházka, Jan, 1929-1971","key":"ProcházkaJan1929-1971","viafid":"19683055","nlilat":"000488074","merge":{"source":"viaf","id":"16b8091cd931476cd99b4940a9913a12","type":"document"},"lc":"n87817531","bnf":"11920677"} {"nkc":"ola2009522667","version":"2013-07-01T14:07:50Z","_id":"16bd06101f6643bc0c3ccab665f971de","dnb":"119042622","term":"Bourrit, Marc-Théodore, 1739-1819","key":"BourritMarc-Théodore1739-1819","nlilat":"000485707","viafid":"19797689","merge":{"source":"viaf","id":"16bd06101f6643bc0c3ccab665f971de","type":"document"},"lc":"n86869362","bnf":"12592475","bav":"adv10085559"} {"viafid":"185235993","merge":{"source":"viaf","id":"16c179aa73d32c276a7bdea636d31853","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"16c179aa73d32c276a7bdea636d31853","lc":"n2004028532","term":"Hahn, Barbara, 1952- | Jüdin Pallas Athene. English","key":"HahnBarbara1952-|JüdinPallasAtheneEnglish"} {"nkc":"xx0018864","version":"2013-07-01T14:07:50Z","_id":"16c4c8185bd28bb7720aef93d8565832","dnb":"117029998","term":"Mihelič, Mira, 1912-1985","key":"MiheličMira1912-1985","viafid":"79389991","merge":{"source":"viaf","id":"16c4c8185bd28bb7720aef93d8565832","type":"document"},"lc":"nr89001319"} {"version":"2013-07-01T14:07:50Z","_id":"16d7a9263c93917139c9869960a07593","dnb":"130310247","nla":"000035773623","term":"Labat, René, 1904-1974","key":"LabatRené1904-1974","nlilat":"000477532","viafid":"36985661","merge":{"source":"viaf","id":"16d7a9263c93917139c9869960a07593","type":"document"},"lc":"n85801037","bnf":"12314375","bav":"adv11471559"} {"version":"2013-07-01T14:07:50Z","_id":"16dabedcb2bde8779fb1f7025eb077a6","term":"Boumédiene, Houari, 1932-1978","key":"BoumédieneHouari1932-1978","viafid":"79122917","nlilat":"000378490","merge":{"source":"viaf","id":"16dabedcb2bde8779fb1f7025eb077a6","type":"document"},"lc":"n78027600","bnf":"12592217"} {"version":"2013-07-01T14:07:50Z","_id":"16dc5056f87dfeb36b8268dda84c0b1a","dnb":"130325287","nla":"000049788190","term":"Möller, Heinrich, 1876-1958","key":"MöllerHeinrich1876-1958","viafid":"30642232","nlilat":"000554497","merge":{"source":"viaf","id":"16dc5056f87dfeb36b8268dda84c0b1a","type":"document"},"lc":"no92015928","bnf":"14840170"} {"version":"2013-07-01T14:07:50Z","_id":"16e1e9085f51b637bc7d7d0f6a347d6a","dnb":"101072007","nla":"000049287251","term":"Rivarol, Claude François, 1762-1848","key":"RivarolClaudeFrançois1762-1848","viafid":"41831542","merge":{"source":"viaf","id":"16e1e9085f51b637bc7d7d0f6a347d6a","type":"document"},"lc":"nr93033399","bnf":"10744417"} {"nkc":"jn19990210021","selibr":"357984","version":"2013-07-01T14:07:50Z","_id":"16f4268692ad4d851f46291a20c67c22","dnb":"119250594","nla":"000036032565","term":"Aksakov, Konstantin Sergeevič, 1817-1860","key":"AksakovKonstantinSergeevič1817-1860","viafid":"17552092","nlilat":"000438146","merge":{"source":"viaf","id":"16f4268692ad4d851f46291a20c67c22","type":"document"},"lc":"n81082938","bnf":"15687887"} {"version":"2013-07-01T14:07:50Z","_id":"170e0fd1ed9f630857e01ad104564453","term":"Fausbøll, Annie I., b. 1876","key":"FausbøllAnnieIb1876","viafid":"58749076","merge":{"source":"viaf","id":"170e0fd1ed9f630857e01ad104564453","type":"document"},"lc":"no2002048318","bav":"adv12363003"} {"nkc":"mzk2009533633","version":"2013-07-01T14:07:50Z","_id":"17148815f43f535529ffa45ad1e87a36","dnb":"12884762x","term":"Félibien des Avaux, Jean-François 1658-1733","key":"FélibiendesAvauxJean-François1658-1733","viafid":"100849123","nlilat":"000442377","merge":{"source":"viaf","id":"17148815f43f535529ffa45ad1e87a36","type":"document"},"lc":"n82017901","bnf":"12309962"} {"nkc":"jn19990201021","_id":"1717844384f42303214ba3f5b207637f","egaxa":"vtls001056339","bne":"xx1149235","dnb":"118638017","nla":"000035022405","ptbnp":"17611","term":"Brontë, Emily, 1818-1848","key":"BrontëEmily1818-1848","viafid":"97097302","merge":{"source":"viaf","id":"1717844384f42303214ba3f5b207637f","type":"document"},"jpg":"500001046","bnf":"11894146","selibr":"179324","version":"2013-07-01T14:07:50Z","swnl":"vtls001836718","nlilat":"000025295","lc":"n79018755","bav":"adv10132101"} {"version":"2013-07-01T14:07:50Z","_id":"17194bc0778484f7e85f7211c29944b3","dnb":"174336713","ptbnp":"256450","term":"Thiollet, François, 1782-1864","key":"ThiolletFrançois1782-1864","viafid":"70415504","merge":{"source":"viaf","id":"17194bc0778484f7e85f7211c29944b3","type":"document"},"jpg":"500088616","lc":"n86113819"} {"nkc":"jn19990002583","selibr":"188035","version":"2013-07-01T14:07:50Z","_id":"1724c8201d4cbe7638a0336182e24981","bne":"xx1151168","dnb":"11853789x","nla":"000035115800","ptbnp":"32006","term":"Gautier, Pierre-Jules-Théophile, 1811-1872","key":"GautierPierre-Jules-Théophile1811-1872","viafid":"96428598","nlilat":"000051647","merge":{"source":"viaf","id":"1724c8201d4cbe7638a0336182e24981","type":"document"},"jpg":"500100875","lc":"n79079291","bnf":"11904435","bav":"adv10018578"} {"nkc":"mzk2009496154","version":"2013-07-01T14:07:50Z","_id":"1729c43d3a1941553684987a2c083fc7","dnb":"133642054","ptbnp":"174485","term":"De la Mésangère, Pierre, 1761-1831","key":"DelaMésangèrePierre1761-1831","viafid":"29630794","merge":{"source":"viaf","id":"1729c43d3a1941553684987a2c083fc7","type":"document"},"jpg":"500276515","lc":"nr99005421","bnf":"12462984","bav":"adv10872380"} {"version":"2013-07-01T14:07:50Z","_id":"17334e6df7aad6212dc4cc97ce58a33d","term":"Casimir-Périer, Claude, 1880-1915","key":"Casimir-PérierClaude1880-1915","viafid":"29528044","merge":{"source":"viaf","id":"17334e6df7aad6212dc4cc97ce58a33d","type":"document"},"lc":"no2011142329","bnf":"11654393"} {"version":"2013-07-01T14:07:50Z","_id":"173534d114dbe7ce88a4e4d673f3458a","dnb":"142034088","term":"Henry, Françoise, 1902-1982","key":"HenryFrançoise1902-1982","viafid":"39386390","merge":{"source":"viaf","id":"173534d114dbe7ce88a4e4d673f3458a","type":"document"},"lc":"n50029565","bnf":"11989368","bav":"adv10308686"} {"selibr":"269676","version":"2013-07-01T14:07:50Z","_id":"1736ec25122f75005cbf9232ba7c98b7","dnb":"102278105","term":"Étienne-Gallois, Auguste-Alphonse, 1809-1890","key":"Étienne-GalloisAuguste-Alphonse1809-1890","viafid":"73986026","merge":{"source":"viaf","id":"1736ec25122f75005cbf9232ba7c98b7","type":"document"},"lc":"nr00003940","bnf":"13009142"} {"viafid":"174650569","merge":{"source":"viaf","id":"173edb77c472b13158a6978561957de7","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"173edb77c472b13158a6978561957de7","lc":"n89239712","term":"Fontaine, Jean, 1936- | Fihris al-tārīkhī lil-muʼallafāt al-Tūnisīyah","key":"FontaineJean1936-|Fihrisal-tārīkhīlil-muʼallafātal-Tūnisīyah"} {"viafid":"185257100","merge":{"source":"viaf","id":"17496391d16df8f85dc0fc72aa3d2707","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"17496391d16df8f85dc0fc72aa3d2707","lc":"n2007055496","term":"Delsol, Chantal, 1947- | Eloge de la singularité English","key":"DelsolChantal1947-|ElogedelasingularitéEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"1752ca60ae3896fc09fb9a52b7960ac8","dnb":"15912834x","term":"Leudet, Théodore Émile, 1825-1887","key":"LeudetThéodoreÉmile1825-1887","viafid":"218218852","merge":{"source":"viaf","id":"1752ca60ae3896fc09fb9a52b7960ac8","type":"document"},"bnf":"16579307"} {"viafid":"193520994","merge":{"source":"viaf","id":"175342aa8e55431fbf8de8a7ab308505","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"175342aa8e55431fbf8de8a7ab308505","dnb":"1001222393","term":"Ugrešić, Dubravka 1949- | Ministarstvo boli","key":"UgrešićDubravka1949-|Ministarstvoboli"} {"viafid":"122139049","merge":{"source":"viaf","id":"175554de4c4b126f231d939952ef9d58","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"175554de4c4b126f231d939952ef9d58","lc":"nr97038904","term":"Hoyois, Emmanuel Henri François, 1799-1877","key":"HoyoisEmmanuelHenriFrançois1799-1877"} {"version":"2013-07-01T14:07:50Z","_id":"1760992b30749262caa72bcf33281a15","dnb":"1013334833","nla":"000035681015","term":"Köster, August, 1873-1935","key":"KösterAugust1873-1935","viafid":"2827192","nlilat":"000532989","merge":{"source":"viaf","id":"1760992b30749262caa72bcf33281a15","type":"document"},"lc":"nr97038180","bav":"adv10262139"} {"nkc":"skuk0001401","selibr":"250407","version":"2013-07-01T14:07:50Z","_id":"176decd2ace088214af967f60a11e4dd","bne":"xx1110784","dnb":"118833243","nla":"000036310248","term":"Tristán, Flora, 1803-1844","key":"TristánFlora1803-1844","nlilat":"000200478","viafid":"44306184","merge":{"source":"viaf","id":"176decd2ace088214af967f60a11e4dd","type":"document"},"lc":"n80094560","bnf":"11927116","bav":"adv11384982"} {"nkc":"mzk2008486696","version":"2013-07-01T14:07:50Z","_id":"177ce4e49462aa3983254035a6314a73","dnb":"100658776","term":"Turpin de Crissé, Lancelot 1709-1799","key":"TurpindeCrisséLancelot1709-1799","viafid":"41849779","merge":{"source":"viaf","id":"177ce4e49462aa3983254035a6314a73","type":"document"},"lc":"nr93040265","bnf":"11999674"} {"viafid":"47502749","merge":{"source":"viaf","id":"1782bdf78dfc6c7644e41226dbc15618","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1782bdf78dfc6c7644e41226dbc15618","dnb":"116002069","term":"Laspeyres, Étienne 1834-1913","key":"LaspeyresÉtienne1834-1913"} {"viafid":"181309847","merge":{"source":"viaf","id":"1785cd28158ffb38594043c839532f82","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1785cd28158ffb38594043c839532f82","lc":"no2006073509","term":"Aira, César, 1949- | Selections. 2004","key":"AiraCésar1949-|Selections2004"} {"version":"2013-07-01T14:07:50Z","_id":"1787efaa9dcbee4abb6d0a6555764879","dnb":"172145600","nla":"000035890718","term":"Höweler, Marijke 1938-2006","key":"HöwelerMarijke1938-2006","viafid":"27189364","merge":{"source":"viaf","id":"1787efaa9dcbee4abb6d0a6555764879","type":"document"},"lc":"no90008256","bnf":"12685113"} {"version":"2013-07-01T14:07:50Z","_id":"178cb999ebbd2e6eb43ecaaf0d15a25b","dnb":"172841968","term":"Boré, Eugène, 1809-1877","key":"BoréEugène1809-1877","viafid":"27053093","nlilat":"000468248","merge":{"source":"viaf","id":"178cb999ebbd2e6eb43ecaaf0d15a25b","type":"document"},"lc":"n85055606","bnf":"10233063","bav":"adv10010389"} {"nkc":"jx20050922010","version":"2013-07-01T14:07:50Z","_id":"179ec2ad154d45479bdbab9163777a40","bne":"xx1712073","dnb":"116549394","nla":"000035178829","ptbnp":"1276314","term":"Hausswald, Günter, 1908-1974","key":"HausswaldGünter1908-1974","viafid":"22404396","merge":{"source":"viaf","id":"179ec2ad154d45479bdbab9163777a40","type":"document"},"lc":"n82059303","bnf":"14762904","bav":"adv11448013"} {"version":"2013-07-01T14:07:50Z","_id":"179f9f325962eb26c3dda97eab0106b0","dnb":"119243326","term":"Van Alphen, Hiëronymus, 1746-1803","key":"VanAlphenHiëronymus1746-1803","viafid":"39627148","merge":{"source":"viaf","id":"179f9f325962eb26c3dda97eab0106b0","type":"document"},"lc":"nr93005775","bnf":"14604587"} {"version":"2013-07-01T14:07:50Z","_id":"17b1c7135b4e0d09bd4bc8b6f6b44df0","term":"Deville, Étienne, b. 1873","key":"DevilleÉtienneb1873","viafid":"74217527","merge":{"source":"viaf","id":"17b1c7135b4e0d09bd4bc8b6f6b44df0","type":"document"},"lc":"no96015941","bav":"adv10110713"} {"version":"2013-07-01T14:07:50Z","_id":"17b1e6a1074f8f57ee317b66335a7392","dnb":"121045854","term":"Goupil-Fesquet, Frédéric Auguste Antoine, 1817-1878","key":"Goupil-FesquetFrédéricAugusteAntoine1817-1878","nlilat":"000055678","viafid":"9194525","merge":{"source":"viaf","id":"17b1e6a1074f8f57ee317b66335a7392","type":"document"},"jpg":"500104863","lc":"n2001066040","bnf":"12760347"} {"nkc":"jo2004214982","version":"2013-07-01T14:07:50Z","_id":"17b6260c094511e5b8e3082b786e6b1b","dnb":"118658042","nla":"000035017079","ptbnp":"166947","term":"Belleau, Rémy, 1527?-1577","key":"BelleauRémy1527?-1577","viafid":"12304848","nlilat":"000017564","merge":{"source":"viaf","id":"17b6260c094511e5b8e3082b786e6b1b","type":"document"},"lc":"n86048999","bnf":"11891041","bav":"adv10061460"} {"version":"2013-07-01T14:07:50Z","_id":"17b860672672386ee08ada56f28ad5e8","dnb":"101448635","nla":"000036563797","term":"De Blécourt, Anne Siberdinus, 1873-1941","key":"DeBlécourtAnneSiberdinus1873-1941","viafid":"20046285","merge":{"source":"viaf","id":"17b860672672386ee08ada56f28ad5e8","type":"document"},"lc":"n80107426"} {"viafid":"175612993","merge":{"source":"viaf","id":"17bb5c3ddbc00372b60343e23fd39189","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"17bb5c3ddbc00372b60343e23fd39189","lc":"no98081648","term":"Drakulić, Slavenka, 1949- | Balkan express. Serbo-Croatian","key":"DrakulićSlavenka1949-|BalkanexpressSerbo-Croatian"} {"version":"2013-07-01T14:07:50Z","_id":"17c73a4ce9a8b77473ee6837b7774da1","bne":"xx844021","dnb":"119350858","nla":"000035764974","term":"Maurín, Joaquín, 1897-1973","key":"MaurínJoaquín1897-1973","nlilat":"000401258","viafid":"59092660","merge":{"source":"viaf","id":"17c73a4ce9a8b77473ee6837b7774da1","type":"document"},"lc":"n50007004","bnf":"11999953"} {"nkc":"jcu2012720638","version":"2013-07-01T14:07:50Z","_id":"17cbc0ec6b5cb91a30b4319eae279228","bne":"xx1074616","dnb":"122567692","nla":"000035286992","ptbnp":"179427","term":"Labande, Edmond-René, 1908-1992","key":"LabandeEdmond-René1908-1992","nlilat":"000410465","viafid":"56612170","merge":{"source":"viaf","id":"17cbc0ec6b5cb91a30b4319eae279228","type":"document"},"lc":"n50043392","bnf":"11910344","bav":"adv10207268"} {"nkc":"mzk2010588940","selibr":"313837","version":"2013-07-01T14:07:50Z","_id":"17d853868d565face0791be7d987775c","dnb":"118779729","nla":"000035724774","term":"Le Tourneur, Pierre-Prime-Félicien, 1736-1788","key":"LeTourneurPierre-Prime-Félicien1736-1788","viafid":"49227979","merge":{"source":"viaf","id":"17d853868d565face0791be7d987775c","type":"document"},"lc":"nr91002394","bnf":"11911818"} {"selibr":"195266","version":"2013-07-01T14:07:50Z","_id":"17e2def720728af8f2de67028e4e1db4","bne":"xx1010421","dnb":"157763234","nla":"000035804008","term":"Martínez de Toledo, Alfonso, 1398?-1466","key":"MartínezdeToledoAlfonso1398?-1466","viafid":"36959911","nlilat":"000418631","merge":{"source":"viaf","id":"17e2def720728af8f2de67028e4e1db4","type":"document"},"lc":"n79038513","bnf":"12175912","bav":"adv11029641"} {"version":"2013-07-01T14:07:50Z","_id":"17e7d9eef055cf815c62a64be05419c7","term":"Textor, Benoît, 16th cent","key":"TextorBenoît16thcent","viafid":"69042714","merge":{"source":"viaf","id":"17e7d9eef055cf815c62a64be05419c7","type":"document"},"lc":"n92069935","bnf":"12541969"} {"nkc":"jk01101653","version":"2013-07-01T14:07:50Z","_id":"17e859080dfe93c28640b213ab02f416","dnb":"119354179","term":"Ptáčník, Karel, 1921-2002","key":"PtáčníkKarel1921-2002","viafid":"22949364","nlilat":"000108158","merge":{"source":"viaf","id":"17e859080dfe93c28640b213ab02f416","type":"document"},"lc":"n88141623"} {"selibr":"301851","version":"2013-07-01T14:07:50Z","_id":"17fd0993d35f8ffeae8715c51f9150ad","dnb":"104039299","ptbnp":"92410","term":"Joanne, Paul Bénigne, 1847-1922","key":"JoannePaulBénigne1847-1922","viafid":"19733280","nlilat":"000518995","merge":{"source":"viaf","id":"17fd0993d35f8ffeae8715c51f9150ad","type":"document"},"lc":"no94033709","bnf":"12241162","bav":"adv10286578"} {"viafid":"176679172","merge":{"source":"viaf","id":"17fdfa296c35c8f989e74d57ca76ada3","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"17fdfa296c35c8f989e74d57ca76ada3","lc":"n91115146","term":"Krüger, Michael, 1943- | Ende des Romans. English","key":"KrügerMichael1943-|EndedesRomansEnglish"} {"version":"2013-07-01T14:07:50Z","_id":"17ffdd74dad70ee996dc568abc1b3f4d","dnb":"118584952","term":"Müller, Heinrich, 1880-1970","key":"MüllerHeinrich1880-1970","viafid":"20472774","merge":{"source":"viaf","id":"17ffdd74dad70ee996dc568abc1b3f4d","type":"document"},"lc":"n84126561","bav":"adv11866255"} {"nkc":"mzk2009512573","version":"2013-07-01T14:07:50Z","_id":"18094d8791ce00908a4b03d212e217a0","dnb":"118526243","nla":"000035040091","ptbnp":"37769","term":"Döllinger, Ignaz, 1770-1841, Beziehung familiaer","key":"DöllingerIgnaz1770-1841Beziehungfamiliaer","viafid":"89020124","nlilat":"000041799","merge":{"source":"viaf","id":"18094d8791ce00908a4b03d212e217a0","type":"document"},"lc":"n50082843","bnf":"12159364","bav":"adv10260354"} {"nkc":"mzk2009509952","selibr":"298487","version":"2013-07-01T14:07:50Z","_id":"180afecf717c143dcd25c485e13197cb","dnb":"172224969","swnl":"vtls004330502","nla":"000035817900","term":"Le Mercier de la Rivière, Pierre-Paul, 1719 or 20-ca. 1794","key":"LeMercierdelaRivièrePierre-Paul1719or20-ca1794","nlilat":"000490552","viafid":"31999036","merge":{"source":"viaf","id":"180afecf717c143dcd25c485e13197cb","type":"document"},"lc":"n87912819","bnf":"11911703","bav":"adv12151756"} {"version":"2013-07-01T14:07:50Z","_id":"1811817698b000952f4ce7b739ac3ef6","dnb":"119027178","term":"Büttner, Heinrich, 1908-1970","key":"BüttnerHeinrich1908-1970","viafid":"68966074","nlilat":"000524211","merge":{"source":"viaf","id":"1811817698b000952f4ce7b739ac3ef6","type":"document"},"lc":"nr90004128","bnf":"12145443","bav":"adv10148163"} {"nkc":"jx20080430005","version":"2013-07-01T14:07:50Z","_id":"1817e417f95551160ac8187eb8bc14c1","bne":"xx917886","dnb":"115611606","ptbnp":"26081","term":"De Vasconcellos, J. Leite, 1858-1941, (José Leite)","key":"DeVasconcellosJLeite1858-1941(JoséLeite)","viafid":"7400155","nlilat":"000243130","merge":{"source":"viaf","id":"1817e417f95551160ac8187eb8bc14c1","type":"document"},"lc":"n82142735","bnf":"11994246","bav":"adv10880732"} {"nkc":"jn20001227475","selibr":"275382","version":"2013-07-01T14:07:50Z","_id":"1837422fc00166bf3d567e7563186d57","bne":"xx897842","dnb":"118646192","swnl":"vtls001778208","nla":"000035444149","ptbnp":"99098","term":"Auber, Daniel-François-Esprit, 1782-1871","key":"AuberDaniel-François-Esprit1782-1871","viafid":"7573044","nlilat":"000429355","merge":{"source":"viaf","id":"1837422fc00166bf3d567e7563186d57","type":"document"},"lc":"n80079937","bnf":"13890952","bav":"adv10029081"} {"version":"2013-07-01T14:07:50Z","_id":"183878caf067d9325659d1ede41e2108","dnb":"119096773","term":"Lüers, Friedrich, b. 1892","key":"LüersFriedrichb1892","viafid":"102329487","nlilat":"000545097","merge":{"source":"viaf","id":"183878caf067d9325659d1ede41e2108","type":"document"},"lc":"n2002079665","bav":"adv11108428"} {"nkc":"mzk2003194892","version":"2013-07-01T14:07:50Z","_id":"183a7aa3b200c80f87e70ecbff672b00","dnb":"118699962","nla":"000035629156","term":"Hackländer, Friedrich Wilhelm, 1816-1877","key":"HackländerFriedrichWilhelm1816-1877","nlilat":"000295733","viafid":"2588488","merge":{"source":"viaf","id":"183a7aa3b200c80f87e70ecbff672b00","type":"document"},"lc":"no89004614","bnf":"12560023"} {"version":"2013-07-01T14:07:50Z","_id":"183e63927d8ba0a95a50bfec0f3c0dff","dnb":"100345751","nla":"000035648874","term":"Fagan, Christophe Barthélemy, 1702-1755","key":"FaganChristopheBarthélemy1702-1755","viafid":"76350365","merge":{"source":"viaf","id":"183e63927d8ba0a95a50bfec0f3c0dff","type":"document"},"lc":"n82131737","bnf":"12127833"} {"version":"2013-07-01T14:07:50Z","_id":"1846196918375f9e9a90231b48553208","term":"Rémond, André, 1912-1998","key":"RémondAndré1912-1998","viafid":"22242742","merge":{"source":"viaf","id":"1846196918375f9e9a90231b48553208","type":"document"},"lc":"no2004078136","bnf":"12478658"} {"version":"2013-07-01T14:07:50Z","_id":"18470f6621d6b509ea86af2148f681f5","dnb":"181019396","term":"Fontanès, Ernest, 1828-1903","key":"FontanèsErnest1828-1903","viafid":"64130613","merge":{"source":"viaf","id":"18470f6621d6b509ea86af2148f681f5","type":"document"},"bnf":"12758962"} {"viafid":"776218","merge":{"source":"viaf","id":"184913abce504a1b245a9ea968b7903a","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"184913abce504a1b245a9ea968b7903a","dnb":"116912030","term":"Günther, August Friedrich, 1806-1871","key":"GüntherAugustFriedrich1806-1871"} {"version":"2013-07-01T14:07:50Z","_id":"1857ba2facca1508982b951c25d0332d","bne":"xx1147778","dnb":"126203997","ptbnp":"219156","term":"Birabeau, André, 1890-1974","key":"BirabeauAndré1890-1974","viafid":"59374712","merge":{"source":"viaf","id":"1857ba2facca1508982b951c25d0332d","type":"document"},"lc":"no2007116880","bnf":"15072574"} {"viafid":"243662523","merge":{"source":"viaf","id":"1862f3fe48506fa0f15336b4f01b22df","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"1862f3fe48506fa0f15336b4f01b22df","dnb":"17408420x","term":"Görner, Carl August 1806-1884","key":"GörnerCarlAugust1806-1884"} {"nkc":"mzk2009528274","selibr":"321990","version":"2013-07-01T14:07:50Z","_id":"18648749c2147f2f7f5be8bc5c46f00e","dnb":"104327952","term":"Büsch, Johann Georg, 1728-1800","key":"BüschJohannGeorg1728-1800","viafid":"76752134","nlilat":"000431533","merge":{"source":"viaf","id":"18648749c2147f2f7f5be8bc5c46f00e","type":"document"},"lc":"n80125244"} {"version":"2013-07-01T14:07:50Z","_id":"18770c5380e897336e5f1440a7adbc23","dnb":"118547208","term":"Haußmann, Conrad 1857-1922","key":"HaußmannConrad1857-1922","nlilat":"000523214","viafid":"27863077","merge":{"source":"viaf","id":"18770c5380e897336e5f1440a7adbc23","type":"document"},"lc":"nr89003227","bnf":"16613754"} {"nkc":"jo2004214983","version":"2013-07-01T14:07:50Z","_id":"1878d1d2f3fce433aeaac57c6476176d","dnb":"117656348","nla":"000035462525","term":"Sélis, Nicolas-Joseph, 1737-1802","key":"SélisNicolas-Joseph1737-1802","viafid":"29639918","merge":{"source":"viaf","id":"1878d1d2f3fce433aeaac57c6476176d","type":"document"},"lc":"nr93035607","bnf":"12511996"} {"viafid":"293805497","merge":{"source":"viaf","id":"187f31bf27cec94cc8157d8657e8073d","type":"document"},"version":"2013-07-01T14:07:50Z","_id":"187f31bf27cec94cc8157d8657e8073d","term":"Gor'kij, Maksim (1868-1936). | Žizn' Klima Samgina (pol.)","key":"Gor'kijMaksim(1868-1936)|Žizn'KlimaSamgina(pol)"} {"nkc":"jn19990210652","selibr":"99944","version":"2013-07-01T14:07:50Z","_id":"1880db00cb989c2b7bfafd693445659a","dnb":"118807560","nla":"000036531850","term":"Vinogradov, Viktor Vladimirovič, 1895-1969","key":"VinogradovViktorVladimirovič1895-1969","nlicyr":"000149330","viafid":"17252709","merge":{"source":"viaf","id":"1880db00cb989c2b7bfafd693445659a","type":"document"},"lc":"n81040702","bnf":"12104627"} {"version":"2013-07-01T14:07:50Z","_id":"1883bbb111129007c6a442c01f79bf8c","dnb":"119114771","nla":"000036002025","term":"La Bourdonnais, Bertrand-François Mahé, , 1699-1753","key":"LaBourdonnaisBertrand-FrançoisMahé1699-1753","nlilat":"000488087","viafid":"5028896","merge":{"source":"viaf","id":"1883bbb111129007c6a442c01f79bf8c","type":"document"},"lc":"n87817647","bnf":"12462106","bav":"adv12362355"} {"nkc":"jn19990210403","selibr":"74051","version":"2013-07-01T14:07:50Z","_id":"18894957b123cb8bfd6ae0a9427067f2","dnb":"11857695x","nla":"000035325228","term":"Mandel'štam, Nadežda, 1899-1980","key":"Mandel'štamNadežda1899-1980","nlicyr":"000153352","nlilat":"000088340","viafid":"14318","merge":{"source":"viaf","id":"18894957b123cb8bfd6ae0a9427067f2","type":"document"},"lc":"n80138751","bnf":"11914216"} {"version":"2013-07-01T14:07:50Z","_id":"189177e56cb23e254643ba132d736554","dnb":"101845693","ptbnp":"178214","term":"Banning, Émile, 1836-1898","key":"BanningÉmile1836-1898","viafid":"10222960","merge":{"source":"viaf","id":"189177e56cb23e254643ba132d736554","type":"document"},"lc":"no2012043860","bnf":"13002928","bav":"adv11390715"} {"selibr":"213945","version":"2013-07-01T14:07:50Z","_id":"1892d7c5f989624c9ed4c46a2892b044","dnb":"140892818","term":"Attorps, Gösta, 1899-1976","key":"AttorpsGösta1899-1976","viafid":"74292181","nlilat":"000012991","merge":{"source":"viaf","id":"1892d7c5f989624c9ed4c46a2892b044","type":"document"}} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Util.t���������������������������������������������������������������������000644 �000765 �000024 �00000040674 13341726377 017272� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use IO::Handle; use File::Spec; use utf8; use feature 'state'; my $pkg; BEGIN { $pkg = 'Catmandu::Util'; use_ok $pkg; } require_ok $pkg; { package T::ImportNothing; use Catmandu::Util; package T::ImportAll; use Catmandu::Util qw(:all); package T::ImportIs; use Catmandu::Util qw(:is); package T::ImportCheck; use Catmandu::Util qw(:check); package T::ImportMisc; use Catmandu::Util qw(:misc); package T::ImportIo; use Catmandu::Util qw(:io); package T::ImportData; use Catmandu::Util qw(:data); package T::ImportArray; use Catmandu::Util qw(:array); package T::ImportHash; use Catmandu::Util qw(:hash); package T::ImportString; use Catmandu::Util qw(:string); package T::ImportHuman; use Catmandu::Util qw(:human); package T::ImportXML; use Catmandu::Util qw(:xml); package T::Foo; use Moo; sub bar {'bar'} } for my $sym (qw(same different)) { can_ok $pkg, "is_$sym"; can_ok $pkg, "check_$sym"; can_ok 'T::ImportAll', "is_$sym"; can_ok 'T::ImportAll', "check_$sym"; ok !T::ImportNothing->can("is_$sym"); ok !T::ImportNothing->can("check_$sym"); can_ok 'T::ImportIs', "is_$sym"; ok !T::ImportCheck->can("is_$sym"); can_ok 'T::ImportCheck', "check_$sym"; ok !T::ImportIs->can("check_$sym"); } for my $sym ( qw(able instance invocant ref scalar_ref array_ref hash_ref code_ref regex_ref glob_ref value string number integer natural positive) ) { can_ok $pkg, "is_$sym"; can_ok $pkg, "is_maybe_$sym"; can_ok $pkg, "check_$sym"; can_ok $pkg, "check_maybe_$sym"; can_ok 'T::ImportAll', "is_$sym"; can_ok 'T::ImportAll', "is_maybe_$sym"; can_ok 'T::ImportAll', "check_$sym"; can_ok 'T::ImportAll', "check_maybe_$sym"; ok !T::ImportNothing->can("is_$sym"); ok !T::ImportNothing->can("is_maybe_$sym"); ok !T::ImportNothing->can("check_$sym"); ok !T::ImportNothing->can("check_maybe_$sym"); can_ok 'T::ImportIs', "is_$sym"; can_ok 'T::ImportIs', "is_maybe_$sym"; ok !T::ImportCheck->can("is_$sym"); ok !T::ImportCheck->can("is_maybe_$sym"); can_ok 'T::ImportCheck', "check_$sym"; can_ok 'T::ImportCheck', "check_maybe_$sym"; ok !T::ImportIs->can("check_$sym"); ok !T::ImportIs->can("check_maybe_$sym"); # autovivication test my $arr_ref = []; my $hash_ref = {arr_ref => $arr_ref}; my $name = "is_$sym"; my $sub_ref = do { no strict 'refs'; \&{"Catmandu::Util::$name"}; }; $sub_ref->($hash_ref->{arr_ref}->[@$arr_ref]); is_deeply $hash_ref, {arr_ref => []}, "no autovivication in $name"; } { my $val; lives_ok {Catmandu::Util::check_maybe_regex_ref($val)}; $val = qr/re/; lives_ok {Catmandu::Util::check_regex_ref($val)}; } for my $sym (qw(require_package use_lib)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportMisc', $sym; } for my $sym (qw(io read_file read_yaml read_json)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportIo', $sym; } for my $sym (qw(parse_data_path get_data set_data delete_data data_at)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportData', $sym; } for my $sym ( qw(array_exists array_group_by array_pluck array_to_sentence array_sum array_includes array_any array_uniq array_split) ) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportArray', $sym; } for my $sym (qw(hash_merge)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportHash', $sym; } for my $sym (qw(as_utf8 trim capitalize)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportString', $sym; } for my $sym (qw(human_number human_content_type human_byte_size)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportHuman', $sym; } for my $sym (qw(xml_declaration xml_escape)) { can_ok $pkg, $sym; ok !T::ImportNothing->can($sym); can_ok 'T::ImportAll', $sym; can_ok 'T::ImportXML', $sym; } { my $coderef = sub { state $counter = 0; return "Count: $counter\n" if $counter++ < 5; }; my $io = Catmandu::Util::io($coderef, mode => 'r'); ok $io , 'io from code_ref read'; is $io->getline(), "Count: 1\n", 'getline'; } { my $coderef = sub { my $line = shift; return 1; }; my $io = Catmandu::Util::io($coderef, mode => 'w'); ok $io , 'io from code_ref write'; ok $io->print("Test"), 'print'; } { my $io = Catmandu::Util::io(IO::File->new("< Changes")); ok $io , 'io IO::Handle instance'; } { use Math::BigRat; throws_ok {Catmandu::Util::io(Math::BigRat->new('3/7'))} 'Catmandu::BadArg', 'got Catmandu::BadArg'; } { my $test = <<EOF; На берегу пустынных волн Стоял он, дум великих полн, И вдаль глядел. Пред ним широко Река неслася; бедный чёлн По ней стремился одиноко. По мшистым, топким берегам Чернели избы здесь и там, Приют убогого чухонца; И лес, неведомый лучам В тумане спрятанного солнца, Кругом шумел. EOF chop($test); is Catmandu::Util::read_file("t/russian.txt"), $test, 'read_file'; } { my $test = <<EOF; На берегу пустынных волн Стоял он, дум великих полн, И вдаль глядел. Пред ним широко Река неслася; бедный чёлн По ней стремился одиноко. По мшистым, топким берегам Чернели избы здесь и там, Приют убогого чухонца; И лес, неведомый лучам В тумане спрятанного солнца, Кругом шумел. EOF chop($test); my $io = IO::File->new("< t/russian.txt"); is Catmandu::Util::read_io($io), $test, 'read_io'; } { my $test = <<EOF; На берегу пустынных волн Стоял он, дум великих полн, И вдаль глядел. Пред ним широко Река неслася; бедный чёлн По ней стремился одиноко. По мшистым, топким берегам Чернели избы здесь и там, Приют убогого чухонца; И лес, неведомый лучам В тумане спрятанного солнца, Кругом шумел. EOF chop($test); my $filename = "$$.txt"; ok Catmandu::Util::write_file($filename, $test), 'write_file'; is Catmandu::Util::read_file($filename), $test, 'read_file'; unlink $filename; } { is_deeply Catmandu::Util::read_yaml("t/small.yaml"), {"hello" => "ვეპხის ტყაოსანი შოთა რუსთაველი" }, 'read_yaml'; } { is_deeply Catmandu::Util::read_json("t/small.json"), {"hello" => "ვეპხის ტყაოსანი შოთა რუსთაველი" }, 'read_json'; } is Catmandu::Util::join_path( "/this/..", "./is", "..", "./a/../weird/path", "./../../isnt/../it" ), File::Spec->catfile("/it"), 'join_path'; is Catmandu::Util::normalize_path( "/this/../is/../a/../weird/path/../../isnt/../it"), File::Spec->catfile("/it"), 'normalize_path'; is Catmandu::Util::segmented_path( "12345678", segment_size => 2, base_path => "/x" ), File::Spec->catfile("/x/12/34/56/78"), 'segmented_path'; is_deeply [Catmandu::Util::parse_data_path("foo.bar.x")], [['foo', 'bar'], "x"], "parse_data_path"; is Catmandu::Util::get_data({foo => 'bar'}, 'foo'), 'bar', 'get_data(foo)'; ok !Catmandu::Util::get_data({foo => 'bar'}, 'foo2'), 'get_data(foo2)'; ok !Catmandu::Util::get_data([qw(0 1 2)], 3), 'get_data(3)'; is Catmandu::Util::get_data([qw(0 1 2)], 1), '1', 'get_data(1)'; is Catmandu::Util::get_data([qw(0 1 2)], '$first'), '0', 'get_data($first)'; is Catmandu::Util::get_data([qw(0 1 2)], '$last'), '2', 'get_data($last)'; is_deeply [Catmandu::Util::get_data([qw(0 1 2)], '*')], [qw(0 1 2)], 'get_data(*)'; { my $data = {foo => 'bar'}; Catmandu::Util::set_data($data, 'foo', 'bar2'); is_deeply $data , {foo => 'bar2'}, 'set_data 1'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, 0, 'bar'); is_deeply $data , [qw(bar 1 2)], 'set_data 2'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$first', 'bar'); is_deeply $data , [qw(bar 1 2)], 'set_data 3'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$last', 'bar'); is_deeply $data , [qw(0 1 bar)], 'set_data 4'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$prepend', 'bar'); is_deeply $data , [qw(bar 0 1 2)], 'set_data 5'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$append', 'bar'); is_deeply $data , [qw(0 1 2 bar)], 'set_data 6'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '*', 'bar', 'bar', 'bar'); is_deeply $data , [qw(bar bar bar)], 'set_data 7'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, 'foo', 'bar'); is_deeply $data , [qw(0 1 2)], 'set_data 8'; } { my $data = undef; Catmandu::Util::set_data($data, 'foo2', 'bar2'); is_deeply $data , undef, 'set_data 9'; } { my $data = {foo => 'bar'}; Catmandu::Util::set_data($data, 'foo', 'bar2'); is_deeply $data , {foo => 'bar2'}, 'set_data 1'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, 0, 'bar'); is_deeply $data , [qw(bar 1 2)], 'set_data 2'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$first', 'bar'); is_deeply $data , [qw(bar 1 2)], 'set_data 3'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$last', 'bar'); is_deeply $data , [qw(0 1 bar)], 'set_data 4'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$prepend', 'bar'); is_deeply $data , [qw(bar 0 1 2)], 'set_data 5'; } { my $data = [qw(0 1 2)]; Catmandu::Util::set_data($data, '$append', 'bar'); is_deeply $data , [qw(0 1 2 bar)], 'set_data 6'; } { my $data = {foo => 'bar'}; Catmandu::Util::delete_data($data, 'foo'); is_deeply $data , {}, 'delete_data 1'; } { my $data = [qw(0 1 2)]; Catmandu::Util::delete_data($data, 0); is_deeply $data , [qw(1 2)], 'delete_data 2'; } { my $data = [qw(0 1 2)]; Catmandu::Util::delete_data($data, '$first'); is_deeply $data , [qw(1 2)], 'delete_data 3'; } { my $data = [qw(0 1 2)]; Catmandu::Util::delete_data($data, '$last'); is_deeply $data , [qw(0 1)], 'delete_data 4'; } { my $data = [qw(0 1 2)]; Catmandu::Util::delete_data($data, '*'); is_deeply $data , [], 'delete_data 5'; } { my $data = [qw(0 1 2)]; Catmandu::Util::delete_data($data, '100'); is_deeply $data , [qw(0 1 2)], 'delete_data 6'; } { my $data = undef; Catmandu::Util::delete_data($data, '100'); is_deeply $data , undef, 'delete_data 7'; } is Catmandu::Util::data_at('foo', {foo => 'bar'}), 'bar', 'data_at 1'; is Catmandu::Util::data_at('foo.1', {foo => [qw(bar bar2 bar3)]}), 'bar2', 'data_at 2'; is Catmandu::Util::data_at('foo.$first', {foo => [qw(bar bar2 bar3)]}), 'bar', 'data_at 3'; is Catmandu::Util::data_at('foo.$last', {foo => [qw(bar bar2 bar3)]}), 'bar3', 'data_at 4'; { my $data = {foo => [qw(0 1 2)]}; is_deeply Catmandu::Util::data_at('foo.$prepend', $data), undef, 'data_at 5'; is_deeply $data , {foo => [undef, qw(0 1 2)]}, 'data_at 5'; } { my $data = {foo => [qw(0 1 2)]}; is_deeply Catmandu::Util::data_at('foo.$append', $data), undef, 'data_at 6'; is_deeply $data , {foo => [qw(0 1 2), undef]}, 'data_at 6'; } ok Catmandu::Util::array_exists([qw(0 1 2)], 0), 'array_exists 1'; ok !Catmandu::Util::array_exists([qw(0 1 2)], 3), '!array_exists'; is_deeply Catmandu::Util::array_group_by( [ {color => 'red', number => 1}, {color => 'blue', number => 2}, {color => 'green', number => 3}, {number => 4} ], 'color' ), { red => [{color => 'red', number => 1}], blue => [{color => 'blue', number => 2}], green => [{color => 'green', number => 3}], }, 'array_group_by'; is_deeply Catmandu::Util::array_pluck([{id => 1}, {foo => 2}, {id => 3}], 'id'), [1, undef, 3], 'array_pluck'; is Catmandu::Util::array_sum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 55, 'array_sum'; ok Catmandu::Util::array_includes( [{foo => [{bar => 1}]}], {foo => [{bar => 1}]} ), 'array_includes'; ok !Catmandu::Util::array_includes( [{foo => [{bar => 1}]}], {foo => [{bar => 5}]} ), '!array_includes'; ok Catmandu::Util::array_any([0, 1, 2], sub {return 1 if shift == 2}), 'array_any'; ok !Catmandu::Util::array_any([0, 1, 2], sub {return 1 if shift == 100}), 'array_any'; is Catmandu::Util::array_to_sentence([1, 2]), '1 and 2', 'array_to_sentence'; is Catmandu::Util::array_to_sentence([1, 2, 3]), '1, 2 and 3', 'array_to_sentence'; is_deeply Catmandu::Util::array_rest([0, 1, 2]), [1, 2], 'array_rest'; is_deeply Catmandu::Util::array_uniq([0, 1, 2, 2, 2, 2, 3, 3, 2, 3]), [0, 1, 2, 3], 'array_uniq'; is_deeply Catmandu::Util::hash_merge({a => {b => 1}}, {a => {c => 2}}), {a => {b => 1, c => 2}}, 'hash_merge'; is Catmandu::Util::as_utf8("école"), "école", 'as_utf8'; is Catmandu::Util::trim(" \r\n bla \t\t\t\r\n"), "bla", 'trim'; is Catmandu::Util::capitalize("école"), "École", 'capitalize'; ok Catmandu::Util::is_same( {a => [{b => 1, c => 1}]}, {a => [{c => 1, b => 1}]} ), 'is_same'; ok Catmandu::Util::is_different( {a => [{b => 1, c => 1}]}, {a => [{d => 1, b => 1}]} ), 'is_different'; ok Catmandu::Util::check_same( {a => [{b => 1, c => 1}]}, {a => [{c => 1, b => 1}]} ), 'check_same'; throws_ok { Catmandu::Util::check_same({a => [{b => 1, c => 1}]}, {a => [{d => 1, b => 1}]}) } 'Catmandu::BadVal', '! check_same'; ok Catmandu::Util::check_different( {a => [{b => 1, c => 1}]}, {a => [{b => 1, b => 1}]} ), 'check_different'; throws_ok { Catmandu::Util::check_different({a => [{b => 1, c => 1}]}, {a => [{c => 1, b => 1}]}) } 'Catmandu::BadVal', '! check_different'; ok Catmandu::Util::is_able(T::Foo->new, 'bar'), 'is_able'; ok !Catmandu::Util::is_able(T::Foo->new, 'bar2'), '! is_able'; ok !Catmandu::Util::is_able('123', 'bar2'), '! is_able'; ok Catmandu::Util::check_able(T::Foo->new, 'bar'), 'check_able'; throws_ok {Catmandu::Util::check_able('123', 'bar2')} 'Catmandu::BadVal', '! check_able'; ok !Catmandu::Util::check_maybe_able(undef, 'bar2'), 'check_maybe_able'; throws_ok {Catmandu::Util::check_maybe_able('123', 'bar2')} 'Catmandu::BadVal', '! check_maybe_able'; ok Catmandu::Util::is_instance(T::Foo->new, 'T::Foo'), 'is_instance'; ok !Catmandu::Util::is_instance(T::Foo->new, 'T::Foo2'), '! is_instance'; ok !Catmandu::Util::is_instance(undef, 'T::Foo'), '! is_instance'; ok Catmandu::Util::check_instance(T::Foo->new, 'T::Foo'), 'check_instance'; throws_ok {Catmandu::Util::check_instance(undef, 'T::Foo')} 'Catmandu::BadVal', '! check_instance'; ok !Catmandu::Util::check_maybe_instance(undef, 'T::Foo'), '! check_maybe_instance'; throws_ok {Catmandu::Util::check_maybe_instance(123, 'T::Foo')} 'Catmandu::BadVal', '! check_maybe_instance'; is Catmandu::Util::human_number(64354), "64,354", 'human_number'; is Catmandu::Util::human_byte_size(10), "10 bytes", 'human_byte_size'; is Catmandu::Util::human_byte_size(10005), "10.01 KB", 'human_byte_size'; is Catmandu::Util::human_byte_size(10005000), "10.01 MB", 'human_byte_size'; is Catmandu::Util::human_byte_size(10005000000), "10.01 GB", 'human_byte_size'; is Catmandu::Util::human_content_type('application/x-dos_ms_excel'), 'Excel', 'human_content_type'; is Catmandu::Util::xml_declaration(), qq(<?xml version="1.0" encoding="UTF-8"?>\n), 'xml_declaration'; is Catmandu::Util::xml_escape("<>'&"), '<>'&', 'xml_escape'; done_testing; ��������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-add_to_exporter.t������������������������������������������������������000644 �000765 �000024 �00000000653 13341726377 022254� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Capture::Tiny ':all'; use Catmandu; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::add_to_exporter'; use_ok $pkg; } my ($stdout, $stderr, $exit) = capture { my $fixer = Catmandu->fixer('add_to_exporter(.,JSON,array:1)'); $fixer->fix({hello => 'world'}); }; is $stdout, qq|[{"hello":"world"}]\n|, 'fixed ok'; done_testing 2; �������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-expand.t���������������������������������������������������������������000644 �000765 �000024 �00000001234 13341726377 020345� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::expand'; use_ok $pkg; } is_deeply $pkg->new->fix({'names.0.name' => "joe", 'names.1.name' => "rick"}), {names => [{name => 'joe'}, {name => 'rick'}]}, "data is unflattened"; is_deeply $pkg->new('sep', '-') ->fix({'names-0-name' => "joe", 'names-1-name' => "rick"}), {names => [{name => 'joe'}, {name => 'rick'}]}, "data is unflattened"; lives_ok { my %flat = map {("list.$_" => $_)} 0 .. 9999; my $deep = $pkg->new->fix(\%flat); die unless @{$deep->{list}} == 10000; } "expand large arrays"; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/small.yaml��������������������������������������������������������������������������000644 �000765 �000024 �00000000141 13341726377 016413� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- hello: ვეპხის ტყაოსანი შოთა რუსთაველი �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-perlcode.t�������������������������������������������������������������000644 �000765 �000024 �00000001025 13341726377 020661� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Catmandu::Fix; use Catmandu::Fix::perlcode; foreach my $i (1 .. 2) { # also tests caching my $fixer = Catmandu::Fix->new(fixes => ['perlcode(./t/script.pl)']); my $data = {}; $fixer->fix($data); is_deeply $data, {answer => 42}, 'perlcode fix'; } { my $fixer = Catmandu::Fix->new(fixes => ['perlcode(./t/script.pl)']); is_deeply $fixer->fix([map {+{answer => $_}} 1 .. 3]), [{answer => 1}, {answer => 3}], 'perlcode fix with reject'; } done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fixable.t������������������������������������������������������������������000644 �000765 �000024 �00000000275 13341726377 017720� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fixable'; use_ok $pkg; } require_ok $pkg; done_testing 2; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-downcase.t�������������������������������������������������������������000644 �000765 �000024 �00000000700 13341726377 020666� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::downcase'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => 'JOE'}), {name => "joe"}, "downcase value"; is_deeply $pkg->new('names.*.name') ->fix({names => [{name => 'JOE'}, {name => 'RICK'}]}), {names => [{name => 'joe'}, {name => 'rick'}]}, "downcase wildcard values"; done_testing 3; ����������������������������������������������������������������Catmandu-1.10/t/Catmandu-Interactive.t��������������������������������������������������������������000644 �000765 �000024 �00000005324 13341726377 020623� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Util; my $pkg; BEGIN { $pkg = 'Catmandu::Interactive'; use_ok $pkg; } require_ok $pkg; { my $cmd = "\\q\n"; my $res = ""; my $in = Catmandu::Util::io \$cmd, mode => 'r'; my $out = Catmandu::Util::io \$res, mode => 'w'; my $app = Catmandu::Interactive->new(in => $in, out => $out, silent => 1); $app->run(); is $res , "", 'can execute \q'; $in->close(); $out->close(); } { my $cmd = "add_field(hello,world)\n"; my $res = ""; my $in = Catmandu::Util::io \$cmd, mode => 'r'; my $out = Catmandu::Util::io \$res, mode => 'w'; my $app = Catmandu::Interactive->new( in => $in, out => $out, silent => 1, exporter => 'JSON', exporter_args => {line_delimited => 1}, ); $app->run(); is $res , "{\"hello\":\"world\"}\n", 'can execute hello world'; $in->close(); $out->close(); } { my $cmd = "add_field(hello,world)\nif exists(hello)\nupcase(hello)\nend\n"; my $res = ""; my $in = Catmandu::Util::io \$cmd, mode => 'r'; my $out = Catmandu::Util::io \$res, mode => 'w'; my $app = Catmandu::Interactive->new( in => $in, out => $out, silent => 1, exporter => 'JSON', exporter_args => {line_delimited => 1}, ); $app->run(); is $res , "{\"hello\":\"world\"}\n{\"hello\":\"WORLD\"}\n", 'can execute hello world with continuation'; $in->close(); $out->close(); } { my $cmd = "add_field(hello,world)\n\\h\n"; my $res = ""; my $in = Catmandu::Util::io \$cmd, mode => 'r'; my $out = Catmandu::Util::io \$res, mode => 'w'; my $app = Catmandu::Interactive->new( in => $in, out => $out, silent => 1, exporter => 'JSON', exporter_args => {line_delimited => 1}, ); $app->run(); is $res , "{\"hello\":\"world\"}\nadd_field(hello,world)\n", 'can execute \h'; $in->close(); $out->close(); } { my $cmd = "add_field(hello.\$append,world)\n\\r\n"; my $res = ""; my $in = Catmandu::Util::io \$cmd, mode => 'r'; my $out = Catmandu::Util::io \$res, mode => 'w'; my $app = Catmandu::Interactive->new( in => $in, out => $out, silent => 1, exporter => 'JSON', exporter_args => {line_delimited => 1}, ); $app->run(); is $res , "{\"hello\":[\"world\"]}\n{\"hello\":[\"world\",\"world\"]}\n", 'can execute \r'; $in->close(); $out->close(); } done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-reverse.t��������������������������������������������������������������000644 �000765 �000024 �00000000574 13341726377 020547� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::reverse'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => 'joe'}), {name => "eoj"}, "reverse string"; is_deeply $pkg->new('numbers')->fix({numbers => [1, 2, 3, 4]}), {numbers => [4, 3, 2, 1]}, "reverse array"; done_testing 3; ������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-delete.t���������������������������������������������������������������000644 �000765 �000024 �00000000746 13341726377 020314� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::delete'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw(delete test)]); is $result->stdout, "", 'got data'; is $result->error, undef, 'threw no exceptions'; ## Next test can fail buggy perl installations #is $result->stderr, '', 'nothing sent to sderr' ; done_testing 4; ��������������������������Catmandu-1.10/t/Catmandu-Searchable.t���������������������������������������������������������������000644 �000765 �000024 �00000001314 13341726377 020372� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Searchable'; use_ok $pkg; } require_ok $pkg; { package T::EmptySearchable; use Moo; package T::Searchable; use Moo; with $pkg; sub search {die "not implemented"} sub searcher {die "not implemented"} sub delete_by_query {die "not implemented"} } throws_ok { Role::Tiny->apply_role_to_package('T::EmptySearchable', $pkg) } qr/missing search, searcher, delete_by_query/; my $s = T::Searchable->new; is $s->default_default_limit, 10; is $s->default_maximum_limit, 1000; is $s->normalize_query("foo bar"), "foo bar"; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-vacuum.t���������������������������������������������������������������000644 �000765 �000024 �00000001365 13341726377 020373� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl package T::MyBlessed; use Moo; use overload '""' => 'stringify'; sub stringify {":-P yuck"} package main; use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::vacuum'; use_ok $pkg; } my $res = $pkg->new->fix( { arrays => [], hashes => {}, strings => '', nested_strings => {nested => ''}, nested_arrays => {arrays => []}, nested_hashes => {hashes => {}}, keep_me => {arrays => [], hashes => {foo => []}, me => 1}, keep_me_2 => [[], [T::MyBlessed->new]], } ); is_deeply $res, {keep_me => {me => 1}, keep_me_2 => [[":-P yuck"]]}, "data is vacuumed"; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-join_field.t�����������������������������������������������������������000644 �000765 �000024 �00000001701 13341726377 021167� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::join_field'; use_ok $pkg; } is_deeply $pkg->new('joinme', ',')->fix({joinme => ['J', 'O', 'I', 'N']}), {joinme => "J,O,I,N"}, "join value"; is_deeply $pkg->new('many.*.joinme', ',')->fix( { many => [ {joinme => ['J', 'O', 'I', 'N']}, {joinme => ['J', 'O', 'I', 'N']} ] } ), {many => [{joinme => "J,O,I,N"}, {joinme => "J,O,I,N"}]}, "join wildcard values"; is_deeply $pkg->new('joinme', ',')->fix({joinme => {skip => 'me'}}), {joinme => {skip => 'me'}}, "only join array values"; is_deeply $pkg->new('joinme', ',') ->fix({joinme => ['J', {skip => 'me'}, 'I', 'N']}), {joinme => "J,I,N"}, "only join array values"; is_deeply $pkg->new('joinme', '/')->fix({joinme => ['J', 'O', 'I', 'N']}), {joinme => "J/O/I/N"}, "join value"; done_testing 6; ���������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-maybe.t�����������������������������������������������������������000644 �000765 �000024 �00000004127 13341726377 021041� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use lib 't/lib'; use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::maybe'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do maybe() add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do maybe() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do maybe() unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do maybe() if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do maybe() reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok !defined $fixer->fix({foo => 'bar'}), 'testing reject'; $fixes = <<EOF; do maybe() select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do maybe() do maybe() do maybe() add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing nesting'; $fixes = <<EOF; add_field(before,ok) do maybe() add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<EOF; do maybe() undef_error() add_field(foo,bar) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'specific testing'; done_testing 12; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-uri_encode_decode.t����������������������������������������������������000644 �000765 �000024 �00000001221 13341726377 022501� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use utf8; use strict; use warnings; use Test::More; use Test::Exception; my $pkg1; my $pkg2; BEGIN { $pkg1 = 'Catmandu::Fix::uri_encode'; use_ok $pkg1; $pkg2 = 'Catmandu::Fix::uri_decode'; use_ok $pkg2; } my $obj = {name => 'café'}; my $obj2 = {name => 'ὁ τῶν Πέρσων βασιλεύς'}; my $fixer1 = $pkg1->new('name'); my $fixer2 = $pkg2->new('name'); is_deeply $fixer2->fix($fixer1->fix($obj)), {name => "café"}, "escape and unescape French"; is_deeply $fixer2->fix($fixer1->fix($obj2)), {name => "ὁ τῶν Πέρσων βασιλεύς"}, "escape and unescape Greek"; done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-remove_field.t���������������������������������������������������������000644 �000765 �000024 �00000001033 13341726377 021523� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::remove_field'; use_ok $pkg; } is_deeply $pkg->new('remove')->fix({remove => 'me', keep => 'me'}), {keep => 'me'}, "remove field at root"; is_deeply $pkg->new('many.*.remove')->fix( { many => [{remove => 'me', keep => 'me'}, {remove => 'me', keep => 'me'}] } ), {many => [{keep => 'me'}, {keep => 'me'}]}, "remove nested field with wildcard"; done_testing 3; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-add_to_store.t���������������������������������������������������������000644 �000765 �000024 �00000000652 13341726377 021537� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::add_to_store'; use_ok $pkg; } Catmandu->config->{store}{test} = {package => "Hash",}; my $bag = Catmandu->store('test')->bag('test'); my $rec = {add => {_id => 1}}; $pkg->new('add', 'test', '-bag', 'test')->fix($rec); is_deeply $rec->{add}, $bag->get(1); done_testing 2; ��������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Parser.t���������������������������������������������������������������000644 �000765 �000024 �00000016733 13341726377 020334� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use lib 't/lib'; use Test::More; use Test::Deep; use Test::Exception; use Catmandu::Fix; use Catmandu::Fix::upcase; use Catmandu::Fix::downcase; use Catmandu::Fix::reject; use Catmandu::Fix::Condition::exists; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Parser'; use_ok $pkg; } my $parser = $pkg->new; isa_ok $parser, $pkg; can_ok $parser, 'parse'; lives_ok {$parser->parse("")} 'parse empty string'; lives_ok {$parser->parse(" \n ")} 'parse whitespace only string'; dies_ok {$parser->parse("if exists(foo)")} 'die on if without end'; dies_ok {$parser->parse("if end")} 'die on if without condition'; dies_ok {$parser->parse("unless exists(foo)")} 'die on unless without end'; dies_ok {$parser->parse("unless end")} 'die on unless without condition'; dies_ok {$parser->parse("foo()")} 'die on unknown fix'; my $foo_exists = Catmandu::Fix::Condition::exists->new("foo"); my $bar_exists = Catmandu::Fix::Condition::exists->new("bar"); my $baz_exists = Catmandu::Fix::Condition::exists->new("baz"); my $upcase_foo = Catmandu::Fix::upcase->new("foo"); my $downcase_foo = Catmandu::Fix::downcase->new("foo"); my $upcase_bar = Catmandu::Fix::upcase->new("bar"); my $downcase_bar = Catmandu::Fix::downcase->new("bar"); my $reject = Catmandu::Fix::reject->new; cmp_deeply $parser->parse(""), []; cmp_deeply $parser->parse( "# a comment # another comment # downcase(foo) # yet another comment" ), [$downcase_foo,], "comments"; cmp_deeply $parser->parse("upcase(foo)"), [$upcase_foo,]; cmp_deeply $parser->parse(q|upcase('foo')|), [$upcase_foo,]; cmp_deeply $parser->parse(q|upcase("foo")|), [$upcase_foo,]; cmp_deeply $parser->parse("upcase(foo) downcase(foo)"), [$upcase_foo, $downcase_foo,]; cmp_deeply $parser->parse("upcase(foo) downcase(foo)"), $parser->parse("upcase(foo); downcase(foo)"); cmp_deeply $parser->parse("upcase(foo) downcase(foo)"), $parser->parse("upcase(foo); downcase(foo);"); cmp_deeply $parser->parse("if exists(foo) end"), [$foo_exists,]; $foo_exists->pass_fixes([$downcase_foo]); $foo_exists->fail_fixes([]); cmp_deeply $parser->parse("if exists(foo) downcase(foo) end"), [$foo_exists,]; $foo_exists->pass_fixes([$downcase_foo]); $foo_exists->fail_fixes([$upcase_foo]); cmp_deeply $parser->parse( "if exists(foo) downcase(foo) else upcase(foo) end"), [$foo_exists,]; $foo_exists->pass_fixes([]); $foo_exists->fail_fixes([$downcase_foo]); cmp_deeply $parser->parse("unless exists(foo) downcase(foo) end"), [$foo_exists,]; $foo_exists->pass_fixes([$bar_exists, $upcase_foo]); $foo_exists->fail_fixes([]); $bar_exists->pass_fixes([$downcase_foo]); $bar_exists->fail_fixes([]); cmp_deeply $parser->parse( "if exists(foo) if exists(bar) downcase(foo) end upcase(foo) end"), [$foo_exists,]; # with optional deprecated separators cmp_deeply $parser->parse( "if exists(foo); if exists(bar); downcase(foo); end; upcase(foo); end;"), [$foo_exists,]; # if ... elsif $bar_exists->pass_fixes([$upcase_foo]); $bar_exists->fail_fixes([]); $foo_exists->pass_fixes([$downcase_foo]); $foo_exists->fail_fixes([$bar_exists]); cmp_deeply $parser->parse( "if exists(foo) downcase(foo) elsif exists(bar) upcase(foo) end"), [$foo_exists,]; # if ... elsif ... else $bar_exists->pass_fixes([$upcase_foo]); $bar_exists->fail_fixes([$upcase_bar]); $foo_exists->pass_fixes([$downcase_foo]); $foo_exists->fail_fixes([$bar_exists]); cmp_deeply $parser->parse( "if exists(foo) downcase(foo) elsif exists(bar) upcase(foo) else upcase(bar) end" ), [$foo_exists,]; # if ... elsif ... elsif ... else $baz_exists->pass_fixes([$upcase_bar]); $baz_exists->fail_fixes([$downcase_bar]); $bar_exists->pass_fixes([$upcase_foo]); $bar_exists->fail_fixes([$baz_exists]); $foo_exists->pass_fixes([$downcase_foo]); $foo_exists->fail_fixes([$bar_exists]); cmp_deeply $parser->parse( "if exists(foo) downcase(foo) elsif exists(bar) upcase(foo) elsif exists(baz) upcase(bar) else downcase(bar) end" ), [$foo_exists,]; # and, or $foo_exists->pass_fixes([$downcase_foo]); $foo_exists->fail_fixes([]); cmp_deeply $parser->parse("exists(foo) and downcase(foo)"), [$foo_exists,]; cmp_deeply $parser->parse("exists(foo) && downcase(foo)"), [$foo_exists,]; cmp_deeply $parser->parse("exists(foo) && downcase(foo);"), [$foo_exists,]; $foo_exists->pass_fixes([]); $foo_exists->fail_fixes([$downcase_bar]); cmp_deeply $parser->parse("exists(foo) or downcase(bar)"), [$foo_exists,]; cmp_deeply $parser->parse("exists(foo) || downcase(bar)"), [$foo_exists,]; $foo_exists->pass_fixes([$upcase_foo]); $foo_exists->fail_fixes([]); $bar_exists->pass_fixes([$upcase_bar]); $bar_exists->fail_fixes([]); cmp_deeply $parser->parse( "exists(foo) && upcase(foo) exists(bar) && upcase(bar)"), [$foo_exists, $bar_exists,]; cmp_deeply $parser->parse( "exists(foo) && upcase(foo); exists(bar) && upcase(bar)"), [$foo_exists, $bar_exists,]; dies_ok {$parser->parse("exists(foo) || if exists(foo) downcase(foo) end")} 'die on bool without fix'; dies_ok {$parser->parse("|| downcase(foo)")} 'die on bool without condition'; # select, reject $foo_exists->pass_fixes([]); $foo_exists->fail_fixes([$reject]); cmp_deeply $parser->parse("select exists(foo)"), [$foo_exists,]; $foo_exists->pass_fixes([$reject]); $foo_exists->fail_fixes([]); cmp_deeply $parser->parse("reject exists(foo)"), [$foo_exists,]; throws_ok { $parser->parse('unknown_fix()'); } 'Catmandu::NoSuchFixPackage', 'using unknown fixes throws NoSuchFixPackage'; throws_ok { $parser->parse('copy_field()'); } 'Catmandu::BadFixArg', 'missing or bad fix arguments throw BadFixArg'; throws_ok { $parser->parse('syntax_error(((((('); } 'Catmandu::FixParseError', 'syntax errors throw FixParseError'; # use { lives_ok {$parser->parse(q|use(t.fix)|)}; lives_ok { $parser->parse(q|use(t.fix) t.fix.test() if t.fix.is_42(n) end|) }; lives_ok { $parser->parse(q|use(t.fix, as: my) if my.is_42(n) my.test() end|) }; throws_ok {$parser->parse(q|if exists(n) use(t.fix) end t.fix.test()|)} 'Catmandu::FixParseError'; throws_ok {$parser->parse(q|if exists(n) use(t.fix) end t.fix.test()|)} qr/Unknown namespace/; } # block { lives_ok {$parser->parse(q|block end|)}; throws_ok {$parser->parse(q|block upcase(foo)|)} 'Catmandu::FixParseError'; cmp_deeply $parser->parse( "block upcase(foo) end block downcase(foo) end"), [$upcase_foo, $downcase_foo]; lives_ok { $parser->parse(q|block use(t.fix, as: my) my.test() end|) }; throws_ok {$parser->parse(q|block use(t.fix, as: my) end) my.test()|)} 'Catmandu::FixParseError'; } # bare strings { my $fixes = $parser->parse(q|add_field(022, 022)|); is $fixes->[0]->path, '022'; } # string and regex escapes { my $fixes; lives_ok { $parser->parse(q|set_field(test, "\"")|); }; dies_ok { $parser->parse(q|set_field(test, "\\\\"")|); }; lives_ok { $parser->parse(q|set_field(test, '\'')|); }; dies_ok { $parser->parse(q|set_field(test, '\\\\'')|); }; lives_ok { $parser->parse(q|replace_all(test, '\+(\d{2}):(\d{2})', '+$1$2')|); }; lives_ok { $fixes = $parser->parse( q|replace_all(test, '\+(\d{2}):(\d{2})', '+$1$2')|); }; is $fixes->[0]->search, '\+(\d{2}):(\d{2})'; $fixes = $parser->parse(q|replace_all(test, "\+(\d{2}):(\d{2})", "+$1$2")|); is $fixes->[0]->search, '\+(\d{2}):(\d{2})'; is $fixes->[0]->replace, '+$1$2'; } done_testing; �������������������������������������Catmandu-1.10/t/Catmandu-Importer-Mock.t������������������������������������������������������������000644 �000765 �000024 �00000000554 13341726377 021036� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::Mock'; use_ok $pkg; } require_ok $pkg; my $data = [{n => 0}, {n => 1}, {n => 2},]; my $importer = $pkg->new(size => 3); isa_ok $importer, $pkg; is_deeply $importer->to_array, $data, "Data structure ok"; done_testing 4; ����������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Validator-Mock.t�����������������������������������������������������������000644 �000765 �000024 �00000001062 13341726377 021155� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Validator::Mock'; use_ok $pkg; } require_ok $pkg; my $rec = {}; my $v = Catmandu::Validator::Mock->new; ok $v->is_valid($rec), 'all items valid by default'; $v->reject(1); ok !$v->is_valid($rec), 'all items invalid if reject is true'; is_deeply $v->last_errors, ['item is invalid'], 'default error message'; $v->message('Oops!'); $v->is_valid($rec); is_deeply $v->last_errors, ['Oops!'], 'custom error message'; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-help.t�����������������������������������������������������������������000644 �000765 �000024 �00000001067 13341726377 017777� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::help'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my @arguments = ( [qw(help)], [qw(importer JSON)], [qw(exporter JSON)], [qw(store Hash)], [qw(fix set_field)], [qw(bind maybe)], [qw(condition exists)], ); foreach my $args (@arguments) { my $result = test_app(qq|Catmandu::CLI| => $args); is $result->error, undef, join ' ', qw(catmandu help), @$args; } done_testing 2 + @arguments; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-collapse.t�������������������������������������������������������������000644 �000765 �000024 �00000000766 13341726377 020701� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::collapse'; use_ok $pkg; } is_deeply $pkg->new()->fix({names => [{name => 'joe'}, {name => 'rick'}]}), {'names.0.name' => "joe", 'names.1.name' => "rick"}, "data is flattened"; is_deeply $pkg->new('sep', '-') ->fix({names => [{name => 'joe'}, {name => 'rick'}]}), {'names-0-name' => "joe", 'names-1-name' => "rick"}, "data is flattened"; done_testing 3; ����������Catmandu-1.10/t/Catmandu-Importer-Multi.t�����������������������������������������������������������000644 �000765 �000024 �00000000764 13341726377 021242� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::Mock; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::Multi'; use_ok $pkg; } require_ok $pkg; my $data = [{n => 0}, {n => 1}, {n => 2},]; my $importer = $pkg->new( importers => [ Catmandu::Importer::Mock->new(size => 3), Catmandu::Importer::Mock->new(size => 3), ] ); isa_ok $importer, $pkg; is_deeply $importer->to_array, [@$data, @$data]; done_testing; ������������Catmandu-1.10/t/Catmandu-Fix-flatten.t��������������������������������������������������������������000644 �000765 �000024 �00000000420 13341726377 020517� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::flatten'; use_ok $pkg; } is_deeply $pkg->new('deep')->fix({deep => [1, [2, 3], [[4, 5], 6], 7]}), {deep => [1 .. 7]}; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-IdGenerator-UUID.t���������������������������������������������������������000644 �000765 �000024 �00000000560 13341726377 021312� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::IdGenerator::UUID'; use_ok $pkg; } require_ok $pkg; my $id_generator = $pkg->new; isa_ok $id_generator, $pkg; ok $id_generator->does("Catmandu::IdGenerator"), "An object of class '$pkg' does 'Catmandu::Id::Generator'"; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/small.json��������������������������������������������������������������������������000644 �000765 �000024 �00000000141 13341726377 016422� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������{"hello":"ვეპხის ტყაოსანი შოთა რუსთაველი"} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-YAML.t������������������������������������������������������������000644 �000765 �000024 �00000001174 13341726377 020715� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use YAML::XS (); BEGIN {use_ok 'Catmandu::Exporter::YAML'} require_ok 'Catmandu::Exporter::YAML'; my $data = [{'a' => 'moose'}, {'a' => 'pony'}, {'a' => 'shrimp'}]; my $file = ""; my $exporter = Catmandu::Exporter::YAML->new(file => \$file); isa_ok $exporter, 'Catmandu::Exporter::YAML'; $exporter->add($_) for @$data; $exporter->commit; is_deeply $data, [YAML::XS::Load($file)]; is $exporter->count, 3, 'Count ok'; like $file, qr/^---(.+)\.\.\.$/sm, 'YAML doc'; is scalar @{[split /^\.\.\./m, $file]}, 4, 'YAML with --- and ...'; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/non_ascii.yaml����������������������������������������������������������������������000644 �000765 �000024 �00001175621 13341726377 017266� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- _id: 000290adb8fba464410b5466d462565d bnf: '11892331' dnb: '118950363' key: BlavierAndré(1922-2001) lc: n83068143 merge: id: 000290adb8fba464410b5466d462565d source: viaf type: document nkc: jn20000700183 nlilat: '000453847' ptbnp: '521529' term: Blavier, André (1922-2001) version: 2013-07-01T14:07:50Z viafid: '84032513' --- _id: 0008dd5e2e29146396bdc33a5507d8db key: CremersJohannesFranciscusNicolai͏̈1794-1869 merge: id: 0008dd5e2e29146396bdc33a5507d8db source: viaf type: document term: Cremers, Johannes Franciscus Nicolai͏̈, 1794-1869 version: 2013-07-01T14:07:50Z viafid: '286014815' --- _id: 000b589c85becfc475adc24796a724eb key: HuldénLars1926-|PoemsEnglish&SwedishSelections lc: n91015146 merge: id: 000b589c85becfc475adc24796a724eb source: viaf type: document term: Huldén, Lars, 1926- | Poems. English & Swedish. Selections version: 2013-07-01T14:07:50Z viafid: '175459792' --- _id: 000df8d92f34f05cc4160fa29becca75 dnb: '117604941' key: Birch-HirschfeldFélixVictor1842-1899 merge: id: 000df8d92f34f05cc4160fa29becca75 source: viaf type: document nkc: nlk20000079951 term: Birch-Hirschfeld, Félix Victor, 1842-1899 version: 2013-07-01T14:07:50Z viafid: '64788748' --- _id: 0013b61a7d0596e2b1aa673a4a916e79 bnf: '12782600' dnb: '133566072' key: PerkovićLuka1900-1948 lc: no94032408 merge: id: 0013b61a7d0596e2b1aa673a4a916e79 source: viaf type: document nkc: js2007409740 term: Perković, Luka, 1900-1948 version: 2013-07-01T14:07:50Z viafid: '50419725' --- _id: 00165496a9ff6e91a2ab41120d2f6ee3 bav: adv10190502 bnf: '11896108' dnb: '116488808' key: CharavayÉtienne1848-1899 lc: n50036362 merge: id: 00165496a9ff6e91a2ab41120d2f6ee3 source: viaf type: document nlilat: '000408740' ptbnp: '31707' term: Charavay, Étienne, 1848-1899 version: 2013-07-01T14:07:50Z viafid: '44296659' --- _id: 00178c20ba1320201f9e073b80997f41 dnb: '136566871' key: GüntherAlfred1885-1969 merge: id: 00178c20ba1320201f9e073b80997f41 source: viaf type: document term: Günther, Alfred 1885-1969 version: 2013-07-01T14:07:50Z viafid: '80889375' --- _id: 001e040384826d3da680b19cd354a0d9 bav: adv11138955 bnf: '11997069' dnb: '187052409' key: RondetLaurent-Étienne1717-1785 lc: nr97032882 merge: id: 001e040384826d3da680b19cd354a0d9 source: viaf type: document nkc: xx0120410 nlilat: '000112915' ptbnp: '110413' term: Rondet, Laurent-Étienne, 1717-1785 version: 2013-07-01T14:07:50Z viafid: '27074636' --- _id: 001e0fff1b755a9215b723dca2bb1ee6 bav: adv10218806 bne: xx1723390 bnf: '12683851' dnb: '121829855' key: HerczegFrançois1863-1954 lc: n90701048 merge: id: 001e0fff1b755a9215b723dca2bb1ee6 source: viaf type: document nkc: jn20011018054 nlilat: '000062293' ptbnp: '196118' selibr: '242495' term: Herczeg, François, 1863-1954 version: 2013-07-01T14:07:50Z viafid: '55013830' --- _id: 00219ae462575e719052d408162e98e0 bnf: '13200607' dnb: '102129029' key: BédarrideJassuda(1804-1882) lc: n2001080239 merge: id: 00219ae462575e719052d408162e98e0 source: viaf type: document nlilat: '000542886' term: Bédarride, Jassuda (1804-1882) version: 2013-07-01T14:07:50Z viafid: '51833963' --- _id: 002cf6accb75882d1ed22f5452d8f259 bnf: '12870138' dnb: '102046670' key: BonnefoyGeorges-Frédéric1912-1940 merge: id: 002cf6accb75882d1ed22f5452d8f259 source: viaf type: document ptbnp: '281726' term: Bonnefoy, Georges-Frédéric 1912-1940 version: 2013-07-01T14:07:50Z viafid: '7766341' --- _id: 002dea50b3f266abac7ec30d98798475 dnb: '116299711' key: Boutron-CharlardAntoineFrançois1796-1878 lc: n2001066126 merge: id: 002dea50b3f266abac7ec30d98798475 source: viaf type: document term: Boutron-Charlard, Antoine François, 1796-1878 version: 2013-07-01T14:07:50Z viafid: '30284368' --- _id: 002eba15c808652b79874eeb7e17b988 bnf: '12261878' dnb: '138813000' key: TivārīBholānātha1923-1989 lc: n81131613 merge: id: 002eba15c808652b79874eeb7e17b988 source: viaf type: document nla: '000035934276' term: Tivārī, Bholānātha, 1923-1989 version: 2013-07-01T14:07:50Z viafid: '95327374' --- _id: 002fae3d46c56bc32074b9884a50d774 egaxa: vtls001520916 key: IbnḤamzahal-ḤusaynīMuḥammadibnʻAlī1315or16-1363or4 lc: nr94011509 merge: id: 002fae3d46c56bc32074b9884a50d774 source: viaf type: document term: Ibn Ḥamzah al-Ḥusaynī, Muḥammad ibn ʻAlī, 1315 or 16-1363 or 4 version: 2013-07-01T14:07:50Z viafid: '90074758' --- _id: 003337252569cd6250932d0dbaf375f4 bav: adv10013430 bnf: '14617737' dnb: '100080154' key: CéspedesyMenesesGonzalode(1585?-1638) lc: n79082325 merge: id: 003337252569cd6250932d0dbaf375f4 source: viaf type: document nla: '000035685799' nlilat: '000421700' ptbnp: '143893' term: Céspedes y Meneses, Gonzalo de (1585?-1638) version: 2013-07-01T14:07:50Z viafid: '61801401' --- _id: 003d3db2d4780e54cf31c41cd18392c2 dnb: '172818028' key: PenardEugène1855-1954 lc: n83198913 merge: id: 003d3db2d4780e54cf31c41cd18392c2 source: viaf type: document term: Penard, Eugène, 1855-1954 version: 2013-07-01T14:07:50Z viafid: '8769267' --- _id: 003f4cb46c6613d9de006b32c5f6f6b9 bne: xx1454220 bnf: '11926771' dnb: '118623249' key: TolstajaSofʹjaAndreevna1844-1919 lc: n80015575 merge: id: 003f4cb46c6613d9de006b32c5f6f6b9 source: viaf type: document nkc: js20020925104 nla: '000035552200' nlicyr: '000157016' nlilat: '000258315' selibr: '319364' term: Tolstaja, Sofʹja Andreevna, 1844-1919 version: 2013-07-01T14:07:50Z viafid: '95319193' --- _id: 004178271c2df5a7df2de345c8113b50 bav: adv11188069 bnf: '11927355' dnb: '118803530' key: D'UrféHonoré1567-1625 lc: n50045789 merge: id: 004178271c2df5a7df2de345c8113b50 source: viaf type: document nkc: kup19970000104861 nla: '000035573949' nlilat: '000380043' selibr: '265671' swnl: vtls002461341 term: D'Urfé, Honoré, 1567-1625 version: 2013-07-01T14:07:50Z viafid: '41847426' --- _id: 004cac7bf9a0794bfeb7ed5be58dcf1b bnf: '11913061' dnb: '123607248' key: LindonJérôme1925-2001 lc: no2003108373 merge: id: 004cac7bf9a0794bfeb7ed5be58dcf1b source: viaf type: document nlilat: '000084776' term: Lindon, Jérôme, 1925-2001 version: 2013-07-01T14:07:50Z viafid: '925444' --- _id: 0053de622eea0100fb2eb3f4a6bdb534 bav: adv10295539 dnb: '119068125' key: DuJonFrançois1589-1677 lc: n85029600 merge: id: 0053de622eea0100fb2eb3f4a6bdb534 source: viaf type: document nla: '000035130172' nlilat: '000072604' selibr: '205901' term: Du Jon, François, 1589-1677 version: 2013-07-01T14:07:50Z viafid: '64809369' --- _id: 00569dab85da747fcdb418300e7c569b dnb: '953369633' key: SchubigerJürg1936-|MutterVaterichundsie merge: id: 00569dab85da747fcdb418300e7c569b source: viaf type: document term: Schubiger, Jürg 1936- | Mutter, Vater, ich und sie version: 2013-07-01T14:07:50Z viafid: '201883509' --- _id: 0058bd99f68ea65204778ed323dc149b bav: adv10137756 dnb: '186043759' jpg: '500029199' key: BriseuxCharlesÉtienned1754 lc: n00007483 merge: id: 0058bd99f68ea65204778ed323dc149b source: viaf type: document nlilat: '000540445' term: Briseux, Charles Étienne, d. 1754 version: 2013-07-01T14:07:50Z viafid: '88831859' --- _id: 0058fa8d00edab625ff22a3659d6f7ac dnb: '118789783' key: PašićNikola1845-1926 lc: nb2008015928 merge: id: 0058fa8d00edab625ff22a3659d6f7ac source: viaf type: document nkc: xx0057289 nlicyr: '000155017' term: Pašić, Nikola, 1845-1926 version: 2013-07-01T14:07:50Z viafid: '79400033' --- _id: 006dd4724ee4b28e0c4efebc02d202e4 bav: adv10981672 bnf: '12515550' dnb: '120359472' key: LaCrozeMaturinVeyssière1661-1739 lc: n85050076 merge: id: 006dd4724ee4b28e0c4efebc02d202e4 source: viaf type: document nlilat: '000468062' ptbnp: '93831' selibr: '314208' term: La Croze, Maturin Veyssière, 1661-1739 version: 2013-07-01T14:07:50Z viafid: '95298985' --- _id: 007076e7bb91b1fd5bfa57be6c8ce128 bav: adv10013850 bne: xx1028057 bnf: '11885765' dnb: 11866381x key: BlascoIbáñezVicente1867-1928 lc: n79046157 merge: id: 007076e7bb91b1fd5bfa57be6c8ce128 source: viaf type: document nkc: jn19990210116 nla: '000035019329' nlilat: '000419198' ptbnp: '14615' selibr: '41428' term: Blasco Ibáñez, Vicente, 1867-1928 version: 2013-07-01T14:07:50Z viafid: '73848096' --- _id: 007abb840ab1d99e404905d46e2fe0ab dnb: '118659200' jpg: '500009404' key: BöhmG1920-(Gottfried) lc: n83200201 merge: id: 007abb840ab1d99e404905d46e2fe0ab source: viaf type: document nkc: xx0148421 nla: '000035629647' term: Böhm, G., 1920-, (Gottfried) version: 2013-07-01T14:07:50Z viafid: '92946938' --- _id: 007c84c975d7d7d8b0dbd39f4b5677f3 bnf: '12429899' dnb: '117129577' key: ImbeauxÉdouard1861-1943 merge: id: 007c84c975d7d7d8b0dbd39f4b5677f3 source: viaf type: document term: Imbeaux, Édouard 1861-1943 version: 2013-07-01T14:07:50Z viafid: '3240370' --- _id: 0085551a4373ccc974a09e93636014a5 bnf: '12121627' dnb: '123971926' key: BockJean-Nicolas-Étienne1747-1809baronde lc: nr93015941 merge: id: 0085551a4373ccc974a09e93636014a5 source: viaf type: document nla: '000035658443' term: Bock, Jean-Nicolas-Étienne, 1747-1809, baron de version: 2013-07-01T14:07:50Z viafid: '14803247' --- _id: 008af10b9f92f2721de64fafbe9a5393 bav: adv10014111 dnb: '100523978' key: MēniatēsĒlias1669-1714 lc: no2004087174 merge: id: 008af10b9f92f2721de64fafbe9a5393 source: viaf type: document nla: '000035903858' term: Mēniatēs, Ēlias, 1669-1714 version: 2013-07-01T14:07:50Z viafid: '5276181' --- _id: 0098590bd207438e215ff270570076c9 bav: adv10170091 bne: xx1155596 bnf: '12793687' dnb: '124822061' key: BühlerCurtF(1905-1985) lc: n84234191 merge: id: 0098590bd207438e215ff270570076c9 source: viaf type: document nkc: xx0156884 nla: '000035023507' nlilat: '000465632' term: Bühler, Curt F. (1905-1985) version: 2013-07-01T14:07:50Z viafid: '108162446' --- _id: 009c66983e73a1022216d8e9da92c627 dnb: '172481813' key: ArctMichał1840-1916 lc: nr95017051 merge: id: 009c66983e73a1022216d8e9da92c627 source: viaf type: document nkc: kup20030000002549 nlilat: '000529199' term: Arct, Michał, 1840-1916 version: 2013-07-01T14:07:50Z viafid: '84500136' --- _id: 009ea10291e96a7930d546f6b9fc04f0 key: MoriKōichi1928-|ZusetsuNihonnokodai lc: n88524930 merge: id: 009ea10291e96a7930d546f6b9fc04f0 source: viaf type: document term: Mori, Kōichi, 1928- | Zusetsu Nihon no kodai version: 2013-07-01T14:07:50Z viafid: '185149790' --- _id: 00ba74c3ce9aa261d62b4a8e0cfc7515 bav: adv11094436 bnf: '11920025' dnb: '118594915' key: PlatterFélix(1536-1614) lc: n50054102 merge: id: 00ba74c3ce9aa261d62b4a8e0cfc7515 source: viaf type: document nkc: jn20000720231 nlilat: '000412483' ptbnp: '1383987' selibr: '287722' swnl: vtls003990685 term: Platter, Félix (1536-1614) version: 2013-07-01T14:07:50Z viafid: '47796696' --- _id: 00bbd4c9fcfa53d2c5d652440936e16c bnf: '10114286' dnb: '119054116' key: DeBockEugène1889-1981 lc: n84091160 merge: id: 00bbd4c9fcfa53d2c5d652440936e16c source: viaf type: document term: De Bock, Eugène, 1889-1981 version: 2013-07-01T14:07:50Z viafid: '57416427' --- _id: 00c55b18ce4e4072116a15995957804d dnb: '118887238' key: AdarjukovVladimirJakovlevič1863-1932 merge: id: 00c55b18ce4e4072116a15995957804d source: viaf type: document nkc: jx20120807001 term: Adarjukov, Vladimir Jakovlevič, 1863-1932 version: 2013-07-01T14:07:50Z viafid: '234424631' --- _id: 00c6e2a7cf333315ce06e7ce24c29225 bnf: '13624301' dnb: '103250182' key: KaddariMenaḥemZevi1925-2011 lc: n82222169 merge: id: 00c6e2a7cf333315ce06e7ce24c29225 source: viaf type: document nkc: uk2006335026 nla: '000035314797' nliheb: '000211495' nlilat: '000072890' term: Kaddari, Menaḥem Zevi 1925-2011 version: 2013-07-01T14:07:50Z viafid: '5109006' --- _id: 00c8cb72ddc81363bd204992ae67f647 key: JoasHans1948-|PraktischeIntersubjektivitätEnglish lc: n85055009 merge: id: 00c8cb72ddc81363bd204992ae67f647 source: viaf type: document term: Joas, Hans, 1948- | Praktische Intersubjektivität. English version: 2013-07-01T14:07:50Z viafid: '174617175' --- _id: 00c8f93e5374df88a55f5359b750ef24 bnf: '11996192' dnb: '129410578' key: MasséPierre1898-1987 lc: n82131779 merge: id: 00c8f93e5374df88a55f5359b750ef24 source: viaf type: document nla: '000035333379' nlilat: '000447735' selibr: '337013' term: Massé, Pierre, 1898-1987 version: 2013-07-01T14:07:50Z viafid: '92140116' --- _id: 00cc5e671df329695a81e8fb1ff03215 dnb: '110393090' key: HögfeldtErik1924-1996 lc: n86841597 merge: id: 00cc5e671df329695a81e8fb1ff03215 source: viaf type: document selibr: '202403' term: Högfeldt, Erik, 1924-1996 version: 2013-07-01T14:07:50Z viafid: '109538232' --- _id: 00e1747adc8a0d1c67afbd07e80c7289 key: ArzelièsHenri1913-|CinématiquerelativisteEnglish lc: n83828216 merge: id: 00e1747adc8a0d1c67afbd07e80c7289 source: viaf type: document term: Arzeliès, Henri, 1913- | Cinématique relativiste. English version: 2013-07-01T14:07:50Z viafid: '181460192' --- _id: 00e5b4b32f9690192b7a4a20d8c61dd0 bav: adv11553545 bne: xx930503 bnf: '12176122' dnb: '120523701' key: GómezValderramaPedro1923-1992 lc: n80129074 merge: id: 00e5b4b32f9690192b7a4a20d8c61dd0 source: viaf type: document nkc: jx20060503002 ptbnp: '167386' term: Gómez Valderrama, Pedro, 1923-1992 version: 2013-07-01T14:07:50Z viafid: '9890240' --- _id: 00f6741c301df97fb2b480db98f71df1 bnf: '15365095' key: SchiötzOskarEmil1846-19? merge: id: 00f6741c301df97fb2b480db98f71df1 source: viaf type: document term: Schiötz, Oskar Emil 1846-19..? version: 2013-07-01T14:07:50Z viafid: '15074618' --- _id: 00ff3f71c3e341af27d2136061ce4589 bnf: '13005068' dnb: '122192273' key: DuprédeSaint-MaurNicolas-François1695-1774 lc: n85246249 merge: id: 00ff3f71c3e341af27d2136061ce4589 source: viaf type: document nla: '000049682934' nlilat: '000473385' term: Dupré de Saint-Maur, Nicolas-François, 1695-1774 version: 2013-07-01T14:07:50Z viafid: '49357530' --- _id: 0102f8fc6cdd5127baa7053b97563ea6 key: AguilarCamínHéctor1946-|Selections2007 lc: no2009155941 merge: id: 0102f8fc6cdd5127baa7053b97563ea6 source: viaf type: document term: Aguilar Camín, Héctor, 1946- | Selections. 2007 version: 2013-07-01T14:07:50Z viafid: '177703214' --- _id: 010334aa33d19f5d9407db5de374dcb6 bnf: '13324011' dnb: '129834661' key: GillotdeSainctongeLouise-Geneviève1650-1718 lc: nr2001031968 merge: id: 010334aa33d19f5d9407db5de374dcb6 source: viaf type: document nkc: jo2004214984 ptbnp: '950339' term: Gillot de Sainctonge, Louise-Geneviève, 1650-1718 version: 2013-07-01T14:07:50Z viafid: '95333931' --- _id: 010d9ed639f425180e7328befd781d11 bnf: '12475023' dnb: '118949322' key: DygasińskiAdolf(1839-1902) lc: n82018247 merge: id: 010d9ed639f425180e7328befd781d11 source: viaf type: document nlilat: '000442420' term: Dygasiński, Adolf (1839-1902) version: 2013-07-01T14:07:50Z viafid: '8187131' --- _id: 010fd53ed0dc23e0fdad640b23d14ee0 bav: adv10220834 bne: xx965506 bnf: '16194028' dnb: '120228688' key: GarcíaVilladaZacarías1879-1936 lc: n79061275 merge: id: 010fd53ed0dc23e0fdad640b23d14ee0 source: viaf type: document nla: '000035862234' nlilat: '000420300' ptbnp: '88786' term: García Villada, Zacarías, 1879-1936 version: 2013-07-01T14:07:50Z viafid: '54973517' --- _id: 01130c0c62fdf6c28a74dfb0edc3f776 bnf: '11906034' dnb: '128603585' key: GroueffStéphane1922-2006 lc: n50031027 merge: id: 01130c0c62fdf6c28a74dfb0edc3f776 source: viaf type: document nkc: xx0123321 nlilat: '000407419' ptbnp: '412507' term: Groueff, Stéphane, 1922-2006 version: 2013-07-01T14:07:50Z viafid: '111740137' --- _id: 0116f800e73598ce4e24cdaebf3a74e1 bnf: '11919341' dnb: '115635572' key: PesselierCharles-Étienne1712-1763 lc: no91006000 merge: id: 0116f800e73598ce4e24cdaebf3a74e1 source: viaf type: document nla: '000036591984' term: Pesselier, Charles-Étienne, 1712-1763 version: 2013-07-01T14:07:50Z viafid: '12313544' --- _id: 0137d710d4034a3d74a24a34d17546df bav: adv10234074 bnf: '12524422' dnb: 17205060x key: DuranddeMaillanePièrreToussaint1729-1814 lc: n88070893 merge: id: 0137d710d4034a3d74a24a34d17546df source: viaf type: document nla: '000048864378' nlilat: '000492838' ptbnp: '96138' term: Durand de Maillane, Pièrre Toussaint, 1729-1814 version: 2013-07-01T14:07:50Z viafid: '29642211' --- _id: 0138b8ea4af09a51096be3f08d5ebfdd key: KöhlerBarbara1959-|PoemsPolishSelections lc: no2009074709 merge: id: 0138b8ea4af09a51096be3f08d5ebfdd source: viaf type: document term: Köhler, Barbara, 1959- | Poems. Polish. Selections version: 2013-07-01T14:07:50Z viafid: '184975882' --- _id: 01399bc902f25cfb19796c63674a8b1e key: DonnerJörn1933-|SverigebokenFinnish merge: id: 01399bc902f25cfb19796c63674a8b1e source: viaf type: document nla: '000035619622' term: Donner, Jörn, 1933- | Sverigeboken. Finnish version: 2013-07-01T14:07:50Z viafid: '176963320' --- _id: 013cac6edc02893f777949a2ffc6de31 key: HaleyGeorge1927-|VicenteEspinelandMarcosdeObregónSpanish lc: n95033509 merge: id: 013cac6edc02893f777949a2ffc6de31 source: viaf type: document term: Haley, George, 1927- | Vicente Espinel and Marcos de Obregón. Spanish version: 2013-07-01T14:07:50Z viafid: '183974757' --- _id: 014604935af0add6b17f4202669f016c key: PalasnedeChampeauxJulien-François1736-1795 lc: nr2004008946 merge: id: 014604935af0add6b17f4202669f016c source: viaf type: document term: Palasne de Champeaux, Julien-François, 1736-1795 version: 2013-07-01T14:07:50Z viafid: '39325406' --- _id: 0151b48dc7132c28ba92a926e29eecaa bnf: '10362029' dnb: '101631642' key: LiétardAlfred1872-1912 merge: id: 0151b48dc7132c28ba92a926e29eecaa source: viaf type: document term: Liétard, Alfred, 1872-1912 version: 2013-07-01T14:07:50Z viafid: '29523021' --- _id: 015370e084f0eb48fa5bfc0725888a54 bnf: '12167546' dnb: '103166947' key: SkiadásAristóxenosD1932-1994 lc: n86132338 merge: id: 015370e084f0eb48fa5bfc0725888a54 source: viaf type: document term: Skiadás, Aristóxenos D. 1932-1994 version: 2013-07-01T14:07:50Z viafid: '46801304' --- _id: 016d00af5a09543db20630f890b79c09 bne: xx4579605 bnf: '12020978' dnb: '118502751' key: AndersGünther1902-1992 lc: n50021760 merge: id: 016d00af5a09543db20630f890b79c09 source: viaf type: document nkc: jn19990000170 nla: '000035006238' nlilat: '000010121' term: Anders, Günther, 1902-1992 version: 2013-07-01T14:07:50Z viafid: '9859892' --- _id: 0170a05570660425ba9ee207cdda26ed bne: xx956783 bnf: '12130823' dnb: '118555197' key: IbárruriDolores1895-1989 lc: n79066727 merge: id: 0170a05570660425ba9ee207cdda26ed source: viaf type: document nkc: jn19990210294 nla: '000035828136' ptbnp: '38757' term: Ibárruri, Dolores 1895-1989 version: 2013-07-01T14:07:50Z viafid: '109366304' --- _id: 017403306a10ef9ca58ad35fb3a756fc bav: adv10989620 bnf: '12624546' dnb: '119344238' egaxa: vtls000783338 key: MāwardīʻAlīibnMuḥammad974?-1058 lc: n83162975 merge: id: 017403306a10ef9ca58ad35fb3a756fc source: viaf type: document nla: '000035551157' nliara: '000003490' nlilat: '000455598' selibr: '195610' term: Māwardī, ʻAlī ibn Muḥammad, 974?-1058 version: 2013-07-01T14:07:50Z viafid: '34578551' --- _id: 017ac3329e3f4ada5e521fe1c73e2f12 bne: xx1095217 bnf: '11900058' dnb: '118671774' key: DhôtelAndré1900-1991 lc: n50001694 merge: id: 017ac3329e3f4ada5e521fe1c73e2f12 source: viaf type: document nkc: ola2002161472 nla: '000035035366' ptbnp: '83297' selibr: '313469' term: Dhôtel, André, 1900-1991 version: 2013-07-01T14:07:50Z viafid: '109123195' --- _id: 017e34f753aad0bf826ac2e1f641cd93 bav: adv10877220 bnf: '12380380' dnb: '116860618' key: LégerLouis1843-1923 lc: n86037863 merge: id: 017e34f753aad0bf826ac2e1f641cd93 source: viaf type: document nkc: jo20000080640 nla: '000036038833' nlilat: '000252572' ptbnp: '93052' term: Léger, Louis, 1843-1923 version: 2013-07-01T14:07:50Z viafid: '7470950' --- _id: 0183f1e24cd55e5d3ccab0dbf333ee84 bnf: '15325222' dnb: 11757628x key: Guérin-MénevilleF-E1799-1874 lc: no97031324 merge: id: 0183f1e24cd55e5d3ccab0dbf333ee84 source: viaf type: document nla: '000035599649' ptbnp: '1174734' term: Guérin-Méneville, F.-E., 1799-1874 version: 2013-07-01T14:07:50Z viafid: '51823869' --- _id: 0185d13b2692e09ad66257dd7ffa6f67 key: KonwickiTadeusz(1926-)|Kronikawypadkówmiłosnych(niem) merge: id: 0185d13b2692e09ad66257dd7ffa6f67 source: viaf type: document term: Konwicki, Tadeusz (1926- ). | Kronika wypadków miłosnych (niem.) version: 2013-07-01T14:07:50Z viafid: '293258240' --- _id: 0187a9abfe13e1e0c18c946023b15fe7 bav: adv10126743 bnf: '12442988' dnb: '116081546' key: DésaugiersMarc-Antoine1772-1827 lc: n82155075 merge: id: 0187a9abfe13e1e0c18c946023b15fe7 source: viaf type: document nkc: jo2012736072 term: Désaugiers, Marc-Antoine, 1772-1827 version: 2013-07-01T14:07:50Z viafid: '2565306' --- _id: 0193fa290117df6b396336374bc83693 bav: adv12126276 bnf: '12373434' dnb: '116684135' key: HélieFaustin1799-1884 lc: no98117099 merge: id: 0193fa290117df6b396336374bc83693 source: viaf type: document nkc: mub2012720304 nlilat: '000535904' ptbnp: '134032' term: Hélie, Faustin, 1799-1884 version: 2013-07-01T14:07:50Z viafid: '51769095' --- _id: 019503e27dd6d578319ee56e9ba9e0dc dnb: '133168565' key: SudetaĐuro1903-1927 lc: n96092627 merge: id: 019503e27dd6d578319ee56e9ba9e0dc source: viaf type: document term: Sudeta, Đuro, 1903-1927 version: 2013-07-01T14:07:50Z viafid: '23321266' --- _id: 019ab896a7f10f1ea54573ff64efe160 dnb: '100300189' key: LangeFrançois1610-1684 merge: id: 019ab896a7f10f1ea54573ff64efe160 source: viaf type: document term: Lange, François, 1610-1684 version: 2013-07-01T14:07:50Z viafid: '71737590' --- _id: 019b28f85aafb8e61a637601dee9b26e dnb: '131054295' key: ŽábaZbyněk1917-1971 lc: nb2004018264 merge: id: 019b28f85aafb8e61a637601dee9b26e source: viaf type: document nkc: jk01152931 nlilat: '000548565' term: Žába, Zbyněk, 1917-1971 version: 2013-07-01T14:07:50Z viafid: '60203425' --- _id: 019e1992e07862b26ba93c93a8ced5bb bav: adv11997926 dnb: '101800479' key: SillemJéromeAlexandre1840-1912 merge: id: 019e1992e07862b26ba93c93a8ced5bb source: viaf type: document term: Sillem, Jérome Alexandre, 1840-1912 version: 2013-07-01T14:07:50Z viafid: '52066195' --- _id: 01a4e621a9a8a27f012ba0780a2e2d90 bnf: '12430836' dnb: '1028013906' key: DoyenEugène-Louis1859-1916 lc: n2006181494 merge: id: 01a4e621a9a8a27f012ba0780a2e2d90 source: viaf type: document nkc: nlk20000084680 ptbnp: '42436' term: Doyen, Eugène-Louis, 1859-1916 version: 2013-07-01T14:07:50Z viafid: '59175623' --- _id: 01b9647ae81b889b575f1f742ba27be1 key: DupuisSylviane1956-|Géométriedel'illimitéItalian&French lc: n2005027871 merge: id: 01b9647ae81b889b575f1f742ba27be1 source: viaf type: document term: Dupuis, Sylviane, 1956- | Géométrie de l'illimité. Italian & French version: 2013-07-01T14:07:50Z viafid: '182411099' --- _id: 01ba9d2c7c54c506a398e7cefc104101 bav: adv10208072 bne: xx4982218 bnf: '11997296' dnb: 10096673x key: ḲimḥiDaṿid1160-1235 lc: n83120193 merge: id: 01ba9d2c7c54c506a398e7cefc104101 source: viaf type: document nkc: zmp2012739168 nla: '000035487022' nlicyr: '000151969' nliheb: '000185046' nlilat: '000075925' selibr: '67124' term: Ḳimḥi, Daṿid 1160-1235 version: 2013-07-01T14:07:50Z viafid: '100213323' --- _id: 01c0b5d1fc65e8024030705d90e04dce bav: adv10999914 dnb: '117162442' key: MühlenbruchChristianFriedrich1785-1843 lc: n88158350 merge: id: 01c0b5d1fc65e8024030705d90e04dce source: viaf type: document term: Mühlenbruch, Christian Friedrich, 1785-1843 version: 2013-07-01T14:07:50Z viafid: '25372370' --- _id: 01c0be95ee14379060549d4c25930a51 dnb: '118685856' key: FajtlFrantišek1912-2006 lc: n81071340 merge: id: 01c0be95ee14379060549d4c25930a51 source: viaf type: document nkc: jk01030702 term: Fajtl, František, 1912-2006 version: 2013-07-01T14:07:50Z viafid: '10640038' --- _id: 01c999074161aafa0c1c1b0bf549a3a8 bav: adv10302188 bnf: '12812981' dnb: '100141242' key: GenesiosIōsēphfl912-959 lc: n79097681 merge: id: 01c999074161aafa0c1c1b0bf549a3a8 source: viaf type: document nkc: mzk2010591943 nlilat: '000052068' selibr: '188110' term: Genesios, Iōsēph, fl. 912-959 version: 2013-07-01T14:07:50Z viafid: '61674606' --- _id: 01ca0773ba48560b5446604309741f47 dnb: 14124612x key: PāṇḍeHemarājafl1653-1668 lc: no00048010 merge: id: 01ca0773ba48560b5446604309741f47 source: viaf type: document term: Pāṇḍe, Hemarāja, fl. 1653-1668 version: 2013-07-01T14:07:50Z viafid: '43843943' --- _id: 01d1a6bf1c7e030cc7657fb33e9f435a dnb: '132784351' key: MückenhausenEduard1907-2005 merge: id: 01d1a6bf1c7e030cc7657fb33e9f435a source: viaf type: document term: Mückenhausen, Eduard 1907-2005 version: 2013-07-01T14:07:50Z viafid: '38088553' --- _id: 01d5eb572db333f314833e64d543746d dnb: '107338521' key: SchütrumpfRudolf1909-1986 lc: nr90014039 merge: id: 01d5eb572db333f314833e64d543746d source: viaf type: document term: Schütrumpf, Rudolf 1909-1986 version: 2013-07-01T14:07:50Z viafid: '295184373' --- _id: 01db9063aadeeba96c253a2945be425a bnf: '16235605' dnb: '128958499' key: RulfJiří1947-2007 lc: n94021539 merge: id: 01db9063aadeeba96c253a2945be425a source: viaf type: document nkc: jn19990209730 term: Rulf, Jiří, 1947-2007 version: 2013-07-01T14:07:50Z viafid: '5998335' --- _id: 01ea9bcb6988461fb0fc1dfdfc0c54fc bav: adv11306465 bnf: '12173399' dnb: '128367512' key: TilenusDanie͏̈l1563-1633 lc: no88000851 merge: id: 01ea9bcb6988461fb0fc1dfdfc0c54fc source: viaf type: document nlilat: '000514751' selibr: '277129' term: Tilenus, Danie͏̈l, 1563-1633 version: 2013-07-01T14:07:50Z viafid: '41881844' --- _id: 01efe43dda330b454b026f1522af5888 bnf: '12134625' dnb: '119068958' key: DomjanićDragutin1875-1933 lc: n87125111 merge: id: 01efe43dda330b454b026f1522af5888 source: viaf type: document nkc: js2007382460 term: Domjanić, Dragutin, 1875-1933 version: 2013-07-01T14:07:50Z viafid: '13109569' --- _id: 01f0a8973b22b75443dc0fd16727d9a9 bav: adv10185646 bnf: '13482665' dnb: '123479274' key: PetròcchiPolicarpo1852-1902 lc: n93118836 merge: id: 01f0a8973b22b75443dc0fd16727d9a9 source: viaf type: document nkc: xx0003720 nla: '000035075467' nlilat: '000510480' selibr: '281630' term: Petròcchi, Policarpo 1852-1902 version: 2013-07-01T14:07:50Z viafid: '11882482' --- _id: 01f3406f114f535167ab44e24f764ee8 dnb: '133088588' key: KöhlerJochen(1944-2007) lc: n80038798 merge: id: 01f3406f114f535167ab44e24f764ee8 source: viaf type: document nlilat: '000286884' term: Köhler, Jochen (1944-2007) version: 2013-07-01T14:07:50Z viafid: '3652649' --- _id: 01f6f82561aa134233d13eb97350f21e dnb: '118829181' key: ArtigasJoséGervasio1764-1850 lc: n50001870 merge: id: 01f6f82561aa134233d13eb97350f21e source: viaf type: document nkc: pna2006322488 nla: '000035094111' nlilat: '000011996' term: Artigas, José Gervasio, 1764-1850 version: 2013-07-01T14:07:50Z viafid: '64804413' --- _id: 0200082478ad4c65a70665600ccb4a5a dnb: '135655714' key: HöglundZeth1884-1956 merge: id: 0200082478ad4c65a70665600ccb4a5a source: viaf type: document selibr: '210553' term: Höglund, Zeth, 1884-1956 version: 2013-07-01T14:07:50Z viafid: '15992916' --- _id: 02014b6f6f34229b0eab783d4f5967ac bav: adv10176119 bnf: '12948897' dnb: '118839977' key: EssenLéonvander1883-1963 lc: no96045632 merge: id: 02014b6f6f34229b0eab783d4f5967ac source: viaf type: document nkc: xx0102999 nla: '000050002915' ptbnp: '264199' term: Essen, Léon van der, 1883-1963 version: 2013-07-01T14:07:50Z viafid: '22272593' --- _id: 020971cf95093bf96980b0e38c1e230b bav: adv11019655 bnf: '11076597' dnb: '117559768' jpg: '500047988' key: MazoisFrançois1783-1826 lc: nr97017047 merge: id: 020971cf95093bf96980b0e38c1e230b source: viaf type: document term: Mazois, François, 1783-1826 version: 2013-07-01T14:07:50Z viafid: '54140480' --- _id: 020cb175cf01a0620e67def4d81d7083 dnb: '152093338' key: TingströmBertel1912-2004 lc: n84219321 merge: id: 020cb175cf01a0620e67def4d81d7083 source: viaf type: document selibr: '200168' term: Tingström, Bertel, 1912-2004 version: 2013-07-01T14:07:50Z viafid: '30951839' --- _id: 0216d129d11cb2b59089114826e2dce6 bav: adv10006228 bnf: '16215913' dnb: '136358756' key: BörnerFriedrich1723-1761 merge: id: 0216d129d11cb2b59089114826e2dce6 source: viaf type: document nkc: mzk2010589930 nlilat: '000022381' term: Börner, Friedrich, 1723-1761 version: 2013-07-01T14:07:50Z viafid: '80716903' --- _id: 0217fd48022674cec08b7c4702cb8fe0 bnf: '12261202' dnb: '118995782' key: ZábranaJan1931-1984 lc: n84184266 merge: id: 0217fd48022674cec08b7c4702cb8fe0 source: viaf type: document nkc: jz8001457 term: Zábrana, Jan, 1931-1984 version: 2013-07-01T14:07:50Z viafid: '71448238' --- _id: 0225c0e0b8331307c978addd3c190fb0 egaxa: vtls000821692 key: Ibnal-ḤājjMuḥammadibnMuḥammadd1336 lc: n89239785 merge: id: 0225c0e0b8331307c978addd3c190fb0 source: viaf type: document term: Ibn al-Ḥājj, Muḥammad ibn Muḥammad, d. 1336 version: 2013-07-01T14:07:50Z viafid: '26198000' --- _id: 0229c939fcf37b8171d358b67cddacd9 bav: adv10133548 bne: xx850854 bnf: '13474481' dnb: 11949924x key: FétisFrançois-Joseph1784-1871 lc: n82246099 merge: id: 0229c939fcf37b8171d358b67cddacd9 source: viaf type: document nkc: mzk2003174055 nla: '000035082386' nlilat: '000050348' ptbnp: '153635' selibr: '186825' term: Fétis, François-Joseph, 1784-1871 version: 2013-07-01T14:07:50Z viafid: '69078568' --- _id: 022a70c29f317f37b68c87d89504101b bav: adv10193885 bnf: '12176473' dnb: '100282881' key: FerrièreClaudeJosephdedca1748 lc: n88002655 merge: id: 022a70c29f317f37b68c87d89504101b source: viaf type: document nlilat: '000491499' ptbnp: '98028' term: Ferrière, Claude Joseph de, d. ca. 1748 version: 2013-07-01T14:07:50Z viafid: '2514410' --- _id: 02355c2ceeb3300a38f376cc341c300b bnf: '12036429' dnb: 17361843x key: GilbertAlan1944-spécialistedel'Amériquelatine lc: n80112938 merge: id: 02355c2ceeb3300a38f376cc341c300b source: viaf type: document nkc: kup19950000031479 nla: '000035123545' nlilat: '000430906' ptbnp: '569207' term: Gilbert, Alan 1944-.... spécialiste de l'Amérique latine version: 2013-07-01T14:07:50Z viafid: '61607588' --- _id: 023ed3e06a7aeaedcf108011421d1cb2 bnf: '14333881' dnb: '117178756' key: MünterBalthasar1735-1793 lc: nr93027643 merge: id: 023ed3e06a7aeaedcf108011421d1cb2 source: viaf type: document nkc: mzk2010579552 nla: '000035325601' term: Münter, Balthasar, 1735-1793 version: 2013-07-01T14:07:50Z viafid: '17992858' --- _id: 024c5736a5557d4e35622e47793706ca bnf: '12357938' dnb: '120076276' key: ThümmigLudwigPhilipp1697-1728 lc: n83300950 merge: id: 024c5736a5557d4e35622e47793706ca source: viaf type: document nkc: nlk20010102907 nlilat: '000131357' term: Thümmig, Ludwig Philipp, 1697-1728 version: 2013-07-01T14:07:50Z viafid: '56686391' --- _id: 02526d0e1cee01de2d7a09f52b536056 key: BánkZsuzsa1965-|SchwimmerHungarian lc: no2006071929 merge: id: 02526d0e1cee01de2d7a09f52b536056 source: viaf type: document term: Bánk, Zsuzsa, 1965- | Schwimmer. Hungarian version: 2013-07-01T14:07:50Z viafid: '177676627' --- _id: 02581c0f4c008827aa22b353e7d4c137 bav: adv10216063 bne: xx1068385 bnf: '12138603' dnb: '118672770' key: DupanloupFélix1802-1878 lc: n83025558 merge: id: 02581c0f4c008827aa22b353e7d4c137 source: viaf type: document nkc: jn20000700452 nla: '000035267699' nlilat: '000452277' term: Dupanloup, Félix, 1802-1878 version: 2013-07-01T14:07:50Z viafid: '27102015' --- _id: 02591d96186457508c5e96f01ef957d6 bnf: '12291175' key: CouderAndré(1897-1979) merge: id: 02591d96186457508c5e96f01ef957d6 source: viaf type: document term: Couder, André (1897-1979) version: 2013-07-01T14:07:50Z viafid: '64069592' --- _id: 025e78ffafe0bdde6be6d97db22c4226 key: HirdmanYvonne1943-|TänkandehjärtatEnglish lc: n2007088491 merge: id: 025e78ffafe0bdde6be6d97db22c4226 source: viaf type: document term: Hirdman, Yvonne, 1943- | Tänkande hjärtat. English version: 2013-07-01T14:07:50Z viafid: '176771452' --- _id: 025e94e995c02a62abd0d6462fbad9ad bav: adv10259974 bnf: '12159197' dnb: '119071606' key: OehlenschlägerAdamGottlieb1779-1850 lc: n79109270 merge: id: 025e94e995c02a62abd0d6462fbad9ad source: viaf type: document nkc: mzk2005299319 nla: '000035975049' nlilat: '000423229' selibr: '219031' term: Oehlenschläger, Adam Gottlieb, 1779-1850 version: 2013-07-01T14:07:50Z viafid: '27105324' --- _id: 02645d03181fc8a250edea063d492ef8 bav: adv10955598 dnb: '172243912' key: MʹCrieThomas1772-1835 lc: n89607204 merge: id: 02645d03181fc8a250edea063d492ef8 source: viaf type: document nkc: skuk0004030 nla: '000035561825' term: MʹCrie, Thomas, 1772-1835 version: 2013-07-01T14:07:50Z viafid: '18823512' --- _id: 0266163c312d632d56c0fcae54151f06 dnb: '124546420' key: PurmannMatthäusGottfried1649-1711 lc: n83218031 merge: id: 0266163c312d632d56c0fcae54151f06 source: viaf type: document nkc: nlk20010098823 term: Purmann, Matthäus Gottfried, 1649-1711 version: 2013-07-01T14:07:50Z viafid: '84828429' --- _id: 02672a9e05d30a86c5f069e3e9295354 bnf: '16223753' dnb: '1024153797' key: HévinPrudent1715-1789 lc: n84102159 merge: id: 02672a9e05d30a86c5f069e3e9295354 source: viaf type: document ptbnp: '1398774' term: Hévin, Prudent, 1715-1789 version: 2013-07-01T14:07:50Z viafid: '72794021' --- _id: 026848023bcedfaae863fe50728722ed dnb: 11622620x key: BöttgerAdolf1815-1870 lc: no94003344 merge: id: 026848023bcedfaae863fe50728722ed source: viaf type: document nlilat: '000383926' selibr: '283218' term: Böttger, Adolf, 1815-1870 version: 2013-07-01T14:07:50Z viafid: '78353371' --- _id: 0279d6c60a065794970619d534507457 dnb: '117098485' key: ÖhmanIvar1914-1989 lc: n85238338 merge: id: 0279d6c60a065794970619d534507457 source: viaf type: document selibr: '216017' term: Öhman, Ivar, 1914-1989 version: 2013-07-01T14:07:50Z viafid: '6378846' --- _id: 0283b24946c9714314f6adfadb55ee79 key: CastañedaJorgeG1953-|HerenciaEnglish lc: n00089369 merge: id: 0283b24946c9714314f6adfadb55ee79 source: viaf type: document term: Castañeda, Jorge G., 1953- | Herencia. English version: 2013-07-01T14:07:50Z viafid: '181017618' --- _id: 02984840a43ef9528abfc3d51d223e5b key: BermudesJoãod1570|Estahehũabreuerelaçãodaembaisadaq̃opatriarchaDõJoãoBermudeztrouxedoemperadodaEthiopiaEnglish1967 merge: id: 02984840a43ef9528abfc3d51d223e5b source: viaf type: document nla: '000035017867' term: Bermudes, João, d. 1570. | Esta he hũa breue relação da embaisada q̃ o patriarcha Dõ João Bermudez trouxe do emperado da Ethiopia. English. 1967 version: 2013-07-01T14:07:50Z viafid: '175740681' --- _id: 029a6f104a614c1e55145c5debb3b1a8 key: DuméesAntoine-François-Joseph1722-1765 lc: no2010051600 merge: id: 029a6f104a614c1e55145c5debb3b1a8 source: viaf type: document term: Dumées, Antoine-François-Joseph, 1722-1765 version: 2013-07-01T14:07:50Z viafid: '108115811' --- _id: 029b89519eea25f1066b7ce722e92b5f dnb: '101855753' key: GensEugène1814-1881 merge: id: 029b89519eea25f1066b7ce722e92b5f source: viaf type: document term: Gens, Eugène, 1814-1881 version: 2013-07-01T14:07:50Z viafid: '49601082' --- _id: 02a27de9a8a199a234c341d0ab789e9e key: TakasakiJikidō1926-|BukkyōnyūmonEnglish lc: n87855665 merge: id: 02a27de9a8a199a234c341d0ab789e9e source: viaf type: document term: Takasaki, Jikidō, 1926- | Bukkyō nyūmon. English version: 2013-07-01T14:07:50Z viafid: '180283929' --- _id: 02a436b4f76421266d42995ff6e73b6f dnb: '101845324' key: ArendtGuillaumeAmédéeAuguste1808-1865 merge: id: 02a436b4f76421266d42995ff6e73b6f source: viaf type: document term: Arendt, Guillaume Amédée Auguste, 1808-1865 version: 2013-07-01T14:07:50Z viafid: '17600005' --- _id: 02a6335cc85d1f2f8475919fa6542d46 bnf: '11953741' dnb: '120115395' key: JunqueiroAbílioManuelGuerra1850-1923 lc: n82036031 merge: id: 02a6335cc85d1f2f8475919fa6542d46 source: viaf type: document nkc: kup19990000045589 nla: '000035383760' ptbnp: '10394' selibr: '65395' term: Junqueiro, Abílio Manuel Guerra, 1850-1923 version: 2013-07-01T14:07:50Z viafid: '22150838' --- _id: 02a9329ae1c79dc270c89dc8cfbf617c bav: adv10112830 bnf: '12006220' dnb: '134073711' key: BellengerFrançois1688-1749 lc: n2011086997 merge: id: 02a9329ae1c79dc270c89dc8cfbf617c source: viaf type: document nkc: ola2008459836 term: Bellenger, François, 1688-1749 version: 2013-07-01T14:07:50Z viafid: '76326749' --- _id: 02aef6485e4b006553e2145b77168e88 key: MarkovAK1858-1920(AlekseĭKonstantinovich)Ochistki︠e︡drevnikhmonet lc: n86095545 merge: id: 02aef6485e4b006553e2145b77168e88 source: viaf type: document term: Markov, A. K. 1858-1920. (Alekseĭ Konstantinovich), O chistki︠e︡ drevnikh monet version: 2013-07-01T14:07:50Z viafid: '178656182' --- _id: 02b8fc16f8e02e1395e955f30c4dd35b bne: xx1050260 bnf: '11986915' key: JuanArbóSebastián1902-1984 lc: n79120237 merge: id: 02b8fc16f8e02e1395e955f30c4dd35b source: viaf type: document nkc: kup19970000002490 nla: '000035255465' nlilat: '000423794' term: Juan Arbó, Sebastián 1902-1984 version: 2013-07-01T14:07:50Z viafid: '66475814' --- _id: 02b93063938f142652e27a73580cc7a3 bav: adv10060933 bne: xx1164567 bnf: '12100980' dnb: '119349981' key: CarranzaBartolomé1503-1576 lc: n81072380 merge: id: 02b93063938f142652e27a73580cc7a3 source: viaf type: document nkc: js20020115050 nlilat: '000437600' ptbnp: '279594' selibr: '245169' term: Carranza, Bartolomé, 1503-1576 version: 2013-07-01T14:07:50Z viafid: '14799490' --- _id: 02bedbd7dee8c7db68327497a6829729 bnf: '12351968' dnb: '117713287' key: MüllerCH1878-1953 lc: n87138140 merge: id: 02bedbd7dee8c7db68327497a6829729 source: viaf type: document nlilat: '000486965' term: Müller, C. H., 1878-1953 version: 2013-07-01T14:07:50Z viafid: '100969846' --- _id: 02c0aff9e788c7e6bf0469f8aefd5a30 bnf: '12638602' dnb: '117468916' key: SecondAlbéric1817-1887 lc: n86005747 merge: id: 02c0aff9e788c7e6bf0469f8aefd5a30 source: viaf type: document nlilat: '000479237' ptbnp: '174894' term: Second, Albéric, 1817-1887 version: 2013-07-01T14:07:50Z viafid: '5052468' --- _id: 02c3f25e744e92af2c42ae5075318d58 bnf: '11895990' dnb: '124336698' key: ChampionEdmé1836-1915 lc: nr91022441 merge: id: 02c3f25e744e92af2c42ae5075318d58 source: viaf type: document nlilat: '000525371' term: Champion, Edmé, 1836-1915 version: 2013-07-01T14:07:50Z viafid: '12306439' --- _id: 02cc2db838db4dda3f67cd78bc8026e2 bav: adv12174762 bne: xx1145509 bnf: '11919776' dnb: '118641654' key: PieyredeMandiarguesAndré1909-1991 lc: n50012843 merge: id: 02cc2db838db4dda3f67cd78bc8026e2 source: viaf type: document nkc: jn20010601136 nla: '000035422942' nlilat: '000105729' ptbnp: '42011' selibr: '196902' term: Pieyre de Mandiargues, André, 1909-1991 version: 2013-07-01T14:07:50Z viafid: '108228000' --- _id: 02ce71786a3011157d12d72bbcb34f90 bav: adv12076465 bnf: '12150892' dnb: '100190065' key: LicquetThéodore1787-1832 lc: n82066662 merge: id: 02ce71786a3011157d12d72bbcb34f90 source: viaf type: document ptbnp: '1201811' term: Licquet, Théodore, 1787-1832 version: 2013-07-01T14:07:50Z viafid: '64044043' --- _id: 02ce868f4f516fb4a653e46e99816c40 bnf: '14958162' dnb: '174299664' key: BénardRobert1734-1777 lc: n2005055169 merge: id: 02ce868f4f516fb4a653e46e99816c40 source: viaf type: document nkc: mzk2008479882 term: Bénard, Robert, 1734-1777 version: 2013-07-01T14:07:50Z viafid: '95887207' --- _id: 02cec247a5a3631d3d4c0afd80738412 dnb: 15915782x key: RivièreHippolyte-Féréol1817-1893 merge: id: 02cec247a5a3631d3d4c0afd80738412 source: viaf type: document term: Rivière, Hippolyte-Féréol, 1817-1893 version: 2013-07-01T14:07:50Z viafid: '245091915' --- _id: 02cfeb71732d4946b84128d95ca78510 bnf: '14540321' dnb: 13215532x egaxa: vtls000837220 key: Ibnal-Ṣalāḥal-ShahrazūrīʻUthmānibnʻAbdal-Raḥmān1181or2-1245 lc: nr92026123 merge: id: 02cfeb71732d4946b84128d95ca78510 source: viaf type: document nliara: '000159024' selibr: '191240' term: Ibn al-Ṣalāḥ al-Shahrazūrī, ʻUthmān ibn ʻAbd al-Raḥmān, 1181 or 2-1245 version: 2013-07-01T14:07:50Z viafid: '79189688' --- _id: 02d0df5b90896e9fb8b51b0e181ea545 bav: adv10891193 bnf: '12356458' dnb: '116628324' key: MacéJean1815-1894 lc: n79072856 merge: id: 02d0df5b90896e9fb8b51b0e181ea545 source: viaf type: document nkc: jx20080820011 nlilat: '000421092' term: Macé, Jean, 1815-1894 version: 2013-07-01T14:07:50Z viafid: '71467271' --- _id: 02f6ca69eb47e98387fed80b7aecae51 dnb: '116769815' key: FrensdorffÉmile1818-1909 merge: id: 02f6ca69eb47e98387fed80b7aecae51 source: viaf type: document term: Frensdorff, Émile 1818-1909 version: 2013-07-01T14:07:50Z viafid: '47521825' --- _id: 02f7e3d58b98af8f8f28fc458e18d895 bav: adv10151332 bnf: '12392284' dnb: '100441386' key: ChéruelAdolphe1809-1891 lc: nr88002431 merge: id: 02f7e3d58b98af8f8f28fc458e18d895 source: viaf type: document nkc: jn19990003834 nla: '000035369149' nlilat: '000522399' ptbnp: '151139' term: Chéruel, Adolphe, 1809-1891 version: 2013-07-01T14:07:50Z viafid: '9931987' --- _id: 02f868a6ed9ab7b8047155bc2a9032cc dnb: '117625507' key: ThoméLudwigWilhelm1841-1910 merge: id: 02f868a6ed9ab7b8047155bc2a9032cc source: viaf type: document term: Thomé, Ludwig Wilhelm 1841-1910 version: 2013-07-01T14:07:50Z viafid: '42620022' --- _id: 02ff177adff46824c9ae122ad6eb06da bav: adv12086761 dnb: '1021987298' key: PetropoulosGeōrgiosAndrea1897-1964 lc: n85250825 merge: id: 02ff177adff46824c9ae122ad6eb06da source: viaf type: document term: Petropoulos, Geōrgios Andrea, 1897-1964 version: 2013-07-01T14:07:50Z viafid: '45750572' --- _id: 03023d40fbc41b8bc99977ec5cd5e545 bnf: '12169328' dnb: '101916345' key: BiollayLéon1830-1920 lc: no94012267 merge: id: 03023d40fbc41b8bc99977ec5cd5e545 source: viaf type: document term: Biollay, Léon, 1830-1920 version: 2013-07-01T14:07:50Z viafid: '114289550' --- _id: 0306f6666be652a7020c3e03c2c65330 bav: adv10196029 bnf: '11903228' dnb: 11925249x key: Foulché-DelboscRaymond1864-1929 lc: n84055843 merge: id: 0306f6666be652a7020c3e03c2c65330 source: viaf type: document nla: '000035823526' nlilat: '000048154' ptbnp: '97621' term: Foulché-Delbosc, Raymond, 1864-1929 version: 2013-07-01T14:07:50Z viafid: '49225549' --- _id: 0308464c956db049c7889c3ba6387329 bav: adv11560152 bnf: '11918661' dnb: '118591819' egaxa: vtls000904154 key: ParrotAndré1901-1980 lc: n50050793 merge: id: 0308464c956db049c7889c3ba6387329 source: viaf type: document nkc: jo2009532273 nla: '000035410238' nlilat: '000103494' ptbnp: '117733' swnl: vtls002276744 term: Parrot, André, 1901-1980 version: 2013-07-01T14:07:50Z viafid: '27069841' --- _id: 030d7f115e474ef8992904d97fe99745 bav: adv11143309 dnb: '1012607119' key: BrøggerAW1884-1951 lc: n83220467 merge: id: 030d7f115e474ef8992904d97fe99745 source: viaf type: document nla: '000035022347' nlilat: '000457472' selibr: '179566' term: Brøgger, A.W. 1884-1951 version: 2013-07-01T14:07:50Z viafid: '114431574' --- _id: 032562f30cb45ed44025a073298197a2 bav: adv10960748 bnf: '12449254' dnb: '172262143' key: MoléGuillaume-François-Roger1742-1790 merge: id: 032562f30cb45ed44025a073298197a2 source: viaf type: document term: Molé, Guillaume-François-Roger, 1742-1790 version: 2013-07-01T14:07:50Z viafid: '5026144' --- _id: 032abb10db700ae25e127d3347cfaf24 bnf: '12238142' dnb: '133376702' key: AnsquerdePonçolHenri-Simon-Joseph1730-1783 lc: nr93015692 merge: id: 032abb10db700ae25e127d3347cfaf24 source: viaf type: document term: Ansquer de Ponçol, Henri-Simon-Joseph, 1730-1783 version: 2013-07-01T14:07:50Z viafid: '9902990' --- _id: 032db208e6a28d65cdf07eed40290f81 bav: adv11096082 bnf: '15523804' dnb: 10148206x key: VanRijnberkGérard1875-1953 lc: n83141475 merge: id: 032db208e6a28d65cdf07eed40290f81 source: viaf type: document nla: '000035209885' nlilat: '000111649' ptbnp: '107800' term: Van Rijnberk, Gérard, 1875-1953 version: 2013-07-01T14:07:50Z viafid: '89366293' --- _id: 032e7ec467d740a16f1dda5d873d6902 bnf: '11490922' dnb: '123462096' key: MesarićKalman(1900-1983) lc: nr98042296 merge: id: 032e7ec467d740a16f1dda5d873d6902 source: viaf type: document term: Mesarić, Kalman (1900-1983) version: 2013-07-01T14:07:50Z viafid: '52597351' --- _id: 032f45bae823d220d1c77d6d62353984 bne: xx897937 bnf: '13892105' dnb: '118668188' key: CampraAndré1660-1744 lc: n81047490 merge: id: 032f45bae823d220d1c77d6d62353984 source: viaf type: document nkc: ola2002158365 nla: '000035648045' nlilat: '000436205' ptbnp: '266076' term: Campra, André, 1660-1744 version: 2013-07-01T14:07:50Z viafid: '74036950' --- _id: 03345478b7fb3bcd2929941c839c126d key: MächlerStefan1957-|FallWilkomirskiEnglish lc: n00026607 merge: id: 03345478b7fb3bcd2929941c839c126d source: viaf type: document term: Mächler, Stefan, 1957- | Fall Wilkomirski. English version: 2013-07-01T14:07:50Z viafid: '180199665' --- _id: 0338eea3c8564130e982240713188bc1 bav: adv10233738 key: DuparcqueFrédéric1788-1879 lc: no2009060497 merge: id: 0338eea3c8564130e982240713188bc1 source: viaf type: document term: Duparcque, Frédéric, 1788-1879 version: 2013-07-01T14:07:50Z viafid: '86377830' --- _id: 0339c2dc53d026bfc62ee1832d2635b9 key: SäfveTorbjörn1941-|Hemligalitteräravärldsakademin lc: n98108337 merge: id: 0339c2dc53d026bfc62ee1832d2635b9 source: viaf type: document term: Säfve, Torbjörn, 1941- | Hemliga litterära världsakademin version: 2013-07-01T14:07:50Z viafid: '174709176' --- _id: 033a1893fa41fe5fa0a7ac78945ebf08 bav: adv10300625 dnb: '123298679' key: BéthunePhilippede(1561-1649) lc: n86031977 merge: id: 033a1893fa41fe5fa0a7ac78945ebf08 source: viaf type: document nkc: jo2003169898 term: Béthune, Philippe de (1561-1649) version: 2013-07-01T14:07:50Z viafid: '51804405' --- _id: 033aa662967208c76ebece545e0a2298 dnb: '1023771381' key: FagelFrançois1740-1773 lc: no2006079310 merge: id: 033aa662967208c76ebece545e0a2298 source: viaf type: document term: Fagel, François, 1740-1773 version: 2013-07-01T14:07:50Z viafid: '9602583' --- _id: 0341dbf68e43de72d2e1d1dceda144ff bav: adv10195864 key: FoucherÉmile1823-1867 merge: id: 0341dbf68e43de72d2e1d1dceda144ff source: viaf type: document ptbnp: '1207402' term: Foucher, Émile, 1823-1867 version: 2013-07-01T14:07:50Z viafid: '88927368' --- _id: 03496ee8c33b042cd5a1098a9916e71b bav: adv11553146 bne: xx1761822 bnf: '14805666' dnb: '118759787' key: Schmidt-GörgJoseph1897-1981 lc: n50006704 merge: id: 03496ee8c33b042cd5a1098a9916e71b source: viaf type: document nla: '000035481242' ptbnp: '927818' term: Schmidt-Görg, Joseph 1897-1981 version: 2013-07-01T14:07:50Z viafid: '111892933' --- _id: 034cc592d68c4366371314ecf545cf56 bnf: '11913182' dnb: '118825127' key: LoaiselTréogateJoseph-Marie1752-1812 lc: n83041861 merge: id: 034cc592d68c4366371314ecf545cf56 source: viaf type: document nlilat: '000452867' term: Loaisel Tréogate, Joseph-Marie, 1752-1812 version: 2013-07-01T14:07:50Z viafid: '4932831' --- _id: 035a0b12e64b89d6f252da841367949c dnb: '158511174' key: BystrzyckiPrzemysław(1923-2004) lc: n84204624 merge: id: 035a0b12e64b89d6f252da841367949c source: viaf type: document nkc: ola2003193953 term: Bystrzycki, Przemysław (1923-2004) version: 2013-07-01T14:07:50Z viafid: '79416665' --- _id: 03649c73578886fc0d8015be211040d3 bav: adv11105832 dnb: '101342594' key: TournierÉdouard1831-1899 lc: no2011149821 merge: id: 03649c73578886fc0d8015be211040d3 source: viaf type: document nla: '000035294755' nlilat: '000213419' ptbnp: '84355' term: Tournier, Édouard, 1831-1899 version: 2013-07-01T14:07:50Z viafid: '89376023' --- _id: 036e6fbff7192f45d46785102305497e bnf: '12335203' dnb: '118936522' key: RenaudotThéophraste1586-1653 lc: n82058563 merge: id: 036e6fbff7192f45d46785102305497e source: viaf type: document nla: '000036011637' nlilat: '000444219' ptbnp: '96547' term: Renaudot, Théophraste, 1586-1653 version: 2013-07-01T14:07:50Z viafid: '83101172' --- _id: 0374f2c34e6f13eca4f14769b8962a72 bnf: '14618811' dnb: '116889292' key: VonSchönthanFranz1849-1913 lc: n82051104 merge: id: 0374f2c34e6f13eca4f14769b8962a72 source: viaf type: document nkc: jn20010316191 nlilat: '000443875' term: Von Schönthan, Franz, 1849-1913 version: 2013-07-01T14:07:50Z viafid: '66719381' --- _id: 03847e4c9763d04b976d253cf0c30cb3 bne: xx1243213 bnf: '12074341' dnb: '136198341' key: ChagasJoão1863-1925 lc: n87927766 merge: id: 03847e4c9763d04b976d253cf0c30cb3 source: viaf type: document ptbnp: '44694' term: Chagas, João, 1863-1925 version: 2013-07-01T14:07:50Z viafid: '66490689' --- _id: 0388edbbd32cb70508615c57a269755f bnf: '15868284' dnb: '101326041' key: ThéveninRené1877-1967 lc: n85825172 merge: id: 0388edbbd32cb70508615c57a269755f source: viaf type: document nla: '000035791107' nlilat: '000478817' ptbnp: '32558' term: Thévenin, René, 1877-1967 version: 2013-07-01T14:07:50Z viafid: '110022734' --- _id: 038c48d9dd7a8ade2ee593afe4e8f420 bne: xx1148076 bnf: '11917732' dnb: '118588192' jpg: '500257487' key: NinAnaïs1903-1977 lc: n79041785 merge: id: 038c48d9dd7a8ade2ee593afe4e8f420 source: viaf type: document nkc: jn20000701323 nla: '000036012840' nlilat: '000099832' ptbnp: '47151' selibr: '207655' term: Nin, Anaïs, 1903-1977 version: 2013-07-01T14:07:50Z viafid: '14774462' --- _id: 0397e6aac2ddcf6d0431779670f9d55c key: SullivanHenryW1942-|CalderónintheGermanlandsandtheLowCountriesSpanish lc: n98077051 merge: id: 0397e6aac2ddcf6d0431779670f9d55c source: viaf type: document term: Sullivan, Henry W., 1942- | Calderón in the German lands and the Low Countries. Spanish version: 2013-07-01T14:07:50Z viafid: '186015450' --- _id: 03aec64adc3413f86d58b119ceea2abc bav: adv10008296 bne: xx1265318 bnf: '12025206' dnb: '115690158' key: BragaTeófilo1843-1924 lc: n82211626 merge: id: 03aec64adc3413f86d58b119ceea2abc source: viaf type: document nkc: ola2002153754 nla: '000035187595' nlilat: '000449474' ptbnp: '16499' term: Braga, Teófilo, 1843-1924 version: 2013-07-01T14:07:50Z viafid: '54161310' --- _id: 03afef8f182edb5be7e6b635f90ab2a3 key: KuChʻeng1956-SelectionsPoems lc: nr96036087 merge: id: 03afef8f182edb5be7e6b635f90ab2a3 source: viaf type: document nla: '000036722390' term: Ku, Chʻeng, 1956- Selections Poems version: 2013-07-01T14:07:50Z viafid: '185421477' --- _id: 03b0d72a3b3bdd6b53e6850d8a424ae9 bav: adv11812395 bnf: '11907347' dnb: '119309548' key: Herling-GrudzińskiGustaw1919-2000 lc: n81056817 merge: id: 03b0d72a3b3bdd6b53e6850d8a424ae9 source: viaf type: document nkc: jn19990003424 nla: '000043077630' nlilat: '000062344' selibr: '60527' term: Herling-Grudziński, Gustaw, 1919-2000 version: 2013-07-01T14:07:50Z viafid: '17223996' --- _id: 03b194c5f7b088737936d74e7d848622 bnf: '10526434' dnb: '116440821' key: HammarsköldLorenzo1785-1827 lc: nr98009139 merge: id: 03b194c5f7b088737936d74e7d848622 source: viaf type: document selibr: '190880' term: Hammarsköld, Lorenzo, 1785-1827 version: 2013-07-01T14:07:50Z viafid: '56599544' --- _id: 03b250a0b1a67e3eb8c41c46f5899f69 bav: adv11388535 bne: xx1142375 dnb: '100314384' key: DeOcampoFlorián1499?-1555? lc: n88244726 merge: id: 03b250a0b1a67e3eb8c41c46f5899f69 source: viaf type: document ptbnp: '414663' term: De Ocampo, Florián, 1499?-1555? version: 2013-07-01T14:07:50Z viafid: '100202275' --- _id: 03b9688927fd64aae9c71f1b882c5d80 key: YsermansJoanca1590-ná1631 merge: id: 03b9688927fd64aae9c71f1b882c5d80 source: viaf type: document term: Ysermans, Joan, ca. 1590-ná 1631 version: 2013-07-01T14:07:50Z viafid: '281671632' --- _id: 03bca13274682d086a41673a905cf321 bav: adv10208072 bne: xx4982218 bnf: '11997296' dnb: 10096673x key: KimḥiDavidca1160-ca1235 lc: n83120193 merge: id: 03bca13274682d086a41673a905cf321 source: viaf type: document nkc: zmp2012739168 nla: '000035487022' nlicyr: '000151969' nliheb: '000185046' nlilat: '000075925' selibr: '67124' term: Kimḥi, David, ca 1160-ca 1235 version: 2013-07-01T14:07:50Z viafid: '100213323' --- _id: 03be88c96f36a7cbceee8e8f181b813c dnb: '129889512' key: HögbergOlof1855-1932 lc: n82142480 merge: id: 03be88c96f36a7cbceee8e8f181b813c source: viaf type: document selibr: '216702' term: Högberg, Olof, 1855-1932 version: 2013-07-01T14:07:50Z viafid: '6024113' --- _id: 03bea4128abba82a2d612931bbe69142 key: UrrozKananEloy1967-|FricciónEnglish lc: n2010046632 merge: id: 03bea4128abba82a2d612931bbe69142 source: viaf type: document term: Urroz Kanan, Eloy, 1967- | Fricción. English version: 2013-07-01T14:07:50Z viafid: '181623481' --- _id: 03c3cf3001a80f27e47e06f77a3f277d bnf: '12707211' dnb: '1026769671' key: LoteRené(1883-1944) lc: no2012126721 merge: id: 03c3cf3001a80f27e47e06f77a3f277d source: viaf type: document term: Lote, René (1883-1944) version: 2013-07-01T14:07:50Z viafid: '54271583' --- _id: 03dd5c9976e17d2225c8438f06b582d7 bav: adv12479613 bnf: '11942955' dnb: '118715143' jpg: '500082545' key: KościuszkoTadeusz1746-1817 lc: n50042679 merge: id: 03dd5c9976e17d2225c8438f06b582d7 source: viaf type: document nkc: jo20010091950 nlilat: '000234743' selibr: '252156' term: Kościuszko, Tadeusz, 1746-1817 version: 2013-07-01T14:07:50Z viafid: '61554270' --- _id: 03e0f84dce1beeec5c950ba1cfdab3bc bnf: '15343147' dnb: '119181614' key: VanHoveLéon1924-1990 lc: n85801639 merge: id: 03e0f84dce1beeec5c950ba1cfdab3bc source: viaf type: document swnl: vtls000105745 term: Van Hove, Léon 1924-1990 version: 2013-07-01T14:07:50Z viafid: '120747971' --- _id: 03e2b007ece4f44b39197fd05753a2af bav: adv10193854 bnf: '13001985' dnb: '170464407' key: SchäffleAlbertEberhardFriedrich(1831-1903) lc: n87896571 merge: id: 03e2b007ece4f44b39197fd05753a2af source: viaf type: document nkc: jn20010316190 nla: '000035047182' nlilat: '000119362' term: Schäffle, Albert Eberhard Friedrich (1831-1903) version: 2013-07-01T14:07:50Z viafid: '49357405' --- _id: 03e9516fda777fd728eb684745177989 bnf: '14530343' key: KaczorWJ1949-(WiesławaJ) lc: n99252423 merge: id: 03e9516fda777fd728eb684745177989 source: viaf type: document nkc: mub2010601907 term: Kaczor, W. J., 1949-, (Wiesława J.) version: 2013-07-01T14:07:50Z viafid: '74087975' --- _id: 03ee615ef5fc178700000785c0e5610a bne: xx935590 dnb: '118689207' egaxa: vtls002227033 key: GajdarArkadijPetrovič1904-1941 lc: n50015461 merge: id: 03ee615ef5fc178700000785c0e5610a source: viaf type: document nkc: jn19990210225 nla: '000040153226' nlicyr: '000149658' selibr: '54872' term: Gajdar, Arkadij Petrovič, 1904-1941 version: 2013-07-01T14:07:50Z viafid: '42632124' --- _id: 03f39ba00fb0588c2583abc2b40d4d50 bnf: '12195705' dnb: '117614688' key: LefèbureLouisFrançoisHenri1754-1840 lc: nr88006932 merge: id: 03f39ba00fb0588c2583abc2b40d4d50 source: viaf type: document selibr: '350751' term: Lefèbure, Louis François Henri, 1754-1840 version: 2013-07-01T14:07:50Z viafid: '27112682' --- _id: 03f7de51fb3112824e3b5bb61e8907ec bav: adv11107034 bnf: '11900980' dnb: '101159684' key: DufourMédéricb1866 lc: n89633919 merge: id: 03f7de51fb3112824e3b5bb61e8907ec source: viaf type: document nlilat: '000500303' ptbnp: '182775' term: Dufour, Médéric, b. 1866 version: 2013-07-01T14:07:50Z viafid: '12307650' --- _id: 03f93c2c6212c09f91729c3076f80b10 bnf: '11560135' dnb: '131889141' key: HanžekovićMato1884-1955 lc: n89629424 merge: id: 03f93c2c6212c09f91729c3076f80b10 source: viaf type: document nkc: js2006345207 term: Hanžeković, Mato, 1884-1955 version: 2013-07-01T14:07:50Z viafid: '35601246' --- _id: 03fe7f0e439eb9a1762a5427e7748b73 key: EsdréAdriaan1749-1822 merge: id: 03fe7f0e439eb9a1762a5427e7748b73 source: viaf type: document term: Esdré, Adriaan, 1749-1822 version: 2013-07-01T14:07:50Z viafid: '287790346' --- _id: 0408e832035b61eec14e6aebd3b58fe5 key: SŏChae-jŏng1960-|PowerinterestandidentityinmilitaryalliancesKorean lc: n2010036779 merge: id: 0408e832035b61eec14e6aebd3b58fe5 source: viaf type: document term: Sŏ, Chae-jŏng, 1960- | Power, interest, and identity in military alliances. Korean version: 2013-07-01T14:07:50Z viafid: '175166042' --- _id: 040a9231004fd808bd23d3be0496686f bav: adv10138518 bnf: '14431666' dnb: '118796704' key: BrückeErnst1819-1892 lc: n83211267 merge: id: 040a9231004fd808bd23d3be0496686f source: viaf type: document nkc: nlk20000083623 nlilat: '000025995' swnl: vtls000035685 term: Brücke, Ernst, 1819-1892 version: 2013-07-01T14:07:50Z viafid: '49441325' --- _id: 0410998a6b57bc3e5ed0a7e7a384dccd bav: adv11998075 bne: xx917589 bnf: '14644307' dnb: '128491795' key: DuránDiegod1588? lc: n81090283 merge: id: 0410998a6b57bc3e5ed0a7e7a384dccd source: viaf type: document ptbnp: '207955' term: Durán, Diego, d. 1588? version: 2013-07-01T14:07:50Z viafid: '15030586' --- _id: 043414f435da087eb8908c59ff77ac87 dnb: '123145805' key: SokolovJurijMatveevič1889-1941 lc: n83197191 merge: id: 043414f435da087eb8908c59ff77ac87 source: viaf type: document nkc: jx20041102006 nlilat: '000456547' term: Sokolov, Jurij Matveevič, 1889-1941 version: 2013-07-01T14:07:50Z viafid: '74752359' --- _id: 043949491cccd1c41799a212c8b309d5 key: BossuAntoninFrançois1804-1897 merge: id: 043949491cccd1c41799a212c8b309d5 source: viaf type: document term: Bossu, Antonin François, 1804-1897 version: 2013-07-01T14:07:50Z viafid: '209033298' --- _id: 0439994373e8de0fa5df68ff5ebf3248 bav: adv10872396 bnf: '11910296' dnb: '116653531' key: DelaMétherieJean-Claude1743-1817 lc: n84102385 merge: id: 0439994373e8de0fa5df68ff5ebf3248 source: viaf type: document nkc: mzk2003197598 nlilat: '000461920' term: De la Métherie, Jean-Claude, 1743-1817 version: 2013-07-01T14:07:50Z viafid: '79028885' --- _id: 043b7d941a7a7135bbcc5debcb8b5b22 bav: adv10057539 bne: xx1297861 bnf: '12318827' dnb: '117564737' key: BarrèrePierre1690-1755 lc: no90025574 merge: id: 043b7d941a7a7135bbcc5debcb8b5b22 source: viaf type: document term: Barrère, Pierre 1690-1755 version: 2013-07-01T14:07:50Z viafid: '73921885' --- _id: 043db4cd9a3e7b5860fd13b05c676296 key: ChailanFortuné1801-1840 merge: id: 043db4cd9a3e7b5860fd13b05c676296 source: viaf type: document term: Chailan, Fortuné, 1801-1840 version: 2013-07-01T14:07:50Z viafid: '201123204' --- _id: 045e864a7a829f1e7dd894e49d64cf72 bav: adv10221407 bnf: '12239778' dnb: '119184214' key: AffòIreneo1741-1797 lc: n84158867 merge: id: 045e864a7a829f1e7dd894e49d64cf72 source: viaf type: document nlilat: '000463482' term: Affò, Ireneo, 1741-1797 version: 2013-07-01T14:07:50Z viafid: '41894199' --- _id: 0461fba0848017c50a46d2ef2a64afdf key: HenzeClémentb1880 lc: no93006271 merge: id: 0461fba0848017c50a46d2ef2a64afdf source: viaf type: document term: Henze, Clément, b. 1880 version: 2013-07-01T14:07:50Z viafid: '6962579' --- _id: 0462acc7f04769400aab09059514c4d7 bav: adv10993049 bne: xx963717 bnf: '13578080' dnb: '129966118' key: DeNavarreteMartínFernández1765-1844 lc: n84112358 merge: id: 0462acc7f04769400aab09059514c4d7 source: viaf type: document nkc: jx20061114001 nla: '000035965107' nlilat: '000462196' ptbnp: '31286' term: De Navarrete, Martín Fernández, 1765-1844 version: 2013-07-01T14:07:50Z viafid: '37085577' --- _id: 046f52476a5a3e2866eb848b20594f21 bav: adv11542586 bne: xx1145774 bnf: '11914085' dnb: 12102721x key: MâleÉmile1862-1954 lc: n50044319 merge: id: 046f52476a5a3e2866eb848b20594f21 source: viaf type: document nkc: jn19990005515 nla: '000035753249' nlilat: '000410677' ptbnp: '85932' term: Mâle, Émile, 1862-1954 version: 2013-07-01T14:07:50Z viafid: '22145190' --- _id: 048017763407c9d0feab8c35bc5766fc dnb: '102446709' key: CoindetJean-François1774-1834 lc: nr97031053 merge: id: 048017763407c9d0feab8c35bc5766fc source: viaf type: document nkc: nlk20000083861 term: Coindet, Jean-François, 1774-1834 version: 2013-07-01T14:07:50Z viafid: '32387488' --- _id: 0480d99ad06a21cda31aec42df022c82 bav: adv10140182 bnf: '10466367' key: CourtyAmédée1819-1886 lc: no2009088056 merge: id: 0480d99ad06a21cda31aec42df022c82 source: viaf type: document term: Courty, Amédée, 1819-1886 version: 2013-07-01T14:07:50Z viafid: '17212308' --- _id: 0489983008b30ffffd5411a765b47605 bav: adv11098073 bnf: '13474474' dnb: '138900612' key: GuyonJean-Casimir-Félix1831-1920 lc: no2008022904 merge: id: 0489983008b30ffffd5411a765b47605 source: viaf type: document nkc: nlk20000087298 nla: '000035748595' ptbnp: '1198036' term: Guyon, Jean-Casimir-Félix, 1831-1920 version: 2013-07-01T14:07:50Z viafid: '49372271' --- _id: 048b9e68a999f3d566e52a3b4daa644f bav: adv11312506 bnf: '12512071' dnb: '119856379' key: ValleriolaFrançois1504-1580 lc: n92072378 merge: id: 048b9e68a999f3d566e52a3b4daa644f source: viaf type: document nkc: nlk20010098015 ptbnp: '602168' term: Valleriola, François, 1504-1580 version: 2013-07-01T14:07:50Z viafid: '14878928' --- _id: 04906f3898b37f72357ed71ad2aff69a bnf: '12927451' dnb: '100270565' key: SanadonNoe͏̈lÉtienne1676-1733 merge: id: 04906f3898b37f72357ed71ad2aff69a source: viaf type: document term: Sanadon, Noe͏̈l Étienne, 1676-1733 version: 2013-07-01T14:07:50Z viafid: '14901377' --- _id: 049ecd672af06be8d79ecf89963a5381 bav: adv11042105 dnb: '100223133' key: NicolasPierre-François1743-1816 lc: n88038862 merge: id: 049ecd672af06be8d79ecf89963a5381 source: viaf type: document ptbnp: '1386078' term: Nicolas, Pierre-François, 1743-1816 version: 2013-07-01T14:07:50Z viafid: '49566096' --- _id: 04a63a1f25d0fc9cae5d6f54e41e8195 bnf: '14612965' dnb: '143943103' key: KampásNG1857-1932 lc: n2002046131 merge: id: 04a63a1f25d0fc9cae5d6f54e41e8195 source: viaf type: document term: Kampás, N. G., 1857-1932 version: 2013-07-01T14:07:50Z viafid: '7639616' --- _id: 04a878079e17522e532dc2144d4d2c59 bav: adv10003538 dnb: '118512404' key: BögliAlfred1912-1998 lc: n80060572 merge: id: 04a878079e17522e532dc2144d4d2c59 source: viaf type: document nla: '000035019885' term: Bögli, Alfred 1912-1998 version: 2013-07-01T14:07:50Z viafid: '74643858' --- _id: 04acfe101d9233c64beae5b655320ce9 bne: xx1141963 bnf: '11999476' dnb: '118746014' key: BelovVasilijIvanovič1932-2012 lc: n83223060 merge: id: 04acfe101d9233c64beae5b655320ce9 source: viaf type: document nkc: ola2002152506 nla: '000035439635' nlicyr: '000148162' ptbnp: '1199281' selibr: '177224' term: Belov, Vasilij Ivanovič, 1932-2012 version: 2013-07-01T14:07:50Z viafid: '109315473' --- _id: 04ad72fe439952abdc8313be37e7fcb1 dnb: '116776951' key: CzermákJohannNepomuk1828-1873 lc: nr2001006548 merge: id: 04ad72fe439952abdc8313be37e7fcb1 source: viaf type: document nkc: jx20110128004 nlilat: '000541882' term: Czermák, Johann Nepomuk 1828-1873 version: 2013-07-01T14:07:50Z viafid: '54908970' --- _id: 04af27814280743e92f89aeaa1cbc08a bnf: '12171182' dnb: '104747242' key: BelychGrigorijGeorgievič1906-1938 lc: n97030089 merge: id: 04af27814280743e92f89aeaa1cbc08a source: viaf type: document nkc: xx0019155 nlicyr: '000251614' term: Belych, Grigorij Georgievič, 1906-1938 version: 2013-07-01T14:07:50Z viafid: '165762447' --- _id: 04b126487a1fb32c45979480be877664 bne: xx1254712 dnb: '118968572' key: DullerÉduard1809-1853 lc: n84147603 merge: id: 04b126487a1fb32c45979480be877664 source: viaf type: document term: Duller, Éduard 1809-1853 version: 2013-07-01T14:07:50Z viafid: '15569672' --- _id: 04c42fa5aa718c75d0b58bc29012f229 bav: adv11208671 dnb: '159200881' key: SalváyPérezVicente1780-1849 lc: n83219748 merge: id: 04c42fa5aa718c75d0b58bc29012f229 source: viaf type: document nlilat: '000457441' ptbnp: '265529' term: Salvá y Pérez, Vicente, 1780-1849 version: 2013-07-01T14:07:50Z viafid: '100211129' --- _id: 04c6352b06d0feb132cedd13fe3db9d2 dnb: '124682057' key: RömppHermann1901-1964 lc: n83828742 merge: id: 04c6352b06d0feb132cedd13fe3db9d2 source: viaf type: document nkc: nlk20020118625 nlilat: '000458924' term: Römpp, Hermann, 1901-1964 version: 2013-07-01T14:07:50Z viafid: '28010996' --- _id: 04cd7fd605be05142be248a78266e7ca dnb: '117611484' key: MüllerTheodor1816-1881 lc: nr95008187 merge: id: 04cd7fd605be05142be248a78266e7ca source: viaf type: document nlilat: '000097311' term: Müller, Theodor, 1816-1881 version: 2013-07-01T14:07:50Z viafid: '67247507' --- _id: 04e18be2ba3bd4eae200880a29df776f bne: xx886025 bnf: '12095419' dnb: '123147646' key: ChalupeckýJindřich1910-1990 lc: n85021133 merge: id: 04e18be2ba3bd4eae200880a29df776f source: viaf type: document nkc: jk01050063 nlilat: '000030540' term: Chalupecký, Jindřich, 1910-1990 version: 2013-07-01T14:07:50Z viafid: '14798286' --- _id: 04e1f1b48e7a2f70daf85c330545ce0b bnf: '11894928' dnb: '118941720' key: DeCamelatMiquèu1871-1962 lc: n88647054 merge: id: 04e1f1b48e7a2f70daf85c330545ce0b source: viaf type: document term: De Camelat, Miquèu, 1871-1962 version: 2013-07-01T14:07:50Z viafid: '36915704' --- _id: 04e33195d548578281576989a2beca53 dnb: '143676598' key: GoudriaanAdrianusFrançois1768-1829 lc: no2009122052 merge: id: 04e33195d548578281576989a2beca53 source: viaf type: document term: Goudriaan, Adrianus François 1768-1829 version: 2013-07-01T14:07:50Z viafid: '96826309' --- _id: 04ecfc9e517cf9be9404fe3b22e1e7e3 bav: adv11113518 bne: xx1108074 bnf: '11913700' dnb: '118575589' egaxa: vtls000991871 jpg: '500222976' key: LyotardJean-François1924-1998 lc: n50037407 merge: id: 04ecfc9e517cf9be9404fe3b22e1e7e3 source: viaf type: document nkc: jn20000603839 nla: '000035317436' nlilat: '000086756' ptbnp: '93770' selibr: '250200' term: Lyotard, Jean-François, 1924-1998 version: 2013-07-01T14:07:50Z viafid: '108393539' --- _id: 04f124d14ddb7c102d2e1ecf43374ba4 bnf: '15868340' dnb: '119450305' key: JurčičJosip1844-1881 lc: n84065262 merge: id: 04f124d14ddb7c102d2e1ecf43374ba4 source: viaf type: document nkc: js20020805188 term: Jurčič, Josip, 1844-1881 version: 2013-07-01T14:07:50Z viafid: '54483391' --- _id: 04f7b06776c01709ec4b03011a72d1e3 bav: adv10230780 bnf: '11907907' dnb: '119023970' key: HucÉvaristeRégis1813-1860 lc: n81149691 merge: id: 04f7b06776c01709ec4b03011a72d1e3 source: viaf type: document nkc: xx0004995 nla: '000035828147' nlilat: '000441520' ptbnp: '1020891' selibr: '61990' term: Huc, Évariste Régis, 1813-1860 version: 2013-07-01T14:07:50Z viafid: '36919766' --- _id: 04f87cd63d73d2c1a2111deca3c181f1 key: MolloySylvia1938-|EnbrevecárcelEnglish lc: n88231137 merge: id: 04f87cd63d73d2c1a2111deca3c181f1 source: viaf type: document term: Molloy, Sylvia, 1938- | En breve cárcel. English version: 2013-07-01T14:07:50Z viafid: '174643273' --- _id: 05087616e17f9e97be581e129aa94197 bnf: '12815184' dnb: '131656783' key: HoüardDavid1725-1802 lc: no90005628 merge: id: 05087616e17f9e97be581e129aa94197 source: viaf type: document ptbnp: '147714' term: Hoüard, David, 1725-1802 version: 2013-07-01T14:07:50Z viafid: '17349649' --- _id: 050a9b1b7540d2dee4d68c3a04538905 bnf: '13736638' key: IbnṬawqAḥmadibnMuḥammad1430or31-1509or10 lc: nr2001023499 merge: id: 050a9b1b7540d2dee4d68c3a04538905 source: viaf type: document nliara: '000159322' term: Ibn Ṭawq, Aḥmad ibn Muḥammad, 1430 or 31-1509 or 10 version: 2013-07-01T14:07:50Z viafid: '88074238' --- _id: 050f2f336a035b587c45e6b6620f66c2 bav: adv10179764 bnf: '12678464' dnb: '118528378' jpg: '500207175' key: DvořákMax1874-1921 lc: n81032850 merge: id: 050f2f336a035b587c45e6b6620f66c2 source: viaf type: document nkc: jk01030174 nla: '000035766995' nlilat: '000435434' term: Dvořák, Max, 1874-1921 version: 2013-07-01T14:07:50Z viafid: '69052687' --- _id: 0517d5a829f7dbf5ead1b155d2065caa bnf: '11910134' dnb: '118567306' jpg: '500202621' key: KručenychAleksej1886-1968 lc: n84047047 merge: id: 0517d5a829f7dbf5ead1b155d2065caa source: viaf type: document nkc: jn20000603575 nlicyr: '000152535' selibr: '357043' term: Kručenych, Aleksej, 1886-1968 version: 2013-07-01T14:07:50Z viafid: '71393129' --- _id: 052ad322c9255c4a341361b79afced42 bav: adv10249073 bne: xx924064 bnf: '12028378' dnb: '118695010' key: GiménezCaballeroErnesto1899-1988 lc: n80010160 merge: id: 052ad322c9255c4a341361b79afced42 source: viaf type: document nla: '000035125741' term: Giménez Caballero, Ernesto 1899-1988 version: 2013-07-01T14:07:50Z viafid: '113723156' --- _id: 052b92513e1a3533501e26a0dbdea33e bnf: '12164745' dnb: '155208411' key: SöderbergTom1900-1991 lc: n79043740 merge: id: 052b92513e1a3533501e26a0dbdea33e source: viaf type: document selibr: '288806' term: Söderberg, Tom, 1900-1991 version: 2013-07-01T14:07:50Z viafid: '119429326' --- _id: 053881bcf789fd21ae61b77acbb79b14 bav: adv11200039 dnb: '117425478' key: TroyonFrédéric1815?-1866? lc: nb2003070432 merge: id: 053881bcf789fd21ae61b77acbb79b14 source: viaf type: document nla: '000035077854' ptbnp: '275324' term: Troyon, Frédéric, 1815?-1866? version: 2013-07-01T14:07:50Z viafid: '13084544' --- _id: 0539855ff894e2349d851735a5371a4c bav: adv11189653 key: RüterAdolfJohannCord1907-1965 lc: no2010004672 merge: id: 0539855ff894e2349d851735a5371a4c source: viaf type: document nla: '000035483161' term: Rüter, Adolf Johann Cord, 1907-1965 version: 2013-07-01T14:07:50Z viafid: '89435404' --- _id: 053c90b753c5da9045e9ad53a5b039b9 bnf: '10602999' dnb: 11752350x key: HervéGeorges1855-1932 lc: n2001061601 merge: id: 053c90b753c5da9045e9ad53a5b039b9 source: viaf type: document term: Hervé, Georges, 1855-1932 version: 2013-07-01T14:07:50Z viafid: '62328807' --- _id: 0545cffa55ff49d2ecfc8b09554afacd bnf: '12014522' dnb: '170427684' key: StrmiskaZdeněk1925-2009 lc: n84128652 merge: id: 0545cffa55ff49d2ecfc8b09554afacd source: viaf type: document nkc: jk01121433 term: Strmiska, Zdeněk, 1925-2009 version: 2013-07-01T14:07:50Z viafid: '109307221' --- _id: 0557fcc095ac131dfd8a7a3b25362260 dnb: '124679935' key: PalménJohanPhilip1811-1896 merge: id: 0557fcc095ac131dfd8a7a3b25362260 source: viaf type: document selibr: '331820' term: Palmén, Johan Philip, 1811-1896 version: 2013-07-01T14:07:50Z viafid: '42777810' --- _id: 0562fe0f7b923398c7e970c450c014b9 dnb: '100763146' key: Pâris-DuverneyJoseph1684-1770 lc: n86113539 merge: id: 0562fe0f7b923398c7e970c450c014b9 source: viaf type: document term: Pâris-Duverney, Joseph, 1684-1770 version: 2013-07-01T14:07:50Z viafid: '49577307' --- _id: 056c37653c4613fd4c15731200ec47bc key: PiéryMarius1873-1957 merge: id: 056c37653c4613fd4c15731200ec47bc source: viaf type: document nkc: kv2010540375 term: Piéry, Marius, 1873-1957 version: 2013-07-01T14:07:50Z viafid: '106940966' --- _id: 056f946753c3750ce74f67c785e292cf bav: adv10010403 dnb: '100112366' key: DucampThéodoreJoseph1793-1823 lc: nr91009615 merge: id: 056f946753c3750ce74f67c785e292cf source: viaf type: document term: Ducamp, Théodore Joseph, 1793-1823 version: 2013-07-01T14:07:50Z viafid: '51543396' --- _id: 056fe57dfe05468bd2ae1359ac28050c dnb: '104241616' key: RouilléPierre-Julien1681-1740 merge: id: 056fe57dfe05468bd2ae1359ac28050c source: viaf type: document nkc: mzk2009532667 term: Rouillé, Pierre-Julien, 1681-1740 version: 2013-07-01T14:07:50Z viafid: '44736092' --- _id: 05758033ac5d994eded3de27f758483f bnf: '12686571' dnb: '120325098' key: KuripešićBenediktfl1530 lc: n86853205 merge: id: 05758033ac5d994eded3de27f758483f source: viaf type: document selibr: '342338' term: Kuripešić, Benedikt, fl. 1530 version: 2013-07-01T14:07:50Z viafid: '121829365' --- _id: 057c9fe9600afaa6df596f9be1493d1b bnf: '14416145' dnb: '122403908' key: BucharaevRavilʹRaisovič1951-VollstaendigerName lc: n79027451 merge: id: 057c9fe9600afaa6df596f9be1493d1b source: viaf type: document nkc: jx20090915002 term: Bucharaev, Ravilʹ Raisovič, 1951-, Vollstaendiger Name version: 2013-07-01T14:07:50Z viafid: '116936895' --- _id: 057fa630e1e00e7d05294a94b521bb96 key: BéraudAntony1794?-1860 merge: id: 057fa630e1e00e7d05294a94b521bb96 source: viaf type: document nla: '000035556824' term: Béraud, Antony, 1794?-1860 version: 2013-07-01T14:07:50Z viafid: '273620825' --- _id: 0581ad865d919b5884c1e358f3e11b2c bne: xx835835 bnf: '11891178' dnb: '118508873' key: BenedettiMário1920-2009 lc: n50007687 merge: id: 0581ad865d919b5884c1e358f3e11b2c source: viaf type: document nkc: jo20000082634 nla: '000035156402' nlilat: '000018413' ptbnp: '45871' selibr: '232832' term: Benedetti, Mário, 1920-2009 version: 2013-07-01T14:07:50Z viafid: '56585930' --- _id: 058c19623a8f0ecdb6615b89db43a50c key: BøyesenLarsRostrup1915-1996 lc: n83000840 merge: id: 058c19623a8f0ecdb6615b89db43a50c source: viaf type: document nla: '000036462753' selibr: '253593' term: Bøyesen, Lars Rostrup, 1915-1996 version: 2013-07-01T14:07:50Z viafid: '77681165' --- _id: 058ddc900602a804721042951a576d3e dnb: '117611425' key: MüllerSophus1846-1934 lc: n85126271 merge: id: 058ddc900602a804721042951a576d3e source: viaf type: document nkc: xx0013446 nla: '000035287723' selibr: '273488' term: Müller, Sophus, 1846-1934 version: 2013-07-01T14:07:50Z viafid: '74634692' --- _id: 058f7f33edeeec529a7e56b98852efad bnf: '13007890' dnb: '107367459' key: SchazmannPaul-Émile1902-1978 lc: n85804980 merge: id: 058f7f33edeeec529a7e56b98852efad source: viaf type: document term: Schazmann, Paul-Émile 1902-1978 version: 2013-07-01T14:07:50Z viafid: '25116970' --- _id: 0590e1ff5d2e281aecdbe39a91978b21 bnf: '11914583' dnb: '124653618' jpg: '500025546' key: MarillierClément-Pierre1740-1808 lc: n86024578 merge: id: 0590e1ff5d2e281aecdbe39a91978b21 source: viaf type: document nkc: jo2003192727 nlilat: '000479801' ptbnp: '109210' term: Marillier, Clément-Pierre, 1740-1808 version: 2013-07-01T14:07:50Z viafid: '54151134' --- _id: 0598cc11455dca3af08bfc49b4d5c06b dnb: '156295261' key: Dobrovol'skijVladimirAnatol'jevič1918-2003 merge: id: 0598cc11455dca3af08bfc49b4d5c06b source: viaf type: document nkc: js2005303599 term: Dobrovol'skij, Vladimir Anatol'jevič, 1918-2003 version: 2013-07-01T14:07:50Z viafid: '84243925' --- _id: 059d8c7f7f68e2142a01ff293c08e86d bav: adv10974502 bnf: '12283551' dnb: '118785281' key: MünsterbergHugo1863-1916 lc: n78094053 merge: id: 059d8c7f7f68e2142a01ff293c08e86d source: viaf type: document nkc: jo20000082500 nla: '000035368864' nlicyr: '000154128' nlilat: '000097394' selibr: '195080' term: Münsterberg, Hugo, 1863-1916 version: 2013-07-01T14:07:50Z viafid: '12370549' --- _id: 05a1ad199447e7c1e449462c1579d559 bav: adv10045031 bne: xx937482 bnf: '12194364' dnb: '116543434' key: ClémentFélix1822-1885 lc: nr97044067 merge: id: 05a1ad199447e7c1e449462c1579d559 source: viaf type: document nkc: xx0153384 nlilat: '000032468' ptbnp: '94158' term: Clément, Félix, 1822-1885 version: 2013-07-01T14:07:50Z viafid: '44344471' --- _id: 05c24a54ad3bb52213c5eeeb9ced6576 bnf: '12198402' dnb: '117610631' key: JacquesAmédéeFlorent(1813-1865) merge: id: 05c24a54ad3bb52213c5eeeb9ced6576 source: viaf type: document term: Jacques, Amédée Florent (1813-1865) version: 2013-07-01T14:07:50Z viafid: '51736445' --- _id: 05c35b9bcdfc2047fcd6f18f9b3a8cd9 bnf: '13614255' dnb: '124706576' key: RodokanakēsPlatōn1883-1919 lc: n88039792 merge: id: 05c35b9bcdfc2047fcd6f18f9b3a8cd9 source: viaf type: document nla: '000035644009' term: Rodokanakēs, Platōn, 1883-1919 version: 2013-07-01T14:07:50Z viafid: '2645998' --- _id: 05c37a440591de5d1e3f8c2e8d0457dc bnf: '13900202' dnb: '122173376' key: SvešnikovAleksandrVasil'evič1890-1980 lc: no92008797 merge: id: 05c37a440591de5d1e3f8c2e8d0457dc source: viaf type: document nkc: mzk2010598102 term: Svešnikov, Aleksandr Vasil'evič, 1890-1980 version: 2013-07-01T14:07:50Z viafid: '3347046' --- _id: 05c3fc9fd5d3b3e5fd907a5acfd90943 bav: adv10006903 bne: xx1029941 bnf: '11944884' dnb: '119006944' jpg: '500021067' key: SilvestreIsraël1621-1691 lc: n80122940 merge: id: 05c3fc9fd5d3b3e5fd907a5acfd90943 source: viaf type: document ptbnp: '220895' selibr: '208389' term: Silvestre, Israël, 1621-1691 version: 2013-07-01T14:07:50Z viafid: '66475460' --- _id: 05c72c00a134d1495b66eee4afc15a34 bnf: '13417947' dnb: '142840548' key: François-FranckCharles-Émile1849-1921 lc: no2010149793 merge: id: 05c72c00a134d1495b66eee4afc15a34 source: viaf type: document term: François-Franck, Charles-Émile, 1849-1921 version: 2013-07-01T14:07:50Z viafid: '100306331' --- _id: 05c959e54bbdf650f997c902b0846792 bnf: '16254580' dnb: '119345250' key: İnönüErdal1926-2007 lc: n83827751 merge: id: 05c959e54bbdf650f997c902b0846792 source: viaf type: document term: İnönü, Erdal 1926-2007 version: 2013-07-01T14:07:50Z viafid: '22949166' --- _id: 05ce66441eb5a08942c65043f203fae3 dnb: '942203305' key: DewarratMarie-Claire1949-|Carême merge: id: 05ce66441eb5a08942c65043f203fae3 source: viaf type: document term: Dewarrat, Marie-Claire 1949- | Carême version: 2013-07-01T14:07:50Z viafid: '213994337' --- _id: 05d0e7932b99f33bbc0513f988a9f7b2 dnb: '116663170' key: LampeFélix1868-1946 lc: n91003138 merge: id: 05d0e7932b99f33bbc0513f988a9f7b2 source: viaf type: document nkc: xx0103929 nlilat: '000504783' term: Lampe, Félix, 1868-1946 version: 2013-07-01T14:07:50Z viafid: '89210033' --- _id: 05d16511c8e130f180b3b0565a2741cf bnf: '12284756' dnb: 13161598x key: BouvierEugène-Louis(1856-1944) lc: n81127111 merge: id: 05d16511c8e130f180b3b0565a2741cf source: viaf type: document nla: '000036554819' nlilat: '000440347' term: Bouvier, Eugène-Louis (1856-1944) version: 2013-07-01T14:07:50Z viafid: '2534337' --- _id: 05d941f1d3d61dfe8de9a0dccfb3cbbb bav: adv11167022 bnf: '16567409' dnb: '104306335' key: SarlandièreJean-Baptiste1787-1838 lc: nr98019480 merge: id: 05d941f1d3d61dfe8de9a0dccfb3cbbb source: viaf type: document term: Sarlandière, Jean-Baptiste, 1787-1838 version: 2013-07-01T14:07:50Z viafid: '74286485' --- _id: 05dfcb4aa84b067168e5dc11659455b6 bav: adv10146162 bnf: '13479011' dnb: '100495311' key: HamonièreGb1789 lc: no97012776 merge: id: 05dfcb4aa84b067168e5dc11659455b6 source: viaf type: document nlilat: '000530739' ptbnp: '169769' term: Hamonière, G., b. 1789 version: 2013-07-01T14:07:50Z viafid: '88849653' --- _id: 05e842c4e471293dcc10cc8a81943e5d bav: adv10075439 bne: xx1052465 bnf: '11906722' dnb: '118919660' egaxa: vtls001285557 key: HalévyLudovic1834-1908 lc: n50017872 merge: id: 05e842c4e471293dcc10cc8a81943e5d source: viaf type: document nkc: jn19990003087 nla: '000035162657' nlilat: '000059373' ptbnp: '55875' selibr: '59004' term: Halévy, Ludovic, 1834-1908 version: 2013-07-01T14:07:50Z viafid: '64006915' --- _id: 05ed3c129ca6b131fa5362410068cb0a bnf: '13055646' dnb: '121788210' key: PommierAmédée1804-1877 lc: nr2005030141 merge: id: 05ed3c129ca6b131fa5362410068cb0a source: viaf type: document ptbnp: '125001' term: Pommier, Amédée, 1804-1877 version: 2013-07-01T14:07:50Z viafid: '49359340' --- _id: 05ede19b60a708516bda152edfc27d5a dnb: '101015526' key: SudreThéodore1718-1795 lc: no2007056275 merge: id: 05ede19b60a708516bda152edfc27d5a source: viaf type: document term: Sudre, Théodore, 1718-1795 version: 2013-07-01T14:07:50Z viafid: '29309422' --- _id: 05f10c464f25789b07e6b4a93c357b11 bne: xx887177 bnf: '11908353' dnb: '118811215' key: JabèsEdmond1912-1991 lc: n80064201 merge: id: 05f10c464f25789b07e6b4a93c357b11 source: viaf type: document nkc: jn20000700787 nlilat: '000428803' ptbnp: '35297' selibr: '207703' term: Jabès, Edmond, 1912-1991 version: 2013-07-01T14:07:50Z viafid: '76317331' --- _id: 05f8570478b25de8cc8d951afbe0fede bav: adv11637906 bne: xx1008983 dnb: '119262304' jpg: '500009714' key: BarragánLuis1902-1988 lc: n82144420 merge: id: 05f8570478b25de8cc8d951afbe0fede source: viaf type: document nkc: jx20100106001 nla: '000036569745' term: Barragán, Luis, 1902-1988 version: 2013-07-01T14:07:50Z viafid: '22947293' --- _id: 05ff888ce9fe83516be75d0a30da480c dnb: '104087897' key: EnschedéJoannes1708-1780 merge: id: 05ff888ce9fe83516be75d0a30da480c source: viaf type: document term: Enschedé, Joannes 1708-1780 version: 2013-07-01T14:07:50Z viafid: '22568156' --- _id: 0603a772eaf1607a68f4e71d83b25e7a bav: adv10159068 bnf: '12327707' dnb: '101699425' key: HaigneréDaniel1824-1893 lc: n86142430 merge: id: 0603a772eaf1607a68f4e71d83b25e7a source: viaf type: document nlilat: '000483090' term: Haigneré, Daniel, 1824-1893 version: 2013-07-01T14:07:50Z viafid: '100287388' --- _id: 060d2fab1d446583d38ec2cca02a5121 bav: adv12057691 bnf: '14560951' dnb: '118885855' egaxa: vtls001520919 key: IbnḤanbalAḥmadibnMuḥammad780-855 lc: n82120532 merge: id: 060d2fab1d446583d38ec2cca02a5121 source: viaf type: document nla: '000036506257' nliara: '000159542' nlilat: '000066400' selibr: '191232' term: Ibn Ḥanbal, Aḥmad ibn Muḥammad, 780-855 version: 2013-07-01T14:07:50Z viafid: '90072121' --- _id: 062d341d00721973497081061b2d717f key: BeckerJörg1946-|InformationstechnologieinderDrittenWeltSpanish lc: n92118505 merge: id: 062d341d00721973497081061b2d717f source: viaf type: document term: Becker, Jörg, 1946- | Informationstechnologie in der Dritten Welt. Spanish version: 2013-07-01T14:07:50Z viafid: '184363174' --- _id: 0639300b20d95253d5fcccb6e86b451d dnb: '117616443' key: BörnsteinR1852-1913 lc: n81114103 merge: id: 0639300b20d95253d5fcccb6e86b451d source: viaf type: document nkc: jn20011018021 nla: '000035020398' nlilat: '000439755' term: Börnstein, R., 1852-1913 version: 2013-07-01T14:07:50Z viafid: '45084919' --- _id: 06445f6f14737794c92dfdecaca526a5 dnb: '100466613' key: DuWésGilesd1535 lc: nr93003317 merge: id: 06445f6f14737794c92dfdecaca526a5 source: viaf type: document nlilat: '000526977' term: Du Wés, Giles, d. 1535 version: 2013-07-01T14:07:50Z viafid: '56958313' --- _id: 064a3bcdcd373f3d69a3d7c11299ad01 bav: adv10039822 bne: xx1509955 bnf: '14411246' dnb: '172865581' key: BurggraeveAdolphe1806-1902médecin lc: n87143921 merge: id: 064a3bcdcd373f3d69a3d7c11299ad01 source: viaf type: document nkc: nlk20010095088 nlilat: '000487154' ptbnp: '1170490' swnl: vtls001845815 term: Burggraeve, Adolphe 1806-1902 médecin version: 2013-07-01T14:07:50Z viafid: '22356578' --- _id: 064c8f328a561cf6b785d5fe0075f34b bne: xx949471 bnf: '12153434' dnb: '118639250' key: GladkovFedorVasil'evič1883-1958 lc: n83033940 merge: id: 064c8f328a561cf6b785d5fe0075f34b source: viaf type: document nkc: jn20000601841 nla: '000035494819' nlicyr: '000149906' nlilat: '000053687' ptbnp: '1184722' selibr: '188306' term: Gladkov, Fedor Vasil'evič, 1883-1958 version: 2013-07-01T14:07:50Z viafid: '14808548' --- _id: 064fcdb7d1de507dd756a9557de520c0 bav: adv11363714 bnf: '12039796' dnb: '104359129' key: BenoîtAndré1919-1999 lc: n87814894 merge: id: 064fcdb7d1de507dd756a9557de520c0 source: viaf type: document nlilat: '000275776' term: Benoît, André, 1919-1999 version: 2013-07-01T14:07:50Z viafid: '91254540' --- _id: 06591d91c150c92af9835cf50d2c62fb bnf: '12124245' dnb: '121628965' key: BjurströmCarl-Gustaf(1919-2001) lc: n86048828 merge: id: 06591d91c150c92af9835cf50d2c62fb source: viaf type: document nkc: jn20030707002 selibr: '178463' term: Bjurström, Carl-Gustaf (1919-2001) version: 2013-07-01T14:07:50Z viafid: '111662582' --- _id: 065c50ea12cb2d80a999478d239a9ab8 bav: adv10231647 bnf: '12563614' dnb: '174299559' jpg: '500056684' key: BellicardJérôme-Charles1726-1786 lc: nr90023327 merge: id: 065c50ea12cb2d80a999478d239a9ab8 source: viaf type: document term: Bellicard, Jérôme-Charles, 1726-1786 version: 2013-07-01T14:07:50Z viafid: '19795286' --- _id: 066563a6e5eed341f77180a4a21741f9 bav: adv12218451 bnf: '13320597' dnb: 12108972x key: VendômeCésardeBourbon1594-1665ducde lc: n87921604 merge: id: 066563a6e5eed341f77180a4a21741f9 source: viaf type: document term: Vendôme, César de Bourbon, 1594-1665, duc de version: 2013-07-01T14:07:50Z viafid: '51834768' --- _id: 0669f8ea262f3b8052985c7bc2e67ec3 bnf: '10848291' key: CondéBruno1920-2004 merge: id: 0669f8ea262f3b8052985c7bc2e67ec3 source: viaf type: document term: Condé, Bruno, 1920-2004 version: 2013-07-01T14:07:50Z viafid: '197153509' --- _id: 066e22c971053b945164b1c3c0211929 bav: adv10001382 bnf: '12594274' dnb: '131424092' key: CadierLéon1862-1889 lc: n81098089 merge: id: 066e22c971053b945164b1c3c0211929 source: viaf type: document nlilat: '000278813' term: Cadier, Léon, 1862-1889 version: 2013-07-01T14:07:50Z viafid: '17341513' --- _id: 066fa0f96497ef25024fb2ce97b50fdf key: PopescuDumitruRadu1935-|Plays(ScrisulRomânesc(Firm)) lc: no2011145982 merge: id: 066fa0f96497ef25024fb2ce97b50fdf source: viaf type: document term: Popescu, Dumitru Radu, 1935- | Plays (Scrisul Românesc (Firm)) version: 2013-07-01T14:07:50Z viafid: '182579379' --- _id: 0671438f6a218e762d6c1af41e376cd8 key: RíosRuizManuel1934-|PoemsSelections lc: n90675555 merge: id: 0671438f6a218e762d6c1af41e376cd8 source: viaf type: document term: Ríos Ruiz, Manuel, 1934- | Poems. Selections version: 2013-07-01T14:07:50Z viafid: '175860653' --- _id: 0679f0944f5a75db66565e7cbd4bb36e bnf: '12417587' dnb: '119194449' key: SlüterJoachim1490?-1532 lc: nr88003093 merge: id: 0679f0944f5a75db66565e7cbd4bb36e source: viaf type: document term: Slüter, Joachim 1490?-1532 version: 2013-07-01T14:07:50Z viafid: '73941663' --- _id: 067cc02a3ea7a2aeb2076b9146b12c73 bnf: '13206058' dnb: '138434794' key: TzitzéicaGeorges1873-1939 merge: id: 067cc02a3ea7a2aeb2076b9146b12c73 source: viaf type: document term: Tzitzéica, Georges, 1873-1939 version: 2013-07-01T14:07:50Z viafid: '22285232' --- _id: 067f8a57622cb14e2b37f6879ec652f1 bnf: '12302154' dnb: '118928139' key: BažovPavelPetrovič1879-1950 lc: n82276231 merge: id: 067f8a57622cb14e2b37f6879ec652f1 source: viaf type: document nkc: jn20000600676 nla: '000036240777' term: Bažov, Pavel Petrovič, 1879-1950 version: 2013-07-01T14:07:50Z viafid: '61747706' --- _id: 0687cf0da966e787af9a417f771272af bnf: '10477669' key: MarjolinRené1812-1895 merge: id: 0687cf0da966e787af9a417f771272af source: viaf type: document term: Marjolin, René, 1812-1895 version: 2013-07-01T14:07:50Z viafid: '100262560' --- _id: 069004114bebe77076f82823a45bc54c bav: adv10001814 bne: xx1000933 dnb: '118778072' jpg: '500348408' key: KrügerFritzb1889 lc: n93098114 merge: id: 069004114bebe77076f82823a45bc54c source: viaf type: document term: Krüger, Fritz, b. 1889 version: 2013-07-01T14:07:50Z viafid: '20476475' --- _id: 0690c1862a77f156369675346ef98f96 bnf: '12528830' dnb: '128745398' key: MulotFrançois-Valentin1749-1804 lc: n88277093 merge: id: 0690c1862a77f156369675346ef98f96 source: viaf type: document nla: '000049287147' nlilat: '000495994' term: Mulot, François-Valentin, 1749-1804 version: 2013-07-01T14:07:50Z viafid: '5041159' --- _id: 0693c5f038b384e677c5e77e154c2530 bnf: '12718516' dnb: '100114245' key: DuboisLéon-Jean-Joseph1780-1846 merge: id: 0693c5f038b384e677c5e77e154c2530 source: viaf type: document term: Dubois, Léon-Jean-Joseph, 1780-1846 version: 2013-07-01T14:07:50Z viafid: '14896063' --- _id: 069f1bb9058b863e69f380b2fa393d5e dnb: '118154346' key: MüllerKlaus-Jürgen1930-2011 merge: id: 069f1bb9058b863e69f380b2fa393d5e source: viaf type: document nkc: jx20110607011 term: Müller, Klaus-Jürgen, 1930-2011 version: 2013-07-01T14:07:50Z viafid: '193716647' --- _id: 06a8355a8f1d760ee3d0eef8733a5c81 bnf: '12029894' dnb: '120151804' key: WażykAdam1905-1982 lc: n83019835 merge: id: 06a8355a8f1d760ee3d0eef8733a5c81 source: viaf type: document nkc: ola2003198070 nlilat: '000452096' term: Ważyk, Adam, 1905-1982 version: 2013-07-01T14:07:50Z viafid: '54162839' --- _id: 06af10eff23a8b0676a64a7599915cc8 bnf: '12459996' dnb: '171979176' key: BéraudPaul-Émilien1751-1836 lc: n84001362 merge: id: 06af10eff23a8b0676a64a7599915cc8 source: viaf type: document term: Béraud, Paul-Émilien, 1751-1836 version: 2013-07-01T14:07:50Z viafid: '69027028' --- _id: 06b41cdb86d2d8d686541df0311b827b bav: adv10191773 bnf: '12898573' dnb: '117186058' jpg: '500061003' key: MuñozAntonio1884-1960 lc: n85101793 merge: id: 06b41cdb86d2d8d686541df0311b827b source: viaf type: document nkc: xx0097292 nlilat: '000469506' term: Muñoz, Antonio, 1884-1960 version: 2013-07-01T14:07:50Z viafid: '140062' --- _id: 06b6e21b0c20cc0e2f9150570cf73ce2 bnf: '12762896' dnb: '119421607' jpg: '500226038' key: DeMaréEricSamuel(1910-2002) lc: n50040408 merge: id: 06b6e21b0c20cc0e2f9150570cf73ce2 source: viaf type: document nla: '000036500020' nlilat: '000037760' term: De Maré, Eric Samuel (1910-2002) version: 2013-07-01T14:07:50Z viafid: '97764159' --- _id: 06be3bc85bb78e50239873e37aae4573 bnf: '12023715' dnb: '102367817' key: HorálekKarel1908-1992 lc: n80138924 merge: id: 06be3bc85bb78e50239873e37aae4573 source: viaf type: document nkc: jk01042148 term: Horálek, Karel, 1908-1992 version: 2013-07-01T14:07:50Z viafid: '17236384' --- _id: 06c16ad77d3b5db8889a3045f51b7371 bnf: '10544471' dnb: '172988926' key: CalletJean-François1744-1799Mathématicien merge: id: 06c16ad77d3b5db8889a3045f51b7371 source: viaf type: document nkc: mzk2010564361 ptbnp: '913753' term: Callet, Jean-François, 1744-1799, Mathématicien version: 2013-07-01T14:07:50Z viafid: '232873357' --- _id: 06c1745c811e98ea73a860675bc41719 bav: adv10231930 bnf: '10721511' key: AndréMichel1803-1878 lc: n85305068 merge: id: 06c1745c811e98ea73a860675bc41719 source: viaf type: document nla: '000035602103' term: André, Michel, 1803-1878 version: 2013-07-01T14:07:50Z viafid: '55605061' --- _id: 06c1a0e3f042ce5c336789ac550baf29 dnb: 12297221x key: PleščeevSergejIvanovič1752-1802 lc: no91027760 merge: id: 06c1a0e3f042ce5c336789ac550baf29 source: viaf type: document ptbnp: '207043' term: Pleščeev, Sergej Ivanovič, 1752-1802 version: 2013-07-01T14:07:50Z viafid: '67361637' --- _id: 06cf451ff38a7c1653f5a5f3b41265ac key: HoffmannGretl1925-|DekorativetürenEnglish&German lc: no2011126833 merge: id: 06cf451ff38a7c1653f5a5f3b41265ac source: viaf type: document nla: '000036364850' term: Hoffmann, Gretl, 1925- | Dekorative türen. English & German version: 2013-07-01T14:07:50Z viafid: '180143985' --- _id: 06d413fcbd39fdc70db8e1d3224181af bnf: '12017771' dnb: '118638300' key: ČernenkoKonstantinUstinovič1911-1985 lc: n79115293 merge: id: 06d413fcbd39fdc70db8e1d3224181af source: viaf type: document nkc: jn20000700349 nla: '000035781201' nlicyr: '000158452' ptbnp: '38023' selibr: '229818' term: Černenko, Konstantin Ustinovič, 1911-1985 version: 2013-07-01T14:07:50Z viafid: '27077285' --- _id: 06d7102b4e65cffa8be66b8cb182e32d bav: adv10258860 bne: xx837149 bnf: '13608608' dnb: '121603830' key: FitayColoméFidel1835-1918 lc: n2005041558 merge: id: 06d7102b4e65cffa8be66b8cb182e32d source: viaf type: document nlilat: '000550950' term: Fita y Colomé, Fidel, 1835-1918 version: 2013-07-01T14:07:50Z viafid: '89018496' --- _id: 06dd896ca27269ba2ea2f788a41a86d8 bne: xx916122 bnf: '12052333' dnb: 11885559x key: MejíaVallejoManuel1923-1998 lc: n80122793 merge: id: 06dd896ca27269ba2ea2f788a41a86d8 source: viaf type: document nkc: kup19990000064005 nlilat: '000431397' ptbnp: '265163' term: Mejía Vallejo, Manuel, 1923-1998 version: 2013-07-01T14:07:50Z viafid: '102370369' --- _id: 06e4d60284f5b4c25e5350286f446804 bav: adv11085166 bne: xx1411114 bnf: '11921295' dnb: '118788035' key: RaynouardFrançois-Just-Marie1761-1836 lc: n83041906 merge: id: 06e4d60284f5b4c25e5350286f446804 source: viaf type: document nkc: mzk2006323048 nlilat: '000452871' ptbnp: '57456' term: Raynouard, François-Just-Marie, 1761-1836 version: 2013-07-01T14:07:50Z viafid: '59088344' --- _id: 06eba25de6cfa6d132ee4be56fa93d03 bav: adv10136326 bnf: '15052887' dnb: '119559803' jpg: '500030709' key: GrabarʹIgorʹĖmmanuilovič1871-1960 lc: n81118316 merge: id: 06eba25de6cfa6d132ee4be56fa93d03 source: viaf type: document nkc: jn20000602226 nla: '000035846136' nlicyr: '000150164' selibr: '237916' term: Grabarʹ, Igorʹ Ėmmanuilovič, 1871-1960 version: 2013-07-01T14:07:50Z viafid: '106964268' --- _id: 06f0234e6a391afdc25605df0c29ffc0 bnf: '13475600' dnb: '102079056' key: Renaud'EliçagarayBernard1652-1719 lc: nr93033093 merge: id: 06f0234e6a391afdc25605df0c29ffc0 source: viaf type: document term: Renau d'Eliçagaray, Bernard, 1652-1719 version: 2013-07-01T14:07:50Z viafid: '69078990' --- _id: 06f5a795af4d5a07f91b01a4030dcf09 bnf: '11897473' dnb: '101290896' key: CompayréGabriel1843-1913 lc: n50031444 merge: id: 06f5a795af4d5a07f91b01a4030dcf09 source: viaf type: document nkc: mzk2003196114 nla: '000035030224' nlilat: '000407506' ptbnp: '147394' selibr: '359717' term: Compayré, Gabriel, 1843-1913 version: 2013-07-01T14:07:50Z viafid: '22140258' --- _id: 06feace3bae356739005c82dcf5f9169 key: YamadaShōji1963-|ZentoiunanoNihonMaruEnglish lc: no2008139072 merge: id: 06feace3bae356739005c82dcf5f9169 source: viaf type: document term: Yamada, Shōji, 1963- | Zen to iu na no Nihon Maru. English version: 2013-07-01T14:07:50Z viafid: '176079419' --- _id: 07012c7f391f17eec35571a4a43fdd59 bav: adv11204416 key: WaagéFrederickOswin1906-1985 lc: no2010129722 merge: id: 07012c7f391f17eec35571a4a43fdd59 source: viaf type: document nla: '000035585401' ptbnp: '1016568' term: Waagé, Frederick Oswin, 1906-1985 version: 2013-07-01T14:07:50Z viafid: '89453146' --- _id: 07061328a26927d12ce58a93b51594b3 dnb: '119076403' key: KrilandGösta1917-1989 lc: nb2003102459 merge: id: 07061328a26927d12ce58a93b51594b3 source: viaf type: document selibr: '221619' term: Kriland, Gösta, 1917-1989 version: 2013-07-01T14:07:50Z viafid: '13109716' --- _id: 07082f29f457c049509b8838b7f68f19 bav: adv10259186 bne: xx878894 bnf: '11930010' dnb: '118619799' key: SuárezFrancisco1548-1617 lc: n78095702 merge: id: 07082f29f457c049509b8838b7f68f19 source: viaf type: document nkc: jn20010601851 nla: '000035711762' nlilat: '000128559' ptbnp: '29515' selibr: '210629' term: Suárez, Francisco, 1548-1617 version: 2013-07-01T14:07:50Z viafid: '39385631' --- _id: 070dd09c86c5eebdb440dfb7af250e97 key: TeleszkyIstván1836-1899 lc: n2006081406 merge: id: 070dd09c86c5eebdb440dfb7af250e97 source: viaf type: document term: Teleszky, István, 1836-1899 version: 2013-07-01T14:07:50Z viafid: '14203195' --- _id: 070e472ad2d8b0b3a20837aa00e01b2f bnf: '13324451' dnb: '128772530' key: DeRidderAndré(1888-1961) merge: id: 070e472ad2d8b0b3a20837aa00e01b2f source: viaf type: document selibr: '265239' term: De Ridder, André (1888-1961) version: 2013-07-01T14:07:50Z viafid: '44443789' --- _id: 0713c7b3126aedb05de82e427bcced8d bne: xx971231 key: CarlénJohanGabriel1814-1875 merge: id: 0713c7b3126aedb05de82e427bcced8d source: viaf type: document selibr: '181100' term: Carlén, Johan Gabriel, 1814-1875 version: 2013-07-01T14:07:50Z viafid: '87975148' --- _id: 07186c4adfce3f2328740f4c397a024e bav: adv12068688 key: CederschiöldWilhelm1882-1959 merge: id: 07186c4adfce3f2328740f4c397a024e source: viaf type: document selibr: '294047' term: Cederschiöld, Wilhelm, 1882-1959 version: 2013-07-01T14:07:50Z viafid: '36902558' --- _id: 072aaa0999f39c62e0edc9339cd9abc5 bav: adv10034420 egaxa: vtls000878522 key: Abūal-ʻAtāhiyahIsmāʻīlibnal-Qāsim747or8-826? lc: n83179246 merge: id: 072aaa0999f39c62e0edc9339cd9abc5 source: viaf type: document nla: '000041505649' nliara: '000158636' nlilat: '000456008' selibr: '175993' term: Abū al-ʻAtāhiyah, Ismāʻīl ibn al-Qāsim, 747 or 8-826? version: 2013-07-01T14:07:50Z viafid: '100164509' --- _id: 072ed64c2ae2a2fa5a769e08a759412a key: IonicăIonI1907-1944 lc: no99019211 merge: id: 072ed64c2ae2a2fa5a769e08a759412a source: viaf type: document term: Ionică, Ion I., 1907-1944 version: 2013-07-01T14:07:50Z viafid: '26694402' --- _id: 0731c92cb7083207efa31829349d0c7c key: ColladoFaustino1954-|Partidismopolíticodominicano lc: n91016204 merge: id: 0731c92cb7083207efa31829349d0c7c source: viaf type: document term: Collado, Faustino, 1954- | Partidismo político dominicano version: 2013-07-01T14:07:50Z viafid: '185964337' --- _id: 073b299bee6ca03188299d332dcc7609 bne: xx962422 bnf: '12634957' dnb: '124328563' key: RichterGünter1931Mar18- lc: n95051309 merge: id: 073b299bee6ca03188299d332dcc7609 source: viaf type: document term: Richter, Günter, 1931 Mar. 18- version: 2013-07-01T14:07:50Z viafid: '43548553' --- _id: 073b984781b3093bc127f932354405f5 bav: adv11683886 bne: xx1763249 bnf: '12171147' dnb: 11663426x key: KyriakidēsStilpōnParaskeua1887-1964 lc: n86122581 merge: id: 073b984781b3093bc127f932354405f5 source: viaf type: document selibr: '325788' term: Kyriakidēs, Stilpōn Paraskeua, 1887-1964 version: 2013-07-01T14:07:50Z viafid: '69687416' --- _id: 073c2d618d0ab73d183d88598a8af374 bne: xx1183065 bnf: '12078882' dnb: '116427310' key: FéeAntoineLaurentApollinaire1789-1874 lc: n90674184 merge: id: 073c2d618d0ab73d183d88598a8af374 source: viaf type: document nla: '000035450353' nlilat: '000503594' ptbnp: '169829' selibr: '351154' term: Fée, Antoine Laurent Apollinaire, 1789-1874 version: 2013-07-01T14:07:50Z viafid: '49249817' --- _id: 073c3efb70e7e7730859e80d2ecdda94 bav: adv12205170 bne: xx1243414 bnf: '12094974' dnb: '101145799' key: ChampsaurFélicien1859-1934 lc: no90020373 merge: id: 073c3efb70e7e7730859e80d2ecdda94 source: viaf type: document nkc: jn20030827002 nlilat: '000515789' ptbnp: '174311' term: Champsaur, Félicien, 1859-1934 version: 2013-07-01T14:07:50Z viafid: '49253009' --- _id: 073f9bdbf094631ee4dedddbd13ca64b key: WaldenfelsBernhard1934-|GrundmotiveeinerPhänomenologiedesFremdenEnglish lc: no2011035899 merge: id: 073f9bdbf094631ee4dedddbd13ca64b source: viaf type: document term: Waldenfels, Bernhard, 1934- | Grundmotive einer Phänomenologie des Fremden. English version: 2013-07-01T14:07:50Z viafid: '186609991' --- _id: 073fa31e89d1c48159a9e1030a866083 key: HärtlingPeter1933-|AlterJohnEnglish lc: n88298550 merge: id: 073fa31e89d1c48159a9e1030a866083 source: viaf type: document term: Härtling, Peter, 1933- | Alter John. English version: 2013-07-01T14:07:50Z viafid: '181500746' --- _id: 074e783c2f5c713b64196686df2b3690 bav: adv11144440 bne: xx1719678 bnf: '12176085' dnb: '118791540' key: RuizdeAlarcónJuan1580?-1639 lc: n50026232 merge: id: 074e783c2f5c713b64196686df2b3690 source: viaf type: document nkc: jn19990007243 nla: '000035749002' nlilat: '000406196' ptbnp: '56462' selibr: '197612' term: Ruiz de Alarcón, Juan, 1580?-1639 version: 2013-07-01T14:07:50Z viafid: '88975006' --- _id: 075f6a8230cf5195935d9e4e25e0db53 bnf: '11561803' dnb: '133168581' key: VlaisavljevićVlado1901-1943 merge: id: 075f6a8230cf5195935d9e4e25e0db53 source: viaf type: document nkc: js2007409741 term: Vlaisavljević, Vlado, 1901-1943 version: 2013-07-01T14:07:50Z viafid: '77496415' --- _id: 07712f3f0168a77c35198ce83c14e963 bav: adv11323234 bnf: '10457047' dnb: '102750998' key: TripierLéon1842-1891 merge: id: 07712f3f0168a77c35198ce83c14e963 source: viaf type: document term: Tripier, Léon 1842-1891 version: 2013-07-01T14:07:50Z viafid: '49622265' --- _id: 0773d9d3625f21a6e6f54a849cf18fd6 bav: adv12186963 dnb: '172370264' key: SérieysAntoine1755-1829 lc: no89010699 merge: id: 0773d9d3625f21a6e6f54a849cf18fd6 source: viaf type: document nla: '000049287319' nlilat: '000120450' ptbnp: '97142' term: Sérieys, Antoine, 1755-1829 version: 2013-07-01T14:07:50Z viafid: '36473672' --- _id: 0776428e7734a400d990b22721d148a8 bav: adv10994005 dnb: '176857249' key: NúñezdeVillaizánJuan14thcent lc: no2007130239 merge: id: 0776428e7734a400d990b22721d148a8 source: viaf type: document ptbnp: '414660' term: Núñez de Villaizán, Juan, 14th cent version: 2013-07-01T14:07:50Z viafid: '79274519' --- _id: 077eccad165f75a370de8ffbdba9698c bav: adv10975640 dnb: '104327995' key: MynasCMinoïde1790-1860 lc: nr97018121 merge: id: 077eccad165f75a370de8ffbdba9698c source: viaf type: document nlilat: '000531538' term: Mynas, C. Minoïde, 1790-1860 version: 2013-07-01T14:07:50Z viafid: '61986166' --- _id: 07814ed292b5f17b350c9f7546e60a67 bav: adv12163693 bnf: '11886493' dnb: 11854389x key: GuyonJeanne-MarieBouvièresdeLaMotte1648-1717 lc: n81108294 merge: id: 07814ed292b5f17b350c9f7546e60a67 source: viaf type: document nkc: mzk2003198828 nla: '000035159024' nlilat: '000058203' selibr: '187803' swnl: vtls003074795 term: Guyon, Jeanne-Marie Bouvières de La Motte, 1648-1717 version: 2013-07-01T14:07:50Z viafid: '61540026' --- _id: 0785ea831da0756e5a6777d783082da7 key: TourneuxFrédéricb1852 lc: nr2004021587 merge: id: 0785ea831da0756e5a6777d783082da7 source: viaf type: document term: Tourneux, Frédéric, b. 1852 version: 2013-07-01T14:07:50Z viafid: '9796406' --- _id: 0790e7593308adf8ce4a23b410de7094 dnb: '118660535' key: BöcklerGeorgAndreas1617-1687 merge: id: 0790e7593308adf8ce4a23b410de7094 source: viaf type: document nkc: ola2009507571 selibr: '342231' term: Böckler, Georg Andreas, 1617-1687 version: 2013-07-01T14:07:50Z viafid: '95968387' --- _id: 0791e668e8b99a085e0f24117348e710 key: LeBoursierduCoudrayAngéliqueMarguerite1715-1794 merge: id: 0791e668e8b99a085e0f24117348e710 source: viaf type: document term: Le Boursier du Coudray, Angélique Marguerite, 1715-1794 version: 2013-07-01T14:07:50Z viafid: '206937247' --- _id: 079b1850f2ab5db57f07ecc26c90aa22 bnf: '11923039' dnb: '173256023' key: RoyerJean1938-poète lc: n82088337 merge: id: 079b1850f2ab5db57f07ecc26c90aa22 source: viaf type: document nla: '000035180102' term: Royer, Jean, 1938-, poète version: 2013-07-01T14:07:50Z viafid: '95323450' --- _id: 07ad68bf80d0fd9b3283648fb065bfa8 bav: adv10882046 bne: xx1332188 bnf: '12125148' dnb: '118713507' key: KörnerCarlTheodor1791-1813 lc: n84045242 merge: id: 07ad68bf80d0fd9b3283648fb065bfa8 source: viaf type: document nkc: jn20021203005 nla: '000035283942' nlilat: '000079845' selibr: '284839' term: Körner, Carl Theodor, 1791-1813 version: 2013-07-01T14:07:50Z viafid: '51723180' --- _id: 07b7375e7c918a0d36bf0b469c7bb85a bnf: '14046290' dnb: '103370390' key: BogomolovVladimirOsipovič1926-2003 lc: n83216531 merge: id: 07b7375e7c918a0d36bf0b469c7bb85a source: viaf type: document nkc: jx20041208021 nla: '000036505730' ptbnp: '15166' selibr: '235812' term: Bogomolov, Vladimir Osipovič, 1926-2003 version: 2013-07-01T14:07:50Z viafid: '54559822' --- _id: 07bfd705791a7bc0362f18a99cd3ae82 bav: adv11051898 bne: xx902959 bnf: '11920607' dnb: '118596462' key: PrévostD'ExilesAntoineFrançois1697-1763 lc: n50027694 merge: id: 07bfd705791a7bc0362f18a99cd3ae82 source: viaf type: document nkc: jn20000710488 nla: '000036562374' nlilat: '000107716' ptbnp: '328305' selibr: '196695' term: Prévost D'Exiles, Antoine François 1697-1763 version: 2013-07-01T14:07:50Z viafid: '17228264' --- _id: 07c5b2a28ea57dd817f8663f22ce8d63 bnf: '12217781' dnb: '119095041' key: MoléLouis-Mathieu(1781-1855) lc: n87933602 merge: id: 07c5b2a28ea57dd817f8663f22ce8d63 source: viaf type: document nla: '000049783634' nlilat: '000490971' term: Molé, Louis-Mathieu (1781-1855) version: 2013-07-01T14:07:50Z viafid: '7440787' --- _id: 07c5bf44d8512ac8f51c1631fd37e185 bav: adv10983139 bnf: '10363117' dnb: '117732621' key: MaillyÉdouard1810-1891 merge: id: 07c5bf44d8512ac8f51c1631fd37e185 source: viaf type: document term: Mailly, Édouard, 1810-1891 version: 2013-07-01T14:07:50Z viafid: '31002223' --- _id: 07ca03916ef0b70935b47ec8aaa20951 bnf: '12186334' dnb: '151137250' key: GuillénRoblesFranciscod1920 lc: n81106856 merge: id: 07ca03916ef0b70935b47ec8aaa20951 source: viaf type: document nlilat: '000057730' term: Guillén Robles, Francisco, d. 1920 version: 2013-07-01T14:07:50Z viafid: '100176392' --- _id: 07cbb3fbf1432f4ec0f4de8e8a5f6c4d bav: adv10088767 dnb: '102693145' key: SörbomGunnar1899-1992 lc: no2009188094 merge: id: 07cbb3fbf1432f4ec0f4de8e8a5f6c4d source: viaf type: document term: Sörbom, Gunnar, 1899-1992 version: 2013-07-01T14:07:50Z viafid: '39773714' --- _id: 07d5d5f1bd824668cfb78de8e96725ee bav: adv12247038 bnf: '12159281' dnb: 11734138x key: Lugné-PoeAurélien-Françoise1869-1940 lc: n85017309 merge: id: 07d5d5f1bd824668cfb78de8e96725ee source: viaf type: document nkc: kup19970000059228 nlilat: '000467106' selibr: '278658' term: Lugné-Poe, Aurélien-Françoise, 1869-1940 version: 2013-07-01T14:07:50Z viafid: '54187174' --- _id: 07de67cc1194f3dbc6d6e4e54b300447 bav: adv10107863 bnf: '11930756' key: AndréRobert1925-2001 lc: n81087066 merge: id: 07de67cc1194f3dbc6d6e4e54b300447 source: viaf type: document term: André, Robert 1925-2001 version: 2013-07-01T14:07:50Z viafid: '110008401' --- _id: 07df3dc1e5aea3037235c5ea2206a78d bav: adv10073900 bnf: '11898644' dnb: '131592459' key: DarmesteterArséne1846-1888 lc: n83826298 merge: id: 07df3dc1e5aea3037235c5ea2206a78d source: viaf type: document nkc: mzk2010580693 nla: '000035164553' nlilat: '000037029' ptbnp: '172047' term: Darmesteter, Arséne, 1846-1888 version: 2013-07-01T14:07:50Z viafid: '24600230' --- _id: 07e7744ccd84935a8e6bc5ca5aea2dd3 bav: adv10433888 bne: xx1055879 bnf: '11912783' dnb: 11889921x key: LévêquePierre1921-2004 lc: n50049987 merge: id: 07e7744ccd84935a8e6bc5ca5aea2dd3 source: viaf type: document nkc: xx0010873 nla: '000035301759' nlilat: '000411857' ptbnp: '144172' term: Lévêque, Pierre, 1921-2004 version: 2013-07-01T14:07:50Z viafid: '109605207' --- _id: 07e822a099f4dafae747dbda09b45a11 bav: adv11035454 dnb: '119022753' key: NovotnýFrantišek1881-1964 lc: n80146066 merge: id: 07e822a099f4dafae747dbda09b45a11 source: viaf type: document nkc: jk01090667 nla: '000035949388' nlilat: '000432644' term: Novotný, František, 1881-1964 version: 2013-07-01T14:07:50Z viafid: '42638825' --- _id: 07edcd568edb6e6690981921f95a23b5 bav: adv10125688 bnf: '13007480' dnb: '122855043' key: BruslédeMontpleinchampJean-Chrysostome1641-1724 lc: no96015544 merge: id: 07edcd568edb6e6690981921f95a23b5 source: viaf type: document nkc: mzk2009533679 term: Bruslé de Montpleinchamp, Jean-Chrysostome, 1641-1724 version: 2013-07-01T14:07:50Z viafid: '19812402' --- _id: 07f3223f3ced71e78378bff70cf920a9 dnb: '130372617' key: NemčićAntun1813-1849 lc: n2001030324 merge: id: 07f3223f3ced71e78378bff70cf920a9 source: viaf type: document term: Nemčić, Antun, 1813-1849 version: 2013-07-01T14:07:50Z viafid: '15876000' --- _id: 07f375c531d44be0982e59c6d2f65183 bav: adv10070455 bnf: '12770397' dnb: '1029580375' key: GossartErnestÉdouard1837-1919 merge: id: 07f375c531d44be0982e59c6d2f65183 source: viaf type: document ptbnp: '100916' term: Gossart, Ernest Édouard, 1837-1919 version: 2013-07-01T14:07:50Z viafid: '88727666' --- _id: 07f86f0aed45c69e9e61e929721ccc5e bav: adv10025976 dnb: '118555405' key: IkonnikovVladimirStepanovič1841-1923 lc: n85193526 merge: id: 07f86f0aed45c69e9e61e929721ccc5e source: viaf type: document nkc: js2006345178 term: Ikonnikov, Vladimir Stepanovič, 1841-1923 version: 2013-07-01T14:07:50Z viafid: '42629624' --- _id: 07f9ae537ecb7698b75a822341cf9834 bav: adv10883437 bnf: '12553466' dnb: '118778161' key: KühnAlfred1885-1968 lc: n85802982 merge: id: 07f9ae537ecb7698b75a822341cf9834 source: viaf type: document nla: '000035284607' nlilat: '000477778' term: Kühn, Alfred, 1885-1968 version: 2013-07-01T14:07:50Z viafid: '39491936' --- _id: 07fd336129efdfd90231764f1c508b4e bnf: '11927612' dnb: '122677560' key: VanPraagHM1929-(HermanMeïr) lc: n79073510 merge: id: 07fd336129efdfd90231764f1c508b4e source: viaf type: document nla: '000036080446' ptbnp: '79148' term: Van Praag, H. M., 1929-, (Herman Meïr) version: 2013-07-01T14:07:50Z viafid: '108391730' --- _id: 08021f92c833cd0977b3faff7b65f871 bnf: '12218906' key: MarçaisJean1904-1991 merge: id: 08021f92c833cd0977b3faff7b65f871 source: viaf type: document term: Marçais, Jean, 1904-1991 version: 2013-07-01T14:07:50Z viafid: '66517086' --- _id: 080ad84beb72a14be032de4e7f66b6af dnb: '103699333' key: OtčenášekJan1924-1979 lc: n50049605 merge: id: 080ad84beb72a14be032de4e7f66b6af source: viaf type: document nkc: jk01091352 nlilat: '000102221' ptbnp: '138792' term: Otčenášek, Jan, 1924-1979 version: 2013-07-01T14:07:50Z viafid: '49644726' --- _id: 080c4c63ddc6a405776c479d7c2bace0 key: FardéPieter1651-1691 merge: id: 080c4c63ddc6a405776c479d7c2bace0 source: viaf type: document term: Fardé, Pieter, 1651-1691 version: 2013-07-01T14:07:50Z viafid: '286779140' --- _id: 080ffc546a9df71a5eb53f22937d9635 dnb: '142377139' key: PéeJulius1871-1951 merge: id: 080ffc546a9df71a5eb53f22937d9635 source: viaf type: document term: Pée, Julius, 1871-1951 version: 2013-07-01T14:07:50Z viafid: '127442574' --- _id: 0826759c571514fa5c86701154c0a9c6 dnb: '116036982' key: BärtlingRichard1878-1936 merge: id: 0826759c571514fa5c86701154c0a9c6 source: viaf type: document term: Bärtling, Richard, 1878-1936 version: 2013-07-01T14:07:50Z viafid: '8129006' --- _id: 082bd4b1618e3fbd719a4f2a6f82abfa bav: adv10105269 bnf: '11899617' dnb: '127516352' key: DenneryÉtienne(1903-1979) lc: no97066112 merge: id: 082bd4b1618e3fbd719a4f2a6f82abfa source: viaf type: document nlilat: '000533465' term: Dennery, Étienne (1903-1979) version: 2013-07-01T14:07:50Z viafid: '79521759' --- _id: 082f747ac733058264ecf7d112a974a6 key: KostrhunJan1942-|Modrýkvíteček lc: n90711938 merge: id: 082f747ac733058264ecf7d112a974a6 source: viaf type: document term: Kostrhun, Jan, 1942- | Modrý kvíteček version: 2013-07-01T14:07:50Z viafid: '175057572' --- _id: 08380fac4349836d985ebaa82a911206 bav: adv10180719 bnf: '12599060' dnb: 10044668x key: Crétineau-JolyJacquesAugustinMarie1803-1875 lc: nr90012336 merge: id: 08380fac4349836d985ebaa82a911206 source: viaf type: document nkc: mzk2002110329 nla: '000035825083' nlilat: '000524485' ptbnp: '95242' swnl: vtls001892514 term: Crétineau-Joly, Jacques Augustin Marie, 1803-1875 version: 2013-07-01T14:07:50Z viafid: '95175944' --- _id: 083bee80111fcbd6959714cca513821d dnb: '989175995' key: JungheinrichHans-Klaus1938-|DmitrioderDerKünstlerunddieMacht merge: id: 083bee80111fcbd6959714cca513821d source: viaf type: document term: Jungheinrich, Hans-Klaus 1938- | Dmitri oder Der Künstler und die Macht version: 2013-07-01T14:07:50Z viafid: '215964382' --- _id: 083ec04cb31fbba6f2d866dd4960a8bd bne: xx1104029 bnf: '12004268' dnb: '118641476' key: PardoBazánEmilia1851-1921 merge: id: 083ec04cb31fbba6f2d866dd4960a8bd source: viaf type: document nkc: jn20000703239 ptbnp: '58743' selibr: '196794' term: Pardo Bazán, Emilia, 1851-1921 version: 2013-07-01T14:07:50Z viafid: '51699645' --- _id: 08520ea81f31f6b6c8896919456e6dd2 bav: adv11200062 bne: xx955263 bnf: '11927154' dnb: '118802801' key: TrubeckojNikolajSergeevič1890-1938 lc: n85102285 merge: id: 08520ea81f31f6b6c8896919456e6dd2 source: viaf type: document nkc: jo20000082541 nla: '000035556677' nlicyr: '000366469' nlilat: '000132813' selibr: '97744' term: Trubeckoj, Nikolaj Sergeevič, 1890-1938 version: 2013-07-01T14:07:50Z viafid: '95300260' --- _id: 085e1b961651672f453eb21b89dde84c bnf: '12528907' dnb: '123429641' key: FréteaudeSaint-JustÉmmanuel-Marie-Michel-Philippe1745-1794 lc: nr00039834 merge: id: 085e1b961651672f453eb21b89dde84c source: viaf type: document term: Fréteau de Saint-Just, Émmanuel-Marie-Michel-Philippe 1745-1794 version: 2013-07-01T14:07:50Z viafid: '37027035' --- _id: 086246289efa743751d551b8740ca6c4 key: GeorgievskiTaško(1935-)|Crnoseme(maced) merge: id: 086246289efa743751d551b8740ca6c4 source: viaf type: document term: Georgievski, Taško (1935- ). | Crno seme (maced.) version: 2013-07-01T14:07:50Z viafid: '293673101' --- _id: 0862bacba0bfc9620826527a56cb3fb3 bne: xx1767867 bnf: '12386934' dnb: '117369918' key: WießnerEdmund1875-1956 lc: n87829709 merge: id: 0862bacba0bfc9620826527a56cb3fb3 source: viaf type: document nla: '000035903047' nlilat: '000488478' term: Wießner, Edmund, 1875-1956 version: 2013-07-01T14:07:50Z viafid: '12390488' --- _id: 086acc40c4caf51f99b41dc6603196fd bnf: '11892379' dnb: '121000842' key: Bloch-LainéFrançois(1912-2002) lc: n82127136 merge: id: 086acc40c4caf51f99b41dc6603196fd source: viaf type: document nkc: jn19981000289 term: Bloch-Lainé, François (1912-2002) version: 2013-07-01T14:07:50Z viafid: '108594372' --- _id: 086ca4c9a359555e7c24c528d7a8b42b bav: adv10115030 dnb: '118943383' key: BröderChristianGottlob1745-1819 lc: nr92000531 merge: id: 086ca4c9a359555e7c24c528d7a8b42b source: viaf type: document nkc: mzk2009528285 term: Bröder, Christian Gottlob, 1745-1819 version: 2013-07-01T14:07:50Z viafid: '35255737' --- _id: 0871858b19c2b00a1ca266e018915646 bav: adv10219607 bne: xx999835 bnf: '12030324' dnb: '128777931' key: GarcíaCarlosca1575-ca1630 lc: n99025815 merge: id: 0871858b19c2b00a1ca266e018915646 source: viaf type: document selibr: '338391' term: García, Carlos ca. 1575-ca. 1630 version: 2013-07-01T14:07:50Z viafid: '51704909' --- _id: 08758fa8478ce795835f51ec719dc08d bav: adv11051743 bnf: '12031401' dnb: '124080308' key: PřibramKarl1877-1973 lc: n82094894 merge: id: 08758fa8478ce795835f51ec719dc08d source: viaf type: document nkc: vse2010558384 nla: '000035942592' nlilat: '000446041' term: Přibram, Karl, 1877-1973 version: 2013-07-01T14:07:50Z viafid: '25953' --- _id: 087b147b1af0909e81d09923924abaae bnf: '11232417' dnb: '121377539' key: TeslarJózefAndrzej1889-1961 lc: nr89007428 merge: id: 087b147b1af0909e81d09923924abaae source: viaf type: document nkc: js2012736957 ptbnp: '179667' term: Teslar, Józef Andrzej, 1889-1961 version: 2013-07-01T14:07:50Z viafid: '113417081' --- _id: 087c72f03807241d69c5cbdacba2e1c8 bav: adv12038222 bne: xx959214 bnf: '11909199' dnb: '121327949' key: JulienCharles-André1891-1991 lc: n50038763 merge: id: 087c72f03807241d69c5cbdacba2e1c8 source: viaf type: document nkc: kup19950000045493 nlilat: '000264204' ptbnp: '440589' term: Julien, Charles-André, 1891-1991 version: 2013-07-01T14:07:50Z viafid: '98370336' --- _id: 087c9bc6944213114ef3394088ff1aab dnb: '961969415' key: Grüntuch-ErnstAlmut1966-Architekt merge: id: 087c9bc6944213114ef3394088ff1aab source: viaf type: document term: Grüntuch-Ernst, Almut, 1966-, Architekt version: 2013-07-01T14:07:50Z viafid: '243869426' --- _id: 0886f9ac812f460b82cd86a1b9feccb4 bav: adv10995016 bnf: '12108234' dnb: '128269014' key: MassonCharlesFrançoisPhilibert1762-1807 lc: n85253401 merge: id: 0886f9ac812f460b82cd86a1b9feccb4 source: viaf type: document nkc: mzk2009511265 nlilat: '000473665' selibr: '328286' term: Masson, Charles François Philibert, 1762-1807 version: 2013-07-01T14:07:50Z viafid: '15817572' --- _id: 0893741295f7a7e66ac0cdf427a020ae bnf: '13078966' key: Saint-HilaireÉtienne1865-1932 merge: id: 0893741295f7a7e66ac0cdf427a020ae source: viaf type: document term: Saint-Hilaire, Étienne 1865-1932 version: 2013-07-01T14:07:50Z viafid: '49359871' --- _id: 089507fae522e479c4cfc8711b561186 bne: xx845628 bnf: '12482325' dnb: '1016403488' key: AllixAndré1889-1966 lc: no2010137107 merge: id: 089507fae522e479c4cfc8711b561186 source: viaf type: document nkc: mzk2010585198 term: Allix, André, 1889-1966 version: 2013-07-01T14:07:50Z viafid: '22243254' --- _id: 089535b8304bf319cf943b94ef89bf83 bav: adv10231518 bne: xx839712 bnf: '11885587' dnb: '118647385' key: AgustínAntonio1517-1586 lc: n81127403 merge: id: 089535b8304bf319cf943b94ef89bf83 source: viaf type: document nkc: mzk2003195509 nla: '000035197604' nlilat: '000282827' ptbnp: '3099' selibr: '297126' term: Agustín, Antonio, 1517-1586 version: 2013-07-01T14:07:50Z viafid: '120697822' --- _id: 08986700373e687785e527e02f2eb1e0 bnf: '11893785' dnb: '129736414' key: BrandtJørgenGustava1929-2006 lc: n79060032 merge: id: 08986700373e687785e527e02f2eb1e0 source: viaf type: document nkc: ola2002153763 selibr: '328645' term: Brandt, Jørgen Gustava, 1929-2006 version: 2013-07-01T14:07:50Z viafid: '84968625' --- _id: 089d0ee2fc697bc65fb3fcb7f17fa6c9 bav: adv11356392 bne: xx899240 bnf: '11888698' dnb: '100009670' key: AmpèreJean-Jacques1800-1864 lc: n86041191 merge: id: 089d0ee2fc697bc65fb3fcb7f17fa6c9 source: viaf type: document nkc: xx0165006 nla: '000035831922' nlilat: '000009946' ptbnp: '92627' selibr: '342946' term: Ampère, Jean-Jacques, 1800-1864 version: 2013-07-01T14:07:50Z viafid: '14765429' --- _id: 08aa6f544736cb7468bad8aab761baaa bne: xx1157250 bnf: '12882934' dnb: '118724827' key: KrupskajaNadeždaKonstantinovna1869-1939 lc: n79029718 merge: id: 08aa6f544736cb7468bad8aab761baaa source: viaf type: document nkc: jn20000700968 nla: '000035825105' nlicyr: '000152532' nlilat: '000209944' selibr: '206039' term: Krupskaja, Nadežda Konstantinovna, 1869-1939 version: 2013-07-01T14:07:50Z viafid: '2600852' --- _id: 08c18fadf8f5279b43d7934999b9e9c2 bav: adv11026413 bnf: '15317798' dnb: '129530123' key: DuCreuxFrançois(1596-1666) lc: no2002038346 merge: id: 08c18fadf8f5279b43d7934999b9e9c2 source: viaf type: document term: Du Creux, François (1596-1666) version: 2013-07-01T14:07:50Z viafid: '42142926' --- _id: 08ce86b3888dfbfe4b725116c17c3192 bnf: '11896485' dnb: '118669176' egaxa: vtls001048753 key: ChedidAndrée1920-2011 lc: n50036246 merge: id: 08ce86b3888dfbfe4b725116c17c3192 source: viaf type: document nkc: xx0011445 nla: '000035748724' nlilat: '000031065' ptbnp: '133394' selibr: '220321' swnl: vtls003026295 term: Chedid, Andrée, 1920-2011 version: 2013-07-01T14:07:50Z viafid: '111004523' --- _id: 08d51b4bb6bde0be2ecaf95e4103f0e2 dnb: 10213118x key: BrenderàBrandisGerrit1751-1802 lc: no92005545 merge: id: 08d51b4bb6bde0be2ecaf95e4103f0e2 source: viaf type: document nla: '000035754920' term: Brender à Brandis, Gerrit, 1751-1802 version: 2013-07-01T14:07:50Z viafid: '61109455' --- _id: 08e606b662aeb5fe3e6f267926445ea0 bnf: '11906370' dnb: '118936549' key: GuillauminÉmile1873-1951 lc: n80125784 merge: id: 08e606b662aeb5fe3e6f267926445ea0 source: viaf type: document nla: '000035857464' nlilat: '000431587' ptbnp: '40943' selibr: '328778' term: Guillaumin, Émile, 1873-1951 version: 2013-07-01T14:07:50Z viafid: '4930804' --- _id: 08ef4972c4ab0d9d3b6cc7c14662df37 bav: adv10045700 bnf: '11900087' dnb: '119190907' jpg: '500078133' key: DjagilevSergejPavlovič1872-1929 lc: n79081931 merge: id: 08ef4972c4ab0d9d3b6cc7c14662df37 source: viaf type: document nkc: jn20000720061 nla: '000035878690' nlilat: '000039269' selibr: '183876' term: Djagilev, Sergej Pavlovič, 1872-1929 version: 2013-07-01T14:07:50Z viafid: '67208262' --- _id: 08f245995e319cc1ed731f260418239a bav: adv11541526 bnf: '11920613' dnb: 11920911x key: PrévostJean1901-1944 lc: n87903482 merge: id: 08f245995e319cc1ed731f260418239a source: viaf type: document nkc: skuk0004692 nla: '000035432989' nlilat: '000379872' ptbnp: '538315' selibr: '334691' term: Prévost, Jean, 1901-1944 version: 2013-07-01T14:07:50Z viafid: '9852191' --- _id: 08f899ab263e594b3814385d8f8d75b0 key: PetkovićVladimirR(1874-1956) merge: id: 08f899ab263e594b3814385d8f8d75b0 source: viaf type: document term: Petković, Vladimir R. (1874-1956) version: 2013-07-01T14:07:50Z viafid: '166264563' --- _id: 08fceb7018c0e5f3c2cb856795bb56e0 dnb: 12280077x key: BrücknerAugust1769-1797 merge: id: 08fceb7018c0e5f3c2cb856795bb56e0 source: viaf type: document term: Brückner, August 1769-1797 version: 2013-07-01T14:07:50Z viafid: '5823870' --- _id: 08ff7cbaee85429fda3628cbd9a0ccea bav: adv10016283 bnf: '12027737' dnb: '118789813' key: PasquierÉtienne1529-1615 lc: n50050635 merge: id: 08ff7cbaee85429fda3628cbd9a0ccea source: viaf type: document nkc: ola2002156653 nla: '000035719449' nlilat: '000103651' selibr: '207597' term: Pasquier, Étienne, 1529-1615 version: 2013-07-01T14:07:50Z viafid: '61560863' --- _id: 0900c1d826aba21c64b5d933dfa48195 key: BiroliniAlessandro1940-|QualitätundZuverlässigkeittechnischerSystemeEnglish lc: n94017739 merge: id: 0900c1d826aba21c64b5d933dfa48195 source: viaf type: document term: Birolini, Alessandro, 1940- | Qualität und Zuverlässigkeit technischer Systeme. English version: 2013-07-01T14:07:50Z viafid: '183968551' --- _id: 0900d8c6ae2f65e90f9174d91e033304 bnf: '11562606' dnb: '130628697' key: DraženovićJosip(1863-1942) merge: id: 0900d8c6ae2f65e90f9174d91e033304 source: viaf type: document term: Draženović, Josip (1863-1942) version: 2013-07-01T14:07:50Z viafid: '5581' --- _id: 0905d787a5d8f8689d4843470dd7788a bnf: '11914286' dnb: '101933010' key: MannierEugène1811-1895 lc: n85822045 merge: id: 0905d787a5d8f8689d4843470dd7788a source: viaf type: document term: Mannier, Eugène, 1811-1895 version: 2013-07-01T14:07:50Z viafid: '24604764' --- _id: 090c09d3129bf841838ab2de37747e83 bnf: '12003156' dnb: '116888180' key: GründlerJohannErnst1677-1720 lc: n88132027 merge: id: 090c09d3129bf841838ab2de37747e83 source: viaf type: document term: Gründler, Johann Ernst, 1677-1720 version: 2013-07-01T14:07:50Z viafid: '24611446' --- _id: 090edb00bb6a693eb166f769bfd905d3 bav: adv10928962 bnf: '12100097' dnb: '122509528' key: MeshorerYaʿaḳov1935-2004 lc: n82221337 merge: id: 090edb00bb6a693eb166f769bfd905d3 source: viaf type: document nliheb: '000218529' nlilat: '000092558' selibr: '356328' term: Meshorer, Yaʿaḳov 1935-2004 version: 2013-07-01T14:07:50Z viafid: '29563112' --- _id: 0919be69b4116eefebf63070089d7d0f key: SørensenSøren1848-1902 lc: n98027617 merge: id: 0919be69b4116eefebf63070089d7d0f source: viaf type: document nlilat: '000534498' term: Sørensen, Søren, 1848-1902 version: 2013-07-01T14:07:50Z viafid: '4244532' --- _id: 091f662b284692555f6f489f422f5b5f bav: adv10151963 bnf: '12956187' dnb: '101866003' key: AlexandreArséne1859-1937 lc: n83132619 merge: id: 091f662b284692555f6f489f422f5b5f source: viaf type: document nkc: xx0068899 nla: '000035003104' nlilat: '000454512' ptbnp: '85656' selibr: '314742' term: Alexandre, Arséne, 1859-1937 version: 2013-07-01T14:07:50Z viafid: '142432' --- _id: 0933fb83f6d0c7334ced8364ac746106 bnf: '12212638' dnb: '118676253' key: ClaparédeÉdouard1873-1940 lc: n50062963 merge: id: 0933fb83f6d0c7334ced8364ac746106 source: viaf type: document nkc: nlk20000083847 nla: '000036552234' nlilat: '000412971' ptbnp: '33368' term: Claparéde, Édouard, 1873-1940 version: 2013-07-01T14:07:50Z viafid: '106976487' --- _id: 093a421467a2c52ec2cb5e23b4bbeb16 bnf: '13050558' key: SauvezÉmile1866-1927 merge: id: 093a421467a2c52ec2cb5e23b4bbeb16 source: viaf type: document term: Sauvez, Émile, 1866-1927 version: 2013-07-01T14:07:50Z viafid: '171410395' --- _id: 093a8a7d3e79fceb89fd81842acf4191 bnf: '12176769' dnb: '154318582' key: OikonomosGeōrgiosPd1952 lc: n86033984 merge: id: 093a8a7d3e79fceb89fd81842acf4191 source: viaf type: document term: Oikonomos, Geōrgios P., d. 1952 version: 2013-07-01T14:07:50Z viafid: '2514468' --- _id: 09416dfb24fbe376cf386b76f4c0c808 bne: xx966972 dnb: '173537863' key: MontanerJoaquín1892-1957 lc: n90710082 merge: id: 09416dfb24fbe376cf386b76f4c0c808 source: viaf type: document nlilat: '000504370' term: Montaner, Joaquín, 1892-1957 version: 2013-07-01T14:07:50Z viafid: '36083632' --- _id: 094253ea7c6600ea363111b96b408eba bnf: '12705556' dnb: '118778684' key: LangerFrantišek1888-1965 lc: n82112974 merge: id: 094253ea7c6600ea363111b96b408eba source: viaf type: document nkc: jk01071520 nla: '000035780309' nlilat: '000080919' term: Langer, František, 1888-1965 version: 2013-07-01T14:07:50Z viafid: '12430171' --- _id: 0947e4adaff9ab3bad131620819fb543 bne: xx1717306 bnf: '13950219' dnb: '103892419' key: GailhardAndré1885-1966 lc: no2004059607 merge: id: 0947e4adaff9ab3bad131620819fb543 source: viaf type: document term: Gailhard, André 1885-1966 version: 2013-07-01T14:07:50Z viafid: '39567713' --- _id: 0950d962980bbe75a90f3cfe0f60dc34 bnf: '12077517' dnb: '130649384' key: PetrovićBoško1915-2001 lc: n80156054 merge: id: 0950d962980bbe75a90f3cfe0f60dc34 source: viaf type: document nkc: js2011627405 term: Petrović, Boško, 1915-2001 version: 2013-07-01T14:07:50Z viafid: '111604289' --- _id: 095149127bf0bb7b68d5f9b62138809d key: GolversNoël1950-|AstronomiaEuropaeaEnglish&Latin lc: n95047380 merge: id: 095149127bf0bb7b68d5f9b62138809d source: viaf type: document term: Golvers, Noël, 1950- | Astronomia Europaea. English & Latin version: 2013-07-01T14:07:50Z viafid: '185584205' --- _id: 09570517d728f703bf1b0cf10fb91a62 bav: adv11712370 bnf: '12029330' dnb: '129017035' key: ÅströmPaul1929-2008 lc: n79142142 merge: id: 09570517d728f703bf1b0cf10fb91a62 source: viaf type: document nlilat: '000425027' selibr: '170116' term: Åström, Paul, 1929-2008 version: 2013-07-01T14:07:50Z viafid: '4945088' --- _id: 095cdeb6e599417cb22561c2b3ae8f6e bne: xx944024 bnf: '16039867' dnb: '129267074' egaxa: vtls000895530 key: MuñizHigueraCarlos1927-1994 lc: n88624013 merge: id: 095cdeb6e599417cb22561c2b3ae8f6e source: viaf type: document nla: '000035850216' ptbnp: '1720' term: Muñiz Higuera, Carlos, 1927-1994 version: 2013-07-01T14:07:50Z viafid: '38490711' --- _id: 095d290bb75b248241d5bd0c9e4a9bb1 key: MuchembledRobert1944-|CulturepopulaireetculturedesélitesdanslaFrancemoderneEnglish lc: n84165479 merge: id: 095d290bb75b248241d5bd0c9e4a9bb1 source: viaf type: document term: Muchembled, Robert, 1944- | Culture populaire et culture des élites dans la France moderne. English version: 2013-07-01T14:07:50Z viafid: '176214988' --- _id: 095eb27805a7100c6b6ec740c8080e71 bav: adv10030538 dnb: '116301708' key: KöstlinOtto1818-1884 merge: id: 095eb27805a7100c6b6ec740c8080e71 source: viaf type: document term: Köstlin, Otto, 1818-1884 version: 2013-07-01T14:07:50Z viafid: '49973166' --- _id: 09601055cabf7c9a77171e86b20045eb dnb: 13248403x key: KöhlerBruno1855-1925 merge: id: 09601055cabf7c9a77171e86b20045eb source: viaf type: document nkc: xx0105423 term: Köhler, Bruno, 1855-1925 version: 2013-07-01T14:07:50Z viafid: '45464186' --- _id: 0960ec9e9749531677b491d66003dabc key: WolffJürgen1956-2 lc: n92112352 merge: id: 0960ec9e9749531677b491d66003dabc source: viaf type: document term: Wolff, Jürgen, 1956-2 version: 2013-07-01T14:07:50Z viafid: '276077369' --- _id: 096c59e029b0f04cabd2365ecad95d65 bav: adv10029888 bnf: '12951216' dnb: 11649669x key: CheïkhoLouis1859-1927 lc: n82234894 merge: id: 096c59e029b0f04cabd2365ecad95d65 source: viaf type: document nkc: jn20040205030 nla: '000035715415' nliara: '000195697' nlilat: '000031078' selibr: '181731' term: Cheïkho, Louis, 1859-1927 version: 2013-07-01T14:07:50Z viafid: '77068906' --- _id: 09750ad3cd36e30f268b06fe75bd7dae bav: adv10907142 bnf: '11548439' dnb: 15121641x key: MaretićTomislav1854-1938 lc: n84184846 merge: id: 09750ad3cd36e30f268b06fe75bd7dae source: viaf type: document nkc: mzk2005286743 term: Maretić, Tomislav, 1854-1938 version: 2013-07-01T14:07:50Z viafid: '32370714' --- _id: 0980ade6c517799267d666c4659dbd3d bnf: '14971761' dnb: '130460400' jpg: '500013324' key: DeCockCésar1823-1904 lc: n95114978 merge: id: 0980ade6c517799267d666c4659dbd3d source: viaf type: document term: De Cock, César 1823-1904 version: 2013-07-01T14:07:50Z viafid: '5202944' --- _id: 098bc6500b17c70627afacf6e4414c27 bav: adv10081447 bnf: '12247789' dnb: '117048879' jpg: '500319792' key: HülsenChristian1858-1935 lc: n87869161 merge: id: 098bc6500b17c70627afacf6e4414c27 source: viaf type: document nkc: mub2011675241 nla: '000036379248' nlilat: '000489258' term: Hülsen, Christian, 1858-1935 version: 2013-07-01T14:07:50Z viafid: '2527887' --- _id: 0995b87436732b33d7f51eadb84713a2 bne: xx1154051 bnf: '12017208' dnb: '118543202' key: VonGünderodeKaroline1780-1806 lc: n82059428 merge: id: 0995b87436732b33d7f51eadb84713a2 source: viaf type: document nkc: kup19970000034377 nla: '000036069456' nlilat: '000444286' selibr: '238107' swnl: vtls002022868 term: Von Günderode, Karoline, 1780-1806 version: 2013-07-01T14:07:50Z viafid: '54159634' --- _id: 09a21db32c5b16ef6fe7c4a058399871 bnf: '13930974' dnb: 101971588x key: HedbergTor‬1862-1931 lc: no95048953 merge: id: 09a21db32c5b16ef6fe7c4a058399871 source: viaf type: document nkc: jn20010601019 selibr: '216621' term: Hedberg, Tor, ‬1862-1931 version: 2013-07-01T14:07:50Z viafid: '78365667' --- _id: 09a60539bdf2d8f1fed1cb4a0713eedc bnf: '12185733' dnb: '102017263' key: MérignhacA1857-1927(AlexandreGiraudJacquesAntoine) lc: n85273789 merge: id: 09a60539bdf2d8f1fed1cb4a0713eedc source: viaf type: document nlilat: '000474154' term: Mérignhac, A., 1857-1927, (Alexandre Giraud Jacques Antoine) version: 2013-07-01T14:07:50Z viafid: '17267136' --- _id: 09abde89289fb2f230ceccfd8b3dd69d key: SacréJames1939-|Selections2008 lc: n2010061226 merge: id: 09abde89289fb2f230ceccfd8b3dd69d source: viaf type: document term: Sacré, James, 1939- | Selections. 2008 version: 2013-07-01T14:07:50Z viafid: '183654491' --- _id: 09b3f237e11a9c32604bb7e22d32d8f6 bav: adv10992808 bnf: '12183510' dnb: '116308958' key: AndreadēsAndreasMichaēl1876-1935 lc: n80057397 merge: id: 09b3f237e11a9c32604bb7e22d32d8f6 source: viaf type: document nla: '000035054535' nlilat: '000428519' term: Andreadēs, Andreas Michaēl, 1876-1935 version: 2013-07-01T14:07:50Z viafid: '66510544' --- _id: 09c8c274053c0d0922bb652709993bbc bnf: '11904676' dnb: '123893887' key: GérardJo1919-2006 lc: n79070117 merge: id: 09c8c274053c0d0922bb652709993bbc source: viaf type: document nla: '000049682876' nlilat: '000058316' term: Gérard, Jo, 1919-2006 version: 2013-07-01T14:07:50Z viafid: '22142267' --- _id: 09ca72d2818ee26e90615932eb1c29f9 bav: adv11015482 bnf: '10693163' dnb: '116810505' key: MartindeNoirlieuFrançois1792-1870 merge: id: 09ca72d2818ee26e90615932eb1c29f9 source: viaf type: document nlilat: '000089537' term: Martin de Noirlieu, François, 1792-1870 version: 2013-07-01T14:07:50Z viafid: '27055342' --- _id: 09dcc1a19a5aa863da93bb88702c09b0 bav: adv12086541 bnf: '14976561' dnb: '123114829' key: MieusementSéraphin-Médéric1840-1905 lc: n91087801 merge: id: 09dcc1a19a5aa863da93bb88702c09b0 source: viaf type: document term: Mieusement, Séraphin-Médéric 1840-1905 version: 2013-07-01T14:07:50Z viafid: '27099563' --- _id: 09e0a470102064ac18523541a3c0e61f bav: adv11035985 bnf: '12529715' key: NoëlEugéne1816-1899 merge: id: 09e0a470102064ac18523541a3c0e61f source: viaf type: document term: Noël, Eugéne, 1816-1899 version: 2013-07-01T14:07:50Z viafid: '24711642' --- _id: 09e6427b6396ea3e3211eed18740fe8a bav: adv10110731 bnf: '10467378' dnb: '101856261' key: DevillersLéopold(1830-1910) lc: nb2004023543 merge: id: 09e6427b6396ea3e3211eed18740fe8a source: viaf type: document term: Devillers, Léopold (1830-1910) version: 2013-07-01T14:07:50Z viafid: '59072407' --- _id: 09e8d96b26c238b25153f74779f93602 bne: xx1066017 bnf: '12185803' dnb: '118801384' key: TarleEvgenijViktorovič1875-1955 lc: n82090310 merge: id: 09e8d96b26c238b25153f74779f93602 source: viaf type: document nkc: jn19992001173 nla: '000035539434' nlicyr: '000156874' nlilat: '000445779' ptbnp: '245367' selibr: '96042' term: Tarle, Evgenij Viktorovič, 1875-1955 version: 2013-07-01T14:07:50Z viafid: '51733707' --- _id: 09f372085c61cdfff7411fdc8ba9b695 key: EdströmViviBlom1923-|AstridLindgrenvildtoringochlägereldEnglish lc: n99017963 merge: id: 09f372085c61cdfff7411fdc8ba9b695 source: viaf type: document term: Edström, Vivi Blom, 1923- | Astrid Lindgren, vildtoring och lägereld. English version: 2013-07-01T14:07:50Z viafid: '175918653' --- _id: 09f6a3806fc86adb675f4828bece8dab key: JúdiceNuno1949-|PoemsSelections lc: n95037472 merge: id: 09f6a3806fc86adb675f4828bece8dab source: viaf type: document term: Júdice, Nuno, 1949- | Poems. Selections version: 2013-07-01T14:07:50Z viafid: '184376801' --- _id: 09fb5bd1425f269456433674417ac4d2 bnf: '12123233' dnb: '119424770' key: BrèsGuyde1522-1567 lc: n81055730 merge: id: 09fb5bd1425f269456433674417ac4d2 source: viaf type: document nkc: ola2009522933 nla: '000035854959' nlilat: '000025971' term: Brès, Guy de, 1522-1567 version: 2013-07-01T14:07:50Z viafid: '22174787' --- _id: 0a005720ef2f9de056dc4247785b7710 key: AxelssonMajgull1947-|LångtbortafrånNifelheimPolska merge: id: 0a005720ef2f9de056dc4247785b7710 source: viaf type: document selibr: '359548' term: Axelsson, Majgull, 1947-. | Långt borta från Nifelheim. Polska version: 2013-07-01T14:07:50Z viafid: '294885090' --- _id: 0a043b4df610e8d466b11dc88691c2b6 bnf: '12469798' dnb: '116295198' key: KöpkeFriedrichKarl(1785-1865) lc: nb2002025553 merge: id: 0a043b4df610e8d466b11dc88691c2b6 source: viaf type: document term: Köpke, Friedrich Karl (1785-1865) version: 2013-07-01T14:07:50Z viafid: '2571534' --- _id: 0a0cdb6c91d3320b937e697c44a46593 dnb: '103216995' key: Ozga-MichalskiJózef1919-2002 lc: n86868929 merge: id: 0a0cdb6c91d3320b937e697c44a46593 source: viaf type: document nkc: js2008439213 term: Ozga-Michalski, Józef, 1919-2002 version: 2013-07-01T14:07:50Z viafid: '34862661' --- _id: 0a1002129ddd5867acb541237acf0b8e bne: xx1774957 dnb: 14381981x key: MartinFrançois1867-1928 lc: nb2004300169 merge: id: 0a1002129ddd5867acb541237acf0b8e source: viaf type: document nla: '000035717136' nlilat: '000549208' term: Martin, François, 1867-1928 version: 2013-07-01T14:07:50Z viafid: '12389009' --- _id: 0a24be53faa20572ef6b15189aaceaf2 dnb: '118683829' key: FlaischlenCäsar1864-1920 lc: n88626629 merge: id: 0a24be53faa20572ef6b15189aaceaf2 source: viaf type: document nkc: xx0075839 nla: '000035794308' nlilat: '000497142' term: Flaischlen, Cäsar, 1864-1920 version: 2013-07-01T14:07:50Z viafid: '62342738' --- _id: 0a2a05e70c86782813ad1523ca4bc1a0 dnb: '122223624' key: BrönnerHerbert1930-Beziehungfamiliaer lc: n50059163 merge: id: 0a2a05e70c86782813ad1523ca4bc1a0 source: viaf type: document nlilat: '000412836' term: Brönner, Herbert, 1930-, Beziehung familiaer version: 2013-07-01T14:07:50Z viafid: '112577131' --- _id: 0a2e072d211e85a980c72506bf9ccc7e bav: adv12332922 bne: xx1132637 bnf: '12215676' key: MartinAndré1884-1963 lc: n2007182382 merge: id: 0a2e072d211e85a980c72506bf9ccc7e source: viaf type: document nla: '000036010610' term: Martin, André 1884-1963 version: 2013-07-01T14:07:50Z viafid: '50301136' --- _id: 0a30a1eac61e6778b17df17cb0b9debb bav: adv10964662 bnf: '11918284' dnb: '124098282' key: OudinCésard1625 lc: nr93008123 merge: id: 0a30a1eac61e6778b17df17cb0b9debb source: viaf type: document nkc: mzk2006356127 ptbnp: '168389' selibr: '316260' term: Oudin, César, d. 1625 version: 2013-07-01T14:07:50Z viafid: '12295511' --- _id: 0a3811cdc4bf9e50da74190116a95fa7 bnf: '12982935' dnb: '124007481' key: TailliarEugène1803-1878 merge: id: 0a3811cdc4bf9e50da74190116a95fa7 source: viaf type: document term: Tailliar, Eugène, 1803-1878 version: 2013-07-01T14:07:50Z viafid: '32130378' --- _id: 0a62c224d945445f5fbecda77e4017c2 bav: adv10286851 bnf: '12339233' dnb: '118714570' key: KästnerAbrahamGotthelf1719-1800 lc: n85241161 merge: id: 0a62c224d945445f5fbecda77e4017c2 source: viaf type: document nkc: ola2007364165 nla: '000036004036' nlilat: '000079761' selibr: '322387' term: Kästner, Abraham Gotthelf, 1719-1800 version: 2013-07-01T14:07:50Z viafid: '39450522' --- _id: 0a6de044bb18ee42b2692aae02ddf18e bav: adv11437043 bnf: '12028119' dnb: 10469209x key: MörchenHermann(1906-1990) lc: n81092158 merge: id: 0a6de044bb18ee42b2692aae02ddf18e source: viaf type: document nlilat: '000097186' term: Mörchen, Hermann (1906-1990) version: 2013-07-01T14:07:50Z viafid: '27079901' --- _id: 0a6e39c405f03eb064bfe27c3ffa7f83 key: GuénounDenis1946-|Hypothèsessurl'EuropeEnglish lc: no2012144930 merge: id: 0a6e39c405f03eb064bfe27c3ffa7f83 source: viaf type: document term: Guénoun, Denis, 1946- | Hypothèses sur l'Europe. English version: 2013-07-01T14:07:50Z viafid: '286545948' --- _id: 0a6fbf4291a67e1f752f38e8c6a5df54 bne: xx1560356 dnb: '120562944' key: BellotPierre-François1776-1836 lc: no2008017373 merge: id: 0a6fbf4291a67e1f752f38e8c6a5df54 source: viaf type: document ptbnp: '133752' term: Bellot, Pierre-François, 1776-1836 version: 2013-07-01T14:07:50Z viafid: '15603918' --- _id: 0a73a2534a2d4b5851210d6f7e6074e2 bav: adv10034801 bnf: '11990956' dnb: '118785710' key: AlexandreNoël1639-1724 lc: no96066946 merge: id: 0a73a2534a2d4b5851210d6f7e6074e2 source: viaf type: document nkc: ola2006340224 nla: '000035765406' nlilat: '000540481' ptbnp: '987782' selibr: '273835' term: Alexandre, Noël, 1639-1724 version: 2013-07-01T14:07:50Z viafid: '22151431' --- _id: 0a750d756f540a47686f366cc729d12b dnb: '116044640' key: KannegießerKarlLudwig1781-1864 lc: n85317484 merge: id: 0a750d756f540a47686f366cc729d12b source: viaf type: document nlilat: '000282793' ptbnp: '1440748' selibr: '243392' term: Kannegießer, Karl Ludwig 1781-1864 version: 2013-07-01T14:07:50Z viafid: '59059890' --- _id: 0a7617aa6157d52e6239eb938e3fa745 bav: adv10003870 bne: xx1309288 bnf: '11891582' dnb: 11560720x jpg: '500314299' key: BernisFrançois-JoachimdePierrede1715-1794 lc: n82165748 merge: id: 0a7617aa6157d52e6239eb938e3fa745 source: viaf type: document nkc: mzk2003195776 nlilat: '000019585' ptbnp: '166798' selibr: '277710' term: Bernis, François-Joachim de Pierre de, 1715-1794 version: 2013-07-01T14:07:50Z viafid: '68925438' --- _id: 0a79f7e10c6b55855b27e20a81e316c5 dnb: '118836838' key: RodríguezAlfonso1526-1616 merge: id: 0a79f7e10c6b55855b27e20a81e316c5 source: viaf type: document term: Rodríguez, Alfonso, 1526-1616 version: 2013-07-01T14:07:50Z viafid: '73886528' --- _id: 0a7c336d48e3eba772809417fdf62a1a bnf: '11919623' key: PiatierAndré(1914-1991) merge: id: 0a7c336d48e3eba772809417fdf62a1a source: viaf type: document ptbnp: '155323' term: Piatier, André (1914-1991) version: 2013-07-01T14:07:50Z viafid: '73858552' --- _id: 0a7ee00767e81ac3fb656e3bbe2213df bnf: '14785739' dnb: '118699792' key: HábaAlois1893-1973 lc: n83172253 merge: id: 0a7ee00767e81ac3fb656e3bbe2213df source: viaf type: document nkc: jk01032899 nla: '000036015059' nlilat: '000066100' term: Hába, Alois, 1893-1973 version: 2013-07-01T14:07:50Z viafid: '71657828' --- _id: 0a886e842671b537d390d61bcd61c790 bne: xx931300 bnf: '12001087' dnb: '118576259' key: MaḥfūẓNajīb1911-2006 lc: n82091918 merge: id: 0a886e842671b537d390d61bcd61c790 source: viaf type: document nkc: jn19992000657 nla: '000035322426' nliara: '000202719' nlilat: '000087703' ptbnp: '24297' selibr: '208307' term: Maḥfūẓ, Najīb, 1911-2006 version: 2013-07-01T14:07:50Z viafid: '89803944' --- _id: 0a88d3ae3b5127b5a9b13ffbd9bf6cf7 bnf: '12063049' dnb: '128386495' key: GaconFrançois1667-1725 lc: nr94015816 merge: id: 0a88d3ae3b5127b5a9b13ffbd9bf6cf7 source: viaf type: document nlilat: '000528322' ptbnp: '1046139' term: Gacon, François, 1667-1725 version: 2013-07-01T14:07:50Z viafid: '71412505' --- _id: 0a963063c003c9643fa33ad66ba86268 bav: adv10072631 bnf: '13009419' dnb: '130192309' key: BabiédeBercenayFrançois(1761-ca1830) lc: nr93015814 merge: id: 0a963063c003c9643fa33ad66ba86268 source: viaf type: document nla: '000035400896' ptbnp: '168742' term: Babié de Bercenay, François (1761-ca 1830) version: 2013-07-01T14:07:50Z viafid: '73986061' --- _id: 0a9d89963fbe12b26b632ae8048ee3c8 bne: xx1039701 dnb: '187118655' key: RodríguezAlonso1538-1616 lc: n50048918 merge: id: 0a9d89963fbe12b26b632ae8048ee3c8 source: viaf type: document nkc: mzk2004243993 nla: '000035672926' ptbnp: '718622' selibr: '334438' term: Rodríguez, Alonso, 1538-1616 version: 2013-07-01T14:07:50Z viafid: '71570078' --- _id: 0aa02a0326b5a1cb9a6503a9691ec363 bav: adv11097753 bnf: '12282457' dnb: '124692540' key: RégnaultÉlias1801-1868 lc: n88623052 merge: id: 0aa02a0326b5a1cb9a6503a9691ec363 source: viaf type: document nlilat: '000115050' ptbnp: '90223' term: Régnault, Élias, 1801-1868 version: 2013-07-01T14:07:50Z viafid: '9910357' --- _id: 0aa177354b4d56577a64713daaffef19 bav: adv10045385 bnf: '11918613' dnb: '104714964' key: ParinaudAndré1924-2006 lc: n50050313 merge: id: 0aa177354b4d56577a64713daaffef19 source: viaf type: document nkc: jn19990006368 nla: '000035408818' nlilat: '000103349' ptbnp: '51942' term: Parinaud, André, 1924-2006 version: 2013-07-01T14:07:50Z viafid: '98106261' --- _id: 0aa948da75ef1657582cc6a253cdb635 bav: adv10024566 bnf: '12770159' dnb: '127614699' key: KostrzewskiJózef1885-1969 lc: n93111995 merge: id: 0aa948da75ef1657582cc6a253cdb635 source: viaf type: document nkc: js2007409769 nlilat: '000510410' term: Kostrzewski, Józef, 1885-1969 version: 2013-07-01T14:07:50Z viafid: '3500883' --- _id: 0aa987a619447d27f9fa8da16f627441 dnb: '128187042' key: DobrzańskiBohdan1909-1987 lc: n82085510 merge: id: 0aa987a619447d27f9fa8da16f627441 source: viaf type: document nkc: mzk2010585189 term: Dobrzański, Bohdan, 1909-1987 version: 2013-07-01T14:07:50Z viafid: '91758279' --- _id: 0aaf672d68f60a8edc61771e78cc0d53 dnb: '121588734' key: VerhaegenPierre-Théodore1796-1862 lc: n2002027912 merge: id: 0aaf672d68f60a8edc61771e78cc0d53 source: viaf type: document term: Verhaegen, Pierre-Théodore, 1796-1862 version: 2013-07-01T14:07:50Z viafid: '47622291' --- _id: 0ab11fc65836d4c8f56f7c36022a972f dnb: '105833363' key: HornIgnaceÉdouard1825-1875 lc: nr98044513 merge: id: 0ab11fc65836d4c8f56f7c36022a972f source: viaf type: document nkc: zmp2012726785 nla: '000035773185' nlilat: '000064859' term: Horn, Ignace Édouard, 1825-1875 version: 2013-07-01T14:07:50Z viafid: '56718546' --- _id: 0aba069590b9a8b2cc630617b5d431ff bnf: '12016134' key: MercierJacques1933-géologue merge: id: 0aba069590b9a8b2cc630617b5d431ff source: viaf type: document term: Mercier, Jacques 1933-.... géologue version: 2013-07-01T14:07:50Z viafid: '224420756' --- _id: 0ac50ef47dbdc9ca95b9310e70d6b49c bnf: '12157859' dnb: '120847280' key: Demény͏̈Georges1850-1917 lc: n88676702 merge: id: 0ac50ef47dbdc9ca95b9310e70d6b49c source: viaf type: document term: Demény͏̈, Georges, 1850-1917 version: 2013-07-01T14:07:50Z viafid: '44337483' --- _id: 0ac89f2ab469a3fa5949b4887702912e bav: adv10924095 bnf: '13092522' dnb: '101399502' key: DéprezEugène1874-1951 lc: nr91009898 merge: id: 0ac89f2ab469a3fa5949b4887702912e source: viaf type: document nkc: kup20030000021014 nla: '000035784607' nlilat: '000281240' ptbnp: '145705' term: Déprez, Eugène, 1874-1951 version: 2013-07-01T14:07:50Z viafid: '44435780' --- _id: 0ad1cd6f32cb1b2b6785ae670f28e96b bav: adv10906530 dnb: '123825792' jpg: '500021137' key: LeClercSébastien1637-1714 lc: n85066159 merge: id: 0ad1cd6f32cb1b2b6785ae670f28e96b source: viaf type: document nlilat: '000468571' term: Le Clerc, Sébastien, 1637-1714 version: 2013-07-01T14:07:50Z viafid: '99735429' --- _id: 0ae1b7bd53660ff54bd85eeb4f77422b bav: adv11670777 bne: xx1164088 bnf: '11900422' dnb: '118526839' jpg: '500013657' key: DoréGustave1832-1883 lc: n79089221 merge: id: 0ae1b7bd53660ff54bd85eeb4f77422b source: viaf type: document nkc: jn19990001823 nla: '000035041510' nlicyr: '000150638' nliheb: '000170985' nlilat: '000040461' ptbnp: '34939' selibr: '183977' term: Doré, Gustave, 1832-1883 version: 2013-07-01T14:07:50Z viafid: '41839207' --- _id: 0ae39066a6c1e03197f5a00d2a7850b3 dnb: '117596620' key: MüllerJohann1832-1918 lc: no2008101292 merge: id: 0ae39066a6c1e03197f5a00d2a7850b3 source: viaf type: document term: Müller, Johann, 1832-1918 version: 2013-07-01T14:07:50Z viafid: '7206645' --- _id: 0ae61fb92910aa5c3a40a80cb1c7d2a1 bav: adv10053483 bnf: '12544566' dnb: 12105764x key: ColetiNiccoló1680-1765 lc: n88070742 merge: id: 0ae61fb92910aa5c3a40a80cb1c7d2a1 source: viaf type: document nkc: ola2006340279 term: Coleti, Niccoló, 1680-1765 version: 2013-07-01T14:07:50Z viafid: '46873648' --- _id: 0ae86ae78ae8c5c203c362d2b3ebeaf0 bav: adv10098378 bnf: '12331292' dnb: '117105392' key: JéquierGustave1868-1946 lc: n84211924 merge: id: 0ae86ae78ae8c5c203c362d2b3ebeaf0 source: viaf type: document nla: '000035783089' nlilat: '000464986' selibr: '329195' term: Jéquier, Gustave, 1868-1946 version: 2013-07-01T14:07:50Z viafid: '22212511' --- _id: 0af89ea10874552daee4d12285c18f69 bne: xx860535 dnb: '123568641' key: GalvãoAntóniod1557 lc: n50083204 merge: id: 0af89ea10874552daee4d12285c18f69 source: viaf type: document nla: '000035162079' ptbnp: '28853' term: Galvão, António, d. 1557 version: 2013-07-01T14:07:50Z viafid: '25513758' --- _id: 0afb729968ea0dcf09ad65512341cfc0 key: KuntİMetin1942-|SancaktaneyaleteEnglish lc: n83168030 merge: id: 0afb729968ea0dcf09ad65512341cfc0 source: viaf type: document term: Kunt, İ. Metin, 1942- | Sancaktan eyalete. English version: 2013-07-01T14:07:50Z viafid: '175798492' --- _id: 0afbb7c6428e4825e6c17b916b1f3e28 bav: adv12129196 bnf: '14537953' dnb: '123447976' key: ForteguerriNiccolò1674-1735 lc: n85071912 merge: id: 0afbb7c6428e4825e6c17b916b1f3e28 source: viaf type: document nkc: mzk2009528561 nlilat: '000468749' ptbnp: '269286' term: Forteguerri, Niccolò, 1674-1735 version: 2013-07-01T14:07:50Z viafid: '99738830' --- _id: 0b004563b2123fcef297ae26bc108899 bnf: '14445853' key: ŚāstrīBālacandra1905-19? lc: n88147150 merge: id: 0b004563b2123fcef297ae26bc108899 source: viaf type: document nla: '000035346128' term: Śāstrī, Bālacandra, 1905-19..? version: 2013-07-01T14:07:50Z viafid: '114115692' --- _id: 0b01d2a9700a7d54ee731d6383b2e4bf bav: adv11183840 bne: xx1316028 bnf: '12745736' dnb: 13895335x key: SamperJoséMaría1828-1888 lc: n83800651 merge: id: 0b01d2a9700a7d54ee731d6383b2e4bf source: viaf type: document term: Samper, José María 1828-1888 version: 2013-07-01T14:07:50Z viafid: '1399395' --- _id: 0b0c46f0bd96bf9e0469039fa39cb8b0 bnf: '12511914' dnb: '118766481' key: WeißeChristianHermann1801-1866 lc: n85295270 merge: id: 0b0c46f0bd96bf9e0469039fa39cb8b0 source: viaf type: document nlilat: '000140772' term: Weiße, Christian Hermann, 1801-1866 version: 2013-07-01T14:07:50Z viafid: '54254106' --- _id: 0b1108aa92054e88756f44823b144f71 dnb: '122343107' key: StåhleCarlIvar1913-1980 lc: n82075557 merge: id: 0b1108aa92054e88756f44823b144f71 source: viaf type: document ptbnp: '1201889' selibr: '222958' term: Ståhle, Carl Ivar, 1913-1980 version: 2013-07-01T14:07:50Z viafid: '114713155' --- _id: 0b144989a23c9e2ba44316c2c4e9ac49 dnb: '102179026' key: SchönerLazarusca1543-1607 lc: n88043976 merge: id: 0b144989a23c9e2ba44316c2c4e9ac49 source: viaf type: document nkc: mzk2009533063 term: Schöner, Lazarus, ca 1543-1607 version: 2013-07-01T14:07:50Z viafid: '7769720' --- _id: 0b1b5781047638aebb626ba9e39475b6 bnf: '12108185' dnb: '118624334' key: TschižewskijDmitrij1894-1977 lc: n50041483 merge: id: 0b1b5781047638aebb626ba9e39475b6 source: viaf type: document nkc: js20010125076 nla: '000035587201' nlicyr: '000158492' nlilat: '000132910' selibr: '275117' term: Tschižewskij, Dmitrij, 1894-1977 version: 2013-07-01T14:07:50Z viafid: '18015229' --- _id: 0b1d6738beedab2a53e876692fedb655 key: AnderssonHåkan1959-jurist lc: nb2007008625 merge: id: 0b1d6738beedab2a53e876692fedb655 source: viaf type: document selibr: '206623' term: Andersson, Håkan, 1959-, jurist version: 2013-07-01T14:07:50Z viafid: '33983455' --- _id: 0b1eead043d4bb8ecd52a8d2286ca013 key: NarbonneJean-Marc1957-|Lévinasetl'héritageGrecEnglish lc: n2006023638 merge: id: 0b1eead043d4bb8ecd52a8d2286ca013 source: viaf type: document term: Narbonne, Jean-Marc, 1957- | Lévinas et l'héritage Grec. English version: 2013-07-01T14:07:50Z viafid: '175549786' --- _id: 0b1fe78196a6e1c0be50e6ae52c0c1b9 bnf: '12136042' dnb: '100214908' key: PerreauJean-André1749-1813 lc: n93063231 merge: id: 0b1fe78196a6e1c0be50e6ae52c0c1b9 source: viaf type: document nkc: mzk2009511491 nlilat: '000509787' ptbnp: '240169' term: Perreau, Jean-André, 1749-1813 version: 2013-07-01T14:07:50Z viafid: '2506832' --- _id: 0b26e997eaa55d77bd0d9667db589d37 bnf: '12129144' dnb: '118748513' key: ŠmelevIvanSergeevič1873-1950 lc: n81117011 merge: id: 0b26e997eaa55d77bd0d9667db589d37 source: viaf type: document nkc: xx0007365 nla: '000035131141' nlicyr: '000160131' selibr: '214160' term: Šmelev, Ivan Sergeevič, 1873-1950 version: 2013-07-01T14:07:50Z viafid: '91565066' --- _id: 0b2780bbacafe75d5ba0bf63f0cbfc92 key: GrøndahlJensChristian1959-|AndetlysEnglish lc: n2004044744 merge: id: 0b2780bbacafe75d5ba0bf63f0cbfc92 source: viaf type: document term: Grøndahl, Jens Christian, 1959- | Andet lys. English version: 2013-07-01T14:07:50Z viafid: '174329054' --- _id: 0b2b84c876538c955105edad1dbaab36 bne: xx1365935 bnf: '12555735' dnb: '118783106' key: PečerskijAndrej1819-1883 lc: n84154998 merge: id: 0b2b84c876538c955105edad1dbaab36 source: viaf type: document nkc: kup19960000064133 nla: '000035752190' selibr: '208174' term: Pečerskij, Andrej, 1819-1883 version: 2013-07-01T14:07:50Z viafid: '73967483' --- _id: 0b31740d71378e3019d4a0b2541c8f7d bav: adv10129907 bnf: '12524528' dnb: '118672703' key: DumouriezCharlesFrançoisDuPérier1739-1823 lc: n85008400 merge: id: 0b31740d71378e3019d4a0b2541c8f7d source: viaf type: document nkc: ola2002161226 nla: '000035816243' nlilat: '000247028' ptbnp: '90600' selibr: '284056' term: Dumouriez, Charles François Du Périer, 1739-1823 version: 2013-07-01T14:07:50Z viafid: '69039374' --- _id: 0b3553ddd1a1281db36fc5e68d5fa6a9 bne: xx996656 bnf: '11907554' dnb: '118551469' key: AndōHiroshige1797-1858 lc: n50044379 merge: id: 0b3553ddd1a1281db36fc5e68d5fa6a9 source: viaf type: document nkc: jx20100915004 nla: '000035006801' nlilat: '000063509' selibr: '175588' swnl: vtls002052758 term: Andō, Hiroshige, 1797-1858 version: 2013-07-01T14:07:50Z viafid: '19678928' --- _id: 0b358779228fcca0aa669691a6cf2864 bav: adv11951305 bnf: '12023579' dnb: 11861844x key: StöklGünther(1916-1998) lc: n81050114 merge: id: 0b358779228fcca0aa669691a6cf2864 source: viaf type: document nkc: skuk0005425 nlilat: '000436352' term: Stökl, Günther (1916-1998) version: 2013-07-01T14:07:50Z viafid: '89676189' --- _id: 0b392bdf63889fecefa2ae47079e796f bav: adv10219898 bne: xx923661 bnf: '11886376' dnb: '122339347' key: GarcíaBaccaJuanDavid1901-1992 lc: n81068915 merge: id: 0b392bdf63889fecefa2ae47079e796f source: viaf type: document nkc: jn19981001314 nla: '000035785518' ptbnp: '275656' term: García Bacca, Juan David, 1901-1992 version: 2013-07-01T14:07:50Z viafid: '112824971' --- _id: 0b4371e3286ce4567cb75f297dc96380 bav: adv10290168 bnf: '12915473' dnb: '172533910' key: IstvánffyMiklós1538-1615 lc: n88049285 merge: id: 0b4371e3286ce4567cb75f297dc96380 source: viaf type: document nkc: mzk2009533253 nlilat: '000492379' term: Istvánffy, Miklós, 1538-1615 version: 2013-07-01T14:07:50Z viafid: '76444890' --- _id: 0b48d235c8823e467002935d39a9ef4f bav: adv10296629 bne: xx5016110 bnf: '12183568' dnb: '118565346' key: KoraīsAdamantios(1748-1833) lc: n82208074 merge: id: 0b48d235c8823e467002935d39a9ef4f source: viaf type: document nla: '000035280046' nlilat: '000449376' selibr: '207683' swnl: vtls001886746 term: Koraīs, Adamantios (1748-1833) version: 2013-07-01T14:07:50Z viafid: '95174123' --- _id: 0b48f16cd146bdbd10521a2f73947714 bav: adv10231928 bne: xx1727372 bnf: '12180932' dnb: '117661236' key: AndréYves-Marie1675-1764 lc: n2006066584 merge: id: 0b48f16cd146bdbd10521a2f73947714 source: viaf type: document nkc: ola2008460009 term: André, Yves-Marie, 1675-1764 version: 2013-07-01T14:07:50Z viafid: '51732793' --- _id: 0b4f1e9c2efdd1ac283422cc1d94c3b4 bav: adv10167432 bnf: '12072626' dnb: '119117983' key: HäberlinFranzDominicus1720-1787 merge: id: 0b4f1e9c2efdd1ac283422cc1d94c3b4 source: viaf type: document nkc: mzk2008468972 term: Häberlin, Franz Dominicus, 1720-1787 version: 2013-07-01T14:07:50Z viafid: '32019945' --- _id: 0b505506c130ec7f71785970d5a172cf bav: adv10070923 bne: xx1509951 bnf: '13165778' dnb: '117581577' key: BéclardJules1817-1887 lc: n87803195 merge: id: 0b505506c130ec7f71785970d5a172cf source: viaf type: document nkc: nlk20000079474 term: Béclard, Jules 1817-1887 version: 2013-07-01T14:07:50Z viafid: '84790772' --- _id: 0b542cad55af46e65e5b6a797b13ffe4 bav: adv10042791 bnf: '11908115' dnb: '119244322' key: HuygheRené1906-1997 lc: n50030362 merge: id: 0b542cad55af46e65e5b6a797b13ffe4 source: viaf type: document nkc: kup19940000041679 nla: '000035216538' nlilat: '000407249' ptbnp: '39803' selibr: '334829' term: Huyghe, René, 1906-1997 version: 2013-07-01T14:07:50Z viafid: '7391755' --- _id: 0b5951fa6f9f328462dac7a67ebaab85 bnf: '13620607' dnb: '120859718' key: VonReinsberg-DüringsfeldOtto1822-1876 lc: no94025440 merge: id: 0b5951fa6f9f328462dac7a67ebaab85 source: viaf type: document nkc: mzk2003203577 nla: '000035731292' nlilat: '000518852' term: Von Reinsberg-Düringsfeld, Otto, 1822-1876 version: 2013-07-01T14:07:50Z viafid: '51866388' --- _id: 0b5e32448bf96341c274810b19807da6 bav: adv12227711 bnf: '12496738' key: GuérinMarcel1873-1948 lc: n81042631 merge: id: 0b5e32448bf96341c274810b19807da6 source: viaf type: document nkc: xx0163289 nla: '000036133604' term: Guérin, Marcel, 1873-1948 version: 2013-07-01T14:07:50Z viafid: '54251295' --- _id: 0b6b1325923ef33c1921943d7841fb83 bav: adv10283417 bnf: '12521155' dnb: '130597198' key: BeauvaisdePréauCharles-Théodore(1772-1830) lc: n2007013911 merge: id: 0b6b1325923ef33c1921943d7841fb83 source: viaf type: document term: Beauvais de Préau, Charles-Théodore (1772-1830) version: 2013-07-01T14:07:50Z viafid: '119187' --- _id: 0b762fcab4b109a81685eb99a5c28093 key: ŌmaeKenʼichi1943-|TriadpowerJapanese lc: n85124853 merge: id: 0b762fcab4b109a81685eb99a5c28093 source: viaf type: document term: Ōmae, Kenʼichi, 1943- | Triad power. Japanese version: 2013-07-01T14:07:50Z viafid: '178650267' --- _id: 0b7906a5457ee18ca53e17e20bc56692 key: LindströmMartin1970-|MærkevarerpåInternettetEnglish lc: no2002035195 merge: id: 0b7906a5457ee18ca53e17e20bc56692 source: viaf type: document term: Lindström, Martin, 1970- | Mærkevarer på Internettet. English version: 2013-07-01T14:07:50Z viafid: '184522096' --- _id: 0b92335de725ebb682d787ebb2459509 bav: adv12446024 bne: xx1597897 bnf: '12982992' dnb: '101846509' key: VanDrivalEugéne1815-1887 merge: id: 0b92335de725ebb682d787ebb2459509 source: viaf type: document ptbnp: '1205863' term: Van Drival, Eugéne, 1815-1887 version: 2013-07-01T14:07:50Z viafid: '2604273' --- _id: 0b943a2a8481c5d4f2724c25549a794a key: DeSousaAntónio1898-1981 lc: n83139854 merge: id: 0b943a2a8481c5d4f2724c25549a794a source: viaf type: document ptbnp: '36679' term: De Sousa, António, 1898-1981 version: 2013-07-01T14:07:50Z viafid: '11223045' --- _id: 0ba500e534508b319b0601cb4f8664c2 dnb: '116221364' key: BöhmerGeorgWilhelm1761-1839 lc: n91092686 merge: id: 0ba500e534508b319b0601cb4f8664c2 source: viaf type: document nkc: ola2009507589 nlilat: '000027072' term: Böhmer, Georg Wilhelm, 1761-1839 version: 2013-07-01T14:07:50Z viafid: '17968330' --- _id: 0ba67b929cf30059b68c4b2d311451dc bne: xx1606252 bnf: '12121287' dnb: '117631620' key: Saint-LambertJean-François(1716-1803) lc: no91005600 merge: id: 0ba67b929cf30059b68c4b2d311451dc source: viaf type: document nkc: mzk2009511737 nlilat: '000516045' selibr: '169244' term: Saint-Lambert, Jean-François (1716-1803) version: 2013-07-01T14:07:50Z viafid: '71423453' --- _id: 0bacd6137de9f2e52433700a640b7440 bne: xx1134740 dnb: '152369368' key: EsclasansAgustí1895-1967 lc: n84213564 merge: id: 0bacd6137de9f2e52433700a640b7440 source: viaf type: document term: Esclasans, Agustí 1895-1967 version: 2013-07-01T14:07:50Z viafid: '40405799' --- _id: 0bbc4567feb0b4044cedeb24aa798466 bnf: '12529633' dnb: '119042134' key: Barbé-MarboisFrançois1745-1837 lc: n83141373 merge: id: 0bbc4567feb0b4044cedeb24aa798466 source: viaf type: document nkc: xx0130308 nla: '000035013406' nlilat: '000454887' selibr: '313582' term: Barbé-Marbois, François, 1745-1837 version: 2013-07-01T14:07:50Z viafid: '9958036' --- _id: 0bdab7710358159e91bf9565d1e10472 key: HowardRonaldA1934-(RonaldArthur)Dinamicheskoeprogrammirovanieimarkovskieprot︠s︡essy lc: no2010116242 merge: id: 0bdab7710358159e91bf9565d1e10472 source: viaf type: document term: Howard, Ronald A., 1934-, (Ronald Arthur), Dinamicheskoe programmirovanie i markovskie prot︠s︡essy version: 2013-07-01T14:07:50Z viafid: '174888919' --- _id: 0be07a1e4d63546f1090d26bd62d6c1d bnf: '11989530' dnb: '118854860' egaxa: vtls000814446 key: ʻUrābīAḥmad1840or41-1911 lc: n83009078 merge: id: 0be07a1e4d63546f1090d26bd62d6c1d source: viaf type: document nlilat: '000451615' selibr: '200241' term: ʻUrābī, Aḥmad, 1840 or 41-1911 version: 2013-07-01T14:07:50Z viafid: '17232266' --- _id: 0be2e27da3102e9f0999bab06b544313 key: RossolimoGrigoriĭIvanovich1860-1928 lc: no2011090962 merge: id: 0be2e27da3102e9f0999bab06b544313 source: viaf type: document term: Rossolimo, Grigoriĭ Ivanovich, 1860-1928 version: 2013-07-01T14:07:50Z viafid: '84814614' --- _id: 0be5749bc5cd2620d955259d8764ef31 bav: adv10299371 bne: xx1157245 bnf: '12551842' dnb: '119526409' egaxa: vtls000806176 key: IbnQutaybahʻAbdAllāhibnMuslim828-889? lc: n83043339 merge: id: 0be5749bc5cd2620d955259d8764ef31 source: viaf type: document nla: '000035125590' nliara: '000159417' nlilat: '000066436' selibr: '191053' term: Ibn Qutaybah, ʻAbd Allāh ibn Muslim, 828-889? version: 2013-07-01T14:07:50Z viafid: '17336324' --- _id: 0bf0f923a53ede8b30719e403be1c11b dnb: '172582202' key: LandréGeorgeNicolas1762-1824 merge: id: 0bf0f923a53ede8b30719e403be1c11b source: viaf type: document term: Landré, George Nicolas, 1762-1824 version: 2013-07-01T14:07:50Z viafid: '200220677' --- _id: 0bfb2f2b849685526c8b4983fa3c437c dnb: '118844431' key: MöllerEberhardWolfgang(1906-1972) lc: n85057292 merge: id: 0bfb2f2b849685526c8b4983fa3c437c source: viaf type: document term: Möller, Eberhard Wolfgang (1906-1972) version: 2013-07-01T14:07:50Z viafid: '50022687' --- _id: 0c122418227c6ebf7ebd8eed91f8135d bnf: '12981645' dnb: '102762600' key: PalménE1898-1985(Erik) lc: no2007068414 merge: id: 0c122418227c6ebf7ebd8eed91f8135d source: viaf type: document nkc: xx0150847 nla: '000035406854' term: Palmén, E., 1898-1985, (Erik) version: 2013-07-01T14:07:50Z viafid: '39509314' --- _id: 0c17ef143a12c52c7593c6957048c7c0 bav: adv10137458 dnb: 11636341x key: HäpkeRudolf1884-1930 lc: no97010368 merge: id: 0c17ef143a12c52c7593c6957048c7c0 source: viaf type: document nlilat: '000530621' term: Häpke, Rudolf, 1884-1930 version: 2013-07-01T14:07:50Z viafid: '40128011' --- _id: 0c19339b32db062d00eef169cde79252 key: YoshimiYoshiaki1946-|JūgunianfuEnglish lc: nr00012282 merge: id: 0c19339b32db062d00eef169cde79252 source: viaf type: document term: Yoshimi, Yoshiaki, 1946- | Jūgun ianfu. English version: 2013-07-01T14:07:50Z viafid: '185412290' --- _id: 0c310b9fc82f0c92a7db6eefb902a069 dnb: '119394510' key: ŠejkaLeonid1932-1970 lc: nr99028641 merge: id: 0c310b9fc82f0c92a7db6eefb902a069 source: viaf type: document term: Šejka, Leonid, 1932-1970 version: 2013-07-01T14:07:50Z viafid: '69737954' --- _id: 0c317a78084881f8e6b6eac34df666eb bav: adv12490769 bnf: '12133582' dnb: '118868233' egaxa: vtls000852028 key: ZurayqQusṭanṭīn1909-2000 lc: n82270605 merge: id: 0c317a78084881f8e6b6eac34df666eb source: viaf type: document nla: '000035244657' nliara: '000246372' nlilat: '000146560' selibr: '218347' term: Zurayq, Qusṭanṭīn, 1909-2000 version: 2013-07-01T14:07:50Z viafid: '22939272' --- _id: 0c321cdd9e30dc1294ab65ab278d33a3 bav: adv10213428 bne: xx866279 bnf: '12102718' dnb: '118540742' jpg: '500024353' key: GonzálezJulio1876-1942 lc: n50043484 merge: id: 0c321cdd9e30dc1294ab65ab278d33a3 source: viaf type: document nla: '000035133036' nlilat: '000410496' ptbnp: '79923' selibr: '299997' term: González, Julio, 1876-1942 version: 2013-07-01T14:07:50Z viafid: '4960044' --- _id: 0c33c62403c4ad649c3f65ae2d690bd2 dnb: '116050365' key: BaratierFrançois1682-1751 lc: nr91009487 merge: id: 0c33c62403c4ad649c3f65ae2d690bd2 source: viaf type: document term: Baratier, François, 1682-1751 version: 2013-07-01T14:07:50Z viafid: '62290305' --- _id: 0c343d6f38346ac7675873bd9477dbb9 bnf: '11888842' dnb: '118973819' jpg: '500073832' key: AndriolliMichałElwiro1836-1893 lc: n80148723 merge: id: 0c343d6f38346ac7675873bd9477dbb9 source: viaf type: document nkc: jx20070207001 nla: '000035866652' nlilat: '000010368' term: Andriolli, Michał Elwiro, 1836-1893 version: 2013-07-01T14:07:50Z viafid: '50025644' --- _id: 0c37c568159acea2b1b27231a6346955 bnf: '13475530' dnb: '124817343' key: ArmengaudJacques-Eugène1810-1891 lc: n88256903 merge: id: 0c37c568159acea2b1b27231a6346955 source: viaf type: document term: Armengaud, Jacques-Eugène, 1810-1891 version: 2013-07-01T14:07:50Z viafid: '159767' --- _id: 0c38c5716f8a577ed2d4523328825d00 bav: adv10873268 bne: xx893071 bnf: '12132372' dnb: '118644483' key: AldanovMarkAleksandrovič1889-1957 lc: n84204710 merge: id: 0c38c5716f8a577ed2d4523328825d00 source: viaf type: document nkc: jo20000082489 nla: '000036551688' nlicyr: '000147244' nlilat: '000008342' ptbnp: '287' selibr: '232115' term: Aldanov, Mark Aleksandrovič 1889-1957 version: 2013-07-01T14:07:50Z viafid: '100256052' --- _id: 0c3af7531a6ae86b5a5e8b262af5e461 bav: adv10227244 dnb: '118526340' key: DörpfeldFriedrichWilhelm1824-1893 lc: n50028850 merge: id: 0c3af7531a6ae86b5a5e8b262af5e461 source: viaf type: document nlilat: '000406829' term: Dörpfeld, Friedrich Wilhelm, 1824-1893 version: 2013-07-01T14:07:50Z viafid: '20471563' --- _id: 0c3dc90679162fb80abe5913a169cae4 bav: adv10032449 bnf: '12539429' dnb: 13389097x key: AubertdelaChesnaye-des-BoisFrançois-Alexandre1699-1784 lc: no90023096 merge: id: 0c3dc90679162fb80abe5913a169cae4 source: viaf type: document nkc: mzk2009510493 nla: '000036020630' nlilat: '000013018' term: Aubert de la Chesnaye-des-Bois, François-Alexandre, 1699-1784 version: 2013-07-01T14:07:50Z viafid: '51802151' --- _id: 0c4129814ef8ac3bf2dbb51dbe314690 bav: adv11050052 bnf: '12422351' dnb: '117683922' key: QuérardJoseph-Marie1797-1865 lc: nr89003391 merge: id: 0c4129814ef8ac3bf2dbb51dbe314690 source: viaf type: document nkc: mzk2004234281 nlilat: '000523225' ptbnp: '47010' term: Quérard, Joseph-Marie, 1797-1865 version: 2013-07-01T14:07:50Z viafid: '9937773' --- _id: 0c463703c7bbe1d11b82304bfdd341d0 bav: adv10874948 bnf: '12117322' dnb: '119172046' key: DeLaveleyeÉmileLouisVictor1822-1892 lc: n84135848 merge: id: 0c463703c7bbe1d11b82304bfdd341d0 source: viaf type: document nkc: jn19990004906 nla: '000035765635' nlilat: '000462900' ptbnp: '84691' term: De Laveleye, Émile Louis Victor, 1822-1892 version: 2013-07-01T14:07:50Z viafid: '12339853' --- _id: 0c5483eddbe4489895a7acfb2f2c53cf bav: adv10995044 dnb: '100304567' key: MassouliéAntonin(1632-1706) merge: id: 0c5483eddbe4489895a7acfb2f2c53cf source: viaf type: document term: Massoulié, Antonin (1632-1706) version: 2013-07-01T14:07:50Z viafid: '52033741' --- _id: 0c6b50aca864af04e08686a062794739 key: DeGouvêaAlexandre1751-1808 lc: nr93018046 merge: id: 0c6b50aca864af04e08686a062794739 source: viaf type: document term: De Gouvêa, Alexandre, 1751-1808 version: 2013-07-01T14:07:50Z viafid: '26935908' --- _id: 0c6c4c087e4eafe531b9c676956d3ade bav: adv10141934 dnb: '100102840' key: DelbrückFerdinand1772-1848 lc: nr2002041667 merge: id: 0c6c4c087e4eafe531b9c676956d3ade source: viaf type: document nkc: mzk2009528374 term: Delbrück, Ferdinand, 1772-1848 version: 2013-07-01T14:07:50Z viafid: '76655444' --- _id: 0c6d8ff88c4cc3b6fb315e83cef7ddfd bav: adv10134822 bnf: '12462139' dnb: '116916338' key: GuérinJules1801-1886 merge: id: 0c6d8ff88c4cc3b6fb315e83cef7ddfd source: viaf type: document term: Guérin, Jules, 1801-1886 version: 2013-07-01T14:07:50Z viafid: '66563840' --- _id: 0c768174d747babce75da88fdd17e042 key: EngelhardtHeinz1936-|Hochdruck-Flüssigkeits-ChromatographieEnglish lc: no2011149688 merge: id: 0c768174d747babce75da88fdd17e042 source: viaf type: document term: Engelhardt, Heinz, 1936- | Hochdruck-Flüssigkeits-Chromatographie. English version: 2013-07-01T14:07:50Z viafid: '185005790' --- _id: 0c949f3997b94b82b1e3ebcb923d7c03 dnb: '123044286' jpg: '500012149' key: HuszárVilmos1884-1960 lc: n84222126 merge: id: 0c949f3997b94b82b1e3ebcb923d7c03 source: viaf type: document term: Huszár, Vilmos, 1884-1960 version: 2013-07-01T14:07:50Z viafid: '27968832' --- _id: 0c95d2cc40b1b83662510a375b4f1f99 bnf: '12245477' dnb: '121434354' key: WeilJiří1900-1959 lc: no88001051 merge: id: 0c95d2cc40b1b83662510a375b4f1f99 source: viaf type: document nkc: jk01151482 term: Weil, Jiří, 1900-1959 version: 2013-07-01T14:07:50Z viafid: '17278482' --- _id: 0c96100ad6ecc90eca42c5b5a20e637a bne: xx1223734 bnf: '12118182' dnb: '119449048' egaxa: vtls001124370 key: SzymborskaWisława1923-2012 lc: n81035696 merge: id: 0c96100ad6ecc90eca42c5b5a20e637a source: viaf type: document nkc: jn19990008399 nla: '000035811541' nlilat: '000129149' ptbnp: '910861' selibr: '95477' term: Szymborska, Wisława, 1923-2012 version: 2013-07-01T14:07:50Z viafid: '88346011' --- _id: 0ca18ed2867025b393b053133fae9a13 bav: adv10183604 bnf: '11996019' dnb: '138445362' key: WillaertLéopold1878-1963 merge: id: 0ca18ed2867025b393b053133fae9a13 source: viaf type: document nkc: jcu2012721145 nla: '000049886082' term: Willaert, Léopold, 1878-1963 version: 2013-07-01T14:07:50Z viafid: '34466149' --- _id: 0ca82f349c75de71d8bcc560a947f379 bav: adv10068847 dnb: 12208263x key: GürtlerNicolaus1654-1711 lc: nr89009958 merge: id: 0ca82f349c75de71d8bcc560a947f379 source: viaf type: document nkc: mzk2009510930 nlilat: '000523586' selibr: '338397' term: Gürtler, Nicolaus, 1654-1711 version: 2013-07-01T14:07:50Z viafid: '55020168' --- _id: 0cac38d3be3844f7df65298dc43af32f key: TegnérChristopher1807-1885 merge: id: 0cac38d3be3844f7df65298dc43af32f source: viaf type: document selibr: '289202' term: Tegnér, Christopher, 1807-1885 version: 2013-07-01T14:07:50Z viafid: '78762051' --- _id: 0cac5dc31fa0b80404311858184f7938 bav: adv12179668 bnf: '12977083' dnb: '158719301' key: RizosNeroulosJakōbos1778-1849/50 lc: nr92000655 merge: id: 0cac5dc31fa0b80404311858184f7938 source: viaf type: document nla: '000036019729' term: Rizos Neroulos, Jakōbos, 1778-1849/50 version: 2013-07-01T14:07:50Z viafid: '7520398' --- _id: 0cadd6086295c1eab4804102b7314707 dnb: '127292632' key: LeanderÅke1919-2003 merge: id: 0cadd6086295c1eab4804102b7314707 source: viaf type: document selibr: '268169' term: Leander, Åke, 1919-2003 version: 2013-07-01T14:07:50Z viafid: '71371646' --- _id: 0cafa7b92e627e31380fc66f1e11bd4f dnb: '118735055' key: MünsterHansA1901-1963 lc: n85058981 merge: id: 0cafa7b92e627e31380fc66f1e11bd4f source: viaf type: document nlilat: '000468353' term: Münster, Hans A. 1901-1963 version: 2013-07-01T14:07:50Z viafid: '22936766' --- _id: 0cb13e6232bd2acfee59cb73b5099dbf bnf: '12175626' dnb: '118850407' key: BednárAlfonz1914-1989 lc: n85165574 merge: id: 0cb13e6232bd2acfee59cb73b5099dbf source: viaf type: document nkc: jn19990209034 term: Bednár, Alfonz, 1914-1989 version: 2013-07-01T14:07:50Z viafid: '36959832' --- _id: 0cb2d1662c9bb4afa5c8b38d4fb5771a bnf: '12504267' dnb: '172319854' key: PlaaßPeter1934-1965 lc: n94008532 merge: id: 0cb2d1662c9bb4afa5c8b38d4fb5771a source: viaf type: document term: Plaaß, Peter, 1934-1965 version: 2013-07-01T14:07:50Z viafid: '208615685' --- _id: 0cb563cb3268d3600255b91934b96294 dnb: '116888199' key: GründlerCarlAugust1769-1843 merge: id: 0cb563cb3268d3600255b91934b96294 source: viaf type: document term: Gründler, Carl August, 1769-1843 version: 2013-07-01T14:07:50Z viafid: '274401699' --- _id: 0cb8162365f84bfec6cef3edbaf8ab76 bnf: '12465031' dnb: '116367334' key: GalléeJohanHendrik1847-1908 lc: n82231018 merge: id: 0cb8162365f84bfec6cef3edbaf8ab76 source: viaf type: document nlilat: '000450063' term: Gallée, Johan Hendrik, 1847-1908 version: 2013-07-01T14:07:50Z viafid: '37015462' --- _id: 0ccc262ef7773b93f61a33e330c9b59d bav: adv10219685 bnf: '12052125' egaxa: vtls001509627 key: Ibnal-JawzīAbūal-FarajʻAbdal-RaḥmānibnʻAlīca1116-1201 merge: id: 0ccc262ef7773b93f61a33e330c9b59d source: viaf type: document nkc: jn20020723170 nla: '000035416285' nliara: '000158961' nlilat: '000066491' selibr: '62724' term: Ibn al-Jawzī, Abū al-Faraj ʻAbd al-Raḥmān ibn ʻAlī, ca 1116-1201 version: 2013-07-01T14:07:50Z viafid: '100186291' --- _id: 0cd10f96b0b78521f0d5fd69631b7a48 bav: adv10179324 bnf: '12730350' dnb: '130108081' key: MaclerFrédéric1869-1938 lc: n82063735 merge: id: 0cd10f96b0b78521f0d5fd69631b7a48 source: viaf type: document nlilat: '000087347' term: Macler, Frédéric, 1869-1938 version: 2013-07-01T14:07:50Z viafid: '7513167' --- _id: 0cd9f08e8ce32b989dc3a240531ff5ad bav: adv12290597 dnb: '107654121' key: StürzingerJakob1853-1903 lc: n89608130 merge: id: 0cd9f08e8ce32b989dc3a240531ff5ad source: viaf type: document nkc: jcu2011666724 term: Stürzinger, Jakob, 1853-1903 version: 2013-07-01T14:07:50Z viafid: '10370821' --- _id: 0cda7371e4e6163ad55e34dc1764d7d5 dnb: '117265063' key: StöhrPhilipp1849-1911 lc: n85809731 merge: id: 0cda7371e4e6163ad55e34dc1764d7d5 source: viaf type: document nkc: nlk20000088160 nlilat: '000478208' term: Stöhr, Philipp, 1849-1911 version: 2013-07-01T14:07:50Z viafid: '64779480' --- _id: 0cefcb6e118099ad981df18655d19da0 key: BehrFrédéric1805-1863 lc: n88256560 merge: id: 0cefcb6e118099ad981df18655d19da0 source: viaf type: document term: Behr, Frédéric, 1805-1863 version: 2013-07-01T14:07:50Z viafid: '13876831' --- _id: 0cf421f395faf1f7dd492bbdfcac0b2d bnf: '11890310' dnb: 11756463x key: BarraultÉmile(1799-1869) lc: n88130557 merge: id: 0cf421f395faf1f7dd492bbdfcac0b2d source: viaf type: document nla: '000035014300' nlilat: '000493928' term: Barrault, Émile (1799-1869) version: 2013-07-01T14:07:50Z viafid: '7386569' --- _id: 0cfac024df6fc576fcb8849429018271 dnb: '129200727' key: WóycickiKazimierzb1876 lc: no95009982 merge: id: 0cfac024df6fc576fcb8849429018271 source: viaf type: document nkc: js2007382546 nlilat: '000318400' term: Wóycicki, Kazimierz, b. 1876 version: 2013-07-01T14:07:50Z viafid: '3546002' --- _id: 0d0347b9d673fa0837389c7778881029 bav: adv12095662 bnf: '12280744' dnb: '119480840' key: ÅkermanJohan1896-1982 lc: n79060752 merge: id: 0d0347b9d673fa0837389c7778881029 source: viaf type: document nla: '000035904497' selibr: '104062' term: Åkerman, Johan, 1896-1982 version: 2013-07-01T14:07:50Z viafid: '4992460' --- _id: 0d046c7e1361b56324a97c0c96f9ebb9 bav: adv10954696 dnb: '100204198' key: MarquetFrançoisNicolas1687-1759 lc: n2001061082 merge: id: 0d046c7e1361b56324a97c0c96f9ebb9 source: viaf type: document ptbnp: '96863' term: Marquet, François Nicolas, 1687-1759 version: 2013-07-01T14:07:50Z viafid: '34796299' --- _id: 0d06c7c564a081727520c9f455d2becb bnf: '12238024' dnb: '171499689' key: GårdlundTorsten1911-2003 merge: id: 0d06c7c564a081727520c9f455d2becb source: viaf type: document selibr: '189040' term: Gårdlund, Torsten, 1911-2003 version: 2013-07-01T14:07:50Z viafid: '201546144' --- _id: 0d08d5e826896f3002eee6cf5ced023e bav: adv10133457 bne: xx1142073 bnf: '11891047' dnb: '119089580' key: DeBelleforestFrançois1530-1583 lc: n81025991 merge: id: 0d08d5e826896f3002eee6cf5ced023e source: viaf type: document nkc: xx0009086 nla: '000035017084' nlilat: '000435080' ptbnp: '223562' selibr: '292114' term: De Belleforest, François, 1530-1583 version: 2013-07-01T14:07:50Z viafid: '61541619' --- _id: 0d0b7c265587574dbf77eed551f6fe4a dnb: 11663510x key: FöpplA1854-1924 lc: n91085919 merge: id: 0d0b7c265587574dbf77eed551f6fe4a source: viaf type: document nlilat: '000050357' term: Föppl, A., 1854-1924 version: 2013-07-01T14:07:50Z viafid: '52446756' --- _id: 0d0c5be53ff4901fb1e2d2c4177a9665 bnf: '11264035' dnb: '118092847' key: BujacJeanLéopoldEmile1852-1935 lc: n90609786 merge: id: 0d0c5be53ff4901fb1e2d2c4177a9665 source: viaf type: document term: Bujac, Jean Léopold Emile, 1852-1935 version: 2013-07-01T14:07:50Z viafid: '3259121' --- _id: 0d11020628f0c1bc9fa2e52944540338 bnf: '12305125' dnb: '155182145' key: ŌjiharaYutaka1923-1991 lc: n89670444 merge: id: 0d11020628f0c1bc9fa2e52944540338 source: viaf type: document term: Ōjihara, Yutaka, 1923-1991 version: 2013-07-01T14:07:50Z viafid: '24667950' --- _id: 0d3b0ba1ad64e2f4fcce69fcc27eb973 key: YamaguchiZuihō1926-|ChibettoChinese lc: n2008076342 merge: id: 0d3b0ba1ad64e2f4fcce69fcc27eb973 source: viaf type: document term: Yamaguchi, Zuihō, 1926- | Chibetto. Chinese version: 2013-07-01T14:07:50Z viafid: '181616576' --- _id: 0d4b70fadb4c3e6a29966a85088ab8e0 bav: adv10182017 bnf: '11903434' dnb: '118534726' key: François-PoncetAndré1887-1978 lc: n85381411 merge: id: 0d4b70fadb4c3e6a29966a85088ab8e0 source: viaf type: document nkc: xx0029954 nlilat: '000048789' selibr: '187317' term: François-Poncet, André, 1887-1978 version: 2013-07-01T14:07:50Z viafid: '29533980' --- _id: 0d4f6eebbda90f2e276e84eb1616b128 key: LemaîtreHenri1851-1946 merge: id: 0d4f6eebbda90f2e276e84eb1616b128 source: viaf type: document term: Lemaître, Henri, 1851-1946 version: 2013-07-01T14:07:50Z viafid: '208860535' --- _id: 0d538ed3853ca271d1ee0bf33560a39b bnf: '11921804' dnb: '115430989' key: RibouttéFrançois-Louis1770-1834 lc: nr95020680 merge: id: 0d538ed3853ca271d1ee0bf33560a39b source: viaf type: document term: Riboutté, François-Louis 1770-1834 version: 2013-07-01T14:07:50Z viafid: '68935013' --- _id: 0d5c2a6f1c5b22c9eaf86831f81181e8 bnf: '12529341' dnb: '119390256' key: PelouzeThéophile-Jules(1807-1867) lc: nr96026093 merge: id: 0d5c2a6f1c5b22c9eaf86831f81181e8 source: viaf type: document nkc: jn20000720221 nla: '000035579842' term: Pelouze, Théophile-Jules (1807-1867) version: 2013-07-01T14:07:50Z viafid: '39487493' --- _id: 0d6540c989fce3572e090c261a2c6e7d bav: adv11356055 bnf: '12052786' dnb: '101367112' key: BrièreGaston1871-1962 lc: nr89010853 merge: id: 0d6540c989fce3572e090c261a2c6e7d source: viaf type: document nkc: hka2011644356 nlilat: '000523635' term: Brière, Gaston, 1871-1962 version: 2013-07-01T14:07:50Z viafid: '22161070' --- _id: 0d6a1cf8afcaf281258fc57ed977d47b bnf: '13180765' dnb: '118986716' key: ĐalskiKsaverŠandor1854-1935 lc: n82081914 merge: id: 0d6a1cf8afcaf281258fc57ed977d47b source: viaf type: document nkc: xx0006322 nla: '000035821306' nlilat: '000256256' term: Đalski, Ksaver Šandor, 1854-1935 version: 2013-07-01T14:07:50Z viafid: '17362607' --- _id: 0d6a6cfff71b0a9055c00fb5733016e5 dnb: '124664032' key: PlöchingerBenno1917-2006 merge: id: 0d6a6cfff71b0a9055c00fb5733016e5 source: viaf type: document term: Plöchinger, Benno 1917-2006 version: 2013-07-01T14:07:50Z viafid: '267967935' --- _id: 0d77900253ba388b5255d55ef81c9d7f bne: xx924118 bnf: '12015500' key: Giménez-FrontínJoséLuis1943-2008 lc: n79059089 merge: id: 0d77900253ba388b5255d55ef81c9d7f source: viaf type: document nla: '000036591700' term: Giménez-Frontín, José Luis 1943-2008 version: 2013-07-01T14:07:50Z viafid: '34467951' --- _id: 0d7da04566ad2be7a22cc8be18e81028 key: LilljebjörnErikGustafJonas1848-1925 merge: id: 0d7da04566ad2be7a22cc8be18e81028 source: viaf type: document selibr: '284122' term: Lilljebjörn, Erik Gustaf Jonas, 1848-1925 version: 2013-07-01T14:07:50Z viafid: '279610630' --- _id: 0d7dade0911712b55aa24d96a9d3524a dnb: '102089590' key: ProvóKluitHendrik1803-1860 lc: n85248076 merge: id: 0d7dade0911712b55aa24d96a9d3524a source: viaf type: document term: Provó Kluit, Hendrik, 1803-1860 version: 2013-07-01T14:07:50Z viafid: '54529531' --- _id: 0d88f308f076eaedd7ffdd41c9207753 key: GuéganGérard1942-|Seulensemble lc: n2004043153 merge: id: 0d88f308f076eaedd7ffdd41c9207753 source: viaf type: document term: Guégan, Gérard, 1942- | Seul ensemble version: 2013-07-01T14:07:50Z viafid: '174732175' --- _id: 0d89f4c1368cc3443b30bf0223ee69d1 bne: xx2348633 key: AntunesAntónioLobo1942-|BibliotecaLoboAntunes lc: no2005039578 merge: id: 0d89f4c1368cc3443b30bf0223ee69d1 source: viaf type: document term: Antunes, António Lobo 1942- | Biblioteca Lobo Antunes version: 2013-07-01T14:07:50Z viafid: '182211032' --- _id: 0d8c1d1c4cae1333c440e2be5a99cc4f bav: adv10163258 bnf: '11920830' dnb: '118866737' jpg: '500033639' key: QuatremèredeQuincyAntoine-Chrysostome1755-1849 lc: n80059796 merge: id: 0d8c1d1c4cae1333c440e2be5a99cc4f source: viaf type: document nkc: mzk2009511598 nla: '000035757848' nlilat: '000428576' term: Quatremère de Quincy, Antoine-Chrysostome, 1755-1849 version: 2013-07-01T14:07:50Z viafid: '29539526' --- _id: 0d8ca45ad1ce4eff41c281326fcb9786 bav: adv11135631 dnb: '119804867' key: RichardotFrançois1507-1574 lc: nr2002028465 merge: id: 0d8ca45ad1ce4eff41c281326fcb9786 source: viaf type: document term: Richardot, François, 1507-1574 version: 2013-07-01T14:07:50Z viafid: '78715907' --- _id: 0d908b08f07fa23b335207b78606b91f bav: adv10219564 bne: xx886759 bnf: '11908326' dnb: '118556193' key: IvanovVjačeslavIvanovič1866-1949 lc: n80089640 merge: id: 0d908b08f07fa23b335207b78606b91f source: viaf type: document nkc: jn19990210299 nla: '000036369859' nlicyr: '000151228' nlilat: '000069765' selibr: '213389' term: Ivanov, Vjačeslav Ivanovič, 1866-1949 version: 2013-07-01T14:07:50Z viafid: '68930563' --- _id: 0d921699c4cdaccfdf25b7961b7aa557 bne: xx1066187 bnf: '13895967' dnb: '118675427' key: ChačaturjanAramIl'ič1903-1978 lc: n81059831 merge: id: 0d921699c4cdaccfdf25b7961b7aa557 source: viaf type: document nkc: jn19990210290 nla: '000035777950' nlicyr: '000157997' nlilat: '000075515' ptbnp: '671963' selibr: '45666' swnl: vtls000044089 term: Chačaturjan, Aram Il'ič, 1903-1978 version: 2013-07-01T14:07:50Z viafid: '19865761' --- _id: 0da37aeeadc6cd096b3e160ee7017e81 dnb: '1012408485' key: MohGünter1929-1993 lc: n78048959 merge: id: 0da37aeeadc6cd096b3e160ee7017e81 source: viaf type: document term: Moh, Günter 1929-1993 version: 2013-07-01T14:07:50Z viafid: '43095460' --- _id: 0da6eb9390fd6a3232bf28ccfdedbfbd bav: adv12167851 dnb: '119554518' key: MuchMatthäus1832-1909 lc: no2008179776 merge: id: 0da6eb9390fd6a3232bf28ccfdedbfbd source: viaf type: document ptbnp: '140206' term: Much, Matthäus, 1832-1909 version: 2013-07-01T14:07:50Z viafid: '45114674' --- _id: 0db248862775acb9e5344df646af375d dnb: '124019307' key: FersmanAE1883-1945(AleksandrEvgenʹevich) lc: n80149916 merge: id: 0db248862775acb9e5344df646af375d source: viaf type: document nkc: ola2003162780 nla: '000035645036' nlicyr: '000366728' term: Fersman, A. E., 1883-1945, (Aleksandr Evgenʹevich) version: 2013-07-01T14:07:50Z viafid: '3394664' --- _id: 0db63c09c9c039737cead7c4aba2a4d9 bnf: '14802102' key: MouzinÉdouard1822-1894 merge: id: 0db63c09c9c039737cead7c4aba2a4d9 source: viaf type: document term: Mouzin, Édouard 1822-1894 version: 2013-07-01T14:07:50Z viafid: '275893' --- _id: 0db6a378901fe3736da78a1853b6f709 dnb: '117330426' key: SchloßmacherKarl1887-1980 lc: n87818615 merge: id: 0db6a378901fe3736da78a1853b6f709 source: viaf type: document nlilat: '000488124' term: Schloßmacher, Karl, 1887-1980 version: 2013-07-01T14:07:50Z viafid: '116400696' --- _id: 0dc6029867e2dc01df6e53726430a960 dnb: '122194500' key: Meyer-StamerJörg1958-2009 lc: nr88001110 merge: id: 0dc6029867e2dc01df6e53726430a960 source: viaf type: document nkc: utb2009505221 term: Meyer-Stamer, Jörg, 1958-2009 version: 2013-07-01T14:07:50Z viafid: '42713678' --- _id: 0dcc07561b14205dfa907ef5ea4f68f1 bnf: '11927123' dnb: '119015439' key: TrnkaJiří1912-1969 lc: n81108583 merge: id: 0dcc07561b14205dfa907ef5ea4f68f1 source: viaf type: document nkc: jk01140140 nla: '000036271261' nlilat: '000249003' selibr: '347172' term: Trnka, Jiří, 1912-1969 version: 2013-07-01T14:07:50Z viafid: '27072375' --- _id: 0dce28fc37e89fdbd1fb5303b8c54960 key: TünnermannBernheimCarlos1933-|SesentaañosdelareformauniversitariadeCórdoba1918-1978 lc: n82270890 merge: id: 0dce28fc37e89fdbd1fb5303b8c54960 source: viaf type: document term: Tünnermann Bernheim, Carlos, 1933- | Sesenta años de la reforma universitaria de Córdoba, 1918-1978 version: 2013-07-01T14:07:50Z viafid: '183476808' --- _id: 0dcf234aca92746d45a9c8f135ca0401 bav: adv12488416 bnf: '12784344' dnb: '118964844' key: VanGoensRijklofMichaël1748-1810 lc: n88253924 merge: id: 0dcf234aca92746d45a9c8f135ca0401 source: viaf type: document nlilat: '000398227' term: Van Goens, Rijklof Michaël, 1748-1810 version: 2013-07-01T14:07:50Z viafid: '76442020' --- _id: 0dd1c91db9067e1e91d7b0213232a415 key: StanskiGaëtanPierre1807-1879 merge: id: 0dd1c91db9067e1e91d7b0213232a415 source: viaf type: document term: Stanski, Gaëtan Pierre, 1807-1879 version: 2013-07-01T14:07:50Z viafid: '289776829' --- _id: 0dddacf71ac77b52f33212dd0ed427dc bne: xx1159306 bnf: '11893350' dnb: '118638084' egaxa: vtls001068508 key: BuninIvanAlekseevič1870-1953 lc: n80028431 merge: id: 0dddacf71ac77b52f33212dd0ed427dc source: viaf type: document nkc: jn19990210139 nla: '000036145708' nlicyr: '000148988' nlilat: '000026444' ptbnp: '39251' selibr: '220532' swnl: vtls000036816 term: Bunin, Ivan Alekseevič, 1870-1953 version: 2013-07-01T14:07:50Z viafid: '7387402' --- _id: 0de06cae674edbf886e528a1a9a62c97 dnb: '117592803' key: MüllerJohannHeinrichJacob1809-1875 lc: n86840984 merge: id: 0de06cae674edbf886e528a1a9a62c97 source: viaf type: document nkc: ola2007404638 nlilat: '000484695' selibr: '336218' term: Müller, Johann Heinrich Jacob, 1809-1875 version: 2013-07-01T14:07:50Z viafid: '32777854' --- _id: 0de229987ab5a04d9b19e21d6f6e69ab bav: adv10870843 dnb: '129010596' key: ŁasickiJan1534-1605 lc: n86097277 merge: id: 0de229987ab5a04d9b19e21d6f6e69ab source: viaf type: document nkc: ola2003199600 nlilat: '000481864' term: Łasicki, Jan, 1534-1605 version: 2013-07-01T14:07:50Z viafid: '265803596' --- _id: 0de536a793a5732bcd3129ccdb5b8634 bav: adv10138107 bne: xx1131016 bnf: '11898114' dnb: '118677276' key: DeCrébillonClaude-ProsperJolyot1707-1777 lc: n50017130 merge: id: 0de536a793a5732bcd3129ccdb5b8634 source: viaf type: document nkc: kup19980000017516 nla: '000035032083' nlilat: '000035875' ptbnp: '54654' selibr: '182925' swnl: vtls000051810 term: De Crébillon, Claude-Prosper Jolyot, 1707-1777 version: 2013-07-01T14:07:50Z viafid: '24600044' --- _id: 0de77299cbc27e571f919464dd45e29e bnf: '12210660' key: DussaneBéatrix1888-1969 lc: n78007044 merge: id: 0de77299cbc27e571f919464dd45e29e source: viaf type: document nla: '000035129775' nlilat: '000414404' term: Dussane, Béatrix, 1888-1969 version: 2013-07-01T14:07:50Z viafid: '79078480' --- _id: 0e075a99b15576a4e2d54e0f36be31b1 bnf: '12662470' dnb: '119302179' key: BlazeElzéar1786-1848 lc: n94092630 merge: id: 0e075a99b15576a4e2d54e0f36be31b1 source: viaf type: document nlilat: '000511655' term: Blaze, Elzéar, 1786-1848 version: 2013-07-01T14:07:50Z viafid: '100298928' --- _id: 0e0803083e84c67c9f5b2906ef1163c2 dnb: '104080485' key: BöhmertVictor(1829-1918) merge: id: 0e0803083e84c67c9f5b2906ef1163c2 source: viaf type: document nkc: xx0091675 ptbnp: '158974' term: Böhmert, Victor (1829-1918) version: 2013-07-01T14:07:50Z viafid: '22568016' --- _id: 0e16a49d225d69fa660864f97143ce3f bnf: '12110020' dnb: '119014416' key: LévyMichel1821-1875 lc: n84193991 merge: id: 0e16a49d225d69fa660864f97143ce3f source: viaf type: document term: Lévy, Michel, 1821-1875 version: 2013-07-01T14:07:50Z viafid: '17253800' --- _id: 0e1a64e180204f0f0a89a51b6fce0aec dnb: '116168080' key: PflügerEduardFriedrichWilhelm(1829-1910) lc: n85033204 merge: id: 0e1a64e180204f0f0a89a51b6fce0aec source: viaf type: document nkc: nlk20000090049 term: Pflüger, Eduard Friedrich Wilhelm (1829-1910) version: 2013-07-01T14:07:50Z viafid: '20424836' --- _id: 0e1c30b1441bcb480beadd75adabeeff bav: adv10108718 bne: xx837505 bnf: '11984672' dnb: '123315352' key: BrissonBarnabé1531-1591 lc: n85068727 merge: id: 0e1c30b1441bcb480beadd75adabeeff source: viaf type: document nkc: mzk2009510623 nlilat: '000468663' selibr: '286673' term: Brisson, Barnabé, 1531-1591 version: 2013-07-01T14:07:50Z viafid: '19865' --- _id: 0e1d0bb2873e8724f44acfbf80d38d83 dnb: '141162651' key: WallerFG1867-1934(FrançoisGerard) lc: n82000684 merge: id: 0e1d0bb2873e8724f44acfbf80d38d83 source: viaf type: document term: Waller, F. G., 1867-1934, (François Gerard) version: 2013-07-01T14:07:50Z viafid: '120401780' --- _id: 0e20eb516c2a20b696445a41d49f0a9b bav: adv11484442 bnf: '14842061' dnb: '151609896' key: BrancourRené1862-1948 lc: nr95031656 merge: id: 0e20eb516c2a20b696445a41d49f0a9b source: viaf type: document nkc: jx20111222009 nlilat: '000529499' term: Brancour, René, 1862-1948 version: 2013-07-01T14:07:50Z viafid: '5197311' --- _id: 0e283dfa306747436735242d416e753b bnf: '12348664' dnb: '137481233' key: MeyerMichael1945-professeurdelittérature lc: n79115521 merge: id: 0e283dfa306747436735242d416e753b source: viaf type: document nla: '000035958867' nlilat: '000423525' term: Meyer, Michael, 1945-...., professeur de littérature version: 2013-07-01T14:07:50Z viafid: '108719909' --- _id: 0e37b01c16a4474130556cc6e83fc883 bav: adv11136424 bnf: '12462131' dnb: '152110461' key: RistelhueberRené1881-1960 lc: no98070124 merge: id: 0e37b01c16a4474130556cc6e83fc883 source: viaf type: document nlilat: '000111831' term: Ristelhueber, René, 1881-1960 version: 2013-07-01T14:07:50Z viafid: '221617447' --- _id: 0e3c74c95aa91d82ef22d793b5b27975 dnb: '117708070' key: BergmannGünter1910-1998 lc: n83017393 merge: id: 0e3c74c95aa91d82ef22d793b5b27975 source: viaf type: document term: Bergmann, Günter, 1910-1998 version: 2013-07-01T14:07:50Z viafid: '32022641' --- _id: 0e441e0bb761aebd15b0f62a8c11628c bav: adv11101689 bnf: '12122472' dnb: '119035944' key: PrémareJosephHenri1666-1736 lc: nr92025347 merge: id: 0e441e0bb761aebd15b0f62a8c11628c source: viaf type: document nla: '000035771263' term: Prémare, Joseph Henri, 1666-1736 version: 2013-07-01T14:07:50Z viafid: '77116925' --- _id: 0e596d6ed6166b545e05beeb2709a917 key: DeMaeyerAloi͏̈s1888-1973 merge: id: 0e596d6ed6166b545e05beeb2709a917 source: viaf type: document term: De Maeyer, Aloi͏̈s, 1888-1973 version: 2013-07-01T14:07:50Z viafid: '290468810' --- _id: 0e5e3f24fbed75f7fc072eba0d4ae00a bne: xx996166 bnf: '12103149' dnb: '142705241' key: LeCerfdelaViévilleJean-Laurent1674-1707 lc: n89629099 merge: id: 0e5e3f24fbed75f7fc072eba0d4ae00a source: viaf type: document nlilat: '000500134' term: Le Cerf de la Viéville, Jean-Laurent, 1674-1707 version: 2013-07-01T14:07:50Z viafid: '74577825' --- _id: 0e6bbb2b44222826b0166b00f288c754 dnb: '151375550' key: SallnäsHilding(1902-1989) lc: n82075536 merge: id: 0e6bbb2b44222826b0166b00f288c754 source: viaf type: document term: Sallnäs, Hilding (1902-1989) version: 2013-07-01T14:07:50Z viafid: '38260286' --- _id: 0e6dd60204af837812d065d12c5260ee bav: adv10109669 bnf: '12791525' dnb: '117613770' key: LedrainEugène1844-1910 lc: no2004118005 merge: id: 0e6dd60204af837812d065d12c5260ee source: viaf type: document nla: '000035964602' ptbnp: '280861' term: Ledrain, Eugène, 1844-1910 version: 2013-07-01T14:07:50Z viafid: '34585328' --- _id: 0e6fe1039278b5f9765de1d73df1369f bav: adv10179609 bnf: '12384910' dnb: '171997670' key: HuetGédéonBusken1860-1921 lc: no2006006757 merge: id: 0e6fe1039278b5f9765de1d73df1369f source: viaf type: document nkc: mub2012721647 nla: '000036000025' ptbnp: '58420' term: Huet, Gédéon Busken, 1860-1921 version: 2013-07-01T14:07:50Z viafid: '64087869' --- _id: 0e7163f9e5665d7f661c5330e67dca1e key: MančevVase1949-|ŠuplivioreviEnglish lc: no2012136795 merge: id: 0e7163f9e5665d7f661c5330e67dca1e source: viaf type: document term: Mančev, Vase, 1949- | Šuplivi orevi. English version: 2013-07-01T14:07:50Z viafid: '279146848' --- _id: 0e7f0fa71072dd4ce7b328baaeb656f2 key: CienfuegosFermán1947-|HablaelcomandanteFermánCienfuegosEnglish lc: n84038870 merge: id: 0e7f0fa71072dd4ce7b328baaeb656f2 source: viaf type: document term: Cienfuegos, Fermán, 1947- | Habla el comandante Fermán Cienfuegos. English version: 2013-07-01T14:07:50Z viafid: '176213157' --- _id: 0e8788ebf1d57e2bab3bc8e3021a6597 bnf: '12437293' dnb: '172684811' key: ChapuisFélicien1824-1879 lc: n92040537 merge: id: 0e8788ebf1d57e2bab3bc8e3021a6597 source: viaf type: document nla: '000036022185' term: Chapuis, Félicien, 1824-1879 version: 2013-07-01T14:07:50Z viafid: '69022505' --- _id: 0e9185b8ce0f0a2d4c7b593c531d28a1 bnf: '14966523' dnb: '117681857' jpg: '500002047' key: VerboeckhovenEugène-Joseph1798-1881 lc: no2006080275 merge: id: 0e9185b8ce0f0a2d4c7b593c531d28a1 source: viaf type: document nkc: xx0132639 nla: '000035248871' term: Verboeckhoven, Eugène-Joseph, 1798-1881 version: 2013-07-01T14:07:50Z viafid: '95692980' --- _id: 0ea820b31fc39adedb07b444b7434e55 key: KobayashiChishō1911-1974 lc: n79010809 merge: id: 0ea820b31fc39adedb07b444b7434e55 source: viaf type: document term: Kobayashi, Chishō, 1911-1974 version: 2013-07-01T14:07:50Z viafid: '108724485' --- _id: 0ea8654fc1a4e9f1049e93c661ff1225 dnb: '103173684' key: MētsakēsMichaēl1868?-1916 lc: nr90012174 merge: id: 0ea8654fc1a4e9f1049e93c661ff1225 source: viaf type: document nla: '000036082169' term: Mētsakēs, Michaēl, 1868?-1916 version: 2013-07-01T14:07:50Z viafid: '51839530' --- _id: 0ea9351580e7d75545c0c149bd982a9f bav: adv10891687 key: MachelardEugène1815-1880 lc: no2010117826 merge: id: 0ea9351580e7d75545c0c149bd982a9f source: viaf type: document term: Machelard, Eugène, 1815-1880 version: 2013-07-01T14:07:50Z viafid: '89166685' --- _id: 0eb8a7f0e2dd692c7c63e0f0847f40bb dnb: '117038881' key: NörrenbergC1862-1937 lc: nr2003040472 merge: id: 0eb8a7f0e2dd692c7c63e0f0847f40bb source: viaf type: document term: Nörrenberg, C., 1862-1937 version: 2013-07-01T14:07:50Z viafid: '10612611' --- _id: 0ebeca200cee3ec7707f30fd921025f5 dnb: '103338594' key: PlachtaJindřich1899-1951 lc: nr87000471 merge: id: 0ebeca200cee3ec7707f30fd921025f5 source: viaf type: document nkc: jk01093344 nlilat: '000106206' term: Plachta, Jindřich, 1899-1951 version: 2013-07-01T14:07:50Z viafid: '66877206' --- _id: 0ec381ef78b87472a39195a120d223ce bav: adv12180050 bnf: '12395843' dnb: '123891361' key: BüchsenschützB1828-1922 lc: n84806564 merge: id: 0ec381ef78b87472a39195a120d223ce source: viaf type: document nkc: mzk2007430464 nlilat: '000466662' selibr: '44249' term: Büchsenschütz, B., 1828-1922 version: 2013-07-01T14:07:50Z viafid: '19762056' --- _id: 0ece6c301030863a054d62690594c45c bav: adv10180825 bnf: '15335841' dnb: '116184442' key: BjørnboAxelAnthon1874-1911 lc: n89631377 merge: id: 0ece6c301030863a054d62690594c45c source: viaf type: document nlilat: '000565910' term: Bjørnbo, Axel Anthon, 1874-1911 version: 2013-07-01T14:07:50Z viafid: '12607369' --- _id: 0ed394ec6506428d2dd5e5f4a3154834 bnf: '13483831' dnb: '116640901' key: LacordaireThéodore1801-1870 lc: n92040532 merge: id: 0ed394ec6506428d2dd5e5f4a3154834 source: viaf type: document nla: '000036022768' term: Lacordaire, Théodore, 1801-1870 version: 2013-07-01T14:07:50Z viafid: '42594135' --- _id: 0ed8e49e715d13cf2a42961776aab666 bav: adv11306603 bnf: '12298069' dnb: '104357347' key: TimaševNikolajSergeevič1886-1970 lc: n50012948 merge: id: 0ed8e49e715d13cf2a42961776aab666 source: viaf type: document nkc: js2008443334 nla: '000035121260' nlilat: '000131503' term: Timašev, Nikolaj Sergeevič, 1886-1970 version: 2013-07-01T14:07:50Z viafid: '44363458' --- _id: 0edbf05dd0d593ce3fdc3c3de16149bb bne: xx3384826 key: PomboÁlvaro1939-|ElhéroedelasmansardasdeMansardAlemán merge: id: 0edbf05dd0d593ce3fdc3c3de16149bb source: viaf type: document term: Pombo, Álvaro 1939- | El héroe de las mansardas de Mansard Alemán version: 2013-07-01T14:07:50Z viafid: '175003053' --- _id: 0ee157a23b92aaa2068f99d7bd1397a7 bav: adv10049373 bnf: '12356531' dnb: '117691569' egaxa: vtls000081511 key: ClotAntoine-Barthélémy1793-1868 lc: nr92003031 merge: id: 0ee157a23b92aaa2068f99d7bd1397a7 source: viaf type: document nkc: nlk20000083849 nlilat: '000032555' term: Clot, Antoine-Barthélémy, 1793-1868 version: 2013-07-01T14:07:50Z viafid: '81980325' --- _id: 0ee69f56297059a0c0aeb34dafdc0a67 bav: adv10183689 bnf: '12292189' dnb: 11865828x key: BenvenisteÉmile1902-1976 lc: n78096113 merge: id: 0ee69f56297059a0c0aeb34dafdc0a67 source: viaf type: document nkc: ola2002152597 nla: '000035383352' nlicyr: '000148241' nlilat: '000018742' ptbnp: '39123' term: Benveniste, Émile, 1902-1976 version: 2013-07-01T14:07:50Z viafid: '12372277' --- _id: 0eeb4de16481eec3e3f44d7195454b70 bav: adv10047100 bnf: '12436862' dnb: '123065984' key: BeyensEugène1855-1934 lc: n83131223 merge: id: 0eeb4de16481eec3e3f44d7195454b70 source: viaf type: document nlilat: '000454466' term: Beyens, Eugène, 1855-1934 version: 2013-07-01T14:07:50Z viafid: '66558771' --- _id: 0ef6f7057b84daae59d2ec1234343784 key: PleijelAgneta1940-|ÖgonurendrömEnglish lc: n92052984 merge: id: 0ef6f7057b84daae59d2ec1234343784 source: viaf type: document term: Pleijel, Agneta, 1940- | Ögon ur en dröm. English version: 2013-07-01T14:07:50Z viafid: '179100705' --- _id: 0ef7896b0b6f17042c2a29db13cc3e7e bnf: '10430708' dnb: '180610783' key: ConstantLéonardd1610 lc: nr93019262 merge: id: 0ef7896b0b6f17042c2a29db13cc3e7e source: viaf type: document term: Constant, Léonard, d. 1610 version: 2013-07-01T14:07:50Z viafid: '81807326' --- _id: 0ef9becce1ae1422064ccd31b09450e1 key: ChangChʻung-ho1914-|PoemsEnglish&ChineseSelections lc: no2007003544 merge: id: 0ef9becce1ae1422064ccd31b09450e1 source: viaf type: document term: Chang, Chʻung-ho, 1914- | Poems. English & Chinese. Selections version: 2013-07-01T14:07:50Z viafid: '178891954' --- _id: 0efdef64f8a8c12cb7ed1e0215ccb376 key: MoisanClément1933-Poetryoffrontiers lc: n83301850 merge: id: 0efdef64f8a8c12cb7ed1e0215ccb376 source: viaf type: document term: Moisan, Clément, 1933-, Poetry of frontiers version: 2013-07-01T14:07:50Z viafid: '181453740' --- _id: 0f01d861478596f9fd5fdd08d9757f1e dnb: '124968740' key: KneżevićBožidar(1862-1905) lc: n80070545 merge: id: 0f01d861478596f9fd5fdd08d9757f1e source: viaf type: document term: Kneżević, Božidar (1862-1905) version: 2013-07-01T14:07:50Z viafid: '25550737' --- _id: 0f02ab2bd5aed6d8fcb45b44f8a851fa bnf: '15536062' key: ArmandFrançoisHuguet1699-1765 lc: no2009091501 merge: id: 0f02ab2bd5aed6d8fcb45b44f8a851fa source: viaf type: document term: Armand, François Huguet, 1699-1765 version: 2013-07-01T14:07:50Z viafid: '34765388' --- _id: 0f16ea57d2f23eb9cec9b0e32497d55f bav: adv11990615 bnf: '12969025' dnb: '116859989' key: SchönbachAntonEmanuel(1848-1911) lc: n90695936 merge: id: 0f16ea57d2f23eb9cec9b0e32497d55f source: viaf type: document nlilat: '000504074' term: Schönbach, Anton Emanuel (1848-1911) version: 2013-07-01T14:07:50Z viafid: '7520092' --- _id: 0f189b1655d62698c32a0a6f4d24b425 dnb: '118750267' key: RühlAlfred1882-1935 lc: n85330811 merge: id: 0f189b1655d62698c32a0a6f4d24b425 source: viaf type: document nlilat: '000475766' term: Rühl, Alfred, 1882-1935 version: 2013-07-01T14:07:50Z viafid: '807843' --- _id: 0f1db990eb0733d2f4bd55c1c0248673 bav: adv12150996 dnb: '119160560' key: SvorōnosIōannēsN1863-1922 lc: no98082190 merge: id: 0f1db990eb0733d2f4bd55c1c0248673 source: viaf type: document ptbnp: '999191' term: Svorōnos, Iōannēs N., 1863-1922 version: 2013-07-01T14:07:50Z viafid: '47565490' --- _id: 0f21a51ebe1d94c16b4ed5ff9b34117a key: NaṣrAllāhḤasan1941-|MawsūʻatBaʻlabakk lc: n2001046887 merge: id: 0f21a51ebe1d94c16b4ed5ff9b34117a source: viaf type: document term: Naṣr Allāh, Ḥasan, 1941- | Mawsūʻat Baʻlabakk version: 2013-07-01T14:07:50Z viafid: '181574919' --- _id: 0f28dcd9f3d864d9d64eebf4cef971e8 key: GébelinJacques1848-1898 merge: id: 0f28dcd9f3d864d9d64eebf4cef971e8 source: viaf type: document term: Gébelin, Jacques, 1848-1898 version: 2013-07-01T14:07:50Z viafid: '211211502' --- _id: 0f2a98ff2bd1e1349ad7fb63e32e8fe0 bav: adv10118122 bnf: '12027830' dnb: '118750240' key: RüdigerHorst1908-1984 lc: n50022676 merge: id: 0f2a98ff2bd1e1349ad7fb63e32e8fe0 source: viaf type: document nkc: mzk2012721940 nla: '000035467680' nlilat: '000258002' term: Rüdiger, Horst, 1908-1984 version: 2013-07-01T14:07:50Z viafid: '36932340' --- _id: 0f32ffd1320f0941bd4cb0256c5b21aa key: LawalréeAndré1921-2005 merge: id: 0f32ffd1320f0941bd4cb0256c5b21aa source: viaf type: document term: Lawalrée, André, 1921-2005 version: 2013-07-01T14:07:50Z viafid: '208066292' --- _id: 0f3b876d6c5b78b863089e108eefd056 key: AlemanyyBoluferJosé1866-1934 lc: n86808350 merge: id: 0f3b876d6c5b78b863089e108eefd056 source: viaf type: document term: Alemany y Bolufer, José, 1866-1934 version: 2013-07-01T14:07:50Z viafid: '294433420' --- _id: 0f4bb448bd75b98aeb542937c17c5438 bav: adv12016709 bne: xx946183 bnf: '11990391' dnb: 11875839x key: TjutčevFedorIvanovič1803-1873 lc: n50047826 merge: id: 0f4bb448bd75b98aeb542937c17c5438 source: viaf type: document nkc: jn19981002228 nla: '000036541692' nlicyr: '000157136' nlilat: '000557466' selibr: '97153' swnl: vtls003590895 term: Tjutčev, Fedor Ivanovič, 1803-1873 version: 2013-07-01T14:07:50Z viafid: '95260021' --- _id: 0f6141133fb05a4a763e24c8e8a212a6 key: Fahr-BeckerGabriele1946-|BarcelonaAntoniGaudíyCorn'etEnglish lc: n82053834 merge: id: 0f6141133fb05a4a763e24c8e8a212a6 source: viaf type: document nla: '000036552511' term: Fahr-Becker, Gabriele, 1946- | Barcelona, Antoni Gaudí y Corn'et. English version: 2013-07-01T14:07:50Z viafid: '181040822' --- _id: 0f6d922721c3daafa8d40b865cb72b9c bne: xx1722259 bnf: '11925679' dnb: '119072343' key: StrugackijBorisNatanovič1933-2012 lc: n79105865 merge: id: 0f6d922721c3daafa8d40b865cb72b9c source: viaf type: document nkc: jn19990210590 nlicyr: '000156768' ptbnp: '264159' selibr: '293103' term: Strugackij, Boris Natanovič, 1933-2012 version: 2013-07-01T14:07:50Z viafid: '97139204' --- _id: 0f710128fe92cfda5b058bc4b2d69d87 key: AdrianiGötz1940-|PaulCézanneAquarelleEnglish lc: n83008816 merge: id: 0f710128fe92cfda5b058bc4b2d69d87 source: viaf type: document nla: '000036518953' term: Adriani, Götz, 1940- | Paul Cézanne, Aquarelle. English version: 2013-07-01T14:07:50Z viafid: '186709920' --- _id: 0f73ceb2078943e769d2de728592b1f4 bav: adv10291716 bnf: '12589868' dnb: '132365820' key: BerthierGuillaumeFrançois1704-1782 lc: n81092459 merge: id: 0f73ceb2078943e769d2de728592b1f4 source: viaf type: document nkc: ola2008481222 ptbnp: '456620' term: Berthier, Guillaume François, 1704-1782 version: 2013-07-01T14:07:50Z viafid: '32117071' --- _id: 0f761b580a31b7f53cad15a9ecc6f0da bav: adv10215500 bnf: '12159258' dnb: '118776231' key: JoffreJosephJacquesCésaire1852-1931 lc: n86069973 merge: id: 0f761b580a31b7f53cad15a9ecc6f0da source: viaf type: document nkc: jn20000720118 nla: '000036563138' nlilat: '000481145' term: Joffre, Joseph Jacques Césaire, 1852-1931 version: 2013-07-01T14:07:50Z viafid: '56648875' --- _id: 0f8077efb18866a5e285773bb2fcf111 bav: adv10138997 bne: xx877270 bnf: '14035404' dnb: '118659456' jpg: '500024658' key: BouchardonEdmé1698-1762 lc: nr99034050 merge: id: 0f8077efb18866a5e285773bb2fcf111 source: viaf type: document nkc: mzk2012709563 term: Bouchardon, Edmé, 1698-1762 version: 2013-07-01T14:07:50Z viafid: '64206515' --- _id: 0f87b9aad4ab592431c5cef28a9cc7de bav: adv11037621 bnf: '11919082' dnb: '172309549' key: PérauGabrielLouisCalabre1700-1767 lc: n85049189 merge: id: 0f87b9aad4ab592431c5cef28a9cc7de source: viaf type: document nkc: mzk2009511495 nlilat: '000468017' term: Pérau, Gabriel Louis Calabre, 1700-1767 version: 2013-07-01T14:07:50Z viafid: '12313425' --- _id: 0f8ca5164cd05aedeb41e80a7ffbd6b6 bav: adv10202532 bnf: '12927494' dnb: '120953986' key: DubosCharles-François1661-1724 merge: id: 0f8ca5164cd05aedeb41e80a7ffbd6b6 source: viaf type: document term: Dubos, Charles-François, 1661-1724 version: 2013-07-01T14:07:50Z viafid: '15613694' --- _id: 0f8da0813bbc2ba6d1e24423f01b52d8 bnf: '13913754' dnb: '300078285' key: IndyVincentd'1851-1931SymphoniesurunchantmontagnardfrançaisOp25 lc: n85006601 merge: id: 0f8da0813bbc2ba6d1e24423f01b52d8 source: viaf type: document nla: '000035619115' term: Indy, Vincent d' 1851-1931 Symphonie sur un chant montagnard français Op. 25 version: 2013-07-01T14:07:50Z viafid: '183500801' --- _id: 0f8e9a11d6dfad11b27a6262d14c1420 bne: xx1008040 bnf: '13480284' dnb: '128414103' key: ČakovskijAleksandrBorisovič1913-1994 lc: n50060515 merge: id: 0f8e9a11d6dfad11b27a6262d14c1420 source: viaf type: document nkc: xx0003107 nla: '000035443977' nlicyr: '000209302' ptbnp: '134818' term: Čakovskij, Aleksandr Borisovič, 1913-1994 version: 2013-07-01T14:07:50Z viafid: '99145990' --- _id: 0f9465c2861b030c5eeb868d0d76cab5 key: RieszJános1941-|Europäisch-afrikanischeLiteraturbeziehungen lc: n2001024737 merge: id: 0f9465c2861b030c5eeb868d0d76cab5 source: viaf type: document term: Riesz, János, 1941- | Europäisch-afrikanische Literaturbeziehungen version: 2013-07-01T14:07:50Z viafid: '175517916' --- _id: 0f94d73891d7e410ff0301b67bb100ee bav: adv10036315 dnb: '118867989' egaxa: vtls001583788 key: SubkīTājal-DīnʻAbdal-WahhābibnʻAlīca1327-1370 lc: n84020872 merge: id: 0f94d73891d7e410ff0301b67bb100ee source: viaf type: document nliara: '000002606' nlilat: '000459542' selibr: '33826' term: Subkī, Tāj al-Dīn ʻAbd al-Wahhāb ibn ʻAlī, ca. 1327-1370 version: 2013-07-01T14:07:50Z viafid: '40175990' --- _id: 0f96e3bab7037903d2ef43db82d1b1c8 key: BüttgenbachFranz1832-1900 merge: id: 0f96e3bab7037903d2ef43db82d1b1c8 source: viaf type: document term: Büttgenbach, Franz, 1832-1900 version: 2013-07-01T14:07:50Z viafid: '286070985' --- _id: 0f985a988663c1d2387804679a6207fe bnf: '12275878' dnb: '118947362' key: KranjecMiško1908-1983 lc: n84045929 merge: id: 0f985a988663c1d2387804679a6207fe source: viaf type: document nkc: js20020812324 term: Kranjec, Miško, 1908-1983 version: 2013-07-01T14:07:50Z viafid: '68989420' --- _id: 0f99c0eaaf256ca1b160bd46482423e9 bnf: '10421220' key: ValériusHubert1820-1897 merge: id: 0f99c0eaaf256ca1b160bd46482423e9 source: viaf type: document term: Valérius, Hubert 1820-1897 version: 2013-07-01T14:07:50Z viafid: '98747924' --- _id: 0f9a3dbde3a433ec1213bae468035c1e key: BrongersmaLD1907-1994(LeoDaniël)AnimalworldofNetherlandsNewGuinea lc: n85814842 merge: id: 0f9a3dbde3a433ec1213bae468035c1e source: viaf type: document term: Brongersma, L. D., 1907-1994., (Leo Daniël), Animal world of Netherlands New Guinea version: 2013-07-01T14:07:50Z viafid: '179865357' --- _id: 0f9c66ef4387f951cb8eb750ab18c18f bav: adv11536525 bne: xx1759164 dnb: 11615232x key: DöbereinerChristian1874-1961 lc: n85023247 merge: id: 0f9c66ef4387f951cb8eb750ab18c18f source: viaf type: document nkc: mzk2011652736 nlilat: '000553202' term: Döbereiner, Christian, 1874-1961 version: 2013-07-01T14:07:50Z viafid: '25346194' --- _id: 0f9d2b40874b458272fba9aa5732ad11 bav: adv12061671 bne: xx893780 bnf: '11920171' dnb: '118947370' key: PoliakovLéon1910-1997 lc: n50020456 merge: id: 0f9d2b40874b458272fba9aa5732ad11 source: viaf type: document nkc: jx20050601011 nla: '000035426996' nlicyr: '000155288' nlilat: '000106612' ptbnp: '38794' selibr: '137272' term: Poliakov, Léon, 1910-1997 version: 2013-07-01T14:07:50Z viafid: '9852041' --- _id: 0fa30fcbad5199c59a33885b0a93cbed bav: adv11088462 bnf: '12127349' dnb: '116178124' key: PichotAmédée1795-1877 lc: n85800955 merge: id: 0fa30fcbad5199c59a33885b0a93cbed source: viaf type: document nkc: mzk2009510727 nla: '000035789370' nlilat: '000105593' ptbnp: '76551' term: Pichot, Amédée, 1795-1877 version: 2013-07-01T14:07:50Z viafid: '59117355' --- _id: 0fa4f1af66b69d2e1382d32abcfba43b dnb: '117141054' key: SchützJohannJacob1640-1690 lc: nr2003014150 merge: id: 0fa4f1af66b69d2e1382d32abcfba43b source: viaf type: document nkc: mzk2009511164 selibr: '258735' term: Schütz, Johann Jacob, 1640-1690 version: 2013-07-01T14:07:50Z viafid: '52459463' --- _id: 0fa55f17c77ac3243c5691b7fa058cea bav: adv10973209 bnf: '12171118' dnb: '104273895' key: MillotClaude-François-Xavier1726-1785 lc: n85253488 merge: id: 0fa55f17c77ac3243c5691b7fa058cea source: viaf type: document nkc: skuk0004128 nla: '000036297614' nlilat: '000473668' ptbnp: '119312' selibr: '213223' term: Millot, Claude-François-Xavier, 1726-1785 version: 2013-07-01T14:07:50Z viafid: '22182699' --- _id: 0fa5d44349d22c73185e1c60d07ced1d bne: xx954979 bnf: '11922577' dnb: '118699156' key: GuimarãesRosaJoão1908-1967 lc: n79095563 merge: id: 0fa5d44349d22c73185e1c60d07ced1d source: viaf type: document nkc: jn19981001367 nla: '000035461431' nlilat: '000113028' ptbnp: '61961' selibr: '240574' term: Guimarães Rosa, João, 1908-1967 version: 2013-07-01T14:07:50Z viafid: '59088739' --- _id: 0facb0ff43ccbcd007efe10fdc821293 dnb: '117053481' key: BückingH1851-1932 merge: id: 0facb0ff43ccbcd007efe10fdc821293 source: viaf type: document term: Bücking, H., 1851-1932 version: 2013-07-01T14:07:50Z viafid: '72161427' --- _id: 0fbaf55e356396606b528bdd74e92323 bnf: '13474878' dnb: '102714436' key: DarmoisEugène(1884-1958) merge: id: 0fbaf55e356396606b528bdd74e92323 source: viaf type: document nlilat: '000037031' term: Darmois, Eugène (1884-1958) version: 2013-07-01T14:07:50Z viafid: '27215136' --- _id: 0fc03de01de143c90044f51bfce7ac7c bav: adv11083383 bnf: '12221244' dnb: 11931942x key: PoréeCharles1872-1940 lc: nr91042385 merge: id: 0fc03de01de143c90044f51bfce7ac7c source: viaf type: document nlilat: '000525850' term: Porée, Charles, 1872-1940 version: 2013-07-01T14:07:50Z viafid: '34508165' --- _id: 0fc38da6be3afcc7194bca75c4917b45 bav: adv10129428 bnf: '12566453' dnb: '117661287' key: DumérilAndré-Marie-Constant1774-1860 lc: n86863676 merge: id: 0fc38da6be3afcc7194bca75c4917b45 source: viaf type: document nkc: uk2007353640 nla: '000036001657' nlilat: '000041337' ptbnp: '1199877' term: Duméril, André-Marie-Constant, 1774-1860 version: 2013-07-01T14:07:50Z viafid: '71508982' --- _id: 0fc4948567c1fc67abef00a68113a57c bnf: '10618555' dnb: '1023569116' key: LaboulbèneAlexandre(1825-1898) lc: no2012103707 merge: id: 0fc4948567c1fc67abef00a68113a57c source: viaf type: document nkc: nlk20010095053 term: Laboulbène, Alexandre (1825-1898) version: 2013-07-01T14:07:50Z viafid: '84820815' --- _id: 0fd289dd6da72599ca54dee1506ebf42 bnf: '15317647' dnb: '115829814' key: DraletÉtienneFrançois(1754-1844) lc: n86004989 merge: id: 0fd289dd6da72599ca54dee1506ebf42 source: viaf type: document term: Dralet, Étienne François (1754-1844) version: 2013-07-01T14:07:50Z viafid: '57353451' --- _id: 0fe7c906dfb08c96f7b4cb00ccd591f7 bav: adv11002914 bnf: '15668516' dnb: '116079576' key: PerlesFélix1874-1933 lc: nr95008768 merge: id: 0fe7c906dfb08c96f7b4cb00ccd591f7 source: viaf type: document nlilat: '000104695' term: Perles, Félix 1874-1933 version: 2013-07-01T14:07:50Z viafid: '32324176' --- _id: 0ffc6261c89fbc37dee3c1a4ad4c7e66 bnf: '12371592' dnb: '118994050' key: ErdősPaul1913-1996 lc: n50010022 merge: id: 0ffc6261c89fbc37dee3c1a4ad4c7e66 source: viaf type: document nkc: mzk2003169557 nla: '000036575015' nlilat: '000044035' selibr: '185310' term: Erdős, Paul, 1913-1996 version: 2013-07-01T14:07:50Z viafid: '51768730' --- _id: 1001463adc0d5335f15f13f7faff80a7 bnf: '14636361' dnb: '118595997' key: PotoniéRobert1889-1974 merge: id: 1001463adc0d5335f15f13f7faff80a7 source: viaf type: document nkc: kv2009520740 term: Potonié, Robert, 1889-1974 version: 2013-07-01T14:07:50Z viafid: '27322147' --- _id: 100317d03b6f9f53bb9ca68b6281f364 bav: adv10244636 bnf: '13325672' dnb: '124636853' key: GiannettasioNiccolòPartenio1648-1715 merge: id: 100317d03b6f9f53bb9ca68b6281f364 source: viaf type: document nkc: mzk2009511691 term: Giannettasio, Niccolò Partenio, 1648-1715 version: 2013-07-01T14:07:50Z viafid: '54292153' --- _id: 100946de3226d9a033f1f95880bd9417 bav: adv11097435 bnf: '11921031' dnb: '128885998' key: RaguenetFrançois1660?-1722 lc: n50069180 merge: id: 100946de3226d9a033f1f95880bd9417 source: viaf type: document nla: '000035389871' nlilat: '000413129' term: Raguenet, François, 1660?-1722 version: 2013-07-01T14:07:50Z viafid: '12314051' --- _id: 10139278c5bae5ff15af953229f4619d bav: adv10063447 bnf: '12567375' dnb: '132034875' key: DanjouFélix(1812-1866) merge: id: 10139278c5bae5ff15af953229f4619d source: viaf type: document term: Danjou, Félix (1812-1866) version: 2013-07-01T14:07:50Z viafid: '61664547' --- _id: 101a7d3d8ae73468235147c98a5485e9 bnf: '12189204' dnb: '102457093' key: CosteJean-François1741-1819 lc: n85099522 merge: id: 101a7d3d8ae73468235147c98a5485e9 source: viaf type: document nkc: mzk2009510591 nlilat: '000469415' ptbnp: '1401112' term: Coste, Jean-François, 1741-1819 version: 2013-07-01T14:07:50Z viafid: '9893183' --- _id: 101cbdb6de587b8195299c65963e0f9a key: ToddEmmanuel1951-|TroisièmeplanèteEnglish lc: n84215646 merge: id: 101cbdb6de587b8195299c65963e0f9a source: viaf type: document nla: '000035568546' term: Todd, Emmanuel, 1951- | Troisième planète. English version: 2013-07-01T14:07:50Z viafid: '182275228' --- _id: 1024f72043e91daae2482ec0376c4587 bne: xx960081 bnf: '12298455' dnb: '121133125' key: YnduráinFJ1940-2008 lc: n82215939 merge: id: 1024f72043e91daae2482ec0376c4587 source: viaf type: document term: Ynduráin, F. J. 1940-2008 version: 2013-07-01T14:07:50Z viafid: '73918013' --- _id: 102812bcdbcbc47376e41be4a339a1fb bne: xx888031 bnf: '11896803' dnb: '118981102' key: ChraïbiDriss1926-2007 lc: n84043146 merge: id: 102812bcdbcbc47376e41be4a339a1fb source: viaf type: document nkc: kup20030000015349 nla: '000035856344' nlilat: '000031692' selibr: '341657' term: Chraïbi, Driss, 1926-2007 version: 2013-07-01T14:07:50Z viafid: '51687399' --- _id: 102936ce534a74681de740a0dee9de06 bne: xx950248 bnf: '11901820' dnb: '118529269' egaxa: vtls000890085 key: ĖrenburgIlʹjaGrigorʹevič1891-1967 lc: n50030508 merge: id: 102936ce534a74681de740a0dee9de06 source: viaf type: document nkc: jn19990210194 nla: '000036555544' nlicyr: '000161054' nliheb: '000228544' nlilat: '000044049' selibr: '184634' swnl: vtls000075176 term: Ėrenburg, Ilʹja Grigorʹevič, 1891-1967 version: 2013-07-01T14:07:50Z viafid: '40169930' --- _id: 10298c8a8ece765eacc88c4b8ad9d5db dnb: '137943989' key: OutesFélixF1878-1939 lc: n87814839 merge: id: 10298c8a8ece765eacc88c4b8ad9d5db source: viaf type: document nlilat: '000487990' ptbnp: '66133' term: Outes, Félix F. 1878-1939 version: 2013-07-01T14:07:50Z viafid: '72910328' --- _id: 102ab9f93ebbb24eb00eeed562b75a82 bav: adv10211809 dnb: '1023958287' key: GrützmacherGeorg1866-1939 merge: id: 102ab9f93ebbb24eb00eeed562b75a82 source: viaf type: document term: Grützmacher, Georg, 1866-1939 version: 2013-07-01T14:07:50Z viafid: '42234899' --- _id: 1030d39616cd5bb62adbf2ea36973493 dnb: '117657085' key: SessaKarlBorromäusAlexander1786-1813 lc: no2002059298 merge: id: 1030d39616cd5bb62adbf2ea36973493 source: viaf type: document nlilat: '000335086' term: Sessa, Karl Borromäus Alexander, 1786-1813 version: 2013-07-01T14:07:50Z viafid: '57398018' --- _id: 1037a976e077f372b49c3e51ac7dd9c4 key: BéclardFerdinand1848-1897 merge: id: 1037a976e077f372b49c3e51ac7dd9c4 source: viaf type: document term: Béclard, Ferdinand, 1848-1897 version: 2013-07-01T14:07:50Z viafid: '202306364' --- _id: 10396db75e279b62c46ca46dc1bd619c bav: adv10286587 bnf: '16177672' dnb: '118657305' key: BarnesRobert1495?–1540 lc: n79139058 merge: id: 10396db75e279b62c46ca46dc1bd619c source: viaf type: document nkc: ola2008452289 term: Barnes, Robert, 1495?–1540 version: 2013-07-01T14:07:50Z viafid: '74646733' --- _id: 103e02fb4c3fd528a578f87cd54656a2 bne: xx1291972 dnb: 11860208x key: RötscherHeinrichTheodor1803-1871 lc: n82255732 merge: id: 103e02fb4c3fd528a578f87cd54656a2 source: viaf type: document nlilat: '000115133' term: Rötscher, Heinrich Theodor, 1803-1871 version: 2013-07-01T14:07:50Z viafid: '69722312' --- _id: 104682fa9fad80d30396f5cc8dec9e8b bav: adv10913221 bne: xx848487 bnf: '12174727' dnb: '118780840' key: DeLuzánIgnacio1702-1754 lc: n92068023 merge: id: 104682fa9fad80d30396f5cc8dec9e8b source: viaf type: document ptbnp: '151201' term: De Luzán, Ignacio, 1702-1754 version: 2013-07-01T14:07:50Z viafid: '9889846' --- _id: 1051e2004526eeccb98b67b35c37bd58 dnb: '104377526' key: DeSmetFrançoisJoseph1771-1854 lc: no2009122108 merge: id: 1051e2004526eeccb98b67b35c37bd58 source: viaf type: document term: De Smet, François Joseph, 1771-1854 version: 2013-07-01T14:07:50Z viafid: '74288231' --- _id: 1053d5a5708a914861d36d2f22b601e3 bnf: '13007660' key: BourgEdme-Théodore1785-1852 lc: n93029999 merge: id: 1053d5a5708a914861d36d2f22b601e3 source: viaf type: document selibr: '334338' term: Bourg, Edme-Théodore, 1785-1852 version: 2013-07-01T14:07:50Z viafid: '43510090' --- _id: 10568eab636f8a0186c12e3f0774758d bne: xx959312 bnf: '11926277' dnb: '152102094' key: TétryAndrée1907-1992 lc: n83239551 merge: id: 10568eab636f8a0186c12e3f0774758d source: viaf type: document nkc: xx0033966 nla: '000035544312' selibr: '345117' term: Tétry, Andrée, 1907-1992 version: 2013-07-01T14:07:50Z viafid: '92715419' --- _id: 1061d2e161a871e2117a97ade266e66d bnf: '15083328' dnb: '102412804' egaxa: vtls000837588 key: al-Khaṭībal-BaghdādīAbūBakrAḥmadibnʻAlī1002-1071 lc: n85231280 merge: id: 1061d2e161a871e2117a97ade266e66d source: viaf type: document nliara: '000002270' nlilat: '000472941' selibr: '34577' term: al-Khaṭīb al-Baghdādī, Abū Bakr Aḥmad ibn ʻAlī, 1002-1071 version: 2013-07-01T14:07:50Z viafid: '69222089' --- _id: 10655fda3036f8db9223654e6f263811 bnf: '12942333' dnb: '124663079' key: SinaiYaG1935-(I︠A︡kovGrigorʹevich) lc: n81032623 merge: id: 10655fda3036f8db9223654e6f263811 source: viaf type: document nkc: jn20030211012 nla: '000036550465' term: Sinai, Ya. G., 1935-, (I︠A︡kov Grigorʹevich) version: 2013-07-01T14:07:50Z viafid: '34589101' --- _id: 106b7e07eb7827c7d64379eea6963a85 bnf: '13322185' dnb: '118790560' key: Petković-DisVladislav1880-1917 lc: no90005661 merge: id: 106b7e07eb7827c7d64379eea6963a85 source: viaf type: document nkc: jx20041207003 term: Petković-Dis, Vladislav, 1880-1917 version: 2013-07-01T14:07:50Z viafid: '5076277' --- _id: 1071ff31eb699c7503c8433f63bef173 key: NikitinVasiliĭNikitich1737-1809 lc: nr93028472 merge: id: 1071ff31eb699c7503c8433f63bef173 source: viaf type: document term: Nikitin, Vasiliĭ Nikitich, 1737-1809 version: 2013-07-01T14:07:50Z viafid: '61418701' --- _id: 1078a85e038b49636c6d028de6846ce3 dnb: 12112651x key: RöerEdward1805-1866 lc: n88634702 merge: id: 1078a85e038b49636c6d028de6846ce3 source: viaf type: document nlilat: '000292041' term: Röer, Edward, 1805-1866 version: 2013-07-01T14:07:50Z viafid: '90777453' --- _id: 107c3d1089608516341f07af70c2dc83 key: LundströmIngeborg1878-1976 merge: id: 107c3d1089608516341f07af70c2dc83 source: viaf type: document selibr: '285404' term: Lundström, Ingeborg, 1878-1976 version: 2013-07-01T14:07:50Z viafid: '9829491' --- _id: 107f3499ac5e6c0a23fe2c1b5d2c79b5 key: LétiévantJean-Joseph-Émile1830-1884 merge: id: 107f3499ac5e6c0a23fe2c1b5d2c79b5 source: viaf type: document term: Létiévant, Jean-Joseph-Émile, 1830-1884 version: 2013-07-01T14:07:50Z viafid: '209066983' --- _id: 108276aaa6a548c2d02eaf03200196dd bav: adv11163421 bnf: '12215767' dnb: '118641891' key: RécamierJeanneFrançoiseJulieAdélaïdeBernard1777-1849 lc: n50046071 merge: id: 108276aaa6a548c2d02eaf03200196dd source: viaf type: document nla: '000035444709' nlilat: '000110081' selibr: '88805' term: Récamier, Jeanne Françoise Julie Adélaïde Bernard, 1777-1849 version: 2013-07-01T14:07:50Z viafid: '36967757' --- _id: 10848be81c138b9062b260910e15af44 key: SickingLouis1966-|Frontièresd'outre-merEnglish lc: n2008031582 merge: id: 10848be81c138b9062b260910e15af44 source: viaf type: document term: Sicking, Louis, 1966- | Frontières d'outre-mer. English version: 2013-07-01T14:07:50Z viafid: '186469969' --- _id: 10969aa6eb4759fd834b1a22b4558381 bne: xx1074813 bnf: '11902471' dnb: '118686399' jpg: '500068153' key: FedinKonstantinAleksandrovič1892-1977 lc: n50001089 merge: id: 10969aa6eb4759fd834b1a22b4558381 source: viaf type: document nkc: jn19990210201 nla: '000036299652' nlicyr: '000157673' nlilat: '000400111' ptbnp: '27312' selibr: '186714' term: Fedin, Konstantin Aleksandrovič, 1892-1977 version: 2013-07-01T14:07:50Z viafid: '29533778' --- _id: 10a01ac8ec2e85f7f93aee1aeaf8fb68 bne: xx859935 dnb: '126754438' key: NádasiFerenc1893-1966 lc: n96001595 merge: id: 10a01ac8ec2e85f7f93aee1aeaf8fb68 source: viaf type: document term: Nádasi, Ferenc, 1893-1966 version: 2013-07-01T14:07:50Z viafid: '122010407' --- _id: 10c06350f5bcb4071b269b7f61edc7ab bne: xx4838633 bnf: '13013884' dnb: '100057845' key: DeMirbelCharles-FrançoisBrisseau1776-1854 lc: n86815883 merge: id: 10c06350f5bcb4071b269b7f61edc7ab source: viaf type: document nla: '000035725210' nlilat: '000483841' term: De Mirbel, Charles-François Brisseau, 1776-1854 version: 2013-07-01T14:07:50Z viafid: '17356254' --- _id: 10c90d7301027d9afdaec66dbbf78106 bnf: '12032635' dnb: 12008970x key: JastrunMieczysław1903-1983 lc: n80159204 merge: id: 10c90d7301027d9afdaec66dbbf78106 source: viaf type: document nkc: jn20000603211 nla: '000035746019' nlilat: '000433300' selibr: '191545' term: Jastrun, Mieczysław, 1903-1983 version: 2013-07-01T14:07:50Z viafid: '66482806' --- _id: 10ceb6579f3bff4af2bce2eede39e171 bnf: '11150922' dnb: '119277727' key: JorgovanićRikard1853-1880 lc: nr2003000688 merge: id: 10ceb6579f3bff4af2bce2eede39e171 source: viaf type: document nkc: js20020805294 term: Jorgovanić, Rikard, 1853-1880 version: 2013-07-01T14:07:50Z viafid: '14762932' --- _id: 10cebad9e509da3a730ac5a554d666ea bav: adv10214038 bnf: '12515502' dnb: '117516449' key: HénaultCharles-Jean-François1685-1770 lc: nr93016004 merge: id: 10cebad9e509da3a730ac5a554d666ea source: viaf type: document nkc: jo2003169857 nla: '000035786176' nlilat: '000527278' selibr: '314210' term: Hénault, Charles-Jean-François, 1685-1770 version: 2013-07-01T14:07:50Z viafid: '118096' --- _id: 10d406dbad0f5f6d3ab67d7e1090054d bav: adv11239873 bne: xx1459172 bnf: '12141360' dnb: '100278884' key: DeForbonnaisFrançoisVéronDuverger1722-1800 lc: n88680604 merge: id: 10d406dbad0f5f6d3ab67d7e1090054d source: viaf type: document nkc: mzk2009510387 nlilat: '000498699' selibr: '200683' term: De Forbonnais, François Véron Duverger, 1722-1800 version: 2013-07-01T14:07:50Z viafid: '46796949' --- _id: 10d63d3de97935150b6044af291c6ff8 bnf: '11953862' dnb: '118603957' key: RühmkorfPeter1929-2008 lc: n50022486 merge: id: 10d63d3de97935150b6044af291c6ff8 source: viaf type: document nkc: jn19990007272 nla: '000036536008' nlilat: '000405188' selibr: '312868' term: Rühmkorf, Peter, 1929-2008 version: 2013-07-01T14:07:50Z viafid: '73861894' --- _id: 10d9cb8c7501eaf822ca50296a7cd5fd bav: adv11209849 bnf: '13475545' dnb: '129731811' key: SénacJean-Baptiste1693-1770 lc: n86811220 merge: id: 10d9cb8c7501eaf822ca50296a7cd5fd source: viaf type: document nkc: nlk20010092510 nla: '000035876824' nlilat: '000120304' ptbnp: '1402088' term: Sénac, Jean-Baptiste, 1693-1770 version: 2013-07-01T14:07:50Z viafid: '71540730' --- _id: 10ded25f702630bc82b9800396f96cd5 bav: adv10022875 bne: xx1309781 bnf: '12012398' dnb: '104234059' jpg: '500220946' key: DeLalandeJosephJérômeLeFrançais1732-1807 lc: n81143855 merge: id: 10ded25f702630bc82b9800396f96cd5 source: viaf type: document nkc: ola2007364628 nla: '000035883578' nlilat: '000317402' selibr: '346109' swnl: vtls002162556 term: De Lalande, Joseph Jérôme Le Français, 1732-1807 version: 2013-07-01T14:07:50Z viafid: '95196947' --- _id: 10e212b2ab8f662d8b6e3b81106f2476 bav: adv10198782 bnf: '12565364' dnb: '118585045' key: VonMüllerJohannes1752-1809 lc: n85383155 merge: id: 10e212b2ab8f662d8b6e3b81106f2476 source: viaf type: document nkc: skuk0004230 nlilat: '000097280' selibr: '79061' swnl: vtls000148090 term: Von Müller, Johannes, 1752-1809 version: 2013-07-01T14:07:50Z viafid: '89266014' --- _id: 10e4d6033cd06328a9dcecd8ea47d334 bnf: '12596595' dnb: '188352910' key: ChavanceRenéb1879 lc: n88614786 merge: id: 10e4d6033cd06328a9dcecd8ea47d334 source: viaf type: document nkc: xx0157726 nlilat: '000496780' term: Chavance, René, b. 1879 version: 2013-07-01T14:07:50Z viafid: '17341597' --- _id: 10f27bba6ceb75e1703adfed6fc843d6 bav: adv12014594 bne: xx1121458 dnb: '121363155' key: SánchezPérezJoséAugusto1882-1958 lc: n84805690 merge: id: 10f27bba6ceb75e1703adfed6fc843d6 source: viaf type: document nlilat: '000129201' ptbnp: '818799' term: Sánchez Pérez, José Augusto, 1882-1958 version: 2013-07-01T14:07:50Z viafid: '114927865' --- _id: 110ce361b4232db54d5d2faf97d92b3b key: LandauYoanD1938-|IdentificationetcommandedesystèmesEnglish lc: n88152932 merge: id: 110ce361b4232db54d5d2faf97d92b3b source: viaf type: document term: Landau, Yoan D., 1938- | Identification et commande de systèmes. English version: 2013-07-01T14:07:50Z viafid: '177461909' --- _id: 11118dadcc1b16a5e60cc6386f1281cc bav: adv10166222 dnb: '116531428' key: ErdmannsdörfferBernhard1833-1901 merge: id: 11118dadcc1b16a5e60cc6386f1281cc source: viaf type: document nlilat: '000388323' term: Erdmannsdörffer, Bernhard, 1833-1901 version: 2013-07-01T14:07:50Z viafid: '30290221' --- _id: 1115e2bae72c8132130fb4d7683af0d4 bnf: '12981138' dnb: '142391883' key: LeDentuJean-François-Auguste1841-1926 lc: no2008018145 merge: id: 1115e2bae72c8132130fb4d7683af0d4 source: viaf type: document nkc: nlk20010101064 ptbnp: '1197392' term: Le Dentu, Jean-François-Auguste, 1841-1926 version: 2013-07-01T14:07:50Z viafid: '41639981' --- _id: 1116f1357dc5ad779854b99b750730e8 bav: adv10025869 dnb: '117134961' key: JirečekHermenegild1827-1909 lc: n92038864 merge: id: 1116f1357dc5ad779854b99b750730e8 source: viaf type: document nkc: jk01051864 term: Jireček, Hermenegild, 1827-1909 version: 2013-07-01T14:07:50Z viafid: '54918137' --- _id: 111d4f46ab21312b9f4d7b2333b84172 bnf: '15325237' key: GueymardÉmile1788-1869 merge: id: 111d4f46ab21312b9f4d7b2333b84172 source: viaf type: document term: Gueymard, Émile, 1788-1869 version: 2013-07-01T14:07:50Z viafid: '116475869' --- _id: 111f6022aba15f84339277b8845df023 bnf: '12120274' dnb: '119153246' key: KavvadíasNíkos1910-1975 lc: n83049445 merge: id: 111f6022aba15f84339277b8845df023 source: viaf type: document nla: '000036392225' term: Kavvadías, Níkos, 1910-1975 version: 2013-07-01T14:07:50Z viafid: '59116018' --- _id: 1126d7c539d1fd3ac7f02a3a3bdda42f bav: adv11991433 bnf: '13756621' dnb: '118986090' key: KampouroglousDēmētriosGrēgoriou1852-1942 lc: n82106117 merge: id: 1126d7c539d1fd3ac7f02a3a3bdda42f source: viaf type: document nla: '000035731624' term: Kampouroglous, Dēmētrios Grēgoriou, 1852-1942 version: 2013-07-01T14:07:50Z viafid: '37098092' --- _id: 112d183ddc5577efe6293cf6363ee4de bav: adv10076516 bnf: '12276364' dnb: '102254079' key: ChampionÉdouard(1882-1938) lc: n85327696 merge: id: 112d183ddc5577efe6293cf6363ee4de source: viaf type: document nla: '000035228165' nlilat: '000475711' term: Champion, Édouard (1882-1938) version: 2013-07-01T14:07:50Z viafid: '12368538' --- _id: 112f9e648c86cf6bb5bd057d857c312e bav: adv10285053 bnf: '14437728' dnb: '116893389' key: GrünwedelAlbert1856-1935 lc: n81082991 merge: id: 112f9e648c86cf6bb5bd057d857c312e source: viaf type: document nla: '000035155269' nlilat: '000247332' term: Grünwedel, Albert, 1856-1935 version: 2013-07-01T14:07:50Z viafid: '74071156' --- _id: 1133c08a712378785f3cc04fbb48afab key: Chemin-DupontèsJ-B1760or61-1852?(Jean-Baptiste)Moralityofthesans-culottesofeveryagesexcountryandconditionorTherepublicangospel lc: n99834152 merge: id: 1133c08a712378785f3cc04fbb48afab source: viaf type: document term: Chemin-Dupontès, J.-B., 1760 or 61-1852?, (Jean-Baptiste), Morality of the sans-culottes of every age, sex, country, and condition, or, The republican gospel version: 2013-07-01T14:07:50Z viafid: '181572703' --- _id: 1134c97ceab8aad8e366a0ac7fd02f98 bav: adv10913495 dnb: '100371922' key: LycklamaàNyeholtMarcus1573-1625 merge: id: 1134c97ceab8aad8e366a0ac7fd02f98 source: viaf type: document selibr: '317874' term: Lycklama à Nyeholt, Marcus, 1573-1625 version: 2013-07-01T14:07:50Z viafid: '69274628' --- _id: 11367ab8534652bfd099be91b9314534 bav: adv11246673 bne: xx825055 bnf: '11925109' dnb: '122613007' jpg: '500040516' key: DeSolísAntonio1610-1686 lc: n82157906 merge: id: 11367ab8534652bfd099be91b9314534 source: viaf type: document nkc: jo20000073713 nla: '000035749438' nlilat: '000448890' ptbnp: '85379' term: De Solís, Antonio, 1610-1686 version: 2013-07-01T14:07:50Z viafid: '73860294' --- _id: 11372ecbaf238474979fa728e902f917 key: ProcházkováPetra1964-|AluminiumqueenFrench lc: no2006108537 merge: id: 11372ecbaf238474979fa728e902f917 source: viaf type: document term: Procházková, Petra, 1964- | Aluminium queen. French version: 2013-07-01T14:07:50Z viafid: '182124104' --- _id: 1137548b1b4cc1776c31724045022c2a bav: adv11218889 bnf: '14509036' dnb: '118630709' key: WeizmannChai͏̈m1874-1952 lc: n50003498 merge: id: 1137548b1b4cc1776c31724045022c2a source: viaf type: document nkc: ola2002157572 nla: '000035248582' nliheb: '000209413' nlilat: '000140867' ptbnp: '268478' selibr: '101288' term: Weizmann, Chai͏̈m, 1874-1952 version: 2013-07-01T14:07:50Z viafid: '61778920' --- _id: 114c59e6c1ebbab4e0631c937da0db71 bav: adv10988687 bnf: '12264634' dnb: '117601330' key: MorandSauveur-François1697-1773 lc: n83027719 merge: id: 114c59e6c1ebbab4e0631c937da0db71 source: viaf type: document term: Morand, Sauveur-François, 1697-1773 version: 2013-07-01T14:07:50Z viafid: '22200045' --- _id: 115220040f493dc93d8f98d60f41ca72 bav: adv10096141 bnf: '12300459' dnb: '173564186' egaxa: vtls000773205 key: ṬūsūnʿUmar1872-1944 lc: n84173650 merge: id: 115220040f493dc93d8f98d60f41ca72 source: viaf type: document nliara: '000162895' nlilat: '000133307' term: Ṭūsūn, ʿUmar, 1872-1944 version: 2013-07-01T14:07:50Z viafid: '32062711' --- _id: 116923376afa947886a12a8ba148c795 bne: xx1720389 bnf: '11885892' dnb: '118863517' key: CapmanyMariaAurèlia1918-1991 lc: n80014872 merge: id: 116923376afa947886a12a8ba148c795 source: viaf type: document nlilat: '000426353' term: Capmany, Maria Aurèlia 1918-1991 version: 2013-07-01T14:07:50Z viafid: '54142662' --- _id: 11708df76838ac4d4180628604e1bc7f bne: xx1161075 bnf: '11928836' dnb: '118806068' key: WalrasLéon1834-1910 lc: n50024510 merge: id: 11708df76838ac4d4180628604e1bc7f source: viaf type: document nkc: jn20000701929 nla: '000035589236' nlilat: '000405752' ptbnp: '40958' selibr: '250058' term: Walras, Léon, 1834-1910 version: 2013-07-01T14:07:50Z viafid: '76324284' --- _id: 117b852cf99760bf93a860515db27e12 bne: xx1110492 dnb: '160074479' key: MünzerThomasca1490-1525 lc: n50038387 merge: id: 117b852cf99760bf93a860515db27e12 source: viaf type: document nkc: jn20000701289 nla: '000035368914' nlilat: '000097409' ptbnp: '209500' selibr: '79144' term: Münzer, Thomas, ca. 1490-1525 version: 2013-07-01T14:07:50Z viafid: '17226919' --- _id: 117f6a68d7ea3b41191e577cf760bde0 bne: xx1609671 bnf: '12160164' dnb: '117567574' jpg: '500291738' key: DeBastideJean-François1724-1798 lc: nr91010211 merge: id: 117f6a68d7ea3b41191e577cf760bde0 source: viaf type: document nkc: ola2008452326 nla: '000036046921' term: De Bastide, Jean-François, 1724-1798 version: 2013-07-01T14:07:50Z viafid: '71429857' --- _id: 117f804889ca3987513526c46462cb4c bne: xx1141658 bnf: '11927192' dnb: '119152746' key: TsatsosKōnstantinos1899-1987 lc: n84058420 merge: id: 117f804889ca3987513526c46462cb4c source: viaf type: document nla: '000035811638' term: Tsatsos, Kōnstantinos 1899-1987 version: 2013-07-01T14:07:50Z viafid: '113257497' --- _id: 117fddd937367626b711a47996528f83 dnb: '121418855' key: ZückertJohannFriedrich1737-1778 lc: n82162883 merge: id: 117fddd937367626b711a47996528f83 source: viaf type: document nkc: mzk2008448947 term: Zückert, Johann Friedrich, 1737-1778 version: 2013-07-01T14:07:50Z viafid: '77171048' --- _id: 118a2816dcb9481f84205d478ec0de37 bnf: '11939517' dnb: '117560928' jpg: '500022295' key: MénageotFrançois-Guillaume1744-1816 lc: n80080813 merge: id: 118a2816dcb9481f84205d478ec0de37 source: viaf type: document term: Ménageot, François-Guillaume, 1744-1816 version: 2013-07-01T14:07:50Z viafid: '22407226' --- _id: 119202c9cc2b634699d075e68c5c55da bnf: '12276855' dnb: '117631779' key: DemachyJacques-François1728-1803 lc: n89225538 merge: id: 119202c9cc2b634699d075e68c5c55da source: viaf type: document nkc: xx0061273 nlilat: '000499167' term: Demachy, Jacques-François, 1728-1803 version: 2013-07-01T14:07:50Z viafid: '73913783' --- _id: 119d2ff342b8990a361bdcd609d68f58 bav: adv12360332 bnf: '12413678' dnb: '101453221' key: DespoisEugène1818-1876 lc: no89021110 merge: id: 119d2ff342b8990a361bdcd609d68f58 source: viaf type: document nkc: xx0035591 nlilat: '000515282' ptbnp: '94085' term: Despois, Eugène, 1818-1876 version: 2013-07-01T14:07:50Z viafid: '39466134' --- _id: 119f55841b3cc8c3f22b9df32440450b bnf: '12367404' dnb: '117098574' key: SchäferKlaus1910-1984 lc: n83827812 merge: id: 119f55841b3cc8c3f22b9df32440450b source: viaf type: document term: Schäfer, Klaus, 1910-1984 version: 2013-07-01T14:07:50Z viafid: '100970163' --- _id: 11a4369ec430c44cd9e45a9e398ea046 bnf: '12298055' dnb: 12403148x key: DobréeBonamy1891-1974 lc: n80050351 merge: id: 11a4369ec430c44cd9e45a9e398ea046 source: viaf type: document nkc: jn19981000689 nla: '000035038628' nlilat: '000039948' ptbnp: '62772' term: Dobrée, Bonamy, 1891-1974 version: 2013-07-01T14:07:50Z viafid: '66531126' --- _id: 11b0eb45fbd9c5ba815c8293e5a0bea4 bnf: '12184262' dnb: 102012315x key: LindbergerÖrjan1912-2005 lc: n80023087 merge: id: 11b0eb45fbd9c5ba815c8293e5a0bea4 source: viaf type: document nla: '000035193690' nlilat: '000426733' selibr: '136568' term: Lindberger, Örjan, 1912-2005 version: 2013-07-01T14:07:50Z viafid: '59127749' --- _id: 11b39f8826bac5900ccfeb5499596014 bnf: '12103296' dnb: '118787772' key: RakićMilan1876-1938 lc: n85115423 merge: id: 11b39f8826bac5900ccfeb5499596014 source: viaf type: document nkc: ola2003169789 nla: '000036192635' term: Rakić, Milan, 1876-1938 version: 2013-07-01T14:07:50Z viafid: '27095545' --- _id: 11b3bf132ba9dd0a3eca7e8d7b104b26 dnb: '121572196' key: RudenkoSergejIvanovič1885-1969 lc: n85029023 merge: id: 11b3bf132ba9dd0a3eca7e8d7b104b26 source: viaf type: document nkc: jx20080318020 nlilat: '000467438' term: Rudenko, Sergej Ivanovič, 1885-1969 version: 2013-07-01T14:07:50Z viafid: '110475939' --- _id: 11b5a88f37ff5a16b0f69e6414608dc2 bav: adv12236065 bnf: '11928594' dnb: '123420350' key: VizyēnosGM1849-1896 lc: n85256047 merge: id: 11b5a88f37ff5a16b0f69e6414608dc2 source: viaf type: document nla: '000035085946' selibr: '279420' term: Vizyēnos, G. M., 1849-1896 version: 2013-07-01T14:07:50Z viafid: '4937943' --- _id: 11ca0616d5df9fe3db55eae69a2a09ba key: FantouréAlioum1938-|CercledestropiquesEnglish lc: n83194635 merge: id: 11ca0616d5df9fe3db55eae69a2a09ba source: viaf type: document nla: '000036141898' term: Fantouré, Alioum, 1938- | Cercle des tropiques. English version: 2013-07-01T14:07:50Z viafid: '184692357' --- _id: 11cb34544a11f8ce4b635940b3d08523 bnf: '12283735' dnb: '124758789' key: EdwardsRichard1944-économiste lc: n78091995 merge: id: 11cb34544a11f8ce4b635940b3d08523 source: viaf type: document nkc: vse2006351626 nla: '000035058068' term: Edwards, Richard, 1944-...., économiste version: 2013-07-01T14:07:50Z viafid: '108305061' --- _id: 11cc6de999448caf91dd103736d8b2b7 bav: adv11372118 bnf: '12459339' dnb: '131965182' key: SpullerEugène1835-1896 lc: n85068903 merge: id: 11cc6de999448caf91dd103736d8b2b7 source: viaf type: document nlilat: '000468673' ptbnp: '92134' term: Spuller, Eugène, 1835-1896 version: 2013-07-01T14:07:50Z viafid: '2568983' --- _id: 11d898c8c8fc152ff7cfa63e3a12cc05 bav: adv12033472 bnf: '11889409' dnb: '118650939' key: HédelinFrançois1604-1676 lc: n84141096 merge: id: 11d898c8c8fc152ff7cfa63e3a12cc05 source: viaf type: document nkc: mzk2009528177 nla: '000035010034' nlilat: '000013026' ptbnp: '169439' selibr: '343466' swnl: vtls004072532 term: Hédelin, François, 1604-1676 version: 2013-07-01T14:07:50Z viafid: '41836011' --- _id: 11d987f31f828af3822f4bc4c060da3f bav: adv10188666 bnf: '12308886' dnb: '101699255' key: FavreLéopold1817-1890 lc: n98019681 merge: id: 11d987f31f828af3822f4bc4c060da3f source: viaf type: document nkc: jx20100607004 nla: '000035967432' nlilat: '000534313' ptbnp: '252866' term: Favre, Léopold, 1817-1890 version: 2013-07-01T14:07:50Z viafid: '59150551' --- _id: 11e9eda3d3f2a272ff3af8f62c5bcd2f key: DalénUno1920-2006 lc: n81018994 merge: id: 11e9eda3d3f2a272ff3af8f62c5bcd2f source: viaf type: document nlilat: '000289082' selibr: '183286' term: Dalén, Uno, 1920-2006 version: 2013-07-01T14:07:50Z viafid: '53002882' --- _id: 11f7ba3a936cb04bd351bf1818c4444a bne: xx1153857 bnf: '12848149' dnb: '118750097' key: RubinshteĭnSergeĭLeonidovich1889-1960 lc: n50052990 merge: id: 11f7ba3a936cb04bd351bf1818c4444a source: viaf type: document nkc: nlk20000091780 ptbnp: '79559' term: Rubinshteĭn, Sergeĭ Leonidovich, 1889-1960 version: 2013-07-01T14:07:50Z viafid: '64327469' --- _id: 11f8fec54584ab2eb451c88154b2707c dnb: '117582441' key: BéhierLouisJulesFélix1813-1876 merge: id: 11f8fec54584ab2eb451c88154b2707c source: viaf type: document term: Béhier, Louis Jules Félix, 1813-1876 version: 2013-07-01T14:07:50Z viafid: '793596' --- _id: 11ffa2bf241015a028fa82d09ff5bafa bav: adv12233131 bne: xx1204553 bnf: '12943480' dnb: '127425446' key: BoillotFélixFrançoisb1880 lc: no93027215 merge: id: 11ffa2bf241015a028fa82d09ff5bafa source: viaf type: document nlilat: '000517994' ptbnp: '375905' term: Boillot, Félix François, b. 1880 version: 2013-07-01T14:07:50Z viafid: '87020333' --- _id: 120b1f8215aab54ad08bf2b6c4770425 bne: xx1054412 bnf: '11891925' dnb: '119497042' key: BianciottiHéctor1930-2012 lc: n85261121 merge: id: 120b1f8215aab54ad08bf2b6c4770425 source: viaf type: document nkc: jn20000700171 nla: '000035688819' ptbnp: '88613' selibr: '178240' term: Bianciotti, Héctor, 1930-2012 version: 2013-07-01T14:07:50Z viafid: '7386943' --- _id: 120ba597407f2afa1ea787186962a815 key: SöderlundErnst1903-1996 lc: n80098554 merge: id: 120ba597407f2afa1ea787186962a815 source: viaf type: document selibr: '203767' term: Söderlund, Ernst, 1903-1996 version: 2013-07-01T14:07:50Z viafid: '119425542' --- _id: 1210d353657920befeefdb477d0a4208 bne: xx1063264 bnf: '11926146' dnb: '119183544' key: ČukovskajaLidijaKorneevna1907-1996 lc: n79119170 merge: id: 1210d353657920befeefdb477d0a4208 source: viaf type: document nkc: js20020925060 nla: '000035028309' nlicyr: '000158528' nlilat: '000031839' selibr: '105473' swnl: vtls000237368 term: Čukovskaja, Lidija Korneevna, 1907-1996 version: 2013-07-01T14:07:50Z viafid: '95164668' --- _id: 12122cdecff80f2c27dd7f7f220093ba bav: adv11380927 bne: xx1126985 dnb: '100274617' key: SotoAndrésde(1553?-1625) lc: nr93009629 merge: id: 12122cdecff80f2c27dd7f7f220093ba source: viaf type: document term: Soto, Andrés de (1553?-1625) version: 2013-07-01T14:07:50Z viafid: '74194245' --- _id: 122449e766637d3ee21db851f9fc5782 dnb: '1020591498' key: PrévostJean-Louis1838-1927 lc: n87106240 merge: id: 122449e766637d3ee21db851f9fc5782 source: viaf type: document term: Prévost, Jean-Louis, 1838-1927 version: 2013-07-01T14:07:50Z viafid: '67974004' --- _id: 122a4942eb0f38918071e005b833d84d bnf: '15365539' key: RoumeguèreCasimir1828-1892 merge: id: 122a4942eb0f38918071e005b833d84d source: viaf type: document term: Roumeguère, Casimir, 1828-1892 version: 2013-07-01T14:07:50Z viafid: '12608292' --- _id: 122baaf94d285b58a01b3ef7ef58bfe0 bnf: '13483513' dnb: '102509441' egaxa: vtls000832519 key: SilafīAḥmadibnMuḥammadd1180 lc: n88662416 merge: id: 122baaf94d285b58a01b3ef7ef58bfe0 source: viaf type: document selibr: '33821' term: Silafī, Aḥmad ibn Muḥammad, d. 1180 version: 2013-07-01T14:07:50Z viafid: '54298152' --- _id: 1238d502e90ce7f245cced87d6cd2151 bne: xx902779 bnf: '11920604' dnb: '118596446' egaxa: vtls001067598 jpg: '500341496' key: PrévertJacques1900-1977 lc: n79054068 merge: id: 1238d502e90ce7f245cced87d6cd2151 source: viaf type: document nkc: jn19990006694 nla: '000036202545' nlilat: '000108129' ptbnp: '87670' selibr: '220997' term: Prévert, Jacques, 1900-1977 version: 2013-07-01T14:07:50Z viafid: '76321578' --- _id: 123d2bc806c71e36d6de5361d0fa43c8 bnf: '13538969' dnb: 11915420x key: XenopoulosGrēgorios1867-1951 lc: n82106115 merge: id: 123d2bc806c71e36d6de5361d0fa43c8 source: viaf type: document nla: '000036566765' term: Xenopoulos, Grēgorios, 1867-1951 version: 2013-07-01T14:07:50Z viafid: '90728471' --- _id: 124995ac1d8e3a7bb7fae9cb2d6ffbe2 key: DialloAlpha-Abdoulaye1935-|Véritéduministre lc: n2005053411 merge: id: 124995ac1d8e3a7bb7fae9cb2d6ffbe2 source: viaf type: document term: Diallo, Alpha-Abdoulaye, 1935- | Vérité du ministre version: 2013-07-01T14:07:50Z viafid: '175949462' --- _id: 125236206f6f8c5f9952f9a56df4bb60 dnb: '122586425' key: GrégoirePierre1540-1617 lc: n86809119 merge: id: 125236206f6f8c5f9952f9a56df4bb60 source: viaf type: document nkc: mzk2008473336 term: Grégoire, Pierre, 1540-1617 version: 2013-07-01T14:07:50Z viafid: '120702894' --- _id: 1252c4fa8fda1d003423c429c1293265 bne: xx4579773 bnf: '12035547' key: PessonneauxÉmile1821-1903 merge: id: 1252c4fa8fda1d003423c429c1293265 source: viaf type: document ptbnp: '169866' term: Pessonneaux, Émile 1821-1903 version: 2013-07-01T14:07:50Z viafid: '51706429' --- _id: 12548470f8ff2be03ec799584d37a996 bav: adv12173604 dnb: '118810421' key: StübelAlfons1835-1904 lc: n93120825 merge: id: 12548470f8ff2be03ec799584d37a996 source: viaf type: document term: Stübel, Alfons, 1835-1904 version: 2013-07-01T14:07:50Z viafid: '5727472' --- _id: 1255b36ca854cac2f4e20610bc5bf801 bne: xx931440 bnf: '13485665' key: ShāljīAbbūd1911-1996 lc: n85018738 merge: id: 1255b36ca854cac2f4e20610bc5bf801 source: viaf type: document selibr: '37750' term: Shāljī, Abbūd, 1911-1996 version: 2013-07-01T14:07:50Z viafid: '37069036' --- _id: 12562e5f745215a3bfed72254c2d05f7 bne: xx5127061 key: RiveraLetelierHernán1950-|LacontadoradepelículasHebreo merge: id: 12562e5f745215a3bfed72254c2d05f7 source: viaf type: document term: Rivera Letelier, Hernán 1950- | La contadora de películas Hebreo version: 2013-07-01T14:07:50Z viafid: '183561012' --- _id: 1256a26ef31c01ceb6dbbd359c05a9c9 bne: xx1128193 bnf: '11993741' dnb: '118752529' jpg: '500026376' key: DeStaëlNicolas1914-1955 lc: n82017607 merge: id: 1256a26ef31c01ceb6dbbd359c05a9c9 source: viaf type: document nkc: ola2002151598 nla: '000035519037' selibr: '285733' swnl: vtls000194478 term: De Staël, Nicolas, 1914-1955 version: 2013-07-01T14:07:50Z viafid: '68938567' --- _id: 126dbfd985269e5619338e7f9bbd1542 dnb: '117657530' key: DürrErnst(1878-1913) merge: id: 126dbfd985269e5619338e7f9bbd1542 source: viaf type: document term: Dürr, Ernst (1878-1913) version: 2013-07-01T14:07:50Z viafid: '54931286' --- _id: 126e7f9827eaf481386f8f168e49ea71 bav: adv10014647 bnf: '12064509' dnb: '118598228' key: DeLaRaméePierre1515-1572 lc: n81129403 merge: id: 126e7f9827eaf481386f8f168e49ea71 source: viaf type: document nkc: xx0049458 nla: '000035570120' nlilat: '000109442' ptbnp: '495226' selibr: '253232' term: De La Ramée, Pierre, 1515-1572 version: 2013-07-01T14:07:50Z viafid: '39399236' --- _id: 1280e322b76f2747b3ee1f62bfacf410 bne: xx983446 bnf: '11909712' dnb: '118638378' key: HrusčevNikitaS1894-1971 lc: n80021705 merge: id: 1280e322b76f2747b3ee1f62bfacf410 source: viaf type: document nkc: jn19990210293 nla: '000035269636' nlicyr: '000158075' nlilat: '000075679' ptbnp: '89870' selibr: '46096' swnl: vtls000045610 term: Hrusčev, Nikita S., 1894-1971 version: 2013-07-01T14:07:50Z viafid: '64007537' --- _id: 1286911ca50010b4675f5c3ee092d7a8 bav: adv10310733 bnf: '12180906' dnb: '118898221' key: LandströmBjörn1917-2002 lc: n50038730 merge: id: 1286911ca50010b4675f5c3ee092d7a8 source: viaf type: document nkc: kup19990000055331 nlilat: '000409329' ptbnp: '238746' selibr: '231195' term: Landström, Björn, 1917-2002 version: 2013-07-01T14:07:50Z viafid: '121575064' --- _id: 12896cfe1e87a4a422e590df417b9a74 bnf: '12550043' dnb: '128753943' key: SolovʹëvBorisIvanovič1904-1976 lc: n86037949 merge: id: 12896cfe1e87a4a422e590df417b9a74 source: viaf type: document nla: '000035105247' nlicyr: '000214020' term: Solovʹëv, Boris Ivanovič 1904-1976 version: 2013-07-01T14:07:50Z viafid: '59198278' --- _id: 128f2cb3f749a024ea65f5a05148d385 dnb: '137442343' key: FuchsGünter1924-1964 merge: id: 128f2cb3f749a024ea65f5a05148d385 source: viaf type: document term: Fuchs, Günter, 1924-1964 version: 2013-07-01T14:07:50Z viafid: '81633191' --- _id: 129637765c5fb0467ea01693c1e382e2 bnf: '12449297' dnb: '101063806' key: QuesnaydeSaint-GermainRobert-François-Joseph1751-1805 lc: nr93032062 merge: id: 129637765c5fb0467ea01693c1e382e2 source: viaf type: document term: Quesnay de Saint-Germain, Robert-François-Joseph, 1751-1805 version: 2013-07-01T14:07:50Z viafid: '44393631' --- _id: 1299a7c1f7357bc44dd194b3734fb452 bne: xx926821 bnf: '12338532' dnb: '122760247' key: Martín-SantosLuis1924-1964 lc: n50054896 merge: id: 1299a7c1f7357bc44dd194b3734fb452 source: viaf type: document nkc: xx0004105 nla: '000035331415' term: Martín-Santos, Luis, 1924-1964 version: 2013-07-01T14:07:50Z viafid: '7462521' --- _id: 129b494767416c8b87e408dd1e0cc9bf bnf: '11242342' dnb: '138723702' key: KrygowskiBogumił1905-1977 lc: n84094887 merge: id: 129b494767416c8b87e408dd1e0cc9bf source: viaf type: document nlilat: '000461762' term: Krygowski, Bogumił, 1905-1977 version: 2013-07-01T14:07:50Z viafid: '125074948' --- _id: 129e0e84ee8fb00c1b567817c5c8b2dd bne: xx1044131 bnf: '14507009' dnb: '118997203' key: KrapivaKandratKandratavič1896-1991 lc: n82125088 merge: id: 129e0e84ee8fb00c1b567817c5c8b2dd source: viaf type: document nkc: jo2001100056 nla: '000036515854' nlicyr: '000332559' selibr: '37267' term: Krapiva, Kandrat Kandratavič, 1896-1991 version: 2013-07-01T14:07:50Z viafid: '109448884' --- _id: 12a628c80f83e5ba972925302bfd57d6 key: O'NeillBrianJuan1950-|ProprietárioslavradoresejornaleirasEnglish lc: n85372679 merge: id: 12a628c80f83e5ba972925302bfd57d6 source: viaf type: document term: O'Neill, Brian Juan, 1950- | Proprietários, lavradores e jornaleiras. English version: 2013-07-01T14:07:50Z viafid: '186335322' --- _id: 12a7858dc33486d37130e6994bbe1038 bav: adv12154268 bnf: '12763808' dnb: '128514124' key: SeltmanCharlesThéodore1886-1957 lc: n82222989 merge: id: 12a7858dc33486d37130e6994bbe1038 source: viaf type: document nla: '000035489080' nlilat: '000225935' ptbnp: '393890' selibr: '223306' term: Seltman, Charles Théodore 1886-1957 version: 2013-07-01T14:07:50Z viafid: '2598262' --- _id: 12acc80a38d1e9f7e4a109ac92b9fce5 bav: adv11172695 bnf: '12185861' dnb: '100130828' key: DeSégurLouis-Philippe1753-1830 lc: n82152242 merge: id: 12acc80a38d1e9f7e4a109ac92b9fce5 source: viaf type: document nkc: js2007400423 nla: '000035650522' nlilat: '000448585' ptbnp: '158206' selibr: '338050' term: De Ségur, Louis-Philippe, 1753-1830 version: 2013-07-01T14:07:50Z viafid: '76361034' --- _id: 12b0e98b979fc01132804d18da580a2b bnf: '11997595' dnb: '117039691' key: NogaretFrançoisFelix1740-1831 lc: n90692754 merge: id: 12b0e98b979fc01132804d18da580a2b source: viaf type: document nkc: xx0020472 term: Nogaret, François Felix, 1740-1831 version: 2013-07-01T14:07:50Z viafid: '61555612' --- _id: 12c6615bffa0a392f0383d2608428f88 bav: adv11384407 dnb: '124738710' key: KisIstván1505-1572 lc: nr93015424 merge: id: 12c6615bffa0a392f0383d2608428f88 source: viaf type: document selibr: '336260' term: Kis, István, 1505-1572 version: 2013-07-01T14:07:50Z viafid: '18164975' --- _id: 12c6704b2b35949c64d8bdad4ee7bfa3 bnf: '13456551' key: PénasseEugène1853-19 merge: id: 12c6704b2b35949c64d8bdad4ee7bfa3 source: viaf type: document term: Pénasse, Eugène 1853-19 version: 2013-07-01T14:07:50Z viafid: '292419344' --- _id: 12c76112c6c21460f53e5fb9d2f17f92 bav: adv10202850 bne: xx1151975 bnf: '10433194' dnb: '118672169' jpg: '500288114' key: DörpfeldWilhelm1853-1940 lc: no2003088451 merge: id: 12c76112c6c21460f53e5fb9d2f17f92 source: viaf type: document nkc: kup19970000022583 nlilat: '000547614' ptbnp: '211734' term: Dörpfeld, Wilhelm, 1853-1940 version: 2013-07-01T14:07:50Z viafid: '106965312' --- _id: 12d1ae3009278fd235b3a5583bc15511 bne: xx958086 bnf: '11911167' dnb: '106279467' key: LartéguyJean1920-2011 lc: n79061369 merge: id: 12d1ae3009278fd235b3a5583bc15511 source: viaf type: document nkc: ola2004235422 nla: '000035292396' nlilat: '000081198' ptbnp: '62431' term: Lartéguy, Jean, 1920-2011 version: 2013-07-01T14:07:50Z viafid: '68931538' --- _id: 12d881d9f05759b6a15921bdfbf7c8c2 bnf: '15971556' dnb: '123541476' key: LjublinskijVladimirSergeevič1903-1968 lc: n83228471 merge: id: 12d881d9f05759b6a15921bdfbf7c8c2 source: viaf type: document nkc: jn20020213016 nlicyr: '000153198' selibr: '72064' term: Ljublinskij, Vladimir Sergeevič, 1903-1968 version: 2013-07-01T14:07:50Z viafid: '50137979' --- _id: 12e7ac401844ae4a6c0087cbdb8e210e bav: adv10212780 bne: xx982888 bnf: '12034483' dnb: '118839152' key: MedinaJoséToribio1852-1930 lc: n50009972 merge: id: 12e7ac401844ae4a6c0087cbdb8e210e source: viaf type: document nkc: jx20050608005 nla: '000036590116' nlilat: '000091327' ptbnp: '153891' selibr: '316991' term: Medina, José Toribio, 1852-1930 version: 2013-07-01T14:07:50Z viafid: '26820' --- _id: 12ec2800982ec67adb303f404fc8e37a bnf: '12927174' dnb: '1017304882' key: CérouPierre1709-1797? lc: no91028393 merge: id: 12ec2800982ec67adb303f404fc8e37a source: viaf type: document term: Cérou, Pierre, 1709-1797? version: 2013-07-01T14:07:50Z viafid: '29662759' --- _id: 12efbcd9749a7397ec8cb9a10c3e86f1 bnf: '14517541' dnb: '119044072' key: LiLüyuan1707-1790 lc: n81152098 merge: id: 12efbcd9749a7397ec8cb9a10c3e86f1 source: viaf type: document nla: '000036608830' term: Li, Lüyuan, 1707-1790 version: 2013-07-01T14:07:50Z viafid: '64239913' --- _id: 12f74a969b6e77233ac0c55e8a55d2e5 bav: adv10197544 bnf: '12092987' dnb: '1021419966' key: GätjeHelmut1927-1986 lc: n87949742 merge: id: 12f74a969b6e77233ac0c55e8a55d2e5 source: viaf type: document nla: '000035701552' nlilat: '000491334' term: Gätje, Helmut, 1927-1986 version: 2013-07-01T14:07:50Z viafid: '29561534' --- _id: 12fd9d16853a861511046653bdc63370 bav: adv10024559 bnf: '12163981' key: KostrenčićMarko(1884-1976) lc: n79089243 merge: id: 12fd9d16853a861511046653bdc63370 source: viaf type: document nlilat: '000422031' term: Kostrenčić, Marko (1884-1976) version: 2013-07-01T14:07:50Z viafid: '115237338' --- _id: 12ff51fd0c7e477b8856ae5bac739455 bav: adv10309229 bnf: '11290581' dnb: 12584252x key: VanAerssenFrançois1572-1641 lc: no91000108 merge: id: 12ff51fd0c7e477b8856ae5bac739455 source: viaf type: document nkc: jo2003169871 term: Van Aerssen, François, 1572-1641 version: 2013-07-01T14:07:50Z viafid: '4923795' --- _id: 1303160506202c6d74933bac1beb066b key: CasalisE1812-1891(Eugène)Basutos lc: n93083929 merge: id: 1303160506202c6d74933bac1beb066b source: viaf type: document term: Casalis, E., 1812-1891., (Eugène), Basutos version: 2013-07-01T14:07:50Z viafid: '184367346' --- _id: 1304bc1461a93f24883d94aa998966e9 dnb: '117585084' key: VanBenedenÉdouard1846-1910 lc: no99059626 merge: id: 1304bc1461a93f24883d94aa998966e9 source: viaf type: document term: Van Beneden, Édouard 1846-1910 version: 2013-07-01T14:07:50Z viafid: '74634040' --- _id: 1306a2283451d9f165122b248fe23436 dnb: '115353240' key: BareaudeGiracFrançois1730-1820 lc: nr93015817 merge: id: 1306a2283451d9f165122b248fe23436 source: viaf type: document term: Bareau de Girac, François, 1730-1820 version: 2013-07-01T14:07:50Z viafid: '257352072' --- _id: 130d569773a442f899ce9a00cbe0b8fc key: MartinPierreÉtienne1771-1846médecin merge: id: 130d569773a442f899ce9a00cbe0b8fc source: viaf type: document term: Martin, Pierre Étienne, 1771-1846, médecin version: 2013-07-01T14:07:50Z viafid: '195134671' --- _id: 1313ef313c5253723f9737258d6a580f key: JačevRistoǴ1942-|SivitegrebeniEnglish lc: no2012135771 merge: id: 1313ef313c5253723f9737258d6a580f source: viaf type: document term: Jačev, Risto Ǵ., 1942- | Sivite grebeni. English version: 2013-07-01T14:07:50Z viafid: '270180801' --- _id: 1316f1c4b060a1898f7cd0cb64055a6b bnf: '13025002' dnb: '173668690' key: LeBesgueVictorAmédée1791-1875 lc: n2001080119 merge: id: 1316f1c4b060a1898f7cd0cb64055a6b source: viaf type: document term: LeBesgue, Victor Amédée 1791-1875 version: 2013-07-01T14:07:50Z viafid: '51035174' --- _id: 13186acb8b0c44c7b802d47816611076 bnf: '14447439' dnb: '119548623' key: VinokurGrigorijOsipovič1896-1947 lc: n87847122 merge: id: 13186acb8b0c44c7b802d47816611076 source: viaf type: document nkc: js20020925008 nla: '000036033420' nlicyr: '000149340' ptbnp: '1200494' term: Vinokur, Grigorij Osipovič, 1896-1947 version: 2013-07-01T14:07:50Z viafid: '64227621' --- _id: 131ecb77c88f17ec076ec2a7feeecfef bav: adv12225474 bnf: '11921459' dnb: '118744488' jpg: '500052237' key: RemizovAleksejMichajlovič1877-1957 lc: n50051063 merge: id: 131ecb77c88f17ec076ec2a7feeecfef source: viaf type: document nkc: jo20000080732 nla: '000036566268' nlicyr: '000155632' nlilat: '000412093' ptbnp: '1441922' selibr: '86598' term: Remizov, Aleksej Michajlovič, 1877-1957 version: 2013-07-01T14:07:50Z viafid: '51953667' --- _id: 131f40bb6661611488d3ee87d00a033e key: ValdésAcostaGema1948-(GemaDelCarmen) lc: no2004024183 merge: id: 131f40bb6661611488d3ee87d00a033e source: viaf type: document term: Valdés Acosta, Gema, 1948-, (Gema Del Carmen) version: 2013-07-01T14:07:50Z viafid: '163847732' --- _id: 1320dd7b76175957502b24c72545ca79 bnf: '12163856' dnb: '117622087' key: BottinSébastien1764-1853 lc: n87860767 merge: id: 1320dd7b76175957502b24c72545ca79 source: viaf type: document term: Bottin, Sébastien, 1764-1853 version: 2013-07-01T14:07:50Z viafid: '7430095' --- _id: 132179ff6435225476e4d3d61c9ab632 key: BretonRolandJ-L1931-|GéographiedeslanguesItalian merge: id: 132179ff6435225476e4d3d61c9ab632 source: viaf type: document nla: '000035795924' term: Breton, Roland J.-L., 1931- | Géographie des langues. Italian version: 2013-07-01T14:07:50Z viafid: '177774196' --- _id: 1323a5e9d31ceab66d8bc0c2c6ef5cc8 bav: adv11186928 bnf: '12425645' dnb: '119241226' key: SavaryAnne-Jean-Marie-René1774-1833 lc: n87896516 merge: id: 1323a5e9d31ceab66d8bc0c2c6ef5cc8 source: viaf type: document nkc: mzk2009532937 nlilat: '000114134' selibr: '287100' term: Savary, Anne-Jean-Marie-René, 1774-1833 version: 2013-07-01T14:07:50Z viafid: '22231617' --- _id: 132c4267b889526f124c2c59d5694133 bnf: '12917299' dnb: '118728822' key: LöschAugust1906-1945 lc: n88069679 merge: id: 132c4267b889526f124c2c59d5694133 source: viaf type: document nlilat: '000492756' ptbnp: '156872' term: Lösch, August, 1906-1945 version: 2013-07-01T14:07:50Z viafid: '49354029' --- _id: 13327dcb552f22567b1d6f0c27bd5d67 bav: adv10214445 bne: xx1659253 bnf: '13011021' dnb: 10427736x key: GersaintEdme-Françoisd1750 lc: n85301441 merge: id: 13327dcb552f22567b1d6f0c27bd5d67 source: viaf type: document nlilat: '000474978' selibr: '275223' term: Gersaint, Edme-François, d. 1750 version: 2013-07-01T14:07:50Z viafid: '100185623' --- _id: 133371bb9282a1d8ead004a1e237338e bav: adv10049515 bnf: '15327077' dnb: '172514533' key: ClüverPhilipp1580-1622 lc: n85086963 merge: id: 133371bb9282a1d8ead004a1e237338e source: viaf type: document nkc: mzk2007395146 nla: '000035926290' nlilat: '000032604' ptbnp: '182221' selibr: '239393' term: Clüver, Philipp, 1580-1622 version: 2013-07-01T14:07:50Z viafid: '29833013' --- _id: 1333cb8714f1197d884318699e12bf0b bav: adv10206542 bnf: '12161707' dnb: '172441544' key: WalterGérard1896-1974 lc: n83022460 merge: id: 1333cb8714f1197d884318699e12bf0b source: viaf type: document nla: '000035589693' nlilat: '000219078' ptbnp: '148091' term: Walter, Gérard, 1896-1974 version: 2013-07-01T14:07:50Z viafid: '100184549' --- _id: 133de31b35d469ac98840a2f70781722 bav: adv10000111 bnf: '12343924' dnb: '119224178' key: JírečekKonstantin1854-1918 lc: no88002779 merge: id: 133de31b35d469ac98840a2f70781722 source: viaf type: document nkc: jk01051869 nlicyr: '000151595' nlilat: '000514779' term: Jíreček, Konstantin, 1854-1918 version: 2013-07-01T14:07:50Z viafid: '71464501' --- _id: 1340cca6d5420138121e02f34c70d28c bnf: '13521106' key: ConnesAlain1947-Matièreàpensée merge: id: 1340cca6d5420138121e02f34c70d28c source: viaf type: document term: Connes, Alain 1947-.... Matière à pensée version: 2013-07-01T14:07:50Z viafid: '292646925' --- _id: 134c05717bb6fb6482a90088f841d0b4 bnf: '10652620' dnb: '100188141' key: LegalloisCésarJulien1770-1814 lc: n86837058 merge: id: 134c05717bb6fb6482a90088f841d0b4 source: viaf type: document term: Legallois, César Julien, 1770-1814 version: 2013-07-01T14:07:50Z viafid: '120775682' --- _id: 135ce84257418bcc78568750a2111e60 bav: adv10143108 bne: xx1005644 bnf: '12028549' dnb: '138087563' key: ValbuenaPratÁngel1900-1977 lc: n80094272 merge: id: 135ce84257418bcc78568750a2111e60 source: viaf type: document nkc: jn20011211066 nla: '000036585051' nlilat: '000430020' ptbnp: '186073' selibr: '200401' term: Valbuena Prat, Ángel, 1900-1977 version: 2013-07-01T14:07:50Z viafid: '110455808' --- _id: 1376e493e318f49ee5a6bc7de59d29cd bnf: '12966050' dnb: '101866313' key: LépineRaphaël1840-1919 merge: id: 1376e493e318f49ee5a6bc7de59d29cd source: viaf type: document nkc: nlk20000090057 term: Lépine, Raphaël, 1840-1919 version: 2013-07-01T14:07:50Z viafid: '2603660' --- _id: 137f20b36063fe82a71c804ec1d5ea0d bnf: '12104361' dnb: '121576531' key: GrobétyAnne-Lise1949-2010 lc: n86074554 merge: id: 137f20b36063fe82a71c804ec1d5ea0d source: viaf type: document nkc: js20050703013 nla: '000035047927' nlilat: '000056875' swnl: vtls002011955 term: Grobéty, Anne-Lise 1949-2010 version: 2013-07-01T14:07:50Z viafid: '91354976' --- _id: 1382ed5f9c62681680678a4765249ec6 bnf: '12487007' dnb: '102866341' key: DuPréGalliotd1561 lc: nr94028497 merge: id: 1382ed5f9c62681680678a4765249ec6 source: viaf type: document term: Du Pré, Galliot, d. 1561 version: 2013-07-01T14:07:50Z viafid: '100294987' --- _id: 1383061015604866b10b40be09d50a0e bav: adv11209050 bne: xx1266708 bnf: '12227688' dnb: '117618284' key: SalverteEusèbe1771-1839 lc: n88067883 merge: id: 1383061015604866b10b40be09d50a0e source: viaf type: document nla: '000035077674' nlilat: '000492702' ptbnp: '203589' term: Salverte, Eusèbe, 1771-1839 version: 2013-07-01T14:07:50Z viafid: '14822860' --- _id: 1385be4e3cdef2172f0727458e7eb8ec dnb: '118662473' key: Boy-EdIdá(1852-1928) lc: n50043125 merge: id: 1385be4e3cdef2172f0727458e7eb8ec source: viaf type: document nkc: jx20070612019 nlilat: '000023721' selibr: '178868' swnl: vtls000033876 term: Boy-Ed, Idá (1852-1928) version: 2013-07-01T14:07:50Z viafid: '50019156' --- _id: 1397f1a12df8a2f5d334d64cec4be38a bav: adv12352150 bnf: '12029110' dnb: '118545388' key: HammarskjöldDag1905-1961 lc: n79034467 merge: id: 1397f1a12df8a2f5d334d64cec4be38a source: viaf type: document nkc: jn20000700664 nla: '000035166507' nlilat: '000211029' ptbnp: '150722' selibr: '211403' swnl: vtls002029343 term: Hammarskjöld, Dag, 1905-1961 version: 2013-07-01T14:07:50Z viafid: '9861820' --- _id: 1398870983365a4e9950886a61a77fe8 dnb: '101388896' key: LagerströmHugo1873-1956 lc: no2008180427 merge: id: 1398870983365a4e9950886a61a77fe8 source: viaf type: document selibr: '228146' term: Lagerström, Hugo, 1873-1956 version: 2013-07-01T14:07:50Z viafid: '61916489' --- _id: 13aadd027bb3321ff7ddf55d9d145337 bav: adv11018991 bnf: '11912514' dnb: '100507484' key: LepanÉdouard-Marie-Joseph1767-1836? merge: id: 13aadd027bb3321ff7ddf55d9d145337 source: viaf type: document term: Lepan, Édouard-Marie-Joseph, 1767-1836? version: 2013-07-01T14:07:50Z viafid: '73856477' --- _id: 13b27848965db8d48114e5ede6a2c59b dnb: '115143858' key: DeValenzuelaNicolás17thcent lc: n80111260 merge: id: 13b27848965db8d48114e5ede6a2c59b source: viaf type: document term: De Valenzuela, Nicolás, 17th cent version: 2013-07-01T14:07:50Z viafid: '47485171' --- _id: 13b8a42eaeba8156429b4d05e5251faf bav: adv12238341 bnf: '13322345' dnb: '118762117' key: SchückingWalther1875-1935 lc: n88071815 merge: id: 13b8a42eaeba8156429b4d05e5251faf source: viaf type: document nlilat: '000119422' ptbnp: '114100' term: Schücking, Walther, 1875-1935 version: 2013-07-01T14:07:50Z viafid: '32142447' --- _id: 13bb3ba59e44985b154b108f1c1ab542 bnf: '16568135' dnb: '123388775' key: BouchuÉtienneJean(1714-1773) lc: no91022030 merge: id: 13bb3ba59e44985b154b108f1c1ab542 source: viaf type: document term: Bouchu, Étienne Jean (1714-1773) version: 2013-07-01T14:07:50Z viafid: '919671' --- _id: 13bc64cf5d33bc19b12af6d8b9650c54 bnf: '10681119' dnb: 12453970x key: DesmahisMarinGrostête1649-1694 lc: nr93017500 merge: id: 13bc64cf5d33bc19b12af6d8b9650c54 source: viaf type: document nkc: xx0096940 term: Desmahis, Marin Grostête, 1649-1694 version: 2013-07-01T14:07:50Z viafid: '56600306' --- _id: 13c4e87bac899be9c34fc6cddd7c0ceb dnb: '103461736' key: ŽákJaroslav1906-1960 lc: n92026015 merge: id: 13c4e87bac899be9c34fc6cddd7c0ceb source: viaf type: document nkc: jk01152975 nlilat: '000145123' term: Žák, Jaroslav, 1906-1960 version: 2013-07-01T14:07:50Z viafid: '49638770' --- _id: 13d8534d4717431ab106c16aa2505b50 bav: adv10290089 bnf: '11473144' dnb: '105851337' key: JánossyLajos(1912-1978) lc: n50076011 merge: id: 13d8534d4717431ab106c16aa2505b50 source: viaf type: document nla: '000035242650' nlilat: '000413248' term: Jánossy, Lajos (1912-1978) version: 2013-07-01T14:07:50Z viafid: '108565657' --- _id: 13dddaa9ccb7504b36b899eb93a840ac bne: xx1252301 dnb: '119081822' key: DöderleinAlbert1860-1941 lc: n93088538 merge: id: 13dddaa9ccb7504b36b899eb93a840ac source: viaf type: document nkc: nlk20000084604 nlilat: '000510144' term: Döderlein, Albert, 1860-1941 version: 2013-07-01T14:07:50Z viafid: '20482478' --- _id: 13e092bc20255ee05d824f8749990197 dnb: '121350177' key: BestmannHansJürgen1925-2005 lc: n83001765 merge: id: 13e092bc20255ee05d824f8749990197 source: viaf type: document nla: '000036577128' term: Bestmann, Hans Jürgen, 1925-2005 version: 2013-07-01T14:07:50Z viafid: '94951367' --- _id: 13e2d8c4dc31844a867b6de39b505803 bne: xx849594 bnf: '11924142' dnb: '124372597' jpg: '500003958' key: SchulerThéophile1821-1878 lc: nr91017449 merge: id: 13e2d8c4dc31844a867b6de39b505803 source: viaf type: document nlilat: '000525235' term: Schuler, Théophile, 1821-1878 version: 2013-07-01T14:07:50Z viafid: '17229379' --- _id: 13e527207ff40989842240429371ee23 bav: adv11019887 bnf: '13925233' dnb: '100213723' key: MinatoNiccolò1627-1698 lc: n82139122 merge: id: 13e527207ff40989842240429371ee23 source: viaf type: document nkc: jn20030723002 nlilat: '000552701' selibr: '347560' term: Minato, Niccolò, 1627-1698 version: 2013-07-01T14:07:50Z viafid: '100204455' --- _id: 13f3cd38a6899b1b9ed5ecdc9d2dd83d bnf: '12459635' dnb: '100757510' key: BenoîtPhilippeMartinNarcisse1791-1867 lc: n88132726 merge: id: 13f3cd38a6899b1b9ed5ecdc9d2dd83d source: viaf type: document term: Benoît, Philippe Martin Narcisse, 1791-1867 version: 2013-07-01T14:07:50Z viafid: '107498' --- _id: 13fb7b3ce61d32d193657045a7144100 bav: adv10187258 bnf: '12025019' dnb: '100835244' key: LachèvreFrédéric1855-1943 lc: n50041323 merge: id: 13fb7b3ce61d32d193657045a7144100 source: viaf type: document nla: '000035287364' nlilat: '000409956' term: Lachèvre, Frédéric, 1855-1943 version: 2013-07-01T14:07:50Z viafid: '66480802' --- _id: 13fe19afd531a7178532ce2c6587cf81 bnf: '12026787' dnb: 12328354x key: TopîrceanuGeorge1886-1937 lc: n82230847 merge: id: 13fe19afd531a7178532ce2c6587cf81 source: viaf type: document nkc: ola2003172178 nlilat: '000450056' term: Topîrceanu, George, 1886-1937 version: 2013-07-01T14:07:50Z viafid: '2484379' --- _id: 1404dd471b278ac0f6a7e20435519181 bav: adv10231928 bne: xx1727372 bnf: '12180932' dnb: '117661236' key: Del'IsleAndréYvesMarie1675-1764 lc: n2006066584 merge: id: 1404dd471b278ac0f6a7e20435519181 source: viaf type: document nkc: ola2008460009 term: De l'Isle André, Yves Marie, 1675-1764 version: 2013-07-01T14:07:50Z viafid: '51732793' --- _id: 1410a071456c9e4a0c12eaa6a9825b5d bav: adv10475174 bne: xx1020593 bnf: '12020646' dnb: '118580817' key: MenéndezyPelayoMarcelino1856-1912 lc: n50045147 merge: id: 1410a071456c9e4a0c12eaa6a9825b5d source: viaf type: document nkc: jn20000603991 nla: '000035346765' nlilat: '000092132' ptbnp: '181363' selibr: '194998' term: Menéndez y Pelayo, Marcelino, 1856-1912 version: 2013-07-01T14:07:50Z viafid: '64018425' --- _id: 141b2c94c573f20c3f8dca411aa423b7 bne: xx998466 bnf: '12027213' dnb: '118964038' egaxa: vtls001110051 key: SaramagoJosédeSousa1922-2010 lc: n85130797 merge: id: 141b2c94c573f20c3f8dca411aa423b7 source: viaf type: document nkc: xx0001988 nla: '000035960643' nlilat: '000116640' ptbnp: '10526' selibr: '89703' swnl: vtls002352195 term: Saramago, José de Sousa, 1922-2010 version: 2013-07-01T14:07:50Z viafid: '114473675' --- _id: 141e055ae72686ee2e118d57a4325696 dnb: '957302584' key: BarbérisPierre1926-Verfasserschaft1 merge: id: 141e055ae72686ee2e118d57a4325696 source: viaf type: document term: Barbéris, Pierre 1926- Verfasserschaft1 version: 2013-07-01T14:07:50Z viafid: '212912232' --- _id: 141e1e5bd08b42bd1c7523b0ecaca044 bnf: '12386318' dnb: '172506344' key: RouchéEugène(1832-1910) lc: n87831201 merge: id: 141e1e5bd08b42bd1c7523b0ecaca044 source: viaf type: document ptbnp: '1172693' term: Rouché, Eugène (1832-1910) version: 2013-07-01T14:07:50Z viafid: '37000162' --- _id: 1426e4bd0805ce3c6f3643b25bd9a81b bav: adv11026398 bnf: '12170910' dnb: '116234539' jpg: '500234955' key: DucpétiauxEdouard1804-1868 lc: n82104179 merge: id: 1426e4bd0805ce3c6f3643b25bd9a81b source: viaf type: document ptbnp: '108843' term: Ducpétiaux, Edouard, 1804-1868 version: 2013-07-01T14:07:50Z viafid: '61587699' --- _id: 142909d5324b2231e8a041cacbd74558 dnb: '127139303' key: MalmeströmElis1895-1977 lc: n85806075 merge: id: 142909d5324b2231e8a041cacbd74558 source: viaf type: document nlilat: '000088225' selibr: '250996' term: Malmeström, Elis, 1895-1977 version: 2013-07-01T14:07:50Z viafid: '98029004' --- _id: 142ad28dd919fbda26ef14679815a112 dnb: '157685276' key: ÅhfeldtClemens1860-1941 merge: id: 142ad28dd919fbda26ef14679815a112 source: viaf type: document selibr: '104037' term: Åhfeldt, Clemens, 1860-1941 version: 2013-07-01T14:07:50Z viafid: '239951129' --- _id: 1433fc0f8e5054788e6c0e91bf3fce71 bnf: '14508346' dnb: '121160238' egaxa: vtls000823801 key: IbnSūdūnʻAlī1407or8-1463or4 lc: no98086830 merge: id: 1433fc0f8e5054788e6c0e91bf3fce71 source: viaf type: document term: Ibn Sūdūn, ʻAlī, 1407 or 8-1463 or 4 version: 2013-07-01T14:07:50Z viafid: '90044089' --- _id: 1436864bc103e4414b3b12987838239f bne: xx1771604 bnf: '13896734' dnb: '118821024' key: LôboDuarte1565-1646 lc: n85098951 merge: id: 1436864bc103e4414b3b12987838239f source: viaf type: document nlilat: '000085415' ptbnp: '64209' term: Lôbo, Duarte 1565-1646 version: 2013-07-01T14:07:50Z viafid: '87553403' --- _id: 14399ebb07f3dea868a636906e8b4f69 dnb: '995200688' key: KarahasanDževad1953-|Noćnovijeće merge: id: 14399ebb07f3dea868a636906e8b4f69 source: viaf type: document term: Karahasan, Dževad 1953- | Noćno vijeće version: 2013-07-01T14:07:50Z viafid: '207955847' --- _id: 143b157c6aec0022b010d38d4ed94b63 key: HeibergHans1904-|FødttilkunstnerEnglish merge: id: 143b157c6aec0022b010d38d4ed94b63 source: viaf type: document nla: '000036513819' term: Heiberg, Hans, 1904- | Født til kunstner. English version: 2013-07-01T14:07:50Z viafid: '180606272' --- _id: 144f5f10aeb12edadd93364ce17c2901 key: OdojewskiWłodzimierz(1930-)|DobrejdrogiMario(pol) merge: id: 144f5f10aeb12edadd93364ce17c2901 source: viaf type: document term: Odojewski, Włodzimierz (1930- ). | Dobrej drogi, Mario (pol.) version: 2013-07-01T14:07:50Z viafid: '292809469' --- _id: 145ab3d7dc37ee27e5c496f713925069 bav: adv10024278 bnf: '12050988' dnb: '151061343' key: ChasséCharles1883-1965 lc: no99078971 merge: id: 145ab3d7dc37ee27e5c496f713925069 source: viaf type: document nla: '000035720479' nlilat: '000030950' term: Chassé, Charles, 1883-1965 version: 2013-07-01T14:07:50Z viafid: '7409159' --- _id: 145d11f9d0517861b19b0d27f3b12dc0 bnf: '10553686' dnb: '117609331' key: MüllerOttoFrederik1730-1784 lc: n86815213 merge: id: 145d11f9d0517861b19b0d27f3b12dc0 source: viaf type: document nkc: nlk20010095241 nla: '000035956182' nlilat: '000483822' selibr: '351243' term: Müller, Otto Frederik, 1730-1784 version: 2013-07-01T14:07:50Z viafid: '22132538' --- _id: 145e023dd68a559040311fe1dd9031ef bnf: '11991661' dnb: '100554989' key: PironAîmé1640-1727 lc: no2010080838 merge: id: 145e023dd68a559040311fe1dd9031ef source: viaf type: document term: Piron, Aîmé, 1640-1727 version: 2013-07-01T14:07:50Z viafid: '29543417' --- _id: 145f93c5c06487dcd3fff23b4ee899ff bnf: '13197481' dnb: '135631211' key: PavčekTone1928-2011 lc: n82093671 merge: id: 145f93c5c06487dcd3fff23b4ee899ff source: viaf type: document nkc: mzk2005282332 nlilat: '000399829' term: Pavček, Tone, 1928-2011 version: 2013-07-01T14:07:50Z viafid: '59227179' --- _id: 1460328b0407de80ed5b5c9e9531c8a9 bnf: '12539587' dnb: '119142333' key: BuysseCyriël1859-1932 lc: n78087593 merge: id: 1460328b0407de80ed5b5c9e9531c8a9 source: viaf type: document nkc: xx0051003 term: Buysse, Cyriël, 1859-1932 version: 2013-07-01T14:07:50Z viafid: '14883922' --- _id: 1461117deedf27e03535258ba41e5683 key: BakewellPJ1943-(PeterJohn)MinerosdelaMontañaRoja lc: n90686929 merge: id: 1461117deedf27e03535258ba41e5683 source: viaf type: document term: Bakewell, P. J., 1943-, (Peter John), Mineros de la Montaña Roja version: 2013-07-01T14:07:50Z viafid: '176267770' --- _id: 14644e49c37af5c572ca8d06bbde63b8 dnb: '143355554' key: BergströmRichard1828-1893 merge: id: 14644e49c37af5c572ca8d06bbde63b8 source: viaf type: document selibr: '270648' term: Bergström, Richard, 1828-1893 version: 2013-07-01T14:07:50Z viafid: '166070125' --- _id: 146fdc6561d9215b4b72181aca576f83 bav: adv10024219 bne: xx820681 bnf: '11889411' dnb: '118650947' key: D'AubignéAgrippa1552-1630 lc: n80057183 merge: id: 146fdc6561d9215b4b72181aca576f83 source: viaf type: document nkc: ola2002150117 nla: '000036554013' nlilat: '000013029' selibr: '207286' swnl: vtls000021296 term: D'Aubigné, Agrippa, 1552-1630 version: 2013-07-01T14:07:50Z viafid: '56605227' --- _id: 147f219ad904fd30075ddeeddcad4d97 bav: adv10013661 bnf: '13739375' dnb: '118524518' key: DelbrückHans1848-1929 lc: n79151238 merge: id: 147f219ad904fd30075ddeeddcad4d97 source: viaf type: document nkc: mzk2008458919 nlilat: '000038280' term: Delbrück, Hans, 1848-1929 version: 2013-07-01T14:07:50Z viafid: '51867965' --- _id: 1485667c00189da4004dc7c5b03231e7 bav: adv11083613 bnf: '11920343' dnb: '101936370' key: PortCélestin(1828-1901) lc: n81112405 merge: id: 1485667c00189da4004dc7c5b03231e7 source: viaf type: document term: Port, Célestin (1828-1901) version: 2013-07-01T14:07:50Z viafid: '22147287' --- _id: 14936d44bb48bd6ef253590bba9af7e9 bnf: '12190126' dnb: '109021762' key: YosidaKôsaku1909-1990 lc: n50013601 merge: id: 14936d44bb48bd6ef253590bba9af7e9 source: viaf type: document nkc: kup19950000113178 nla: '000035624512' term: Yosida, Kôsaku, 1909-1990 version: 2013-07-01T14:07:50Z viafid: '37718918' --- _id: 14942ddb2b1d77254cd041f905c5d4f6 dnb: 10018667x key: LeBlancFrançoisd1698 lc: n88116916 merge: id: 14942ddb2b1d77254cd041f905c5d4f6 source: viaf type: document term: Le Blanc, François, d. 1698 version: 2013-07-01T14:07:50Z viafid: '295392725' --- _id: 149502ce01e11e56077947e42fe4bb75 bav: adv12500368 bnf: '11906150' dnb: '100493912' key: GuépinAnge1805-1873 lc: n88101326 merge: id: 149502ce01e11e56077947e42fe4bb75 source: viaf type: document nlilat: '000273572' term: Guépin, Ange, 1805-1873 version: 2013-07-01T14:07:50Z viafid: '61546622' --- _id: 149577f97a722b3cfd151297b0b8a631 bav: adv10260313 bnf: '12529532' dnb: '117680230' key: Paludan-MüllerFrederik1809-1876 lc: n81068795 merge: id: 149577f97a722b3cfd151297b0b8a631 source: viaf type: document nkc: kup19960000073803 nlilat: '000437385' selibr: '82449' term: Paludan-Müller, Frederik, 1809-1876 version: 2013-07-01T14:07:50Z viafid: '12416841' --- _id: 1498aea74677395145635bdce6ab372d bnf: '14062271' key: LombardPierreAimé1678-1748 lc: nr2006004176 merge: id: 1498aea74677395145635bdce6ab372d source: viaf type: document term: Lombard, Pierre Aimé, 1678-1748 version: 2013-07-01T14:07:50Z viafid: '7592464' --- _id: 149aae21a35233e4e1be474b69b2547d bav: adv10222330 bnf: '12177715' dnb: '100281117' key: FélibienMichel1665-1719 lc: no2002064523 merge: id: 149aae21a35233e4e1be474b69b2547d source: viaf type: document nkc: mzk2008469051 term: Félibien, Michel, 1665-1719 version: 2013-07-01T14:07:50Z viafid: '68972042' --- _id: 149f28687e86526a8a02e829bd71dbba dnb: '130160695' key: JanczarskiCzesław1911-1971 lc: no95050557 merge: id: 149f28687e86526a8a02e829bd71dbba source: viaf type: document nkc: ola2003196264 term: Janczarski, Czesław, 1911-1971 version: 2013-07-01T14:07:50Z viafid: '84995335' --- _id: 14a277c2c9d56ede2bfc6e0606ac3736 bne: xx979504 bnf: '11990402' dnb: '158414640' key: LópezAngladaLuis1919-2007 lc: n50064580 merge: id: 14a277c2c9d56ede2bfc6e0606ac3736 source: viaf type: document nla: '000035312578' selibr: '317190' term: López Anglada, Luis, 1919-2007 version: 2013-07-01T14:07:50Z viafid: '20335' --- _id: 14a67db24557b00ee09221a04664bb3b dnb: '100174833' key: Maître-JanAntoine1650-1719 merge: id: 14a67db24557b00ee09221a04664bb3b source: viaf type: document term: Maître-Jan, Antoine 1650-1719 version: 2013-07-01T14:07:50Z viafid: '293444596' --- _id: 14a81955590cbd0b8d82382eb4b42715 bav: adv12157777 bne: xx1149249 dnb: '118972200' key: BarradasSebastião1543-1615 lc: n88073162 merge: id: 14a81955590cbd0b8d82382eb4b42715 source: viaf type: document nkc: ola2008452294 nla: '000048220952' ptbnp: '9238' selibr: '356842' term: Barradas, Sebastião, 1543-1615 version: 2013-07-01T14:07:50Z viafid: '88777885' --- _id: 14b3899993010f9052892f9c3aeacb83 bav: adv10009974 bnf: '11887930' dnb: 10042631x key: BlocquelSimon-François1780-1863 lc: n89655433 merge: id: 14b3899993010f9052892f9c3aeacb83 source: viaf type: document nla: '000035776047' term: Blocquel, Simon-François, 1780-1863 version: 2013-07-01T14:07:50Z viafid: '27059746' --- _id: 14b58b4269d6105cd1746817ec2a47da key: AlexandrescuSică1896-1973 lc: n81002887 merge: id: 14b58b4269d6105cd1746817ec2a47da source: viaf type: document term: Alexandrescu, Sică, 1896-1973 version: 2013-07-01T14:07:50Z viafid: '265323685' --- _id: 14bb85844d451b9b5e58e79d0fbda309 bav: adv10069523 bne: xx5000893 bnf: '10725424' key: BergeretLouisFrançoisEtienne(1814-1893) lc: n2013180582 merge: id: 14bb85844d451b9b5e58e79d0fbda309 source: viaf type: document ptbnp: '1192678' term: Bergeret, Louis François Etienne (1814-1893) version: 2013-07-01T14:07:50Z viafid: '27055650' --- _id: 14c729b90c70967612c34527905e21b2 bav: adv11938982 bnf: '12112662' dnb: '172440173' key: WaillyNoëlFrançoisde1724-1801 lc: n92115386 merge: id: 14c729b90c70967612c34527905e21b2 source: viaf type: document nkc: mzk2008468991 nlilat: '000508741' selibr: '277738' term: Wailly, Noël François de, 1724-1801 version: 2013-07-01T14:07:50Z viafid: '46791857' --- _id: 14c790ebe9ba595baae117f4ba627449 bne: xx875529 bnf: '12197719' dnb: '185885853' key: AndújarManuel1913-1994 lc: n50024863 merge: id: 14c790ebe9ba595baae117f4ba627449 source: viaf type: document nkc: ola2002145123 term: Andújar, Manuel, 1913-1994 version: 2013-07-01T14:07:50Z viafid: '27113103' --- _id: 14c81ddae9ab36c24ab276fb3c21b728 bav: adv11245622 bne: xx1170172 bnf: '12570139' dnb: '119428164' key: SerraRàfolsElías1898-1972 lc: n80160048 merge: id: 14c81ddae9ab36c24ab276fb3c21b728 source: viaf type: document nlilat: '000433351' ptbnp: '142014' term: Serra Ràfols, Elías 1898-1972 version: 2013-07-01T14:07:50Z viafid: '89487779' --- _id: 14cb65d4e6eca6410278586c4d65c458 dnb: '109015452' key: KlevebringBjörn-Ivarb1943 lc: no94003942 merge: id: 14cb65d4e6eca6410278586c4d65c458 source: viaf type: document term: Klevebring, Björn-Ivar, b.1943 version: 2013-07-01T14:07:50Z viafid: '113089860' --- _id: 14cf34d0fa2a38b89bfdf1090daeb5fd bav: adv10148841 bnf: '10700554' dnb: '124514200' key: BuissonMathieu-François-Régis1776-1805 lc: n86801586 merge: id: 14cf34d0fa2a38b89bfdf1090daeb5fd source: viaf type: document term: Buisson, Mathieu-François-Régis, 1776-1805 version: 2013-07-01T14:07:50Z viafid: '23076439' --- _id: 14cf7a9a16afc540ea4b7c090de8256d bav: adv12488629 bne: xx1364830 bnf: '12152583' dnb: '172511917' key: MerlinMaríadelasMercedesSantaCruzyMontalvo1789-1852 lc: n86820350 merge: id: 14cf7a9a16afc540ea4b7c090de8256d source: viaf type: document nla: '000035725130' term: Merlin, María de las Mercedes Santa Cruz y Montalvo, 1789-1852 version: 2013-07-01T14:07:50Z viafid: '34495055' --- _id: 14dc4870dec4453bfd863fa35ea66256 key: HuellePaweł1957-|WeiserDawidekEnglish lc: n91060889 merge: id: 14dc4870dec4453bfd863fa35ea66256 source: viaf type: document term: Huelle, Paweł, 1957- | Weiser Dawidek. English version: 2013-07-01T14:07:50Z viafid: '178693401' --- _id: 14e028324138d65cb42fbed1fc730f64 bav: adv12137352 dnb: '100143873' key: GerstäckerCarlFriedrichWilhelm1773-1852 lc: n85295074 merge: id: 14e028324138d65cb42fbed1fc730f64 source: viaf type: document nlilat: '000474743' term: Gerstäcker, Carl Friedrich Wilhelm 1773-1852 version: 2013-07-01T14:07:50Z viafid: '10626189' --- _id: 14e382e0c851407d46f80bfb421cbf79 bne: xx1051448 bnf: '12557057' dnb: '132149974' key: DeCastroJosué1908-1973 lc: n50038278 merge: id: 14e382e0c851407d46f80bfb421cbf79 source: viaf type: document nkc: nlk20000083830 nla: '000035026566' nlilat: '000029257' ptbnp: '43010' swnl: vtls001861867 term: De Castro, Josué, 1908-1973 version: 2013-07-01T14:07:50Z viafid: '46875949' --- _id: 14e3be59329a8f032e46a3e8d8c869cb bnf: '11929662' dnb: '135967198' key: ZéraffaMichel1918-1983 lc: n85129186 merge: id: 14e3be59329a8f032e46a3e8d8c869cb source: viaf type: document nla: '000035776905' nlilat: '000470404' ptbnp: '319798' term: Zéraffa, Michel, 1918-1983 version: 2013-07-01T14:07:50Z viafid: '71399333' --- _id: 14f4d1d7539a08f6d8d5c4f8e46a2be4 bnf: '12028448' dnb: '172227798' key: LinzeJacques-Gérard(1925-1996) lc: n85117846 merge: id: 14f4d1d7539a08f6d8d5c4f8e46a2be4 source: viaf type: document nlilat: '000470013' ptbnp: '192607' term: Linze, Jacques-Gérard (1925-1996) version: 2013-07-01T14:07:50Z viafid: '110278317' --- _id: 14fb8cc177da9fbab9cee94fd2b0a502 bav: adv11194402 bnf: '12085579' dnb: '102372845' egaxa: vtls001158733 key: IbnFaḍlAllāhal-ʻUmarīAḥmadibnYaḥyá1301-1349 lc: nr89013200 merge: id: 14fb8cc177da9fbab9cee94fd2b0a502 source: viaf type: document nlilat: '000523737' selibr: '62902' term: Ibn Faḍl Allāh al-ʻUmarī, Aḥmad ibn Yaḥyá, 1301-1349 version: 2013-07-01T14:07:50Z viafid: '82873343' --- _id: 14fd09a1a6505b2000aea27fb6fa49a5 bav: adv12123388 bnf: '13484480' dnb: 11604277x key: DecazesÉlie1780-1860 lc: n88101090 merge: id: 14fd09a1a6505b2000aea27fb6fa49a5 source: viaf type: document term: Decazes, Élie, 1780-1860 version: 2013-07-01T14:07:50Z viafid: '76466485' --- _id: 150b7db59770c7d17898440b0654170a bav: adv10880820 bne: xx1082692 bnf: '11912970' dnb: '121741729' key: LichnerowiczAndré1915-1998 lc: n50050381 merge: id: 150b7db59770c7d17898440b0654170a source: viaf type: document nkc: skuk0003741 nla: '000035304747' term: Lichnerowicz, André, 1915-1998 version: 2013-07-01T14:07:50Z viafid: '109114301' --- _id: 150e614d77e283eae215073665e76353 bav: adv10165483 bnf: '12229466' dnb: '118685767' key: BüchleinPaul1504-1549 lc: n98064016 merge: id: 150e614d77e283eae215073665e76353 source: viaf type: document nkc: mzk2009510846 nlilat: '000045229' ptbnp: '25651' term: Büchlein, Paul, 1504-1549 version: 2013-07-01T14:07:50Z viafid: '17275147' --- _id: 151a8baa34f4c42ec651cf89a5da836d bav: adv11137685 bnf: '12544579' dnb: '100393047' key: RivièreLazare1589-1655 lc: n84184713 merge: id: 151a8baa34f4c42ec651cf89a5da836d source: viaf type: document nkc: nlk20000091144 nla: '000035836472' ptbnp: '1389127' term: Rivière, Lazare, 1589-1655 version: 2013-07-01T14:07:50Z viafid: '64118232' --- _id: 1521faaff9b1af2f4621eb2ec5d83791 bav: adv12371136 dnb: '100287352' key: GiravaGerónimod1556 lc: no97040910 merge: id: 1521faaff9b1af2f4621eb2ec5d83791 source: viaf type: document nkc: ola2010605730 nlilat: '000531920' term: Girava, Gerónimo, d. 1556 version: 2013-07-01T14:07:50Z viafid: '66809658' --- _id: 1525f82242157126f1b56cda3ef4cec8 bav: adv10374907 bne: xx1713081 bnf: '12306936' dnb: '135852544' jpg: '500017211' key: FessardÉtienne1714-1777 lc: nr00004572 merge: id: 1525f82242157126f1b56cda3ef4cec8 source: viaf type: document nkc: mzk2009528458 ptbnp: '246162' selibr: '342846' term: Fessard, Étienne, 1714-1777 version: 2013-07-01T14:07:50Z viafid: '71457400' --- _id: 152d9f4cc2130662c4cf60c3ddc7e389 bnf: '12605982' dnb: '129065463' key: MonyStéphane1800-1884 lc: n88101171 merge: id: 152d9f4cc2130662c4cf60c3ddc7e389 source: viaf type: document ptbnp: '1174477' term: Mony, Stéphane, 1800-1884 version: 2013-07-01T14:07:50Z viafid: '24722059' --- _id: 152f70b3175ccd761042f5d53ad5533c dnb: '118793853' key: RyleevKondratijFëdorovič(1795-1826) lc: n81040581 merge: id: 152f70b3175ccd761042f5d53ad5533c source: viaf type: document nla: '000035316627' nlicyr: '000155995' term: Ryleev, Kondratij Fëdorovič (1795-1826) version: 2013-07-01T14:07:50Z viafid: '35252682' --- _id: 1531327f46d23fc38bb56603eee281f1 bnf: '11907962' dnb: '121221059' key: HugoFrançois-Victor1828-1873 lc: no94021099 merge: id: 1531327f46d23fc38bb56603eee281f1 source: viaf type: document nlilat: '000518774' ptbnp: '179073' term: Hugo, François-Victor, 1828-1873 version: 2013-07-01T14:07:50Z viafid: '100267715' --- _id: 1532fca5855ec505296ed98bf4e8bff5 dnb: '116674628' key: RüdigerKarlAugust1793-1869 merge: id: 1532fca5855ec505296ed98bf4e8bff5 source: viaf type: document term: Rüdiger, Karl August 1793-1869 version: 2013-07-01T14:07:50Z viafid: '40136090' --- _id: 1535e272ce0837291a23ae9b9ff7bb1f bav: adv10909862 bne: xx1348887 bnf: '12561976' dnb: '118820095' key: LützelerHeinrich1902-1988 lc: n50047325 merge: id: 1535e272ce0837291a23ae9b9ff7bb1f source: viaf type: document nkc: jn19990005247 nla: '000035316541' nlilat: '000411310' ptbnp: '1441984' term: Lützeler, Heinrich, 1902-1988 version: 2013-07-01T14:07:50Z viafid: '27182952' --- _id: 154207a532fc786937d23723bcf05e04 dnb: 12838686x key: BenoîstElie1640-1728 lc: n84233023 merge: id: 154207a532fc786937d23723bcf05e04 source: viaf type: document nla: '000035852975' term: Benoîst, Elie, 1640-1728 version: 2013-07-01T14:07:50Z viafid: '57663498' --- _id: 154364002341116f2198e2ad60b35e1b bne: xx5013404 key: BonaThéodore1805-1866 merge: id: 154364002341116f2198e2ad60b35e1b source: viaf type: document term: Bona, Théodore, 1805-1866 version: 2013-07-01T14:07:50Z viafid: '159870877' --- _id: 154ac92e9992d5dd3f10b0fdcfc8328e dnb: '123513561' jpg: '500030414' key: ChirnoagăMarcel1930-2008 lc: n83328098 merge: id: 154ac92e9992d5dd3f10b0fdcfc8328e source: viaf type: document term: Chirnoagă, Marcel, 1930-2008 version: 2013-07-01T14:07:50Z viafid: '214095192' --- _id: 154f71e8b9b3e2399082dd0a2ac69bf4 bav: adv10018476 bne: xx822112 bnf: '13012044' dnb: '101874138' key: CoderayZaidínFrancisco1836-1917 lc: n87941684 merge: id: 154f71e8b9b3e2399082dd0a2ac69bf4 source: viaf type: document nlilat: '000311806' term: Codera y Zaidín, Francisco, 1836-1917 version: 2013-07-01T14:07:50Z viafid: '51824216' --- _id: 1551e5919f87e89974308c8718239043 bnf: '12938863' dnb: '141428864' key: BéghinHenri1876-1969 merge: id: 1551e5919f87e89974308c8718239043 source: viaf type: document term: Béghin, Henri, 1876-1969 version: 2013-07-01T14:07:50Z viafid: '44429503' --- _id: 15524ed265fd40ffdcaf034475a257cb bav: adv10979308 bnf: '12027624' dnb: 11912369x key: MikszáthKálmán1847-1910 lc: n50042174 merge: id: 15524ed265fd40ffdcaf034475a257cb source: viaf type: document nkc: jn19990210430 nla: '000035351495' nlilat: '000093396' ptbnp: '196003' selibr: '77025' term: Mikszáth, Kálmán, 1847-1910 version: 2013-07-01T14:07:50Z viafid: '46774986' --- _id: 1552c1a7d742dab4869b7abdd25b2d74 key: BéraJosephCharles1758-1839 merge: id: 1552c1a7d742dab4869b7abdd25b2d74 source: viaf type: document term: Béra, Joseph Charles, 1758-1839 version: 2013-07-01T14:07:50Z viafid: '191916511' --- _id: 155732e088a547923384110611c02605 bnf: '12783902' key: FrédérixGustave1834-1894 merge: id: 155732e088a547923384110611c02605 source: viaf type: document term: Frédérix, Gustave, 1834-1894 version: 2013-07-01T14:07:50Z viafid: '107035248' --- _id: 155ba761038b969ce522ed80d5e56ea6 dnb: '101323484' key: AguilarySantillánRafael1863-1940 lc: no2012104147 merge: id: 155ba761038b969ce522ed80d5e56ea6 source: viaf type: document term: Aguilar y Santillán, Rafael, 1863-1940 version: 2013-07-01T14:07:50Z viafid: '27430168' --- _id: 155f13b5c9f7a0834d056c69bcb0d203 bav: adv10020286 bnf: '13573958' dnb: '119138069' key: PokrovskijNN1930-(NikolajNikolaevič) lc: n80116922 merge: id: 155f13b5c9f7a0834d056c69bcb0d203 source: viaf type: document nkc: jx20040130026 nlicyr: '000155244' selibr: '223671' term: Pokrovskij, N. N., 1930-, (Nikolaj Nikolaevič) version: 2013-07-01T14:07:50Z viafid: '33383022' --- _id: 1560383bce931a3d3721d73c76e61f59 dnb: '157427064' key: HovhannēseanVahan1894-1977 lc: n85105597 merge: id: 1560383bce931a3d3721d73c76e61f59 source: viaf type: document term: Hovhannēsean, Vahan, 1894-1977 version: 2013-07-01T14:07:50Z viafid: '237752024' --- _id: 1560cf82d3db1898e7a4bfd53d6dc62d dnb: '117511315' key: Schmidt-Weißenfels(Eduard)1833-1893 lc: no2002059245 merge: id: 1560cf82d3db1898e7a4bfd53d6dc62d source: viaf type: document nkc: ola2009488167 nla: '000035292698' nlilat: '000118091' term: Schmidt-Weißenfels, ... (Eduard), 1833-1893 version: 2013-07-01T14:07:50Z viafid: '40157682' --- _id: 156233eaa1252b487920ff8567724131 bav: adv10165457 bnf: '12770960' dnb: '103507191' key: GalaunėPaulius1890-1988 lc: n90649776 merge: id: 156233eaa1252b487920ff8567724131 source: viaf type: document nlilat: '000502930' term: Galaunė, Paulius, 1890-1988 version: 2013-07-01T14:07:50Z viafid: '41966965' --- _id: 156c529b2d7717c0df32e3922f85f224 bav: adv10988505 bnf: '12504019' dnb: '133213544' key: MoreauÉdouardde1879-1952 lc: no00048053 merge: id: 156c529b2d7717c0df32e3922f85f224 source: viaf type: document nkc: jcu2012721003 selibr: '300940' term: Moreau, Édouard de, 1879-1952 version: 2013-07-01T14:07:50Z viafid: '56715679' --- _id: 1579762263815b1941be36ec881bdcfe bne: xx924903 bnf: '12031343' dnb: '118717502' key: GinerdelosRíosFrancisco1839-1915 lc: n50033894 merge: id: 1579762263815b1941be36ec881bdcfe source: viaf type: document nlilat: '000408131' ptbnp: '222700' term: Giner de los Ríos, Francisco, 1839-1915 version: 2013-07-01T14:07:50Z viafid: '12323303' --- _id: 157e8db1a7423680d4e4818449cd873d bav: adv10125001 bnf: '11894410' dnb: '124841260' key: BruzendelaMartinièreAntoineAugustin1662-1746 lc: nr95046875 merge: id: 157e8db1a7423680d4e4818449cd873d source: viaf type: document nkc: mzk2007395149 nlilat: '000025909' selibr: '313349' swnl: vtls000035608 term: Bruzen de la Martinière, Antoine Augustin 1662-1746 version: 2013-07-01T14:07:50Z viafid: '100174728' --- _id: 1584d0a6a9d44a8b4f8ec5a6113b4471 bav: adv10127620 bnf: '11901807' dnb: '133226700' key: EppRené1927-2009 lc: n83032682 merge: id: 1584d0a6a9d44a8b4f8ec5a6113b4471 source: viaf type: document nkc: uk2008335146 nlilat: '000452483' term: Epp, René, 1927-2009 version: 2013-07-01T14:07:50Z viafid: '85252385' --- _id: 1586bca60ac2847b701688ccfc5f21b4 key: HødnebøTone(1962-)|Lykkeligøyeblikk(norw) merge: id: 1586bca60ac2847b701688ccfc5f21b4 source: viaf type: document term: Hødnebø, Tone (1962- ). | Lykkelig øyeblikk (norw.) version: 2013-07-01T14:07:50Z viafid: '293127160' --- _id: 1586f5c9b26fe22deb7e4972ee3a9121 bav: adv11098930 bnf: '12176450' dnb: '118104306' key: PluquetFrançois-André-Adrien1716-1790 lc: n84094341 merge: id: 1586f5c9b26fe22deb7e4972ee3a9121 source: viaf type: document nkc: mzk2009510728 nlilat: '000461740' term: Pluquet, François-André-Adrien, 1716-1790 version: 2013-07-01T14:07:50Z viafid: '7432776' --- _id: 158a49241995255ea4e2044ff83b066f bne: xx1100503 bnf: '12130675' dnb: '104115602' egaxa: vtls001073138 key: IbnHudhaylʻAlīibnʻAbdal-Raḥmān14thcent lc: nr92030088 merge: id: 158a49241995255ea4e2044ff83b066f source: viaf type: document nlilat: '000526572' term: Ibn Hudhayl, ʻAlī ibn ʻAbd al-Raḥmān, 14th cent version: 2013-07-01T14:07:50Z viafid: '2505776' --- _id: 158b3f1f2f2dc75f4f16205ffdffa0ba dnb: '118621246' key: TembrockGünter1918-2011 lc: n83222604 merge: id: 158b3f1f2f2dc75f4f16205ffdffa0ba source: viaf type: document nkc: xx0059929 nlilat: '000457529' term: Tembrock, Günter, 1918-2011 version: 2013-07-01T14:07:50Z viafid: '25395490' --- _id: 159673e20f8a3fe36b46058121cd2ce2 dnb: '151198411' key: LevraultLéonb1865 lc: no2011125074 merge: id: 159673e20f8a3fe36b46058121cd2ce2 source: viaf type: document nkc: jn19990005039 nla: '000035649576' ptbnp: '175843' term: Levrault, Léon, b. 1865 version: 2013-07-01T14:07:50Z viafid: '83992592' --- _id: 15972183d2ef170bf6bc288cce067248 bav: adv11026285 bne: xx1776528 bnf: '11900910' dnb: '119097222' key: DucisJean-François1733-1816 lc: n88661411 merge: id: 15972183d2ef170bf6bc288cce067248 source: viaf type: document nla: '000035579838' nlilat: '000498199' selibr: '184128' term: Ducis, Jean-François 1733-1816 version: 2013-07-01T14:07:50Z viafid: '36917487' --- _id: 159f6e0cdaa31f9a740ed2cfd3387173 bnf: '12185852' dnb: 15116908x key: JorréGeorges1899-1957 lc: no2005097209 merge: id: 159f6e0cdaa31f9a740ed2cfd3387173 source: viaf type: document nla: '000035660508' nlilat: '000551599' term: Jorré, Georges, 1899-1957 version: 2013-07-01T14:07:50Z viafid: '115316830' --- _id: 15a530e7fafe9f4f661aa7b4bed61119 bav: adv10973115 bnf: '12397222' dnb: '128696346' key: MillietdeChalesClaude-François1621-1678 lc: n85196837 merge: id: 15a530e7fafe9f4f661aa7b4bed61119 source: viaf type: document nkc: ola2002153993 ptbnp: '1045680' term: Milliet de Chales, Claude-François, 1621-1678 version: 2013-07-01T14:07:50Z viafid: '5015944' --- _id: 15a568d1a8c36bda45d114dbc3a3cb11 bnf: '11913683' dnb: '117719757' key: LwoffAndré1902-1994 lc: n79062986 merge: id: 15a568d1a8c36bda45d114dbc3a3cb11 source: viaf type: document nkc: nlk20020107196 nla: '000035316624' nlilat: '000420416' ptbnp: '139534' term: Lwoff, André, 1902-1994 version: 2013-07-01T14:07:50Z viafid: '92093913' --- _id: 15a924ea710f760c1b9496f88006af48 dnb: '140804757' key: StaudingerHansjürgen1914-1990 lc: n85154369 merge: id: 15a924ea710f760c1b9496f88006af48 source: viaf type: document nla: '000036501632' term: Staudinger, Hansjürgen 1914-1990 version: 2013-07-01T14:07:50Z viafid: '111141598' --- _id: 15bae8790fbe90a2a6956fe7e81890ee bnf: '11916640' dnb: '100526888' key: MontémontAlbert(1788-1862) lc: nr90008612 merge: id: 15bae8790fbe90a2a6956fe7e81890ee source: viaf type: document nla: '000036585601' nlilat: '000094858' term: Montémont, Albert (1788-1862) version: 2013-07-01T14:07:50Z viafid: '29538219' --- _id: 15bbb12d0e9222b1547b731371a279ac bnf: '12117308' dnb: '118825321' key: PólyaGeorge1887-1985 lc: n80049669 merge: id: 15bbb12d0e9222b1547b731371a279ac source: viaf type: document nkc: jx20050425007 nla: '000035427907' nlilat: '000428130' ptbnp: '370127' selibr: '85424' term: Pólya, George, 1887-1985 version: 2013-07-01T14:07:50Z viafid: '120727470' --- _id: 15c391f2623bc9e65588f4d527b8faad key: RapinChristian1931-|Cicled'Iskèr lc: nr2003021924 merge: id: 15c391f2623bc9e65588f4d527b8faad source: viaf type: document term: Rapin, Christian, 1931- | Cicle d'Iskèr version: 2013-07-01T14:07:50Z viafid: '183009320' --- _id: 15cf3fcc2aa6cd9bd2e3e1ef09be3061 bnf: '12485324' dnb: '117624799' key: ThierryÉdouard1813-1894 lc: nr97014802 merge: id: 15cf3fcc2aa6cd9bd2e3e1ef09be3061 source: viaf type: document nlilat: '000531316' term: Thierry, Édouard, 1813-1894 version: 2013-07-01T14:07:50Z viafid: '51791564' --- _id: 15d3d4d14c55a4f701eda42b0121a6e1 bnf: '12128379' dnb: '120220504' key: NenadovićMateja1777-1854 lc: n85289466 merge: id: 15d3d4d14c55a4f701eda42b0121a6e1 source: viaf type: document nkc: jo2002150582 nla: '000035380067' nlilat: '000474610' term: Nenadović, Mateja, 1777-1854 version: 2013-07-01T14:07:50Z viafid: '27100048' --- _id: 15d93518be11453240e2a6e33ecae64c bav: adv10196189 bne: xx4744701 bnf: '12375337' dnb: '116677635' key: FourcroyAntoine-François1755-1809 lc: n84102152 merge: id: 15d93518be11453240e2a6e33ecae64c source: viaf type: document nkc: nlk20000085667 nla: '000035955803' nlilat: '000461911' selibr: '252659' term: Fourcroy, Antoine-François 1755-1809 version: 2013-07-01T14:07:50Z viafid: '27146082' --- _id: 15dbc49040f2df8a7ce3fbd57eba59a7 dnb: '130372587' key: CarićJuraj(1854-1927) merge: id: 15dbc49040f2df8a7ce3fbd57eba59a7 source: viaf type: document term: Carić, Juraj (1854-1927) version: 2013-07-01T14:07:50Z viafid: '57717861' --- _id: 15dd3a20a5fef525474436d5b536ae89 dnb: '128445246' key: ReformatskijAleksandrAleksandrovič1900-1978 lc: nr88004853 merge: id: 15dd3a20a5fef525474436d5b536ae89 source: viaf type: document nkc: pna2012684581 nlicyr: '000155646' selibr: '269095' term: Reformatskij, Aleksandr Aleksandrovič, 1900-1978 version: 2013-07-01T14:07:50Z viafid: '91966747' --- _id: 15e99e40dd0804a850b58d392ff3b56e bnf: '12473779' dnb: '124365329' key: MühlpfortHeinrich1639-1681 lc: no2002059021 merge: id: 15e99e40dd0804a850b58d392ff3b56e source: viaf type: document nlilat: '000544534' term: Mühlpfort, Heinrich, 1639-1681 version: 2013-07-01T14:07:50Z viafid: '44398982' --- _id: 15ea2fd851d7a21990ca12fdd4e01ac3 dnb: '972290230' key: GrandesAlmudena1960-|EdadesdeLulú merge: id: 15ea2fd851d7a21990ca12fdd4e01ac3 source: viaf type: document term: Grandes, Almudena 1960- | Edades de Lulú version: 2013-07-01T14:07:50Z viafid: '211747965' --- _id: 15ec26ec9f59d69671ee36ed26453c64 bne: xx939515 bnf: '12263208' dnb: '158365216' key: LidinVladimirGermanovič1894-1979 lc: n81056807 merge: id: 15ec26ec9f59d69671ee36ed26453c64 source: viaf type: document nkc: jn19990210380 nlilat: '000084331' term: Lidin, Vladimir Germanovič, 1894-1979 version: 2013-07-01T14:07:50Z viafid: '61604225' --- _id: 15ec8d592e80a046cbd6d984e1167e6e bnf: '13326692' dnb: '128747099' key: BergLS1876-1950(LevSemenovič) lc: n84035731 merge: id: 15ec8d592e80a046cbd6d984e1167e6e source: viaf type: document nkc: ola2002152792 nla: '000036153194' nlicyr: '000148264' nlilat: '000459931' term: Berg, L. S., 1876-1950, (Lev Semenovič) version: 2013-07-01T14:07:50Z viafid: '19823881' --- _id: 15ef686a43d7e52cff157662a4974dd5 bne: xx899903 bnf: '11928662' dnb: '118635077' jpg: '500064726' key: VološinMaksimilianAleksandrovič1877-1932 lc: n82070428 merge: id: 15ef686a43d7e52cff157662a4974dd5 source: viaf type: document nkc: jn20000701917 nla: '000035427686' nlicyr: '000149467' selibr: '212569' term: Vološin, Maksimilian Aleksandrovič, 1877-1932 version: 2013-07-01T14:07:50Z viafid: '51697196' --- _id: 15f4b09f18b06b6653c05168a5f75327 dnb: '116221038' key: BöhmeHerbert1907-1971 lc: n86113505 merge: id: 15f4b09f18b06b6653c05168a5f75327 source: viaf type: document nlilat: '000482208' term: Böhme, Herbert, 1907-1971 version: 2013-07-01T14:07:50Z viafid: '77061632' --- _id: 15f645bfd16d5da6ce4cb837861ed965 bav: adv10034057 bnf: '12241032' dnb: '126225451' key: CotyFrançois1874-1934 lc: n96017024 merge: id: 15f645bfd16d5da6ce4cb837861ed965 source: viaf type: document term: Coty, François, 1874-1934 version: 2013-07-01T14:07:50Z viafid: '4986112' --- _id: 15ffcf89dfaa108a8d6ffc07034a2f6c bav: adv10117793 bne: xx5103166 dnb: '120530791' key: CroÿCharles1560-1612ducde lc: n80146612 merge: id: 15ffcf89dfaa108a8d6ffc07034a2f6c source: viaf type: document term: Croÿ, Charles, 1560-1612, duc de version: 2013-07-01T14:07:50Z viafid: '40211877' --- _id: 16023ffa4ec525e18f6d01c036c394ad bne: xx819600 bnf: '12039399' dnb: '119193418' key: DeOlmosAndrésca1491-1570or71 lc: n85239968 merge: id: 16023ffa4ec525e18f6d01c036c394ad source: viaf type: document nla: '000035208184' term: De Olmos, Andrés, ca. 1491-1570 or 71 version: 2013-07-01T14:07:50Z viafid: '17240613' --- _id: 1616b107af783a1b9dee06b92c3d1b8d bnf: '13493409' dnb: 11935344x key: BenešKarelJosef1896-1969 lc: n88636405 merge: id: 1616b107af783a1b9dee06b92c3d1b8d source: viaf type: document nkc: jk01011622 nla: '000035869394' nlilat: '000018449' ptbnp: '239063' term: Beneš, Karel Josef, 1896-1969 version: 2013-07-01T14:07:50Z viafid: '37071193' --- _id: 162c133557e2fb2f820caca267a5e8a7 bnf: '12470868' dnb: '103175970' key: GuljaškiAndrejStojanov1914-1995 lc: n50018804 merge: id: 162c133557e2fb2f820caca267a5e8a7 source: viaf type: document nkc: kup19980000034346 selibr: '57848' term: Guljaški, Andrej Stojanov, 1914-1995 version: 2013-07-01T14:07:50Z viafid: '14871383' --- _id: 1637141f032aa77f64695792a9df4a40 bne: xx1635155 dnb: '152824200' key: FernándezAvelloManuel1924-2002 lc: n50002732 merge: id: 1637141f032aa77f64695792a9df4a40 source: viaf type: document term: Fernández Avello, Manuel 1924-2002 version: 2013-07-01T14:07:50Z viafid: '75091722' --- _id: 16380a87a889409fbc14e1a28c66bb6b bav: adv10075417 bnf: '11906721' dnb: '118719971' key: HalévyDaniel1872-1962 lc: n88613711 merge: id: 16380a87a889409fbc14e1a28c66bb6b source: viaf type: document nkc: jn20000602773 nla: '000035162625' nlilat: '000059369' ptbnp: '55870' term: Halévy, Daniel, 1872-1962 version: 2013-07-01T14:07:50Z viafid: '14771013' --- _id: 163db3b14fa0101c30dac0219dc57035 bav: adv11760096 dnb: '117566217' key: VasilʹevVP1818-1900 lc: n2001060994 merge: id: 163db3b14fa0101c30dac0219dc57035 source: viaf type: document nla: '000035341551' nlicyr: '000149203' nlilat: '000542016' term: Vasilʹev, V. P., 1818-1900 version: 2013-07-01T14:07:50Z viafid: '97099290' --- _id: 1645b612e8ec735900975143cafa80c4 dnb: '151374074' key: AhlströmStellan1916-1984 merge: id: 1645b612e8ec735900975143cafa80c4 source: viaf type: document selibr: '305989' term: Ahlström, Stellan, 1916-1984 version: 2013-07-01T14:07:50Z viafid: '12293539' --- _id: 165da77647b8aaa501d6773904235df8 key: LipovetskyGilles1944-|CrépusculedudevoirCzech lc: no00072608 merge: id: 165da77647b8aaa501d6773904235df8 source: viaf type: document term: Lipovetsky, Gilles, 1944- | Crépuscule du devoir. Czech version: 2013-07-01T14:07:50Z viafid: '175987148' --- _id: 16642d0fbc0936d2fa014c73facda099 bav: adv10049454 bnf: '12211599' dnb: '131123629' key: Axel-NilssonGöran1907-1999 lc: n81014441 merge: id: 16642d0fbc0936d2fa014c73facda099 source: viaf type: document nla: '000035225638' selibr: '175555' term: Axel-Nilsson, Göran, 1907-1999 version: 2013-07-01T14:07:50Z viafid: '114680398' --- _id: 1664fa15165dfd2ac431cd36700d99f7 dnb: '958800723' key: Eibl-EibesfeldtIrenäus1928-|FremdenfurchtundAusgrenzung merge: id: 1664fa15165dfd2ac431cd36700d99f7 source: viaf type: document term: Eibl-Eibesfeldt, Irenäus 1928- | Fremdenfurcht und Ausgrenzung version: 2013-07-01T14:07:50Z viafid: '189373722' --- _id: 166b2642619c3f32be4de10af8bcb7a9 bav: adv11394839 bnf: '12162484' dnb: '104611928' key: SalačAntonín1885-1960 lc: n81116832 merge: id: 166b2642619c3f32be4de10af8bcb7a9 source: viaf type: document nkc: jk01110324 nla: '000035762819' nlilat: '000439841' term: Salač, Antonín, 1885-1960 version: 2013-07-01T14:07:50Z viafid: '73893731' --- _id: 166d32100061891986d0c0526150f59d bav: adv10228960 bnf: '12001323' dnb: 13044197x key: HauterocheNoëlLebreton1617-1707sieurde lc: no96006187 merge: id: 166d32100061891986d0c0526150f59d source: viaf type: document nkc: mzk2010587601 term: Hauteroche, Noël Lebreton, 1617-1707, sieur de version: 2013-07-01T14:07:50Z viafid: '76326314' --- _id: 167605eac4740d11240ab88f98a9e2d3 key: OllénGunnar1913-|AugustStrindbergEnglish merge: id: 167605eac4740d11240ab88f98a9e2d3 source: viaf type: document nla: '000036573854' term: Ollén, Gunnar, 1913- | August Strindberg. English version: 2013-07-01T14:07:50Z viafid: '177380880' --- _id: 167e39d68c46663035c2e09849a67d54 dnb: '119504545' jpg: '500042604' key: DeSmetLéon1881-1966 lc: nr95018350 merge: id: 167e39d68c46663035c2e09849a67d54 source: viaf type: document term: De Smet, Léon, 1881-1966 version: 2013-07-01T14:07:50Z viafid: '42649910' --- _id: 169193135cee956b1f50b26c611558a0 bne: xx830200 bnf: '12466444' key: LujánPedrode16thcent lc: nr92032310 merge: id: 169193135cee956b1f50b26c611558a0 source: viaf type: document term: Luján, Pedro de, 16th cent version: 2013-07-01T14:07:50Z viafid: '51788419' --- _id: 169460719ca6bc2a3a69b9f28b3861e8 dnb: '103123318' key: PériolasLouisNicolas1785-1859 merge: id: 169460719ca6bc2a3a69b9f28b3861e8 source: viaf type: document term: Périolas, Louis Nicolas 1785-1859 version: 2013-07-01T14:07:50Z viafid: '66872448' --- _id: 1699d72f87ed28e489eaabc088f4aa9a bnf: '12114880' dnb: '118790617' key: PetrovičVeljko1884-1967 lc: n85238984 merge: id: 1699d72f87ed28e489eaabc088f4aa9a source: viaf type: document nkc: jn20000604416 nla: '000036011513' term: Petrovič, Veljko, 1884-1967 version: 2013-07-01T14:07:50Z viafid: '62344891' --- _id: 169f786f380c2b493ac78e76bb3c18c9 dnb: '140453954' key: HöjerJohanAxel1890-1974 lc: n2009182664 merge: id: 169f786f380c2b493ac78e76bb3c18c9 source: viaf type: document selibr: '347011' term: Höjer, Johan Axel, 1890-1974 version: 2013-07-01T14:07:50Z viafid: '44287458' --- _id: 16a07ddfa8ec8dd47c1a18fba5442a9e bav: adv11298524 bnf: '12992829' dnb: '100648371' key: TuetJean-Charles-François1742-1797 merge: id: 16a07ddfa8ec8dd47c1a18fba5442a9e source: viaf type: document term: Tuet, Jean-Charles-François, 1742-1797 version: 2013-07-01T14:07:50Z viafid: '56742836' --- _id: 16ab3bfad877ae19e773c383698c2a64 dnb: '118567594' key: KühnHeinz(1912-1992) lc: n82043645 merge: id: 16ab3bfad877ae19e773c383698c2a64 source: viaf type: document nlilat: '000443545' term: Kühn, Heinz (1912-1992) version: 2013-07-01T14:07:50Z viafid: '32788595' --- _id: 16b8091cd931476cd99b4940a9913a12 bne: xx908302 bnf: '11920677' dnb: '120453800' key: ProcházkaJan1929-1971 lc: n87817531 merge: id: 16b8091cd931476cd99b4940a9913a12 source: viaf type: document nkc: jk01101145 nla: '000035434401' nlilat: '000488074' term: Procházka, Jan, 1929-1971 version: 2013-07-01T14:07:50Z viafid: '19683055' --- _id: 16bd06101f6643bc0c3ccab665f971de bav: adv10085559 bnf: '12592475' dnb: '119042622' key: BourritMarc-Théodore1739-1819 lc: n86869362 merge: id: 16bd06101f6643bc0c3ccab665f971de source: viaf type: document nkc: ola2009522667 nlilat: '000485707' term: Bourrit, Marc-Théodore, 1739-1819 version: 2013-07-01T14:07:50Z viafid: '19797689' --- _id: 16c179aa73d32c276a7bdea636d31853 key: HahnBarbara1952-|JüdinPallasAtheneEnglish lc: n2004028532 merge: id: 16c179aa73d32c276a7bdea636d31853 source: viaf type: document term: Hahn, Barbara, 1952- | Jüdin Pallas Athene. English version: 2013-07-01T14:07:50Z viafid: '185235993' --- _id: 16c4c8185bd28bb7720aef93d8565832 dnb: '117029998' key: MiheličMira1912-1985 lc: nr89001319 merge: id: 16c4c8185bd28bb7720aef93d8565832 source: viaf type: document nkc: xx0018864 term: Mihelič, Mira, 1912-1985 version: 2013-07-01T14:07:50Z viafid: '79389991' --- _id: 16d7a9263c93917139c9869960a07593 bav: adv11471559 bnf: '12314375' dnb: '130310247' key: LabatRené1904-1974 lc: n85801037 merge: id: 16d7a9263c93917139c9869960a07593 source: viaf type: document nla: '000035773623' nlilat: '000477532' term: Labat, René, 1904-1974 version: 2013-07-01T14:07:50Z viafid: '36985661' --- _id: 16dabedcb2bde8779fb1f7025eb077a6 bnf: '12592217' key: BoumédieneHouari1932-1978 lc: n78027600 merge: id: 16dabedcb2bde8779fb1f7025eb077a6 source: viaf type: document nlilat: '000378490' term: Boumédiene, Houari, 1932-1978 version: 2013-07-01T14:07:50Z viafid: '79122917' --- _id: 16dc5056f87dfeb36b8268dda84c0b1a bnf: '14840170' dnb: '130325287' key: MöllerHeinrich1876-1958 lc: no92015928 merge: id: 16dc5056f87dfeb36b8268dda84c0b1a source: viaf type: document nla: '000049788190' nlilat: '000554497' term: Möller, Heinrich, 1876-1958 version: 2013-07-01T14:07:50Z viafid: '30642232' --- _id: 16e1e9085f51b637bc7d7d0f6a347d6a bnf: '10744417' dnb: '101072007' key: RivarolClaudeFrançois1762-1848 lc: nr93033399 merge: id: 16e1e9085f51b637bc7d7d0f6a347d6a source: viaf type: document nla: '000049287251' term: Rivarol, Claude François, 1762-1848 version: 2013-07-01T14:07:50Z viafid: '41831542' --- _id: 16f4268692ad4d851f46291a20c67c22 bnf: '15687887' dnb: '119250594' key: AksakovKonstantinSergeevič1817-1860 lc: n81082938 merge: id: 16f4268692ad4d851f46291a20c67c22 source: viaf type: document nkc: jn19990210021 nla: '000036032565' nlilat: '000438146' selibr: '357984' term: Aksakov, Konstantin Sergeevič, 1817-1860 version: 2013-07-01T14:07:50Z viafid: '17552092' --- _id: 170e0fd1ed9f630857e01ad104564453 bav: adv12363003 key: FausbøllAnnieIb1876 lc: no2002048318 merge: id: 170e0fd1ed9f630857e01ad104564453 source: viaf type: document term: Fausbøll, Annie I., b. 1876 version: 2013-07-01T14:07:50Z viafid: '58749076' --- _id: 17148815f43f535529ffa45ad1e87a36 bnf: '12309962' dnb: 12884762x key: FélibiendesAvauxJean-François1658-1733 lc: n82017901 merge: id: 17148815f43f535529ffa45ad1e87a36 source: viaf type: document nkc: mzk2009533633 nlilat: '000442377' term: Félibien des Avaux, Jean-François 1658-1733 version: 2013-07-01T14:07:50Z viafid: '100849123' --- _id: 1717844384f42303214ba3f5b207637f bav: adv10132101 bne: xx1149235 bnf: '11894146' dnb: '118638017' egaxa: vtls001056339 jpg: '500001046' key: BrontëEmily1818-1848 lc: n79018755 merge: id: 1717844384f42303214ba3f5b207637f source: viaf type: document nkc: jn19990201021 nla: '000035022405' nlilat: '000025295' ptbnp: '17611' selibr: '179324' swnl: vtls001836718 term: Brontë, Emily, 1818-1848 version: 2013-07-01T14:07:50Z viafid: '97097302' --- _id: 17194bc0778484f7e85f7211c29944b3 dnb: '174336713' jpg: '500088616' key: ThiolletFrançois1782-1864 lc: n86113819 merge: id: 17194bc0778484f7e85f7211c29944b3 source: viaf type: document ptbnp: '256450' term: Thiollet, François, 1782-1864 version: 2013-07-01T14:07:50Z viafid: '70415504' --- _id: 1724c8201d4cbe7638a0336182e24981 bav: adv10018578 bne: xx1151168 bnf: '11904435' dnb: 11853789x jpg: '500100875' key: GautierPierre-Jules-Théophile1811-1872 lc: n79079291 merge: id: 1724c8201d4cbe7638a0336182e24981 source: viaf type: document nkc: jn19990002583 nla: '000035115800' nlilat: '000051647' ptbnp: '32006' selibr: '188035' term: Gautier, Pierre-Jules-Théophile, 1811-1872 version: 2013-07-01T14:07:50Z viafid: '96428598' --- _id: 1729c43d3a1941553684987a2c083fc7 bav: adv10872380 bnf: '12462984' dnb: '133642054' jpg: '500276515' key: DelaMésangèrePierre1761-1831 lc: nr99005421 merge: id: 1729c43d3a1941553684987a2c083fc7 source: viaf type: document nkc: mzk2009496154 ptbnp: '174485' term: De la Mésangère, Pierre, 1761-1831 version: 2013-07-01T14:07:50Z viafid: '29630794' --- _id: 17334e6df7aad6212dc4cc97ce58a33d bnf: '11654393' key: Casimir-PérierClaude1880-1915 lc: no2011142329 merge: id: 17334e6df7aad6212dc4cc97ce58a33d source: viaf type: document term: Casimir-Périer, Claude, 1880-1915 version: 2013-07-01T14:07:50Z viafid: '29528044' --- _id: 173534d114dbe7ce88a4e4d673f3458a bav: adv10308686 bnf: '11989368' dnb: '142034088' key: HenryFrançoise1902-1982 lc: n50029565 merge: id: 173534d114dbe7ce88a4e4d673f3458a source: viaf type: document term: Henry, Françoise, 1902-1982 version: 2013-07-01T14:07:50Z viafid: '39386390' --- _id: 1736ec25122f75005cbf9232ba7c98b7 bnf: '13009142' dnb: '102278105' key: Étienne-GalloisAuguste-Alphonse1809-1890 lc: nr00003940 merge: id: 1736ec25122f75005cbf9232ba7c98b7 source: viaf type: document selibr: '269676' term: Étienne-Gallois, Auguste-Alphonse, 1809-1890 version: 2013-07-01T14:07:50Z viafid: '73986026' --- _id: 173edb77c472b13158a6978561957de7 key: FontaineJean1936-|Fihrisal-tārīkhīlil-muʼallafātal-Tūnisīyah lc: n89239712 merge: id: 173edb77c472b13158a6978561957de7 source: viaf type: document term: Fontaine, Jean, 1936- | Fihris al-tārīkhī lil-muʼallafāt al-Tūnisīyah version: 2013-07-01T14:07:50Z viafid: '174650569' --- _id: 17496391d16df8f85dc0fc72aa3d2707 key: DelsolChantal1947-|ElogedelasingularitéEnglish lc: n2007055496 merge: id: 17496391d16df8f85dc0fc72aa3d2707 source: viaf type: document term: Delsol, Chantal, 1947- | Eloge de la singularité English version: 2013-07-01T14:07:50Z viafid: '185257100' --- _id: 1752ca60ae3896fc09fb9a52b7960ac8 bnf: '16579307' dnb: 15912834x key: LeudetThéodoreÉmile1825-1887 merge: id: 1752ca60ae3896fc09fb9a52b7960ac8 source: viaf type: document term: Leudet, Théodore Émile, 1825-1887 version: 2013-07-01T14:07:50Z viafid: '218218852' --- _id: 175342aa8e55431fbf8de8a7ab308505 dnb: '1001222393' key: UgrešićDubravka1949-|Ministarstvoboli merge: id: 175342aa8e55431fbf8de8a7ab308505 source: viaf type: document term: Ugrešić, Dubravka 1949- | Ministarstvo boli version: 2013-07-01T14:07:50Z viafid: '193520994' --- _id: 175554de4c4b126f231d939952ef9d58 key: HoyoisEmmanuelHenriFrançois1799-1877 lc: nr97038904 merge: id: 175554de4c4b126f231d939952ef9d58 source: viaf type: document term: Hoyois, Emmanuel Henri François, 1799-1877 version: 2013-07-01T14:07:50Z viafid: '122139049' --- _id: 1760992b30749262caa72bcf33281a15 bav: adv10262139 dnb: '1013334833' key: KösterAugust1873-1935 lc: nr97038180 merge: id: 1760992b30749262caa72bcf33281a15 source: viaf type: document nla: '000035681015' nlilat: '000532989' term: Köster, August, 1873-1935 version: 2013-07-01T14:07:50Z viafid: '2827192' --- _id: 176decd2ace088214af967f60a11e4dd bav: adv11384982 bne: xx1110784 bnf: '11927116' dnb: '118833243' key: TristánFlora1803-1844 lc: n80094560 merge: id: 176decd2ace088214af967f60a11e4dd source: viaf type: document nkc: skuk0001401 nla: '000036310248' nlilat: '000200478' selibr: '250407' term: Tristán, Flora, 1803-1844 version: 2013-07-01T14:07:50Z viafid: '44306184' --- _id: 177ce4e49462aa3983254035a6314a73 bnf: '11999674' dnb: '100658776' key: TurpindeCrisséLancelot1709-1799 lc: nr93040265 merge: id: 177ce4e49462aa3983254035a6314a73 source: viaf type: document nkc: mzk2008486696 term: Turpin de Crissé, Lancelot 1709-1799 version: 2013-07-01T14:07:50Z viafid: '41849779' --- _id: 1782bdf78dfc6c7644e41226dbc15618 dnb: '116002069' key: LaspeyresÉtienne1834-1913 merge: id: 1782bdf78dfc6c7644e41226dbc15618 source: viaf type: document term: Laspeyres, Étienne 1834-1913 version: 2013-07-01T14:07:50Z viafid: '47502749' --- _id: 1785cd28158ffb38594043c839532f82 key: AiraCésar1949-|Selections2004 lc: no2006073509 merge: id: 1785cd28158ffb38594043c839532f82 source: viaf type: document term: Aira, César, 1949- | Selections. 2004 version: 2013-07-01T14:07:50Z viafid: '181309847' --- _id: 1787efaa9dcbee4abb6d0a6555764879 bnf: '12685113' dnb: '172145600' key: HöwelerMarijke1938-2006 lc: no90008256 merge: id: 1787efaa9dcbee4abb6d0a6555764879 source: viaf type: document nla: '000035890718' term: Höweler, Marijke 1938-2006 version: 2013-07-01T14:07:50Z viafid: '27189364' --- _id: 178cb999ebbd2e6eb43ecaaf0d15a25b bav: adv10010389 bnf: '10233063' dnb: '172841968' key: BoréEugène1809-1877 lc: n85055606 merge: id: 178cb999ebbd2e6eb43ecaaf0d15a25b source: viaf type: document nlilat: '000468248' term: Boré, Eugène, 1809-1877 version: 2013-07-01T14:07:50Z viafid: '27053093' --- _id: 179ec2ad154d45479bdbab9163777a40 bav: adv11448013 bne: xx1712073 bnf: '14762904' dnb: '116549394' key: HausswaldGünter1908-1974 lc: n82059303 merge: id: 179ec2ad154d45479bdbab9163777a40 source: viaf type: document nkc: jx20050922010 nla: '000035178829' ptbnp: '1276314' term: Hausswald, Günter, 1908-1974 version: 2013-07-01T14:07:50Z viafid: '22404396' --- _id: 179f9f325962eb26c3dda97eab0106b0 bnf: '14604587' dnb: '119243326' key: VanAlphenHiëronymus1746-1803 lc: nr93005775 merge: id: 179f9f325962eb26c3dda97eab0106b0 source: viaf type: document term: Van Alphen, Hiëronymus, 1746-1803 version: 2013-07-01T14:07:50Z viafid: '39627148' --- _id: 17b1c7135b4e0d09bd4bc8b6f6b44df0 bav: adv10110713 key: DevilleÉtienneb1873 lc: no96015941 merge: id: 17b1c7135b4e0d09bd4bc8b6f6b44df0 source: viaf type: document term: Deville, Étienne, b. 1873 version: 2013-07-01T14:07:50Z viafid: '74217527' --- _id: 17b1e6a1074f8f57ee317b66335a7392 bnf: '12760347' dnb: '121045854' jpg: '500104863' key: Goupil-FesquetFrédéricAugusteAntoine1817-1878 lc: n2001066040 merge: id: 17b1e6a1074f8f57ee317b66335a7392 source: viaf type: document nlilat: '000055678' term: Goupil-Fesquet, Frédéric Auguste Antoine, 1817-1878 version: 2013-07-01T14:07:50Z viafid: '9194525' --- _id: 17b6260c094511e5b8e3082b786e6b1b bav: adv10061460 bnf: '11891041' dnb: '118658042' key: BelleauRémy1527?-1577 lc: n86048999 merge: id: 17b6260c094511e5b8e3082b786e6b1b source: viaf type: document nkc: jo2004214982 nla: '000035017079' nlilat: '000017564' ptbnp: '166947' term: Belleau, Rémy, 1527?-1577 version: 2013-07-01T14:07:50Z viafid: '12304848' --- _id: 17b860672672386ee08ada56f28ad5e8 dnb: '101448635' key: DeBlécourtAnneSiberdinus1873-1941 lc: n80107426 merge: id: 17b860672672386ee08ada56f28ad5e8 source: viaf type: document nla: '000036563797' term: De Blécourt, Anne Siberdinus, 1873-1941 version: 2013-07-01T14:07:50Z viafid: '20046285' --- _id: 17bb5c3ddbc00372b60343e23fd39189 key: DrakulićSlavenka1949-|BalkanexpressSerbo-Croatian lc: no98081648 merge: id: 17bb5c3ddbc00372b60343e23fd39189 source: viaf type: document term: Drakulić, Slavenka, 1949- | Balkan express. Serbo-Croatian version: 2013-07-01T14:07:50Z viafid: '175612993' --- _id: 17c73a4ce9a8b77473ee6837b7774da1 bne: xx844021 bnf: '11999953' dnb: '119350858' key: MaurínJoaquín1897-1973 lc: n50007004 merge: id: 17c73a4ce9a8b77473ee6837b7774da1 source: viaf type: document nla: '000035764974' nlilat: '000401258' term: Maurín, Joaquín, 1897-1973 version: 2013-07-01T14:07:50Z viafid: '59092660' --- _id: 17cbc0ec6b5cb91a30b4319eae279228 bav: adv10207268 bne: xx1074616 bnf: '11910344' dnb: '122567692' key: LabandeEdmond-René1908-1992 lc: n50043392 merge: id: 17cbc0ec6b5cb91a30b4319eae279228 source: viaf type: document nkc: jcu2012720638 nla: '000035286992' nlilat: '000410465' ptbnp: '179427' term: Labande, Edmond-René, 1908-1992 version: 2013-07-01T14:07:50Z viafid: '56612170' --- _id: 17d853868d565face0791be7d987775c bnf: '11911818' dnb: '118779729' key: LeTourneurPierre-Prime-Félicien1736-1788 lc: nr91002394 merge: id: 17d853868d565face0791be7d987775c source: viaf type: document nkc: mzk2010588940 nla: '000035724774' selibr: '313837' term: Le Tourneur, Pierre-Prime-Félicien, 1736-1788 version: 2013-07-01T14:07:50Z viafid: '49227979' --- _id: 17e2def720728af8f2de67028e4e1db4 bav: adv11029641 bne: xx1010421 bnf: '12175912' dnb: '157763234' key: MartínezdeToledoAlfonso1398?-1466 lc: n79038513 merge: id: 17e2def720728af8f2de67028e4e1db4 source: viaf type: document nla: '000035804008' nlilat: '000418631' selibr: '195266' term: Martínez de Toledo, Alfonso, 1398?-1466 version: 2013-07-01T14:07:50Z viafid: '36959911' --- _id: 17e7d9eef055cf815c62a64be05419c7 bnf: '12541969' key: TextorBenoît16thcent lc: n92069935 merge: id: 17e7d9eef055cf815c62a64be05419c7 source: viaf type: document term: Textor, Benoît, 16th cent version: 2013-07-01T14:07:50Z viafid: '69042714' --- _id: 17e859080dfe93c28640b213ab02f416 dnb: '119354179' key: PtáčníkKarel1921-2002 lc: n88141623 merge: id: 17e859080dfe93c28640b213ab02f416 source: viaf type: document nkc: jk01101653 nlilat: '000108158' term: Ptáčník, Karel, 1921-2002 version: 2013-07-01T14:07:50Z viafid: '22949364' --- _id: 17fd0993d35f8ffeae8715c51f9150ad bav: adv10286578 bnf: '12241162' dnb: '104039299' key: JoannePaulBénigne1847-1922 lc: no94033709 merge: id: 17fd0993d35f8ffeae8715c51f9150ad source: viaf type: document nlilat: '000518995' ptbnp: '92410' selibr: '301851' term: Joanne, Paul Bénigne, 1847-1922 version: 2013-07-01T14:07:50Z viafid: '19733280' --- _id: 17fdfa296c35c8f989e74d57ca76ada3 key: KrügerMichael1943-|EndedesRomansEnglish lc: n91115146 merge: id: 17fdfa296c35c8f989e74d57ca76ada3 source: viaf type: document term: Krüger, Michael, 1943- | Ende des Romans. English version: 2013-07-01T14:07:50Z viafid: '176679172' --- _id: 17ffdd74dad70ee996dc568abc1b3f4d bav: adv11866255 dnb: '118584952' key: MüllerHeinrich1880-1970 lc: n84126561 merge: id: 17ffdd74dad70ee996dc568abc1b3f4d source: viaf type: document term: Müller, Heinrich, 1880-1970 version: 2013-07-01T14:07:50Z viafid: '20472774' --- _id: 18094d8791ce00908a4b03d212e217a0 bav: adv10260354 bnf: '12159364' dnb: '118526243' key: DöllingerIgnaz1770-1841Beziehungfamiliaer lc: n50082843 merge: id: 18094d8791ce00908a4b03d212e217a0 source: viaf type: document nkc: mzk2009512573 nla: '000035040091' nlilat: '000041799' ptbnp: '37769' term: Döllinger, Ignaz, 1770-1841, Beziehung familiaer version: 2013-07-01T14:07:50Z viafid: '89020124' --- _id: 180afecf717c143dcd25c485e13197cb bav: adv12151756 bnf: '11911703' dnb: '172224969' key: LeMercierdelaRivièrePierre-Paul1719or20-ca1794 lc: n87912819 merge: id: 180afecf717c143dcd25c485e13197cb source: viaf type: document nkc: mzk2009509952 nla: '000035817900' nlilat: '000490552' selibr: '298487' swnl: vtls004330502 term: Le Mercier de la Rivière, Pierre-Paul, 1719 or 20-ca. 1794 version: 2013-07-01T14:07:50Z viafid: '31999036' --- _id: 1811817698b000952f4ce7b739ac3ef6 bav: adv10148163 bnf: '12145443' dnb: '119027178' key: BüttnerHeinrich1908-1970 lc: nr90004128 merge: id: 1811817698b000952f4ce7b739ac3ef6 source: viaf type: document nlilat: '000524211' term: Büttner, Heinrich, 1908-1970 version: 2013-07-01T14:07:50Z viafid: '68966074' --- _id: 1817e417f95551160ac8187eb8bc14c1 bav: adv10880732 bne: xx917886 bnf: '11994246' dnb: '115611606' key: DeVasconcellosJLeite1858-1941(JoséLeite) lc: n82142735 merge: id: 1817e417f95551160ac8187eb8bc14c1 source: viaf type: document nkc: jx20080430005 nlilat: '000243130' ptbnp: '26081' term: De Vasconcellos, J. Leite, 1858-1941, (José Leite) version: 2013-07-01T14:07:50Z viafid: '7400155' --- _id: 1837422fc00166bf3d567e7563186d57 bav: adv10029081 bne: xx897842 bnf: '13890952' dnb: '118646192' key: AuberDaniel-François-Esprit1782-1871 lc: n80079937 merge: id: 1837422fc00166bf3d567e7563186d57 source: viaf type: document nkc: jn20001227475 nla: '000035444149' nlilat: '000429355' ptbnp: '99098' selibr: '275382' swnl: vtls001778208 term: Auber, Daniel-François-Esprit, 1782-1871 version: 2013-07-01T14:07:50Z viafid: '7573044' --- _id: 183878caf067d9325659d1ede41e2108 bav: adv11108428 dnb: '119096773' key: LüersFriedrichb1892 lc: n2002079665 merge: id: 183878caf067d9325659d1ede41e2108 source: viaf type: document nlilat: '000545097' term: Lüers, Friedrich, b. 1892 version: 2013-07-01T14:07:50Z viafid: '102329487' --- _id: 183a7aa3b200c80f87e70ecbff672b00 bnf: '12560023' dnb: '118699962' key: HackländerFriedrichWilhelm1816-1877 lc: no89004614 merge: id: 183a7aa3b200c80f87e70ecbff672b00 source: viaf type: document nkc: mzk2003194892 nla: '000035629156' nlilat: '000295733' term: Hackländer, Friedrich Wilhelm, 1816-1877 version: 2013-07-01T14:07:50Z viafid: '2588488' --- _id: 183e63927d8ba0a95a50bfec0f3c0dff bnf: '12127833' dnb: '100345751' key: FaganChristopheBarthélemy1702-1755 lc: n82131737 merge: id: 183e63927d8ba0a95a50bfec0f3c0dff source: viaf type: document nla: '000035648874' term: Fagan, Christophe Barthélemy, 1702-1755 version: 2013-07-01T14:07:50Z viafid: '76350365' --- _id: 1846196918375f9e9a90231b48553208 bnf: '12478658' key: RémondAndré1912-1998 lc: no2004078136 merge: id: 1846196918375f9e9a90231b48553208 source: viaf type: document term: Rémond, André, 1912-1998 version: 2013-07-01T14:07:50Z viafid: '22242742' --- _id: 18470f6621d6b509ea86af2148f681f5 bnf: '12758962' dnb: '181019396' key: FontanèsErnest1828-1903 merge: id: 18470f6621d6b509ea86af2148f681f5 source: viaf type: document term: Fontanès, Ernest, 1828-1903 version: 2013-07-01T14:07:50Z viafid: '64130613' --- _id: 184913abce504a1b245a9ea968b7903a dnb: '116912030' key: GüntherAugustFriedrich1806-1871 merge: id: 184913abce504a1b245a9ea968b7903a source: viaf type: document term: Günther, August Friedrich, 1806-1871 version: 2013-07-01T14:07:50Z viafid: '776218' --- _id: 1857ba2facca1508982b951c25d0332d bne: xx1147778 bnf: '15072574' dnb: '126203997' key: BirabeauAndré1890-1974 lc: no2007116880 merge: id: 1857ba2facca1508982b951c25d0332d source: viaf type: document ptbnp: '219156' term: Birabeau, André, 1890-1974 version: 2013-07-01T14:07:50Z viafid: '59374712' --- _id: 1862f3fe48506fa0f15336b4f01b22df dnb: 17408420x key: GörnerCarlAugust1806-1884 merge: id: 1862f3fe48506fa0f15336b4f01b22df source: viaf type: document term: Görner, Carl August 1806-1884 version: 2013-07-01T14:07:50Z viafid: '243662523' --- _id: 18648749c2147f2f7f5be8bc5c46f00e dnb: '104327952' key: BüschJohannGeorg1728-1800 lc: n80125244 merge: id: 18648749c2147f2f7f5be8bc5c46f00e source: viaf type: document nkc: mzk2009528274 nlilat: '000431533' selibr: '321990' term: Büsch, Johann Georg, 1728-1800 version: 2013-07-01T14:07:50Z viafid: '76752134' --- _id: 18770c5380e897336e5f1440a7adbc23 bnf: '16613754' dnb: '118547208' key: HaußmannConrad1857-1922 lc: nr89003227 merge: id: 18770c5380e897336e5f1440a7adbc23 source: viaf type: document nlilat: '000523214' term: Haußmann, Conrad 1857-1922 version: 2013-07-01T14:07:50Z viafid: '27863077' --- _id: 1878d1d2f3fce433aeaac57c6476176d bnf: '12511996' dnb: '117656348' key: SélisNicolas-Joseph1737-1802 lc: nr93035607 merge: id: 1878d1d2f3fce433aeaac57c6476176d source: viaf type: document nkc: jo2004214983 nla: '000035462525' term: Sélis, Nicolas-Joseph, 1737-1802 version: 2013-07-01T14:07:50Z viafid: '29639918' --- _id: 187f31bf27cec94cc8157d8657e8073d key: Gor'kijMaksim(1868-1936)|Žizn'KlimaSamgina(pol) merge: id: 187f31bf27cec94cc8157d8657e8073d source: viaf type: document term: Gor'kij, Maksim (1868-1936). | Žizn' Klima Samgina (pol.) version: 2013-07-01T14:07:50Z viafid: '293805497' --- _id: 1880db00cb989c2b7bfafd693445659a bnf: '12104627' dnb: '118807560' key: VinogradovViktorVladimirovič1895-1969 lc: n81040702 merge: id: 1880db00cb989c2b7bfafd693445659a source: viaf type: document nkc: jn19990210652 nla: '000036531850' nlicyr: '000149330' selibr: '99944' term: Vinogradov, Viktor Vladimirovič, 1895-1969 version: 2013-07-01T14:07:50Z viafid: '17252709' --- _id: 1883bbb111129007c6a442c01f79bf8c bav: adv12362355 bnf: '12462106' dnb: '119114771' key: LaBourdonnaisBertrand-FrançoisMahé1699-1753 lc: n87817647 merge: id: 1883bbb111129007c6a442c01f79bf8c source: viaf type: document nla: '000036002025' nlilat: '000488087' term: La Bourdonnais, Bertrand-François Mahé, , 1699-1753 version: 2013-07-01T14:07:50Z viafid: '5028896' --- _id: 18894957b123cb8bfd6ae0a9427067f2 bnf: '11914216' dnb: 11857695x key: Mandel'štamNadežda1899-1980 lc: n80138751 merge: id: 18894957b123cb8bfd6ae0a9427067f2 source: viaf type: document nkc: jn19990210403 nla: '000035325228' nlicyr: '000153352' nlilat: '000088340' selibr: '74051' term: Mandel'štam, Nadežda, 1899-1980 version: 2013-07-01T14:07:50Z viafid: '14318' --- _id: 189177e56cb23e254643ba132d736554 bav: adv11390715 bnf: '13002928' dnb: '101845693' key: BanningÉmile1836-1898 lc: no2012043860 merge: id: 189177e56cb23e254643ba132d736554 source: viaf type: document ptbnp: '178214' term: Banning, Émile, 1836-1898 version: 2013-07-01T14:07:50Z viafid: '10222960' --- _id: 1892d7c5f989624c9ed4c46a2892b044 dnb: '140892818' key: AttorpsGösta1899-1976 merge: id: 1892d7c5f989624c9ed4c46a2892b044 source: viaf type: document nlilat: '000012991' selibr: '213945' term: Attorps, Gösta, 1899-1976 version: 2013-07-01T14:07:50Z viafid: '74292181' ���������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_object.t��������������������������������������������������000644 �000765 �000024 �00000001340 13341726377 022751� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_object'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => {foo => 'foo'}}), {foo => {foo => 'foo'}, test => 'pass'}; is_deeply $cond->fix({foo => {}}), {foo => {}, test => 'pass'}; is_deeply $cond->fix({}), {test => 'fail'}; is_deeply $cond->fix({foo => []}), {foo => [], test => 'fail'}; is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'fail'}; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-trim.t�����������������������������������������������������������������000644 �000765 �000024 �00000002057 13341726377 020045� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use utf8; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::trim'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => "\tjoe "}), {name => "joe"}, "trim horizontal whitespace"; is_deeply $pkg->new('name', 'whitespace')->fix({name => "\cK / joe "}), {name => "/ joe"}, "trim vertical whitespace"; is_deeply $pkg->new('name', 'nonword')->fix({name => "/\tjoe . "}), {name => "joe"}, "trim nonword characters"; is_deeply $pkg->new('id', 'whitespace')->fix({id => " 0423985325 "}), {id => "0423985325"}, "trim digit string"; is_deeply $pkg->new('name', 'whitespace')->fix({name => " 宮川 "}), {name => "宮川"}, "trim utf8 string"; is_deeply $pkg->new('names.*.name') ->fix({names => [{name => "\tjoe "}, {name => " rick "}]}), {names => [{name => "joe"}, {name => "rick"}]}, "trim wildcard values"; is_deeply $pkg->new('name', 'diacritics')->fix({name => "français"}), {name => "francais"}, "trim utf8 string"; done_testing 8; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-parse_text.t�����������������������������������������������������������000644 �000765 �000024 �00000001230 13341726377 021240� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::parse_text'; use_ok $pkg; } is_deeply $pkg->new('date', '\d\d\d\d-\d\d-\d\d') ->fix({date => '2015-03-07'}), {date => '2015-03-07'}, "parse without capture"; is_deeply $pkg->new('date', '(\d\d\d\d)-(\d\d)-(\d\d)') ->fix({date => '2015-03-07'}), {date => ['2015', '03', '07']}, "parse array value"; is_deeply $pkg->new('date', '(?<year>\d\d\d\d)-(?<month>\d\d)-(?<day>\d\d)') ->fix({date => '2015-03-07'}), {date => {year => '2015', month => '03', day => '07'}}, "parse hash value"; done_testing 4; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-export_to_string.t�����������������������������������������������������000644 �000765 �000024 �00000002606 13341726377 022503� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::export_to_string'; use_ok $pkg; } is_deeply $pkg->new('record', 'JSON')->fix({record => {"name" => "Nicolas"}}), {record => qq([{"name":"Nicolas"}]\n)}, "convert hash to JSON"; is_deeply $pkg->new('record', 'JSON') ->fix({record => [{"name" => "Nicolas"}]}), {record => qq([{"name":"Nicolas"}]\n)}, "convert array of hashes to JSON"; is_deeply $pkg->new('record', 'YAML')->fix({record => {"name" => "Nicolas"}}), {record => qq(---\nname: Nicolas\n...\n)}, "convert hash to YAML"; is_deeply $pkg->new('record', 'YAML') ->fix({record => [{"name" => "Nicolas"}, {"name" => "Patrick"}]}), {record => qq(---\nname: Nicolas\n...\n---\nname: Patrick\n...\n)}, "convert array of hashes to YAML"; is_deeply $pkg->new('record', 'CSV')->fix({record => {"name" => "Nicolas"}}), {record => qq(name\nNicolas\n)}, "convert hash to CSV"; is_deeply $pkg->new( 'record', 'CSV', 'sep_char' => ';', fields => ["first_name", "name"] )->fix( { record => [ {"first_name" => "Nicolas", name => "Franck"}, {"first_name" => "Patrick", name => "Hochstenbach"} ] } ), {record => qq(first_name;name\nNicolas;Franck\nPatrick;Hochstenbach\n)}, "convert array of hashes to CSV"; done_testing; ��������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-set_field.t������������������������������������������������������������000644 �000765 �000024 �00000001625 13341726377 021030� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::set_field'; use_ok $pkg; } is_deeply $pkg->new('job', 'fixer')->fix({}), {job => "fixer"}, "set field at root"; is_deeply $pkg->new('deeply.nested.$append.job', 'fixer')->fix({}), {}, "set field doesn't create intermediate path"; is_deeply $pkg->new('deeply.nested.*.job', 'fixer') ->fix({deeply => {nested => [undef, {}]}}), {deeply => {nested => [undef, {job => "fixer"}]}}, "set deeply nested field"; is_deeply $pkg->new('deeply.nested.$append.job', 'fixer') ->fix({deeply => {nested => {}}}), {deeply => {nested => {}}}, "only set field if the path matches"; is_deeply $pkg->new('test', '0123')->fix({test => 'ok'}), {test => '0123'}, "set a number"; is_deeply $pkg->new('test')->fix({}), {test => undef}, "set key to undef"; done_testing; �����������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-config.t���������������������������������������������������������������000644 �000765 �000024 �00000002063 13341726377 020311� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::config'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw(config to JSON)]); my $perl = decode_json($result->stdout); ok $perl, 'got JSON'; is $perl->[0]->{importer}{default}{package}, 'YAML', 'got data'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app( qq|Catmandu::CLI| => [qw(config importer.default.package to JSON)]); like $result->stdout, qr/"YAML"/, 'got data'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app( qq|Catmandu::CLI| => [qw(config --fix add_field(foo:FOOBAR) to JSON)]); like $result->stdout, qr/"FOOBAR"/, 'got data'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-list.t������������������������������������������������������������000644 �000765 �000024 �00000005040 13341726377 020712� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::list'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do list() add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do list() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do list() unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do list() if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do list() reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok !defined $fixer->fix({foo => 'bar'}), 'testing reject'; $fixes = <<EOF; do list() select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do list() do list() do list() add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'before/after testing'; $fixes = <<EOF; add_field(before,ok) do list() add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<EOF; do list(path => foo) add_field(test,bar) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => [{bar => 1}, {bar => 2}]}), {foo => [{bar => 1, test => 'bar'}, {bar => 2, test => 'bar'}]}, 'specific testing'; $fixes = <<EOF; add_field(foo.\$append,1) add_field(foo.\$append,2) add_field(foo.\$append,3) add_field(foo.\$append,4) do list(path:foo,var:loop) copy_field(loop,test2.\$append) end do list(path:foo) append(.,':') end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => ["1:", "2:", "3:", "4:"], test2 => [1, 2, 3, 4]}, 'specific testing, loop variable'; done_testing 13; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-sum.t������������������������������������������������������������������000644 �000765 �000024 �00000001244 13341726377 017673� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::sum'; use_ok $pkg; } require_ok $pkg; lives_ok {$pkg->new('numbers')->fix({numbers => [1, 2]})}; is_deeply $pkg->new('numbers')->fix({numbers => [1, 2]}), {numbers => 3}, "Simple sum ok"; # Fibonacci sequence now! is_deeply $pkg->new('numbers')->fix({numbers => [1, 1, 2, 3, 5, 8, 13, 21]}), {numbers => 54}, "Fibbonaci sum ok"; is_deeply $pkg->new('numbers')->fix({numbers => [1.234, 4.653, 4.5]}), {numbers => 10.387}, "Float sum ok"; dies_ok {$pkg->new('numbers')->fix({numbers => ['hello', 'world']})}; done_testing 7; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-search_in_store.t������������������������������������������������������000644 �000765 �000024 �00000013365 13341726377 022245� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::search_in_store'; use_ok $pkg; } require_ok $pkg; { package Catmandu::Store::T::S::Bag; use Moo; use Catmandu::Sane; use Catmandu::Hits; use Catmandu::Util qw(:is); use Data::UUID; has '_hash' => (is => 'rw', lazy => 1, default => sub {+{};}); sub add { my ($self, $record) = @_; $record->{_id} ||= Data::UUID->new->create_str; $_[0]->_hash()->{$record->{_id}} = $record; } sub get { $_[0]->_hash()->{$_[1]}; } sub generator { my $self = $_[0]; sub { my $records; unless ($records) { $records = [map {+{%{$self->_hash()->{$_}}}} sort keys %{$self->_hash()}]; } shift @$records; }; } sub delete { delete $_[0]->_hash()->{$_[1]}; } sub delete_all { $_[0]->_hash(+{}); } sub search { my ($self, %args) = @_; my $query = delete $args{query}; my $start = delete $args{start}; $start = is_natural($start) ? $start : 0; my $limit = delete $args{limit}; $limit = is_natural($limit) ? $limit : 20; my $hash = $self->_hash(); my $total = 0; my @hits; for my $id (sort keys %$hash) { my $r = {%{$hash->{$id}}, _id => $id}; my $match = 0; if ($query eq "") { $match = 1; } else { for my $key (keys %$r) { if ($r->{$key} eq $query) { $match = 1; last; } } } if ($match) { if ($total >= $start && $total < ($start + $limit)) { push @hits, $r; } $total++; } } Catmandu::Hits->new( hits => \@hits, start => $start, limit => $limit, total => $total ); } sub searcher { } sub delete_by_query { } with 'Catmandu::Bag', 'Catmandu::Searchable'; package Catmandu::Store::T::S; use Moo; use Catmandu::Sane; with 'Catmandu::Store'; } #store data use_ok 'Catmandu'; Catmandu->config->{store} = { default => {package => "T::S", options => {}}, db => {package => "T::S", options => {}} }; lives_ok( sub { my $bag = Catmandu->store('db')->bag('sessions'); my $records = [ { _id => "njfranck", first_name => "Nicolas", last_name => "Franck" }, { _id => "phochste", first_name => "Patrick", last_name => "Hochstenbach" }, { _id => "nsteenla", first_name => "Nicolas", last_name => "Steenlant" }, { _id => "drmoreel", first_name => "Dries", last_name => "Moreels" } ]; $bag->add_many($records); $bag->commit; }, "data initialized" ); #now test package { my $got = $pkg->new('sessions')->fix({sessions => 'njfranck'}); my $expected = {sessions => {start => 0, limit => 20, total => 0, hits => []}}; is_deeply $got, $expected, "search in default store with query"; } { my $got = $pkg->new('sessions', store => 'db')->fix({sessions => 'njfranck'}); my $expected = {sessions => {start => 0, limit => 20, total => 0, hits => []}}; is_deeply $got, $expected, "search in store db, bag data with query"; } { my $got = $pkg->new('sessions', store => 'db', bag => 'sessions') ->fix({sessions => 'njfranck'}); my $expected = { sessions => { start => 0, limit => 20, total => 1, hits => [ { _id => "njfranck", first_name => "Nicolas", last_name => "Franck" } ] } }; is_deeply $got, $expected, "search in store db, bag sessions with query"; } { my $got = $pkg->new('sessions', store => 'db', bag => 'sessions', limit => 2) ->fix({sessions => ''}); my $expected = { sessions => { start => 0, limit => 2, total => 4, hits => [ { _id => "drmoreel", first_name => "Dries", last_name => "Moreels" }, { _id => "njfranck", first_name => "Nicolas", last_name => "Franck" } ] } }; is_deeply $got, $expected, "explicit limit"; } { my $got = $pkg->new( 'sessions', store => 'db', bag => 'sessions', limit => 2, start => 2 )->fix({sessions => ''}); my $expected = { sessions => { start => 2, limit => 2, total => 4, hits => [ { _id => "nsteenla", first_name => "Nicolas", last_name => "Steenlant" }, { _id => "phochste", first_name => "Patrick", last_name => "Hochstenbach" } ] } }; is_deeply $got, $expected, "explicit start and limit"; } done_testing 9; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Store-Hash.t���������������������������������������������������������������000644 �000765 �000024 �00000003253 13341726377 020322� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Store::Hash'; use_ok $pkg; } require_ok $pkg; my $data = [ {_id => '123', name => 'Patrick', age => '39'}, {_id => '321', name => 'Nicolas', age => '34'}, ]; my $store = $pkg->new(); can_ok $store, 'transaction'; my $bag = $store->bag; my @method = qw(to_array each take add add_many count slice first rest any many all tap map reduce); can_ok $bag, $_ for @method; $store->transaction( sub { my $rec = $bag->get_or_add('1', {latest => '0'}); ++$rec->{latest}; $bag->add($rec); } ); is_deeply $bag->first, {_id => 1, latest => 1}, "transaction ok"; $store->transaction( sub { my $rec = $bag->get_or_add('1', {latest => '0'}); ++$rec->{latest}; $bag->add($rec); } ); is_deeply $bag->first, {_id => 1, latest => 2}, "transaction ok again"; $bag->drop; $bag->add_many($data); is $bag->count, 2, "Count bag size"; isnt $bag->count, 0, "Count bag size"; is_deeply $bag->first, {_id => '123', name => 'Patrick', age => '39'}, "Data package ok."; is_deeply $bag->rest->first, {_id => '321', name => 'Nicolas', age => '34'}, "Data package ok."; $bag->delete('123'); is_deeply $bag->first, {_id => '321', name => 'Nicolas', age => '34'}, "Data package ok."; is $bag->count, 1, "Count bag size"; $bag->delete_all; is $bag->count, 0, "Count bag size"; isnt $bag->count, 1, "Count bag size"; $bag->add({_id => '123', foo => "bar"}); my $bag2 = $store->bag; is $bag2->count, 1, "Bags stay alive"; my $bag3 = $store->bag('foo'); ok !$bag3->get('123'), "foo doesnt have 123"; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-CQLSearchable.t������������������������������������������������������������000644 �000765 �000024 �00000001577 13341726377 020745� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::CQLSearchable'; use_ok $pkg; } require_ok $pkg; { package T::EmptySearchable; use Moo; package T::Searchable; use Moo; with $pkg; sub search {die "not implemented"} sub searcher {die "not implemented"} sub delete_by_query {die "not implemented"} sub translate_cql_query {die "not implemented"} sub translate_sru_sortkeys {die "not implemented"} } throws_ok { Role::Tiny->apply_role_to_package('T::EmptySearchable', $pkg) } qr/missing search, searcher, delete_by_query, translate_sru_sortkeys, translate_cql_query/; my $s = T::Searchable->new; is $s->default_default_limit, 10; is $s->default_maximum_limit, 1000; is $s->normalize_query("foo bar"), "foo bar"; done_testing; ���������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_number.t��������������������������������������������������000644 �000765 �000024 �00000001657 13341726377 023006� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_number'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'pass'}; is_deeply $cond->fix({foo => 0}), {foo => 0, test => 'pass'}; is_deeply $cond->fix({foo => -1}), {foo => -1, test => 'pass'}; is_deeply $cond->fix({foo => 1.1}), {foo => 1.1, test => 'pass'}; is_deeply $cond->fix({foo => "1.1"}), {foo => "1.1", test => 'pass'}; is_deeply $cond->fix({foo => -1.1}), {foo => -1.1, test => 'pass'}; is_deeply $cond->fix({foo => "1.1x"}), {foo => "1.1x", test => 'fail'}; is_deeply $cond->fix({foo => [1]}), {foo => [1], test => 'fail'}; done_testing; ���������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-paste.t����������������������������������������������������������������000644 �000765 �000024 �00000001277 13341726377 020211� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::paste'; use_ok $pkg; } is_deeply $pkg->new('my.field', 'a', 'b', 'c') ->fix({a => 'A', b => 'B', c => 'C'}), {my => {field => 'A B C'}, a => 'A', b => 'B', c => 'C'}, 'paste paths'; is_deeply $pkg->new('my.field', 'a', 'b', 'c', join_char => '/') ->fix({a => 'A', b => 'B', c => 'C'}), {my => {field => 'A/B/C'}, a => 'A', b => 'B', c => 'C'}, 'join_char'; is_deeply $pkg->new('my.field', 'a', '~b', 'c') ->fix({a => 'A', b => 'B', c => 'C'}), {my => {field => 'A b C'}, a => 'A', b => 'B', c => 'C'}, 'literal strings'; done_testing 4; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/myfixes.fix�������������������������������������������������������������������������000644 �000765 �000024 �00000000211 13341726377 016611� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������# For use in t/Catmandu-Fix.t add_field(utf8_name,'ვეპხის ტყაოსანი შოთა რუსთაველი')���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-export.t���������������������������������������������������������������000644 �000765 �000024 �00000002467 13341726377 020375� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester::CaptureExternal; use Cpanel::JSON::XS; use utf8; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::export'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; { my $result = test_app( qq|Catmandu::CLI| => [ qw(export -v test to JSON --line-delimited 1 --fix t/myfixes.fix --total 1) ] ); my @lines = split(/\n/, $result->stdout); ok @lines == 1, 'test total'; my $perl = decode_json($lines[0]); ok $perl, 'got JSON'; is $perl->{value}, 'Sol', 'got data'; is $perl->{utf8_name}, 'ვეპხის ტყაოსანი შოთა რუსთაველი', 'got utf8 data'; is $result->error, undef, 'threw no exceptions'; } { my $result = test_app( qq|Catmandu::CLI| => [ qw(export -v test to JSON --line-delimited 1 --id-file t/planet_ids.txt) ] ); my @lines = split(/\n/, $result->stdout); ok @lines == 3, 'test total'; my $recs = [map {decode_json($_)} @lines]; is_deeply( $recs, [ {_id => 'Earth', value => 'Terra'}, {_id => 'Sun', value => 'Sol'}, {_id => 'Moon', value => 'Luna'}, ] ); } done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-array.t����������������������������������������������������������������000644 �000765 �000024 �00000000441 13341726377 020203� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::array'; use_ok $pkg; } is_deeply $pkg->new('tags')->fix({tags => {name => 'Peter'}}), {tags => ['name', 'Peter']}, "hash to array"; done_testing 2; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-lookup_in_store.t������������������������������������������������������000644 �000765 �000024 �00000001753 13341726377 022307� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Data::Dumper; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::lookup_in_store'; use_ok $pkg; } require_ok $pkg; is_deeply $pkg->new('planet', 'test')->fix({planet => 'Earth'}), {planet => {_id => 'Earth', value => 'Terra'}}; is_deeply $pkg->new('planet', 'test')->fix({planet => 'Bartledan'}), {planet => 'Bartledan'}; is_deeply $pkg->new('planet', 'test', 'delete', 1) ->fix({planet => 'Bartledan'}), {}; is_deeply $pkg->new('planets.*', 'test', 'delete', 1) ->fix({planets => ['Bartledan', 'Earth']}), {planets => [{_id => 'Earth', value => 'Terra'}]}; is_deeply $pkg->new('planet', 'test', 'default', 'Mars') ->fix({planet => 'Bartledan'}), {planet => 'Mars'}; is_deeply $pkg->new('planets.*', 'test', 'default', 'Mars') ->fix({planets => ['Bartledan', 'Earth']}), {planets => ['Mars', {_id => 'Earth', value => 'Terra'}]}, 'default with wildcard'; done_testing 8; ���������������������Catmandu-1.10/t/Catmandu-Validator-Simple.t���������������������������������������������������������000644 �000765 �000024 �00000001175 13341726377 021522� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Validator::Simple'; use_ok $pkg; } require_ok $pkg; my $v = Catmandu::Validator::Simple->new( handler => sub { $_[0]->{field} eq '1' ? undef : 'Not 1'; } ); can_ok $v, 'validate_data'; throws_ok {$v->new(handler => 1)} qr/handler should be a CODE reference/; my $rec = {field => 1}; is $v->validate($rec), $rec, 'validate - success'; is $v->validate({field => 3}), undef, 'validate - fails'; is_deeply $v->last_errors, ['Not 1'], 'last_errors returns error message'; done_testing 7; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/run.fix�����������������������������������������������������������������������������000644 �000765 �000024 �00000000104 13341726377 015732� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������add_field(hello, world) add_to_exporter(., JSON, line_delimited: 1) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-with.t������������������������������������������������������������000644 �000765 �000024 �00000004556 13341726377 020725� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::with'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do with() add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do with() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do with() unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do with() if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do with() reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {}, 'testing reject'; $fixes = <<EOF; do with() select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do with() do with() do with() add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'before/after testing'; $fixes = <<EOF; add_field(before,ok) do with() add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<EOF; do with(path => foo) if all_match(bar,2) reject() end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => [{bar => 1}, {bar => 2}]}), {foo => [{bar => 1}]}, 'specific testing'; $fixes = <<EOF; do with(path => colors) if all_match(.,red) upcase(.) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({colors => [qw(yellow red blue)]}), {colors => [qw(yellow RED blue)]}, 'anon item test'; done_testing 13; ��������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-reject.t���������������������������������������������������������������000644 �000765 �000024 �00000000543 13341726377 020344� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::ArrayIterator; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::reject'; use_ok $pkg; } my $fix = $pkg->new; is $fix->fix({}), undef; is_deeply $fix->fix([{}]), []; is_deeply $fix->fix(Catmandu::ArrayIterator->new([{}]))->to_array, []; done_testing 4; �������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-exists.t�����������������������������������������������������000644 �000765 �000024 �00000000762 13341726377 022336� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::exists'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => undef}), {foo => undef, test => 'pass'}; is_deeply $cond->fix({}), {test => 'fail'}; done_testing 3; ��������������Catmandu-1.10/t/Catmandu-Pluggable.t����������������������������������������������������������������000644 �000765 �000024 �00000001214 13341726377 020242� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Pluggable'; use_ok $pkg; } { package Catmandu::Plugin::Frangle; use Moo::Role; sub frangle { "frangle"; } package T::Pluggable; use Moo; with $pkg; } my $t = T::Pluggable->new; can_ok $t, 'plugin_namespace'; can_ok $t, 'with_plugins'; is $t->plugin_namespace, 'Catmandu::Plugin'; dies_ok {$t->frangle} "original instance doesn't have plugin"; my $t_plugged = $t->with_plugins('Frangle'); ok $t_plugged, 'instance with plugin'; can_ok $t_plugged, 'frangle'; done_testing 7; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/planet_ids.txt����������������������������������������������������������������������000644 �000765 �000024 �00000000017 13341726377 017304� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Earth Sun Moon �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-log.t������������������������������������������������������������������000644 �000765 �000024 �00000000423 13341726377 017646� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::log'; use_ok $pkg; } my $data = {foo => 'bar'}; is $data, $pkg->new('test')->fix($data), "fixed data is the same object"; done_testing 2; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Paged.t��������������������������������������������������������������������000644 �000765 �000024 �00000005220 13341726377 017361� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Paged'; use_ok $pkg; } require_ok $pkg; { package T::PagedWithoutStart; use Moo; sub limit { } sub total { } package T::PagedWithoutLimit; use Moo; sub start { } sub total { } package T::PagedWithoutTotal; use Moo; sub start { } sub limit { } package T::Paged; use Moo; with $pkg; sub start {return 27;} sub limit {return 20;} sub total {return 32432;} package T2::Paged; use Moo; with $pkg; sub start {return 1;} sub limit {return 10;} sub total {return 127;} package T3::Paged; use Moo; with $pkg; sub start {return 0;} sub limit {return 10;} sub total {return 33;} } throws_ok {Role::Tiny->apply_role_to_package('T::PagedWithoutStart', $pkg)} qr/missing start/; throws_ok {Role::Tiny->apply_role_to_package('T::PagedWithoutLimit', $pkg)} qr/missing limit/; throws_ok {Role::Tiny->apply_role_to_package('T::PagedWithoutTotal', $pkg)} qr/missing total/; my $p = T::Paged->new; can_ok $p, $_ for qw/first_page page previous_page next_page first_on_page last_on_page last_page pages_in_spread/; is $p->first_page, 1, "first page ok"; is $p->page, 2, "Page ok"; is $p->previous_page, 1, "previous ok"; is $p->next_page, 3, "next ok"; is $p->page_size, 20, "page size ok"; is $p->first_on_page, 21, "first on page ok"; is $p->last_on_page, 40, "last on page ok"; is $p->last_page, 1622, "last page ok"; my @arr = (1, 2, 3, 4, 5, undef, 1622); is_deeply \@{$p->pages_in_spread}, \@arr, "spread ok"; my $p2 = T2::Paged->new; is $p2->first_page, 1, "first page ok"; is $p2->page, 1, "Page ok"; is $p2->previous_page, undef, "previous ok"; is $p2->next_page, 2, "next ok"; is $p2->page_size, 10, "page size ok"; is $p2->first_on_page, 1, "first on page ok"; is $p2->last_on_page, 10, "last on page ok"; is $p2->last_page, 13, "last page ok"; my @arr2 = (1, 2, 3, 4, undef, 12, 13); is_deeply \@{$p2->pages_in_spread}, \@arr2, "spread ok"; my $p3 = T3::Paged->new; is $p3->first_page, 1, "first page ok"; is $p3->page, 1, "Page ok"; is $p3->previous_page, undef, "previous ok"; is $p3->next_page, 2, "next ok"; is $p3->page_size, 10, "page size ok"; is $p3->first_on_page, 1, "first on page ok"; is $p3->last_on_page, 10, "last on page ok"; is $p3->last_page, 4, "last page ok"; my @arr3 = (1, 2, 3, 4); is_deeply \@{$p3->pages_in_spread}, \@arr3, "spread ok"; done_testing 40; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/planets.csv�������������������������������������������������������������������������000644 �000765 �000024 �00000000131 13341726377 016601� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������english,latin,_id Sun,Sol,Sun Mercury,Mercurius,Mercury Moon,Luna,Moon Earth,Terra,Earth ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/russian.txt�������������������������������������������������������������������������000644 �000765 �000024 �00000000765 13341726377 016660� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������На берегу пустынных волн Стоял он, дум великих полн, И вдаль глядел. Пред ним широко Река неслася; бедный чёлн По ней стремился одиноко. По мшистым, топким берегам Чернели избы здесь и там, Приют убогого чухонца; И лес, неведомый лучам В тумане спрятанного солнца, Кругом шумел.�����������Catmandu-1.10/t/Catmandu-Fix-Condition-all_match.t��������������������������������������������������000644 �000765 �000024 �00000002001 13341726377 022727� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::all_match'; use_ok $pkg; } { my $cond = $pkg->new('foo', 'abc'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => qw(abc)}), {foo => qw(abc), test => 'pass'}; is_deeply $cond->fix({foo => qw(cbc)}), {foo => qw(cbc), test => 'fail'}; } { my $cond = $pkg->new('foo.*', 'abc'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => [qw(abc)]}), {foo => [qw(abc)], test => 'pass'}; is_deeply $cond->fix({foo => [qw(abc abc)]}), {foo => [qw(abc abc)], test => 'pass'}; is_deeply $cond->fix({foo => [qw(abc cbc)]}), {foo => [qw(abc cbc)], test => 'fail'}; } done_testing 6; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-level-2.fix���������������������������������������������������������������������000644 �000765 �000024 �00000000124 13341726377 017162� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������add_field('working_place','University Library of Ghent') include('fix-level-3.fix') ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-visitor.t���������������������������������������������������������000644 �000765 �000024 �00000003561 13341726377 021444� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::visitor'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do visitor() add_field(hash.foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do visitor() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do visitor() unless exists(hash.foo) add_field(hash.foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do visitor() if exists(hash.foo) add_field(hash.foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do visitor() do visitor() do visitor() add_field(hash.foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'before/after testing'; $fixes = <<EOF; add_field(before,ok) do visitor() add_field(hash.inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<EOF; do visitor() if all_match(hash.bar,2) remove_field(hash.bar) end end collapse() expand() EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => [{bar => 1}, {bar => 2}]}), {foo => [{bar => 1}]}, 'specific testing'; done_testing 10; �����������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-level-3.fix���������������������������������������������������������������������000644 �000765 �000024 �00000000160 13341726377 017163� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������add_field('hobbies.$append','cooking') add_field('hobbies.$append','art') add_field('hobbies.$append','hiking') ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Inlineable.t�����������������������������������������������������������000644 �000765 �000024 �00000001125 13341726377 021127� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Inlineable'; use_ok $pkg; } require_ok $pkg; { package T::FixBase; use Moo; with $pkg; sub fix { my ($self, $data) = @_; $data->{foo} = 'bar'; $data; } package T::UseFixBase; use Moo; T::FixBase->import(as => 'do_fix_base'); } my $fb = T::FixBase->new; can_ok $fb, 'fix'; can_ok $fb, 'import'; is_deeply {foo => 'bar'}, T::UseFixBase::do_fix_base({}), 'can inline'; done_testing 5; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-from_json.t������������������������������������������������������������000644 �000765 �000024 �00000001057 13341726377 021065� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Cpanel::JSON::XS (); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::from_json'; use_ok $pkg; } my $json = Cpanel::JSON::XS->new->utf8(0)->allow_nonref(1); is_deeply $pkg->new('name')->fix({name => $json->encode(["Joe"])}), {name => ["Joe"]}; is_deeply $pkg->new('names.*')->fix( { names => [$json->encode({name => 'Joe'}), $json->encode({name => 'Rick'})] } ), {names => [{name => 'Joe'}, {name => 'Rick'}]}; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd.t����������������������������������������������������������������������000644 �000765 �000024 �00000003203 13341726377 017043� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw()]); like $result->stdout, qr/help:/, 'printed what we expected'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app('Catmandu::CLI' => [qw(help)]); like $result->stdout, qr/commands:/, 'printed what we expected'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app('Catmandu::CLI' => [qw(-h)]); like $result->stdout, qr/commands:/, 'printed what we expected'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app('Catmandu::CLI' => [qw(--help)]); like $result->stdout, qr/commands:/, 'printed what we expected'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app('Catmandu::CLI' => [qw(version)]); like $result->stdout, qr/version $Catmandu::VERSION/, 'printed what we expected'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; $result = test_app('Catmandu::CLI' => [qw(--version)]); like $result->stdout, qr/version $Catmandu::VERSION/, 'printed what we expected'; is $result->error, undef, 'threw no exceptions'; is $result->stderr, '', 'nothing sent to sderr'; done_testing 20; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Addable.t������������������������������������������������������������������000644 �000765 �000024 �00000002467 13341726377 017667� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Addable'; use_ok $pkg; } require_ok $pkg; my $data = []; { package T::AddableWithoutAdd; use Moo; package T::Addable; use Moo; with $pkg; sub add { push @$data, $_[1]; } package T::WithoutGenerator; use Moo; package T::WithGenerator; use Moo; sub generator { sub { } } } throws_ok {Role::Tiny->apply_role_to_package('T::AddableWithoutAdd', $pkg)} qr/missing add/; my $a = T::Addable->new; can_ok $a, 'add_many'; is_deeply $a->add({a => 'pony'}), {a => 'pony'}, 'add returns data added'; $data = []; $a->add(undef); is_deeply $data, [], 'undef gets rejected'; lives_ok {$a->add_many({})} 'add_many takes a single hash ref'; lives_ok {$a->add_many([])} 'add_many takes an array ref'; lives_ok { $a->add_many(sub { }) } 'add_many takes a generator code ref'; lives_ok {$a->add_many(T::WithGenerator->new)} 'add_many takes an object with a generator method'; throws_ok {$a->add_many(T::WithoutGenerator->new)} qr/should be able to generator/; $data = []; is $a->add_many([1, 2, 3]), 3, 'add_many returns count of data added'; is_deeply $data, [1, 2, 3], 'add_many passes all data to add'; done_testing 13; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-to_json.t��������������������������������������������������������������000644 �000765 �000024 �00000001025 13341726377 020537� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Cpanel::JSON::XS (); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::to_json'; use_ok $pkg; } my $json = Cpanel::JSON::XS->new->utf8(0)->allow_nonref(1); is_deeply $pkg->new('name')->fix({name => ["Joe"]}), {name => $json->encode(["Joe"])}; is_deeply $pkg->new('names.*') ->fix({names => [{name => 'Joe'}, {name => 'Rick'}]}), {names => [$json->encode({name => 'Joe'}), $json->encode({name => 'Rick'})]}; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Importer-Text.t������������������������������������������������������������000644 �000765 �000024 �00000003514 13341726377 021070� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use_ok 'Catmandu::Importer::Text'; require_ok 'Catmandu::Importer::Text'; my $text = <<EOF; Roses are red, Violets are blue, Sugar is sweet, And so| are you. EOF sub text { Catmandu::Importer::Text->new(file => \$text, @_)->to_array; } is_deeply text(), [ {_id => 1, text => "Roses are red,"}, {_id => 2, text => "Violets are blue,"}, {_id => 3, text => "Sugar is sweet,"}, {_id => 4, text => "And so| are you."}, ], 'simple text import'; is_deeply text(pattern => 'are'), [ {_id => 1, text => "Roses are red,"}, {_id => 2, text => "Violets are blue,"}, {_id => 3, text => "And so| are you."}, ], 'simple pattern match'; is_deeply text(pattern => '(\w+)(.).*\.$'), [{_id => 1, match => ["And", " "]},], 'numbered capturing groups'; my $items = [ {_id => 1, match => {first => "Roses", second => "are"}}, {_id => 2, match => {first => "Violets", second => "are"}} ]; is_deeply text(pattern => '^(?<first>\w+) (?<second>are).*\,$'), $items, 'named capturing groups'; my $pattern = <<'PAT'; ^(?<first> \w+) # first word \ # space (?<second> are ) # second word = 'are' PAT is_deeply text(pattern => $pattern), $items, 'multiline pattern'; is_deeply [map {$_->{text}} @{text(split => ' ')}], [map {[split ' ', $_]} split "\n", $text], 'split by character'; is_deeply [map {$_->{text}} @{text(split => '|')}], [map {[split '\\|', $_]} split "\n", $text], 'split by character (no regexp)'; is_deeply [map {$_->{text}} @{text(split => 'is|are')}], [map {[split /is|are/, $_]} split "\n", $text], 'split by regexp'; is_deeply text(split => ' is | are ', pattern => '^And so. (.*)'), [{_id => 1, text => ['And so|', 'you.'], match => ['are you.']}], 'split and pattern'; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Store-Multi.t��������������������������������������������������������������000644 �000765 �000024 �00000002262 13341726377 020530� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Store::Hash; use utf8; my $pkg; BEGIN { $pkg = 'Catmandu::Store::Multi'; use_ok $pkg; } require_ok $pkg; my $data = [ {_id => '123', name => 'Patrick', age => '39'}, {_id => '321', name => 'Nicolas', age => '34'}, ]; note("Hash stores"); { my $stores = [Catmandu::Store::Hash->new, Catmandu::Store::Hash->new,]; my $store = $pkg->new(stores => $stores); my $bag = $store->bag; $bag->add_many($data); is_deeply $bag->to_array, $data; is_deeply $stores->[0]->bag->to_array, $data; is_deeply $stores->[1]->bag->to_array, $data; is_deeply $bag->get('123'), $data->[0]; is_deeply $stores->[0]->bag->get('123'), $data->[0]; is_deeply $stores->[1]->bag->get('123'), $data->[0]; $bag->delete('123'); is_deeply $bag->first, $data->[1]; is_deeply $stores->[0]->bag->first, $data->[1]; is_deeply $stores->[1]->bag->first, $data->[1]; $bag->delete_all; is $bag->count, 0; is $stores->[0]->bag->count, 0; is $stores->[1]->bag->count, 0; $bag->add_many($data); $bag->drop; is $bag->count, 0; } done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-IdGenerator-Mock.t���������������������������������������������������������000644 �000765 �000024 �00000002007 13341726377 021433� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::IdGenerator::Mock'; use_ok $pkg; } require_ok $pkg; { my $expected = [0 .. 10]; my $generated = []; my $id_generator = $pkg->new; isa_ok $id_generator, $pkg; ok $id_generator->does("Catmandu::IdGenerator"), "an object of class '$pkg' does 'Catmandu::IdGenerator'"; push @$generated, map {$id_generator->generate} @$expected; is_deeply $generated, $expected, "generated ids correct (default first_id)"; } { my $expected = [5 .. 20]; my $generated = []; my $id_generator = $pkg->new(first_id => $expected->[0]); isa_ok $id_generator, $pkg; ok $id_generator->does("Catmandu::IdGenerator"), "an object of class '$pkg' does 'Catmandu::IdGenerator'"; push @$generated, map {$id_generator->generate} @$expected; is_deeply $generated, $expected, "generated ids correct (custom first_id)"; } done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-level-1.fix���������������������������������������������������������������������000644 �000765 �000024 �00000000150 13341726377 017160� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#fixes-level-1 add_field('name','Franck') add_field('first_name','Nicolas') include('fix-level-2.fix') ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_string.t��������������������������������������������������000644 �000765 �000024 �00000001671 13341726377 023020� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_string'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'fail'}; is_deeply $cond->fix({foo => 0}), {foo => 0, test => 'fail'}; is_deeply $cond->fix({foo => -1}), {foo => -1, test => 'fail'}; is_deeply $cond->fix({foo => 1.1}), {foo => 1.1, test => 'fail'}; is_deeply $cond->fix({foo => -1.1}), {foo => -1.1, test => 'fail'}; is_deeply $cond->fix({foo => "1.1"}), {foo => "1.1", test => 'fail'}; is_deeply $cond->fix({foo => "1.1x"}), {foo => "1.1x", test => 'pass'}; is_deeply $cond->fix({foo => ["1.1x"]}), {foo => ["1.1x"], test => 'fail'}; done_testing; �����������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-Multi.t�����������������������������������������������������������000644 �000765 �000024 �00000001630 13341726377 021242� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Cpanel::JSON::XS (); use Catmandu::Exporter::JSON; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::Multi'; use_ok $pkg; } require_ok $pkg; my $data = [{'a' => 'moose'}, {'a' => 'pony'}, {'a' => 'shrimp'}]; my $file1 = ""; my $file2 = ""; my $exporter1 = Catmandu::Exporter::JSON->new(file => \$file1, line_delimited => 1); my $exporter2 = Catmandu::Exporter::JSON->new(file => \$file2, line_delimited => 1); my $exporter = $pkg->new(exporters => [$exporter1, $exporter2,]); isa_ok $exporter, $pkg; $exporter->add_many($data); $exporter->commit; is $exporter1->count, 3; is $exporter2->count, 3; is $exporter->count, 3; is_deeply $data, [map {Cpanel::JSON::XS::decode_json($_)} split /[\r\n]+/, $file1]; is_deeply $data, [map {Cpanel::JSON::XS::decode_json($_)} split /[\r\n]+/, $file2]; done_testing; ��������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_null.t����������������������������������������������������000644 �000765 �000024 �00000001207 13341726377 022457� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_null'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => undef}), {foo => undef, test => 'pass'}; is_deeply $cond->fix({foo => {}}), {foo => {}, test => 'fail'}; is_deeply $cond->fix({foo => 0}), {foo => 0, test => 'fail'}; is_deeply $cond->fix({}), {test => 'fail'}; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-import_from_string.t���������������������������������������������������000644 �000765 �000024 �00000002667 13341726377 023024� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::import_from_string'; use_ok $pkg; } is_deeply $pkg->new('record', 'JSON') ->fix({record => qq({"name":"Nicolas"}\n)}), {record => [{"name" => "Nicolas"}]}, "convert single JSON object to array of hashes"; is_deeply $pkg->new('record', 'JSON') ->fix({record => qq([{"name":"Nicolas"}]\n)}), {record => [{"name" => "Nicolas"}]}, "convert JSON array to array of hashes"; is_deeply $pkg->new('record', 'YAML') ->fix({record => qq(---\nname: Nicolas\n...\n)}), {record => [{"name" => "Nicolas"}]}, "convert single YAML object to array of hashes"; is_deeply $pkg->new('record', 'YAML') ->fix({record => qq(---\nname: Nicolas\n...\n---\nname: Patrick\n...\n)}), {record => [{"name" => "Nicolas"}, {"name" => "Patrick"}]}, "convert YAML array to array of hashes"; is_deeply $pkg->new('record', 'CSV')->fix({record => qq(name\nNicolas\n)}), {record => [{"name" => "Nicolas"}]}, "convert single CSV line to array of hashes"; is_deeply $pkg->new('record', 'CSV', sep_char => ';') ->fix( {record => qq(first_name;name\nNicolas;Franck\nPatrick;Hochstenbach\n)}), { record => [ {"first_name" => "Nicolas", name => "Franck"}, {"first_name" => "Patrick", name => "Hochstenbach"} ] }, "convert CSV array to array of hashes"; done_testing; �������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-any_equal.t��������������������������������������������������000644 �000765 �000024 �00000001636 13341726377 022776� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::any_equal'; use_ok $pkg; } my $cond = $pkg->new('string', 'foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({string => 'foo'}), {string => 'foo', test => 'pass'}; is_deeply $cond->fix({string => 'foobar'}), {string => 'foobar', test => 'fail'}; $cond = $pkg->new('string.*', 'foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({string => ['foo', 'foobar']}), {string => ['foo', 'foobar'], test => 'pass'}; is_deeply $cond->fix({string => ['foo2', 'foobar']}), {string => ['foo2', 'foobar'], test => 'fail'}; done_testing 5; ��������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Store.t��������������������������������������������������������������������000644 �000765 �000024 �00000005305 13341726377 017441� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Store'; use_ok $pkg; } require_ok $pkg; { package T::Store; use Moo; with $pkg; package T::Store::Bag; use Moo; with 'Catmandu::Bag'; sub generator { } sub add { } sub get { } sub delete { } sub delete_all { } package T::CustomBagClass; use Moo; extends 'T::Store::Bag'; has prop => (is => 'ro'); } my $s = T::Store->new; can_ok $s, 'bag_class'; can_ok $s, 'default_bag'; can_ok $s, 'bag'; is $s->bag_class, 'T::Store::Bag'; $s = T::Store->new(bag_class => 'T::CustomBagClass'); is $s->bag_class, 'T::CustomBagClass'; is $s->default_bag, 'data'; my $b = $s->bag; isa_ok $b, $s->bag_class; is $s->bag, $b; is $b->store, $s; is $b->name, 'data'; $b = $s->bag('foo'); is $b->name, 'foo'; $s = T::Store->new( bag_class => 'T::CustomBagClass', bags => {foo => {prop => 'val', store => 'junk', name => 'junk'}} ); is $s->bag('foo')->prop, 'val', "options are passed to bag"; isnt $s->bag('foo')->store, 'junk', "store can't be overriden"; isnt $s->bag('foo')->name, 'junk', "name can't be overriden"; # default options $s = T::Store->new( bag_class => 'T::CustomBagClass', default_options => {prop => 'bar'}, bags => {foo => {store => 'junk', name => 'junk'}} ); is $s->bag('foo')->prop, 'bar'; $s = T::Store->new( bag_class => 'T::CustomBagClass', default_options => {prop => 'bar'}, bags => {foo => {prop => 'baz', store => 'junk', name => 'junk'}} ); is $s->bag('foo')->prop, 'baz'; # custom key_prefix is(T::Store->new->key_prefix, '_'); is(T::Store->new(key_prefix => 'catmandu_')->key_prefix, 'catmandu_'); # there are more key_prefix tests in Catmandu-Bag.t and # Catmandu-Plugin-Versioning.t # custom store wide id_key $s = T::Store->new(id_key => 'my_id'); is($s->key_prefix, '_'); is($s->id_key, 'my_id'); is($s->bag->id_key, 'my_id'); $s = T::Store->new(id_field => 'my_id'); is($s->key_prefix, '_'); is($s->id_key, 'my_id'); is($s->bag->id_key, 'my_id'); # plugins $b = T::Store->new(bags => {foo => {plugins => [qw(Datestamps)]}}) ->bag('foo'); ok $b->does('Catmandu::Plugin::Datestamps'), 'apply plugins'; $b = T::Store->new(default_plugins => [qw(Datestamps)])->bag('foo'); ok $b->does('Catmandu::Plugin::Datestamps'), 'apply default plugins'; $b = T::Store->new( default_plugins => [qw(Datestamps)], bags => {foo => {plugins => [qw(Versioning)]}} )->bag('foo'); ok $b->does('Catmandu::Plugin::Datestamps') && $b->does('Catmandu::Plugin::Versioning'), 'prepend default plugins'; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-compact.t��������������������������������������������������������������000644 �000765 �000024 �00000000507 13341726377 020516� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::compact'; use_ok $pkg; } is_deeply $pkg->new('dirty_array') ->fix({'dirty_array' => [undef, undef, 'hello', undef, 'world', undef]}), {'dirty_array' => ['hello', 'world']}, "compact array"; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-include.t��������������������������������������������������������������000644 �000765 �000024 �00000001252 13341726377 020511� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::include'; use_ok $pkg; } { my $result = { name => "Franck", first_name => "Nicolas", working_place => "University Library of Ghent", hobbies => ['cooking', 'art', 'hiking'] }; is_deeply($pkg->new("fix-level-1.fix")->fix({}), $result, "include fix at multiple levels"); } { my $result = {'fix-1' => 'ok', 'fix-2' => 'ok', 'fix-3' => 'ok',}; is_deeply($pkg->new("fix-include-glob/*.fix")->fix({}), $result, "include fixes with glob pattern"); } done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix.t����������������������������������������������������������������������000644 �000765 �000024 �00000016450 13341726377 017076� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use utf8; use warnings; use Test::More; use Test::Exception; use IO::File; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix'; use_ok $pkg; } require_ok $pkg; my $fixer = Catmandu::Fix->new(fixes => []); ok $fixer , 'create a new fixer'; is_deeply $fixer->fix({}), {}, 'fixing hashes'; is_deeply $fixer->fix({name => 'value'}), {name => 'value'}; is_deeply $fixer->fix({name => {name => 'value'}}), {name => {name => 'value'}}; is_deeply $fixer->fix({name => [{name => 'value'}]}), {name => [{name => 'value'}]}; throws_ok {$fixer->fix(IO::File->new("<t/myfixes.fix"))} 'Catmandu::BadArg', 'throws Catmandu::BadArg'; is_deeply $fixer->fix([]), [], 'fixing arrays'; is_deeply $fixer->fix([{name => 'value'}]), [{name => 'value'}]; is_deeply $fixer->fix([{name => {name => 'value'}}]), [{name => {name => 'value'}}]; is_deeply $fixer->fix([{name => [{name => 'value'}]}]), [{name => [{name => 'value'}]}]; ok $fixer->fix(Catmandu::Importer::Mock->new(size => 13)), 'fixing iterators'; my $it = $fixer->fix(Catmandu::Importer::Mock->new(size => 13)); can_ok $it , 'count'; is $it->count, 13; my $gen_n = 3; my $ref = $fixer->fix( sub { return undef unless $gen_n--; return {n => $gen_n}; } ); ok $ref, 'fixing a coderef'; ok is_code_ref($ref); is $ref->()->{n}, 2; is $ref->()->{n}, 1; is $ref->()->{n}, 0; is $ref->(), undef; # test logging can_ok $fixer , 'log'; isa_ok $fixer->log, 'Log::Any::Proxy'; isa_ok $fixer->log->adapter, 'Log::Any::Adapter::Null'; # test error handling { package DieFix; use Moo; with 'Catmandu::Fix::Base'; sub emit {'die;'} } $fixer = Catmandu::Fix->new(fixes => [DieFix->new]); throws_ok { $fixer->fix({}); } 'Catmandu::FixError'; $fixer = Catmandu::Fix->new(fixes => ['t/myfixes.fix']); ok $fixer; is_deeply $fixer->fix({}), {utf8_name => 'ვეპხის ტყაოსანი შოთა რუსთაველი' }, 'fixing utf8'; open(FH, '<:encoding(UTF-8)', 't/myfixes.fix'); $fixer = Catmandu::Fix->new(fixes => [\*FH]); ok $fixer; is_deeply $fixer->fix({}), {utf8_name => 'ვეპხის ტყაოსანი შოთა რუსთაველი' }, 'fixing utf8'; close(FH); $fixer = Catmandu::Fix->new(fixes => [IO::File->new('< t/myfixes.fix')]); ok $fixer; is_deeply $fixer->fix({}), {utf8_name => 'ვეპხის ტყაოსანი შოთა რუსთაველი' }, 'fixing utf8'; # get $fixer = Catmandu::Fix->new(fixes => ['copy_field(data.$first,test)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 1 2)], test => 0}, 'get $first test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data.$last,test)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 1 2)], test => 2}, 'get $last test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data.1,test)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 1 2)], test => 1}, 'get position test arary'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data.1,test)']); is_deeply $fixer->fix({data => {1 => 1}}), {data => {1 => 1}, test => 1}, 'get position test hash'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data.*,test)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 1 2)], test => 2}, 'get star test arary'; # set $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.1)']); is_deeply $fixer->fix({data => 1}), {data => 1, test => [undef, 1]}, 'set position test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.$first)']); is_deeply $fixer->fix({data => 1, test => [qw(0 1 2)]}), {data => 1, test => [qw(1 1 2)]}, 'set $first test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.$last)']); is_deeply $fixer->fix({data => 1, test => [qw(0 1 2)]}), {data => 1, test => [qw(0 1 1)]}, 'set $last test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.$prepend)']); is_deeply $fixer->fix({data => 1, test => [qw(0 1 2)]}), {data => 1, test => [qw(1 0 1 2)]}, 'set $prepend test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.$append)']); is_deeply $fixer->fix({data => 1, test => [qw(0 1 2)]}), {data => 1, test => [qw(0 1 2 1)]}, 'set $append test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.*)']); is_deeply $fixer->fix({data => 1, test => [qw(0 1 2)]}), {data => 1, test => [qw(1 1 1)]}, 'set star test'; $fixer = Catmandu::Fix->new(fixes => ['copy_field(data,test.1)']); is_deeply $fixer->fix({data => 1, test => {}}), {data => 1, test => {1 => 1}}, 'set hash test'; # delete $fixer = Catmandu::Fix->new(fixes => ['remove_field(data.$first)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(1 2)]}, 'remove $first test'; $fixer = Catmandu::Fix->new(fixes => ['remove_field(data.$last)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 1)]}, 'remove $last test'; $fixer = Catmandu::Fix->new(fixes => ['remove_field(data.1)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 2)]}, 'remove position test arary'; $fixer = Catmandu::Fix->new(fixes => ['remove_field(data.1)']); is_deeply $fixer->fix({data => {1 => 1}}), {data => {}}, 'remove position test hash'; $fixer = Catmandu::Fix->new(fixes => ['remove_field(data.*)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => []}, 'remove star test arary'; # retain $fixer = Catmandu::Fix->new(fixes => ['retain_field(data.$first)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0)]}, 'retain_field $first test'; $fixer = Catmandu::Fix->new(fixes => ['retain_field(data.$last)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(2)]}, 'retain_field $last test'; $fixer = Catmandu::Fix->new(fixes => ['retain_field(data.1)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(1)]}, 'retain_field position test arary'; $fixer = Catmandu::Fix->new(fixes => ['retain_field(data.1)']); is_deeply $fixer->fix({data => {1 => 1, 2 => 2}}), {data => {1 => 1}}, 'retain_field position test hash'; $fixer = Catmandu::Fix->new(fixes => ['retain_field(data.*)']); is_deeply $fixer->fix({data => [qw(0 1 2)]}), {data => [qw(0 1 2)]}, 'retain_field star test arary'; $fixer = Catmandu::Fix->new(fixes => ['retain_field(data.*)']); is_deeply $fixer->fix({data => {1 => 1, 2 => 2}}), {data => {1 => 1, 2 => 2}}, 'retain_field star test hash'; # path delimiter escapes $fixer = Catmandu::Fix->new(fixes => [q|add_field('with\.a\.dot', Train)|]); is_deeply $fixer->fix({}), {'with.a.dot' => 'Train'}, "add field with.a.dot"; $fixer = Catmandu::Fix->new(fixes => [q|copy_field('with\.a.dot', no.dot)|]); is_deeply $fixer->fix({'with.a' => {'dot' => 'Train'}}), {'no' => {'dot' => 'Train'}, 'with.a' => {'dot' => 'Train'}}, "move field with a dot to one without"; # preprocessing and variables $fixer = Catmandu::Fix->new( fixes => ['t/variables.fix'], preprocess => 1, variables => { source => 'field1', target => 'field2', others => [qw(0 1)], beer => 1, milk => 0, } ); is_deeply $fixer->fix({field1 => 'value'}), {field2 => 'value', other_0 => 0, other_1 => 1, drunk => 'yes'}, 'preprocessing: variable interpolation'; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-hashmap.t���������������������������������������������������������000644 �000765 �000024 �00000007170 13341726377 021366� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use lib 't/lib'; use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Cpanel::JSON::XS qw(decode_json); use Catmandu::Util qw(:is); use Capture::Tiny ':all'; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::hashmap'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do hashmap() add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do hashmap() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do hashmap() unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do hashmap() if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do hashmap() select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do hashmap() do hashmap() do hashmap() add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing nesting'; $fixes = <<EOF; add_field(before,ok) do hashmap() add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; # Specific tests { my ($stdout, $stderr, $exit) = capture { $fixes = <<EOF; do hashmap(exporter: CSV, join: ',') do identity() copy_field(isbn,key) copy_field(_id,value) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); $fixer->fix( [ {_id => 1, isbn => '1234567890'}, {_id => 2, isbn => '1234567890'}, {_id => 3, isbn => '0987654321'}, ] ); undef($fixer); }; my $exp = <<EOF; _id,value 0987654321,3 1234567890,"1,2" EOF is $stdout , $exp, 'grouping isbn join'; } { my ($stdout, $stderr, $exit) = capture { $fixes = <<EOF; do hashmap(exporter: JSON, uniq: 1) copy_field(isbn,key) copy_field(_id,value) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); $fixer->fix( [ {_id => 1, isbn => '1234567890'}, {_id => 2, isbn => '1234567890'}, {_id => 3, isbn => '0987654321'}, ] ); undef($fixer); }; my $exp = '[{"_id":"0987654321","value":["3"]},{"_id":"1234567890","value":["1","2"]}]'; is_deeply decode_json($stdout), decode_json($exp), 'grouping isbn uniq'; } { my ($stdout, $stderr, $exit) = capture { $fixes = <<EOF; do hashmap(exporter: CSV, count: 1) copy_field(isbn,key) copy_field(_id,value) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); $fixer->fix( [ {_id => 1, isbn => '1234567890'}, {_id => 2, isbn => '1234567890'}, {_id => 3, isbn => '0987654321'}, ] ); undef($fixer); }; my $exp = <<EOF; _id,value 1234567890,2 0987654321,1 EOF is $stdout , $exp, 'grouping isbn count'; } done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-importer.t��������������������������������������������������������000644 �000765 �000024 �00000001616 13341726377 021605� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu; use Capture::Tiny ':all'; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::importer'; use_ok $pkg; } require_ok $pkg; { my ($stdout, $stderr, $exit) = capture { my $fixer = Catmandu->fixer( 'do importer(Mock,size:1) add_to_exporter(.,JSON) end'); $fixer->fix({}); }; is $stdout, qq|[{"n":0}]\n|, 'fixed ok'; } { my ($stdout, $stderr, $exit) = capture { my $fixer = Catmandu->fixer('do importer(Mock,size:1) reject() end'); $fixer->fix({}); }; is $stdout, qq||, 'fixed ok'; } { my ($stdout, $stderr, $exit) = capture { my $fixer = Catmandu->fixer( 'do importer(Mock,size:1) select exists(n) end'); $fixer->fix({}); }; is $stdout, qq||, 'fixed ok'; } done_testing; ������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_array.t���������������������������������������������������000644 �000765 �000024 �00000001315 13341726377 022623� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_array'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => ['foo']}), {foo => ['foo'], test => 'pass'}; is_deeply $cond->fix({foo => []}), {foo => [], test => 'pass'}; is_deeply $cond->fix({}), {test => 'fail'}; is_deeply $cond->fix({foo => {}}), {foo => {}, test => 'fail'}; is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'fail'}; done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter.t�����������������������������������������������������������������000644 �000765 �000024 �00000001232 13341726377 020150� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter'; use_ok $pkg; } require_ok $pkg; { package T::ExporterWithoutAdd; use Moo; package T::Exporter; use Moo; with $pkg; sub add { } } throws_ok {Role::Tiny->apply_role_to_package('T::ExporterWithoutAdd', $pkg)} qr/missing add/; my $e = T::Exporter->new; ok $e->does('Catmandu::Addable'); ok $e->does('Catmandu::Counter'); can_ok $e, 'encoding'; can_ok $e, 'commit'; is $e->encoding, ':utf8'; $e->add(1); is $e->count, 1; $e->add_many([2, 3, 4]); is $e->count, 4; done_testing 10; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-set_hash.t�������������������������������������������������������������000644 �000765 �000024 �00000001462 13341726377 020667� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::set_hash'; use_ok $pkg; } is_deeply $pkg->new('job')->fix({}), {job => {}}, "set hash at root"; is_deeply $pkg->new('deeply.nested.$append.job')->fix({}), {}, "set hash doesn't create intermediate path"; is_deeply $pkg->new('deeply.nested.*.job') ->fix({deeply => {nested => [undef, {}]}}), {deeply => {nested => [undef, {job => {}}]}}, "set deeply nested hash"; is_deeply $pkg->new('deeply.nested.$append.job') ->fix({deeply => {nested => {}}}), {deeply => {nested => {}}}, "only set hash if the path matches"; is_deeply $pkg->new('job', 'a', 'b', 'c', 'd')->fix({}), {job => {'a' => 'b', 'c' => 'd'}}, "set hash with initial contents"; done_testing 6; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Env.t����������������������������������������������������������������������000644 �000765 �000024 �00000001643 13341726377 017076� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Env'; use_ok $pkg; } require_ok $pkg; my $env = Catmandu::Env->new(load_paths => [qw(t/)]); ok $env , qq|new|; like $env->root, qr/t$/, 'got root'; isa_ok $env->store, qq|Catmandu::Store::Hash|, qq|store()|; isa_ok $env->store('hash'), qq|Catmandu::Store::Hash|, qq|store(hash)|; isa_ok $env->fixer, qq|Catmandu::Fix|, qq|fixer|; isa_ok $env->fixer('other'), qq|Catmandu::Fix|, qq|fixer(other)|; isa_ok $env->importer, qq|Catmandu::Importer::YAML|, qq|importer()|; isa_ok $env->importer('mock'), qq|Catmandu::Importer::Mock|, qq|importer(mock)|; isa_ok $env->exporter, qq|Catmandu::Exporter::YAML|, qq|exporter()|; isa_ok $env->exporter('csv'), qq|Catmandu::Exporter::CSV|, qq|exporter(csv)|; isa_ok $env->validator('test'), qq|Catmandu::Validator::Mock|, qq|validator(mock)|; done_testing; ���������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-touch.t����������������������������������������������������������������000644 �000765 �000024 �00000000517 13341726377 020170� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::touch'; use_ok $pkg; } use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw(touch --field date)]); is $result->error, undef, 'threw no exceptions'; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-append.t���������������������������������������������������������������000644 �000765 �000024 �00000000715 13341726377 020340� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::append'; use_ok $pkg; } is_deeply $pkg->new('name', 'y')->fix({name => 'joe'}), {name => "joey"}, "append to value"; is_deeply $pkg->new('names.*.name', 'y') ->fix({names => [{name => 'joe'}, {name => 'rick'}]}), {names => [{name => 'joey'}, {name => 'ricky'}]}, "append to wildcard values"; done_testing 3; ���������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-benchmark.t�������������������������������������������������������000644 �000765 �000024 �00000004500 13341726377 021671� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::benchmark'; use_ok $pkg; } require_ok $pkg; my $monad = Catmandu::Fix::Bind::benchmark->new(output => '/dev/null'); my $f = sub {$_[0]->{demo} = 1; $_[0]}; my $g = sub {$_[0]->{demo} += 1; $_[0]}; is_deeply $monad->bind($monad->unit({}), $f), $f->({}), "left unit monadic law"; is_deeply $monad->bind($monad->unit({}), sub {$monad->unit(shift)}), $monad->unit({}), "right unit monadic law"; is_deeply $monad->bind($monad->bind($monad->unit({}), $f), $g), $monad->bind($monad->unit({}), sub {$monad->bind($f->($_[0]), $g)}), "associative monadic law"; my $fixes = <<EOF; do benchmark(output => /dev/null) add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do benchmark(output => /dev/null) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do benchmark(output => /dev/null) unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do benchmark(output => /dev/null) if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do benchmark(output => /dev/null) reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok !defined $fixer->fix({foo => 'bar'}), 'testing reject'; $fixes = <<EOF; do benchmark(output => /dev/null) select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do benchmark(output => /dev/null) do benchmark(output => /dev/null) do benchmark(output => /dev/null) add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing nesting'; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind.t�����������������������������������������������������������������000644 �000765 �000024 �00000000331 13341726377 017737� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind'; use_ok $pkg; } require_ok $pkg; done_testing 2; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Error.t��������������������������������������������������������������������000644 �000765 �000024 �00000001517 13341726377 017437� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Error'; use_ok $pkg; } require_ok $pkg; throws_ok {Catmandu::Error->throw("Oops!");} 'Catmandu::Error', qq|caught an error|; throws_ok {Catmandu::Error->throw;} 'Catmandu::Error', qq|caught an error with no message|; is(Catmandu::Error->new->message, '', qq|default error message is an empty string|); throws_ok {Catmandu::BadVal->throw("Whoo!");} 'Catmandu::BadVal', qq|caught a badval|; throws_ok {Catmandu::BadArg->throw("Aarrgh!");} 'Catmandu::BadArg', qq|caught a badarg|; throws_ok {Catmandu::BadArg->throw("Aarrgh!");} 'Catmandu::BadArg', qq|caught a badarg|; throws_ok {Catmandu::NotImplemented->throw("Huh?!");} 'Catmandu::NotImplemented', qq|caught a notimplemented|; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-filter.t���������������������������������������������������������������000644 �000765 �000024 �00000001222 13341726377 020350� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::filter'; use_ok $pkg; } is_deeply $pkg->new('words', 'Pa') ->fix({words => [qw(Patrick Nicolas Paul Frank)]}), {words => [qw(Patrick Paul)]}; is_deeply $pkg->new('words', 'Pa', invert => 1) ->fix({words => [qw(Patrick Nicolas Paul Frank)]}), {words => [qw(Nicolas Frank)]}; is_deeply $pkg->new('words', 'Przewalski') ->fix({words => [qw(Patrick Nicolas Paul Frank)]}), {words => [qw()]}; is_deeply $pkg->new('words', '/bar')->fix({words => [qw(/bar bor)]}), {words => [qw{/bar}]}; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Validator.t����������������������������������������������������������������000644 �000765 �000024 �00000007252 13341726377 020275� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; use Catmandu::ArrayIterator; my $pkg; BEGIN { $pkg = 'Catmandu::Validator'; use_ok $pkg; } require_ok $pkg; { package T::ValidatorWithoutValidateHash; use Moo; package T::Validator; use Moo; with $pkg; sub validate_data { $_[1]->{field} =~ /^1|7$/ ? undef : ["Value is not 1"]; } } throws_ok { Role::Tiny->apply_role_to_package('T::ValidatorWithoutValidateOne', $pkg) } qr/missing validate_data/; my $e = T::Validator->new; can_ok $e, 'is_valid'; can_ok $e, 'validate'; # throw:: TODO make sure it is a hash for single one. throws_ok {$e->validate(1)} qr/Cannot validate data of this type/; # my $href0 = {field => 0}; my $href1 = {field => 1}; is $e->validate($href1), $href1, 'validate() - success'; is $e->validate($href0), undef, 'validate() - fails'; is_deeply($e->last_errors, ['Value is not 1'], 'last_errors returns errors'); is $e->is_valid($href1), 1, 'is_valid returns 1'; is $e->is_valid($href0), 0, 'is_valid returns 0'; my $after_callback_called = 0; $e = T::Validator->new( after_callback => sub {$after_callback_called = 1, $_[0]}); is $e->validate($href1), $href1, 'validate, after_callback - success'; is $after_callback_called, 1, 'validate, after_callback - called'; my $arr = $e->validate([{field => 2}, {field => 1}, {field => 0}, {field => 3}]); is $e->valid_count, 1, 'valid_count'; is $e->invalid_count, 3, 'invalid_count'; my $error_field = '_validation_errors'; my $validation_error_message = "Value is not 1"; my $e_efield = T::Validator->new(error_field => 1); is_deeply $e_efield->validate([{field => 5}, {field => 3}, {field => 1}]), [ {field => 5, $error_field => [$validation_error_message]}, {field => 3, $error_field => [$validation_error_message]}, {field => 1} ], 'validate, error_field 1'; my $error_field_new = 'my_error'; $e_efield = T::Validator->new(error_field => $error_field_new); is_deeply $e_efield->validate([{field => 6}, {field => 3}, {field => 1}]), [ {field => 6, $error_field_new => [$validation_error_message]}, {field => 3, $error_field_new => [$validation_error_message]}, {field => 1} ], 'validate, error_field 2'; my @invalid_array; my $validator = T::Validator->new( after_callback => sub { my ($hashref, $errors) = @_; if ($errors) { $hashref->{errors} = $errors; push @invalid_array, $hashref; return; } else { $hashref->{valid} = 1; } $hashref; } ); my $passed_array = $validator->validate([{field => 3}, {field => 1}, {field => 2}]); is_deeply $passed_array, [{field => 1, valid => 1}], 'validate, after_callback - valid'; is_deeply \@invalid_array, [ {field => 3, errors => [$validation_error_message]}, {field => 2, errors => [$validation_error_message]}, ], 'validate, after_callback - invalid'; my $x = 0; @invalid_array = (); $validator = T::Validator->new(error_callback => sub {push @invalid_array, $_[0]}); $passed_array = $validator->validate([{field => 1}, {field => 8}, {field => 9}]); is_deeply $passed_array, [{field => 1}], 'validate (array) - valid records returned'; is_deeply \@invalid_array, [{field => 8}, {field => 9}], 'validate - invalid records returned'; # test iterator my $it = Catmandu::ArrayIterator->new( [{field => 1}, {field => 8}, {field => 7}]); $validator = T::Validator->new; my $new_it = $validator->validate($it); is_deeply $new_it->to_array, [{field => 1}, {field => 7}], 'validate (iterator) - iterator returned'; done_testing 22; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-string.t���������������������������������������������������������������000644 �000765 �000024 �00000001171 13341726377 020374� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::string'; use_ok $pkg; } is_deeply $pkg->new('str')->fix({}), {}; is_deeply $pkg->new('str')->fix({str => 0}), {str => "0"}; is_deeply $pkg->new('str')->fix({str => 123}), {str => "123"}; is_deeply $pkg->new('str')->fix({str => [1, 2]}), {str => "12"}; is_deeply $pkg->new('str')->fix({str => [1, {2 => 3}]}), {str => ""}; is_deeply $pkg->new('str')->fix({str => {3 => 4, 1 => 2}}), {str => "24"}; is_deeply $pkg->new('str')->fix({str => {3 => {4 => 5}, 1 => 2}}), {str => ""}; done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-each.t������������������������������������������������������������000644 �000765 �000024 �00000006100 13341726377 020635� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use lib 't/lib'; use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::each'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do each(path:.,var:i) add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({ok => 1}), {ok => 1, foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do each(path:.,var:i) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do each(path:.,var:i) unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({ok => 1}), {ok => 1, foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do each(path:.,var:i) if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do each(path:.,var:i) reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok !defined $fixer->fix({foo => 'bar'}), 'testing reject'; $fixes = <<EOF; do each(path:.,var:i) select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do each(path:.,var:i) do each(path:.,var:i) do each(path:.,var:i) add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing nesting'; $fixes = <<EOF; add_field(before,ok) do each(path:.,var:i) add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<'EOF'; do each(path:demo, var: t) if all_match(t.key,en) copy_field(t.value, titles.$append) else upcase(t.key) upcase(t.value) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix( { demo => {nl => 'Tuin der lusten', en => 'The Garden of Earthly Delights'} } ), { demo => {NL => 'TUIN DER LUSTEN', en => 'The Garden of Earthly Delights'}, titles => ['The Garden of Earthly Delights'] }, 'specific testing'; $fixes = <<'EOF'; do each(path:demo) if all_match(key,en) copy_field(value, titles.$append) else upcase(key) upcase(value) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix( { demo => {nl => 'Tuin der lusten', en => 'The Garden of Earthly Delights'} } ), { demo => { NL => 'TUIN DER LUSTEN', en => 'The Garden of Earthly Delights', titles => ['The Garden of Earthly Delights'] }, }, 'specific testing 2'; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-assoc.t����������������������������������������������������������������000644 �000765 �000024 �00000001472 13341726377 020202� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::assoc'; use_ok $pkg; } is_deeply $pkg->new('fields', 'pairs.*.key', 'pairs.*.val')->fix( { pairs => [{key => 'year', val => 2009}, {key => 'subject', val => 'Perl'}] } ), { fields => {subject => 'Perl', year => 2009}, pairs => [{key => 'year', val => 2009}, {key => 'subject', val => 'Perl'}] }; is_deeply $pkg->new('', 'pairs.*.key', 'pairs.*.val')->fix( { pairs => [{key => 'year', val => 2009}, {key => 'subject', val => 'Perl'}] } ), { subject => 'Perl', year => 2009, pairs => [{key => 'year', val => 2009}, {key => 'subject', val => 'Perl'}] }, "add to root"; done_testing 3; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-validate.t�������������������������������������������������������������000644 �000765 �000024 �00000001302 13341726377 020653� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::validate'; use_ok $pkg; } my $validator; sub record {{name => {foo => 'bar'}, @_}} $validator = $pkg->new('', 'Simple', handler => sub { }); is_deeply $validator->fix(record), record, "no errors"; $validator = $pkg->new('', 'Simple', handler => sub {'fail'}); is_deeply $validator->fix(record), record(errors => ['fail']), "errors"; $validator = $pkg->new( 'name', 'Simple', handler => sub {$_[0]}, error_field => 'warnings', ); is_deeply $validator->fix(record), record(warnings => [{foo => 'bar'}]), "got errors with error_field"; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-in.t���������������������������������������������������������000644 �000765 �000024 �00000003717 13341726377 021430� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::in'; use_ok $pkg; } my $cond = $pkg->new('foo', 'bar'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); # Integers is_deeply $cond->fix({foo => 1, bar => 1}), {foo => 1, bar => 1, test => 'pass'}; is_deeply $cond->fix({foo => 1, bar => 2}), {foo => 1, bar => 2, test => 'fail'}; # Strings is_deeply $cond->fix({foo => "hotel", bar => "hotel"}), {foo => "hotel", bar => "hotel", test => 'pass'}; is_deeply $cond->fix({foo => "hotel", bar => "tango"}), {foo => "hotel", bar => "tango", test => 'fail'}; # Empty fields is_deeply $cond->fix({foo => "", bar => ""}), {foo => "", bar => "", test => 'pass'}; is_deeply $cond->fix({foo => undef, bar => undef}), {foo => undef, bar => undef, test => 'pass'}; is_deeply $cond->fix({}), {test => 'fail'}; # Arrays is_deeply $cond->fix({foo => [1, 2, 3], bar => [1, 2, 3]}), {foo => [1, 2, 3], bar => [1, 2, 3], test => 'pass'}; is_deeply $cond->fix({foo => [1, 2, 3], bar => [3, 2, 1]}), {foo => [1, 2, 3], bar => [3, 2, 1], test => 'fail'}; is_deeply $cond->fix({foo => [1, 2, 3], bar => [1, 2, 3, 4]}), {foo => [1, 2, 3], bar => [1, 2, 3, 4], test => 'fail'}; is_deeply $cond->fix({foo => [], bar => []}), {foo => [], bar => [], test => 'pass'}; # Hashes is_deeply $cond->fix({foo => {a => 'b'}, bar => {a => 'b'}}), {foo => {a => 'b'}, bar => {a => 'b'}, test => 'pass'}; # ... perl weirdnes ... is_deeply $cond->fix({foo => {a => 'b'}, bar => ['a', 'b']}), {foo => {a => 'b'}, bar => ['a', 'b'], test => 'pass'}; is_deeply $cond->fix( {foo => {a => 'b', c => [0, 1]}, bar => {a => 'b', c => [0, 1]}}), { foo => {a => 'b', c => [0, 1]}, bar => {a => 'b', c => [0, 1]}, test => 'pass' }; done_testing 15; �������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-expand_date.t����������������������������������������������������������000644 �000765 �000024 �00000000762 13341726377 021347� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::expand_date'; use_ok $pkg; } sub test_expand { my $expect = pop; my $data = pop; is_deeply $pkg->new(@_)->fix($data), $expect; } test_expand {date => '2001-11-09'} => {date => '2001-11-09', year => 2001, month => 11, day => 9}; test_expand 'date_created', {date_created => '2001:11'} => {date_created => '2001:11', year => 2001, month => 11}; done_testing 3; ��������������Catmandu-1.10/t/Catmandu-Store-Multi-Bag.t����������������������������������������������������������000644 �000765 �000024 �00000000306 13341726377 021214� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Store::Multi::Bag'; use_ok $pkg; } require_ok $pkg; done_testing(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-copy_field.t�����������������������������������������������������������000644 �000765 �000024 �00000001337 13341726377 021207� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::copy_field'; use_ok $pkg; } is_deeply $pkg->new('old', 'new')->fix({old => 'old'}), {old => 'old', new => 'old'}, "copy field at root"; is_deeply $pkg->new('old', 'deeply.nested.$append.new')->fix({old => 'old'}), {old => 'old', deeply => {nested => [{new => 'old'}]}}, "copy field creates intermediate path"; is_deeply $pkg->new('old.*', 'deeply.nested.$append.new') ->fix({old => ['old', 'older']}), { old => ['old', 'older'], deeply => {nested => [{new => 'old'}, {new => 'older'}]} }, "copy field creates intermediate path (with wildcard)"; done_testing 4; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-random.t���������������������������������������������������������������000644 �000765 �000024 �00000001510 13341726377 020343� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::random'; use_ok $pkg; } is_deeply $pkg->new('random', '1')->fix({}), {random => 0}, "add random field at root"; is_deeply $pkg->new('deeply.nested.$append.random', '1')->fix({}), {deeply => {nested => [{random => 0}]}}, "add field creates intermediate path"; is_deeply $pkg->new('deeply.nested.1.random', '1')->fix({}), {deeply => {nested => [undef, {random => 0}]}}, "add field creates intermediate path"; is_deeply $pkg->new('deeply.nested.$append.random', '1') ->fix({deeply => {nested => {}}}), {deeply => {nested => {}}}, "only add field if the path matches"; like $pkg->new('random', '10')->fix({})->{random}, qr/^[0-9]$/, "add a random number"; done_testing 6; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-valid.t������������������������������������������������������000644 �000765 �000024 �00000001213 13341726377 022106� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::valid'; use_ok $pkg; } my $cond; my $pass = [Catmandu::Fix::set_field->new('test', 'pass')]; my $fail = [Catmandu::Fix::set_field->new('test', 'fail')]; $cond = $pkg->new('', 'Simple', handler => sub { }); $cond->pass_fixes($pass); $cond->fail_fixes($fail); is_deeply $cond->fix({}), {test => 'pass'}; $cond = $pkg->new('', 'Simple', handler => sub {'fail'}); $cond->pass_fixes($pass); $cond->fail_fixes($fail); is_deeply $cond->fix({}), {test => 'fail'}; done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-set_array.t������������������������������������������������������������000644 �000765 �000024 �00000001446 13341726377 021064� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::set_array'; use_ok $pkg; } is_deeply $pkg->new('job')->fix({}), {job => []}, "set array at root"; is_deeply $pkg->new('deeply.nested.$append.job')->fix({}), {}, "set array doesn't create intermediate path"; is_deeply $pkg->new('deeply.nested.*.job') ->fix({deeply => {nested => [undef, {}]}}), {deeply => {nested => [undef, {job => []}]}}, "set deeply nested array"; is_deeply $pkg->new('deeply.nested.$append.job') ->fix({deeply => {nested => {}}}), {deeply => {nested => {}}}, "only set array if the path matches"; is_deeply $pkg->new('job', 1, "foo", 2)->fix({}), {job => [1, "foo", 2]}, "set array with initial contents"; done_testing 6; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Plugin-Readonly.t����������������������������������������������������������000644 �000765 �000024 �00000001653 13341726377 021360� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Store::Hash; my $pkg; BEGIN { $pkg = 'Catmandu::Plugin::Readonly'; use_ok $pkg; } require_ok $pkg; note("stores"); my $store = Catmandu::Store::Hash->new( bags => {data => {plugins => [qw(Readonly)]}}); ok $store->does('Catmandu::Store'), 'create Catmandu-Store with Readonly plugin'; my ($ret, $err) = $store->bag->add({_id => '001', name => 'Penguin'}); ok !defined($ret), 'add returned undef'; isa_ok $err, 'Catmandu::NotImplemented'; ($ret, $err) = $store->bag->get('001'); ok !defined($ret), 'get returned undef'; ok !defined($err), 'no error thrown'; ($ret, $err) = $store->bag->delete('001'); ok !defined($ret), 'delete returned undef'; isa_ok $err, 'Catmandu::NotImplemented'; ($ret, $err) = $store->drop; ok !defined($ret), 'drop returned undef'; isa_ok $err, 'Catmandu::NotImplemented'; done_testing; �������������������������������������������������������������������������������������Catmandu-1.10/t/release-perltidy.t������������������������������������������������������������������000644 �000765 �000024 �00000000526 13341726377 020065� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������ BEGIN { unless ($ENV{RELEASE_TESTING}) { print qq{1..0 # SKIP these tests are for release candidate testing\n}; exit } } use strict; use warnings; use Test::More; ## no critic eval 'use Test::Code::TidyAll 0.20'; plan skip_all => "Test::Code::TidyAll 0.20 required to check if the code is clean." if $@; tidyall_ok(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Base.t�����������������������������������������������������������������000644 �000765 �000024 �00000001335 13341726377 017742� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Util qw(is_code_ref); use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Base'; use_ok $pkg; } require_ok $pkg; { package T::FixBaseWithoutEmit; use Moo; package T::FixBase; use Moo; with $pkg; sub emit { '$_[0]->{fix} = "base"'; } package T::UseFixBase; use Moo; T::FixBase->import(as => 'do_fix_base'); } throws_ok {Role::Tiny->apply_role_to_package('T::FixBaseWithoutEmit', $pkg)} qr/missing emit/; my $fb = T::FixBase->new; can_ok $fb, 'emit'; can_ok $fb, 'import'; can_ok $fb, 'fix'; is_deeply {fix => 'base'}, T::UseFixBase::do_fix_base({}); done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Counter.t������������������������������������������������������������������000644 �000765 �000024 �00000001027 13341726377 017761� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Counter'; use_ok $pkg; } require_ok $pkg; { package T::Counter; use Moo; with $pkg; } my $c = T::Counter->new; can_ok $c, 'count'; can_ok $c, 'inc_count'; can_ok $c, 'dec_count'; can_ok $c, 'reset_count'; is $c->count, 0; $c->inc_count; is $c->count, 1; $c->dec_count; is $c->count, 0; $c->dec_count; is $c->count, 0; $c->inc_count; $c->reset_count; is $c->count, 0; done_testing 11; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Iterable.t�����������������������������������������������������������������000644 �000765 �000024 �00000012272 13341726377 020075� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Iterable'; use_ok $pkg; } require_ok $pkg; { package T::IterableWithoutGenerator; use Moo; package T::Iterable; use Moo; with $pkg; has data => (is => 'rw'); sub generator { my ($self) = @_; my $data = $self->data; my $n = 0; sub { return $data->[$n++] if $n < @$data; return; }; } package T::CountArgs; use Moo; sub count_args {@_ - 1} } throws_ok { Role::Tiny->apply_role_to_package('T::IterableWithoutGenerator', $pkg) } qr/missing generator/; my $iter = T::Iterable->new(data => [1, 2, 3]); is_deeply $iter->to_array, [1, 2, 3]; is $iter->count, 3; { my $d = []; my $n = $iter->each(sub {push @$d, $_[0]}); is_deeply $d, $iter->to_array; is $n, 3; } is_deeply $iter->tap(sub {$_[0]})->to_array, $iter->to_array; is $iter->any(sub {$_[0] < 3}), 1; is $iter->any(sub {$_[0] > 3}), 0; is $iter->many(sub {$_[0] < 3}), 1; is $iter->many(sub {$_[0] < 2}), 0; is $iter->all(sub {$_[0] > 0}), 1; is $iter->all(sub {$_[0] > 1}), 0; is_deeply $iter->map(sub {$_[0] + 1})->to_array, [2, 3, 4]; is_deeply $iter->map(sub {return $_[0] + 1, $_[0]})->to_array, [2, 1, 3, 2, 4, 3]; is_deeply $iter->map(sub {return})->to_array, []; is $iter->reduce(sub {my ($memo, $num) = @_; $memo + $num;}), 6; is $iter->reduce(1, sub {my ($memo, $num) = @_; $memo + $num;}), 7; is_deeply $iter->reduce( {}, sub {my ($memo, $num) = @_; $memo->{$num} = $num + 1; $memo;} ), {1 => 2, 2 => 3, 3 => 4}; is $iter->first, 1; is_deeply $iter->rest->to_array, [2, 3]; is_deeply $iter->take(1)->to_array, [1]; is_deeply $iter->take(2)->to_array, [1, 2]; is $iter->detect(sub {$_[0] == 3}), 3; is $iter->detect(sub {$_[0] == 4}), undef; is_deeply $iter->select(sub {$_[0] < 1})->to_array, []; is_deeply $iter->select(sub {$_[0] > 1})->to_array, [2, 3]; is_deeply $iter->grep (sub {$_[0] < 1})->to_array, []; is_deeply $iter->grep (sub {$_[0] > 1})->to_array, [2, 3]; is_deeply $iter->reject(sub {$_[0] < 2})->to_array, [2, 3]; is_deeply $iter->reject(sub {$_[0] > 0})->to_array, []; is $iter->detect(qr'[12]'), 1; is_deeply $iter->select(qr'[12]')->to_array, [1, 2]; is_deeply $iter->grep (qr'[12]')->to_array, [1, 2]; is_deeply $iter->reject(qr'[12]')->to_array, [3]; $iter->data([{num => 1}, {num => 2}, {num => 3}]); is_deeply $iter->detect(num => qr'[12]'), {num => 1}; is_deeply $iter->select(num => qr'[12]')->to_array, [{num => 1}, {num => 2}]; is_deeply $iter->grep (num => qr'[12]')->to_array, [{num => 1}, {num => 2}]; is_deeply $iter->reject(num => qr'[12]')->to_array, [{num => 3}]; is_deeply $iter->pluck('num')->to_array, $iter->map(sub {$_[0]->{num}})->to_array; $iter->data([T::CountArgs->new]); is_deeply $iter->invoke('count_args')->to_array, [0]; is_deeply $iter->invoke('count_args', 'arg1', 'arg2')->to_array, [2]; $iter->data([{a => {b => 'c'}}, 'd', {c => {b => 'a'}}]); is $iter->includes({c => {a => 'b'}}), 0; is $iter->contains({c => {a => 'b'}}), 0; is $iter->includes({c => {b => 'a'}}), 1; is $iter->contains({c => {b => 'a'}}), 1; $iter->data([1 .. 10]); is_deeply $iter->group(3)->invoke('to_array')->to_array, [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]; is_deeply $iter->group(1)->invoke('to_array')->to_array, [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]; $iter->data([]); is_deeply $iter->group(3)->invoke('to_array')->to_array, []; $iter->data([1, 2, 3]); is_deeply $iter->interleave->to_array, $iter->data; is_deeply $iter->interleave( T::Iterable->new(data => [4, 5, 6]), T::Iterable->new(data => [7, 8, 9]) )->to_array, [1, 4, 7, 2, 5, 8, 3, 6, 9]; is_deeply $iter->interleave(T::Iterable->new(data => [4, 5]))->to_array, [1, 4, 2, 5, 3]; $iter->data([1, 2]); is_deeply $iter->interleave(T::Iterable->new(data => [4, 5, 6]))->to_array, [1, 4, 2, 5, 6]; $iter->data([2, 1, '10foo', 'foo10', -1, -2]); is $iter->min, -2; is $iter->max, 2; $iter->data([]); is $iter->min, undef; is $iter->max, undef; $iter->data(['foo']); is $iter->min, undef; is $iter->max, undef; $iter->data(['foo', 'oof']); is $iter->min, undef; is $iter->max, undef; $iter->data([{n => 10}, {n => 9}, {n => 1}]); is $iter->min(sub {shift->{n}}), 1; is $iter->max(sub {shift->{n}}), 10; $iter->data([{n => 10}, {n => 9}, {n => 1}]); is_deeply $iter->stop_if(sub {shift->{n} == 9})->to_array, [{n => 10}]; is_deeply $iter->stop_if(sub {shift->{n} == 1})->to_array, [{n => 10}, {n => 9}]; is_deeply $iter->sorted('n')->to_array, [{n => 1}, {n => 10}, {n => 9}]; $iter->data([3, 21, 1]); is_deeply $iter->sorted->to_array, [1, 21, 3]; is_deeply $iter->sorted(sub {$_[1] <=> $_[0]})->to_array, [21, 3, 1]; $iter->data([]); is $iter->run, 0; $iter->data([1, 2]); is $iter->run, 1; my $has_run = 0; $iter->tap(sub {$has_run = 1})->run; is $has_run, 1; # external iteration { $iter->data([{n => 1}, {n => 2}, {n => 3}]); my $iter_data = []; while (my $data = $iter->next) { push @$iter_data, $data; } is_deeply $iter->data, $iter_data; is $iter->next, undef; $iter->rewind; is_deeply $iter->next, {n => 1}; } done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-compile.t��������������������������������������������������������������000644 �000765 �000024 �00000000640 13341726377 020473� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester::CaptureExternal; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::compile'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => ['compile', 'nothing()']); ok $result->stdout; is $result->error, undef, 'threw no exceptions'; done_testing 4; ������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Bag.t����������������������������������������������������������������������000644 �000765 �000024 �00000011301 13341726377 017027� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; use Catmandu::Util; my $pkg; BEGIN { $pkg = 'Catmandu::Bag'; use_ok $pkg; } require_ok $pkg; { package T::BagWithoutGet; use Moo; sub generator { } sub add { } sub delete { } sub delete_all { } package T::BagWithoutDelete; use Moo; sub generator { } sub add { } sub get { } sub delete_all { } package T::BagWithoutDeleteAll; use Moo; sub generator { } sub add { } sub get { } sub delete { } package T::Store; use Moo; with 'Catmandu::Store'; package T::Bag; #mock array based bag use Moo; use Clone; with $pkg; has bag => (is => 'ro', default => sub {[]}); sub generator { my $bag = $_[0]->bag; my $n = 0; sub { return $bag->[$n++] if $n < @$bag; return; }; } sub add { my ($self, $data) = @_; $data = Clone::clone($data); my $bag = $self->bag; my $key = $self->id_key; for (my $i = 0; $i < @$bag; $i++) { if ($bag->[$i]->{$key} eq $data->{$key}) { $bag->[$i] = $data; return; } } push @$bag, $data; } sub get { my ($self, $id) = @_; my $bag = $self->bag; my $key = $self->id_key; for (my $i = 0; $i < @$bag; $i++) { if ($bag->[$i]->{$key} eq $id) { return $bag->[$i]; } } return; } sub delete { my ($self, $id) = @_; my $bag = $self->bag; my $key = $self->id_key; for (my $i = 0; $i < @$bag; $i++) { if ($bag->[$i]->{$key} eq $id) { splice @$bag, $i, 1; return; } } } sub delete_all { my ($self) = @_; my $bag = $self->bag; splice @$bag; } package T::BagData; use Moo; package T::IdGenerator; use Catmandu::Util; use Moo; with 'Catmandu::Bag::IdGenerator'; sub generate { my ($self, $bag) = @_; die unless Catmandu::Util::is_instance($bag, 'T::Bag'); 1; } } throws_ok {Role::Tiny->apply_role_to_package('T::BagWithoutGet', $pkg)} qr/missing get/; throws_ok {Role::Tiny->apply_role_to_package('T::BagWithoutDelete', $pkg)} qr/missing delete/; throws_ok {Role::Tiny->apply_role_to_package('T::BagWithoutDeleteAll', $pkg)} qr/missing delete_all/; my $b = T::Bag->new(store => T::Store->new, name => 'test'); ok $b->does('Catmandu::Iterable'); ok $b->does('Catmandu::Addable'); can_ok $b, 'generate_id'; can_ok $b, 'commit'; can_ok $b, 'exists'; can_ok $b, 'get_or_add'; can_ok $b, 'to_hash'; ok Catmandu::Util::is_value($b->generate_id); throws_ok {$b->add(T::BagData->new)} qr/should be hash ref/; throws_ok {$b->add([])} qr/should be hash ref/; throws_ok {$b->add("")} qr/should be hash ref/; throws_ok {$b->add({_id => T::BagData->new})} qr/should be value/; throws_ok {$b->add({_id => *STDOUT})} qr/should be value/; lives_ok {$b->add({_id => ""})}; lives_ok {$b->add({_id => "0"})}; lives_ok {$b->add({_id => 0})}; $b->add_many([{}, {}, {}]); $b->delete_all; is $b->count, 0; my $data = {a => {shrimp => 'shrieks'}}; $b->add($data); ok Catmandu::Util::is_value($data->{_id}); is_deeply $b->get($data->{_id}), $data; is $b->exists($data->{_id}), 1; $b->delete($data->{_id}); is $b->get($data->{_id}), undef; is $b->exists($data->{_id}), 0; $b->add($data); is_deeply $b->get_or_add($data->{_id}, {a => {pony => 'wails'}}), $data; is_deeply $b->to_hash, {$data->{_id} => $data}; $b->touch('datestamp'); ok $b->all(sub {$_[0]->{datestamp}}); # store custom key_prefix $b = T::Bag->new(store => T::Store->new(key_prefix => 'my_'), name => 'test'); is $b->id_key, 'my_id'; # custom id_key $b = T::Bag->new( store => T::Store->new(key_prefix => '__'), name => 'test', id_key => 'my_id' ); $data = $b->add({}); is $data->{_id}, undef; is $data->{__id}, undef; ok exists($data->{my_id}); isnt $b->get($data->{my_id}), undef; $b->delete($data->{my_id}); is $b->get($data->{my_id}), undef; # id_field alias $b = T::Bag->new( store => T::Store->new(key_prefix => '__'), name => 'test', id_field => 'my_id' ); $data = $b->add({}); is $data->{_id}, undef; is $data->{__id}, undef; ok exists($data->{my_id}); isnt $b->get($data->{my_id}), undef; $b->delete($data->{my_id}); is $b->get($data->{my_id}), undef; # custom id generator $b = T::Bag->new( store => T::Store->new, name => 'test', id_generator => T::IdGenerator->new, ); lives_ok {$b->generate_id}; done_testing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-iterate.t���������������������������������������������������������000644 �000765 �000024 �00000004366 13341726377 021406� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::iterate'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do iterate(start:0,end:9) add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do iterate() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do iterate(start:0,end:9) unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do iterate(start:0,end:9) if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do iterate(start:0,end:9) reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok !defined $fixer->fix({foo => 'bar'}), 'testing reject'; $fixes = <<EOF; do iterate(start:0,end:9) select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do iterate(start:0,end:3) do iterate(start:0,end:3) do iterate(start:0,end:3) add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'before/after testing'; $fixes = <<EOF; add_field(before,ok) do iterate(start:0,end:9) add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<EOF; do iterate(start:0,end:9,var:i) copy_field(i,test.\$append) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {test => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}, 'specific testing'; done_testing 12; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Iterator.t�����������������������������������������������������������������000644 �000765 �000024 �00000000426 13341726377 020135� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Iterator'; use_ok $pkg; } require_ok $pkg; my $g = sub { sub { } }; my $i = $pkg->new($g); ok $i->does('Catmandu::Iterable'); done_testing 3; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-Count.t�����������������������������������������������������������000644 �000765 �000024 �00000000754 13341726377 021246� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::Count'; use_ok $pkg; } require_ok $pkg; my $data = [ {'a' => 'moose', b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'} ]; my $out = ""; my $exporter = $pkg->new(file => \$out); isa_ok $exporter, $pkg; $exporter->add($_) for @$data; $exporter->commit; is $out, "3\n", "Null is empty ok"; is $exporter->count, 3, "Count ok"; done_testing; ��������������������Catmandu-1.10/t/Catmandu-Exporter-Text.t������������������������������������������������������������000644 �000765 �000024 �00000002210 13341726377 021067� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use YAML::XS (); BEGIN {use_ok 'Catmandu::Exporter::Text'} require_ok 'Catmandu::Exporter::Text'; { my $data = [{'a' => 'moose'}, {'a' => 'pony'}, {'a' => ['shrimp', 'lobster']}]; my $file = ""; my $exporter = Catmandu::Exporter::Text->new(file => \$file, field_sep => ','); isa_ok $exporter, 'Catmandu::Exporter::Text'; $exporter->add($_) for @$data; $exporter->commit; is $exporter->count, 3, 'Count ok'; my $text = <<EOF; moose pony shrimp,lobster EOF is $file, $text, 'Text doc hash, default line_sep'; } { my $data = [{'a' => 'moose'}, {'a' => 'pony'}, {'a' => ['shrimp', 'lobster']}]; my $file = ""; my $exporter = Catmandu::Exporter::Text->new( file => \$file, line_sep => '\t', field_sep => ',' ); isa_ok $exporter, 'Catmandu::Exporter::Text'; $exporter->add_many($data); # don't call commit to test streaming output is $exporter->count, 3, 'Count ok'; is $file, "moose\tpony\tshrimp,lobster\t", 'Text doc array'; } done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-int.t������������������������������������������������������������������000644 �000765 �000024 �00000002152 13341726377 017660� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::int'; use_ok $pkg; } is_deeply $pkg->new('int')->fix({}), {}; is_deeply $pkg->new('int')->fix({int => ""}), {int => 0}; is_deeply $pkg->new('int')->fix({int => "0"}), {int => 0}; is_deeply $pkg->new('int')->fix({int => "+0"}), {int => 0}; is_deeply $pkg->new('int')->fix({int => "-0"}), {int => 0}; is_deeply $pkg->new('int')->fix({int => "abc-123"}), {int => -123}; is_deeply $pkg->new('int')->fix({int => "abc+123.00005"}), {int => 123}; is_deeply $pkg->new('int')->fix({int => "abc+123.99999"}), {int => 123}; is_deeply $pkg->new('int')->fix({int => []}), {int => 0}; is_deeply $pkg->new('int')->fix({int => [1, 2, 3]}), {int => 3}; is_deeply $pkg->new('int')->fix({int => [1, {2 => 3}]}), {int => 2}; is_deeply $pkg->new('int')->fix({int => {}}), {int => 0}; is_deeply $pkg->new('int')->fix({int => {3 => 4, 1 => 2}}), {int => 2}; is_deeply $pkg->new('int')->fix({int => {3 => {4 => 5}, 1 => 2}}), {int => 2}; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/planets.tab�������������������������������������������������������������������������000644 �000765 �000024 �00000000077 13341726377 016565� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������english latin Sun Sol Mercury Mercurius Moon Luna Earth Terra �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-import.t���������������������������������������������������������������000644 �000765 �000024 �00000000721 13341726377 020355� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester::CaptureExternal; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::import'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app( qq|Catmandu::CLI| => [qw(import CSV -v --file t/planets.csv to Hash)]); like $result->stderr, qr/imported 4 items/, 'imported 4 items'; is $result->error, undef, 'threw no exceptions'; done_testing 4; �����������������������������������������������Catmandu-1.10/t/Catmandu-Fix-format.t���������������������������������������������������������������000644 �000765 �000024 �00000001121 13341726377 020351� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::format'; use_ok $pkg; } is_deeply $pkg->new('name', '<%-10s>')->fix({name => 'Joe'}), {name => "<Joe >"}, "formatted strings"; is_deeply $pkg->new('names', '<%-10s> <%-10s>') ->fix({names => ['Alice', 'Bob']}), {names => "<Alice > <Bob >"}, "formatted arrays"; is_deeply $pkg->new('data', '<%-10s> <%-10s>') ->fix({data => {name => "Alice"}}), {data => "<name > <Alice >"}, "formatted hashes"; done_testing 4; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/��������������������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 015171� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-identity.t��������������������������������������������������������000644 �000765 �000024 �00000004624 13341726377 021577� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::identity'; use_ok $pkg; } require_ok $pkg; my $monad = Catmandu::Fix::Bind::identity->new(); my $f = sub {$_[0]->{demo} = 1; $_[0]}; my $g = sub {$_[0]->{demo} += 1; $_[0]}; is_deeply $monad->bind($monad->unit({}), $f), $f->({}), "left unit monadic law"; is_deeply $monad->bind($monad->unit({}), sub {$monad->unit(shift)}), $monad->unit({}), "right unit monadic law"; is_deeply $monad->bind($monad->bind($monad->unit({}), $f), $g), $monad->bind($monad->unit({}), sub {$monad->bind($f->($_[0]), $g)}), "associative monadic law"; my $fixes = <<EOF; do identity() add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do identity() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do identity() unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do identity() if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do identity() reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok !defined $fixer->fix({foo => 'bar'}), 'testing reject'; $fixes = <<EOF; do identity() select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do identity() do identity() do identity() add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing nesting'; $fixes = <<EOF; add_field(before,ok) do identity() add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; done_testing 14; ������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-hash.t�����������������������������������������������������������������000644 �000765 �000024 �00000000466 13341726377 020017� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::hash'; use_ok $pkg; } is_deeply $pkg->new('tags')->fix({tags => ["name", "Peter", "age", 13]}), {tags => {name => 'Peter', age => 13}}, "array to hash"; done_testing 2; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-clone.t����������������������������������������������������������������000644 �000765 �000024 �00000000534 13341726377 020170� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::clone'; use_ok $pkg; } my $data = {foo => 'bar'}; my $cloned = $pkg->new->fix($data); is_deeply $data, $cloned, "cloned data is equal"; isnt $data, $cloned, "cloned data is another object"; done_testing 3; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/variables.fix�����������������������������������������������������������������������000644 �000765 �000024 �00000000256 13341726377 017106� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������move_field({{source}}, {{target}}) {{#others}} add_field(other_{{.}},{{.}}) {{/others}} {{#beer}} add_field(drunk,yes) {{/beer}} {{#milk}} set_field(drunk,no) {{/milk}}��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-capitalize.t�����������������������������������������������������������000644 �000765 �000024 �00000000706 13341726377 021216� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::capitalize'; use_ok $pkg; } is_deeply $pkg->new('name')->fix({name => 'joe'}), {name => "Joe"}, "capitalize value"; is_deeply $pkg->new('names.*.name') ->fix({names => [{name => 'joe'}, {name => 'rick'}]}), {names => [{name => 'Joe'}, {name => 'Rick'}]}, "capitalize wildcard values"; done_testing 3; ����������������������������������������������������������Catmandu-1.10/t/csv_test.json�����������������������������������������������������������������������000644 �000765 �000024 �00000000044 13341726377 017146� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������{"ok":1,"foo":"bar"} {"fob":"test"} ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Plugin-Datestamps.t��������������������������������������������������������000644 �000765 �000024 �00000005162 13341726377 021707� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Store::Hash; my $pkg; BEGIN { $pkg = 'Catmandu::Plugin::Datestamps'; use_ok $pkg; } require_ok $pkg; my $store = Catmandu::Store::Hash->new( bags => {data => {plugins => [qw(Datestamps)]}}); ok $store->does('Catmandu::Store'), 'create Catmandu-Store with Datestamps plugin'; ok $store->bag->add({_id => '001', name => 'Penguin'}), 'store something'; ok $store->bag->get('001'), 'get 001'; ok $store->bag->get('001')->{date_created}, 'has date_created'; ok $store->bag->get('001')->{date_updated}, 'has date_updated'; my $created = $store->bag->get('001')->{date_created}; my $updated = $store->bag->get('001')->{date_updated}; my $rec = $store->bag->get('001'); $rec->{name} = 'John'; sleep 2; ok $store->bag->add($rec), 'update something'; $rec = $store->bag->get('001'); ok $rec->{date_updated}, 'has date_updated'; ok $rec->{date_updated} ne $updated, 'dates change'; is $rec->{date_created}, $created, 'but created dates dont change'; # formats like $rec->{date_created}, qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/; like $rec->{date_updated}, qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/; $store = Catmandu::Store::Hash->new( bags => { data => { plugins => [qw(Datestamps)], datestamp_format => 'iso_date_time' } } ); $store->bag->add({_id => '001', name => 'Penguin'}); $rec = $store->bag->get('001'); like $rec->{date_created}, qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/; $store = Catmandu::Store::Hash->new( bags => { data => { plugins => [qw(Datestamps)], datestamp_format => 'iso_date_time_millis' } } ); $store->bag->add({_id => '001', name => 'Penguin'}); $rec = $store->bag->get('001'); like $rec->{date_created}, qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z/; $store = Catmandu::Store::Hash->new( bags => { data => {plugins => [qw(Datestamps)], datestamp_format => '%Y/%m/%d'} } ); $store->bag->add({_id => '001', name => 'Penguin'}); $rec = $store->bag->get('001'); like $rec->{date_created}, qr/^\d{4}\/\d{2}\/\d{2}/; #fields $store = Catmandu::Store::Hash->new( bags => { data => { plugins => [qw(Datestamps)], datestamp_created_field => 'created', datestamp_updated_field => 'updated' } } ); $store->bag->add({_id => '001', name => 'Penguin'}); $rec = $store->bag->get('001'); like $rec->{created}, qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/; like $rec->{updated}, qr/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Bind-Group.t�����������������������������������������������������������000644 �000765 �000024 �00000000340 13341726377 021031� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::Group'; use_ok $pkg; } require_ok $pkg; done_testing 2; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-substring.t������������������������������������������������������������000644 �000765 �000024 �00000001272 13341726377 021110� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::substring'; use_ok $pkg; } is_deeply $pkg->new('rel', 5, 3)->fix({rel => "grandson"}), {rel => "son"}; lives_ok {$pkg->new('rel', 9, 3)->fix({rel => "grandson"})}; is_deeply $pkg->new('rel', 9, 3)->fix({rel => "grandson"}), {rel => "grandson"}, "ignore substr outside of string"; is_deeply $pkg->new('rel', 5, 3, 'daughter')->fix({rel => "grandson"}), {rel => "granddaughter"}; is_deeply $pkg->new('arr.*.rel', 5) ->fix({arr => [{rel => "grandson"}, {rel => "granddaughter"}]}), {arr => [{rel => "son"}, {rel => "daughter"}]}; done_testing 6; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/log4perl.conf�����������������������������������������������������������������������000644 �000765 �000024 �00000001111 13341726377 017014� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������log4perl.category.Catmandu=DEBUG,STDERR log4perl.categoty.Catmandu::Fix::log=TRACE,STDERR log4perl.appender.STDOUT=Log::Log4perl::Appender::Screen log4perl.appender.STDOUT.stderr=0 log4perl.appender.STDOUT.utf8=1 log4perl.appender.STDOUT.layout=PatternLayout log4perl.appender.STDOUT.layout.ConversionPattern=%d [%P] - %p %l %M time=%r : %m%n log4perl.appender.STDERR=Log::Log4perl::Appender::Screen log4perl.appender.STDERR.stderr=1 log4perl.appender.STDERR.utf8=1 log4perl.appender.STDERR.layout=PatternLayout log4perl.appender.STDERR.layout.ConversionPattern=%d [%P] - %l : %m%n�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/author-pod-syntax.t�����������������������������������������������������������������000644 �000765 �000024 �00000000454 13341726377 020221� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-prepend.t��������������������������������������������������������������000644 �000765 �000024 �00000000751 13341726377 020526� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::prepend'; use_ok $pkg; } is_deeply $pkg->new('name', 'mr. ')->fix({name => 'smith'}), {name => "mr. smith"}, "prepend to value"; is_deeply $pkg->new('names.*.name', 'mr. ') ->fix({names => [{name => 'smith'}, {name => 'jones'}]}), {names => [{name => 'mr. smith'}, {name => 'mr. jones'}]}, "prepend to wildcard values"; done_testing 3; �����������������������Catmandu-1.10/t/Catmandu-Importer-JSON.t������������������������������������������������������������000644 �000765 �000024 �00000001442 13341726377 020713� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::JSON'; use_ok $pkg; } require_ok $pkg; my $data = [{name => 'Patrick', age => '39'}, {name => 'Nicolas', age => '34'},]; my $json = <<EOF; {"name":"Patrick","age":"39"} {"name":"Nicolas","age":"34"} EOF my $importer = $pkg->new(file => \$json); isa_ok $importer, $pkg; is_deeply $importer->to_array, $data; $json = <<EOF; [ {"name":"Patrick","age":"39"}, {"name":"Nicolas","age":"34"} ] EOF $importer = $pkg->new(file => \$json); is_deeply $importer->to_array, $data; $json = <<EOF; {"name":"Patrick","age":"39"}, {"name":"Nicolas","age":"34"} EOF $importer = $pkg->new(file => \$json); is_deeply $importer->to_array, $data; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-MultiIterator.t������������������������������������������������������������000644 �000765 �000024 �00000000672 13341726377 021153� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::ArrayIterator; my $pkg; BEGIN { $pkg = 'Catmandu::MultiIterator'; use_ok $pkg; } require_ok $pkg; my $data = [{n => 0}, {n => 1}, {n => 2},]; my $it = $pkg->new( Catmandu::ArrayIterator->new([@$data]), Catmandu::ArrayIterator->new([@$data]), ); isa_ok $it, $pkg; is_deeply $it->to_array, [@$data, @$data]; done_testing; ����������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-retain_field.t���������������������������������������������������������000644 �000765 �000024 �00000000546 13341726377 021520� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::retain_field'; use_ok $pkg; } is_deeply $pkg->new('keep') ->fix({remove => 'me', also => 'me', keep => 'me'}), {keep => 'me'}; is_deeply $pkg->new('unknown')->fix({remove => 'me', also => 'me'}), {}; done_testing 3; ����������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-is_true.t����������������������������������������������������000644 �000765 �000024 �00000002754 13341726377 022474� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::is_true'; use_ok $pkg; } my $cond = $pkg->new('foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); # Integers is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'pass'}; is_deeply $cond->fix({foo => 0}), {foo => 0, test => 'fail'}; # Strings is_deeply $cond->fix({foo => "true"}), {foo => "true", test => 'pass'}; is_deeply $cond->fix({foo => "false"}), {foo => "false", test => 'fail'}; # Boolean my $hash = decode_json(qq|{"foo":true}|); is_deeply $cond->fix($hash), {%$hash, test => 'pass'}; my $hash2 = decode_json(qq|{"foo":false}|); is_deeply $cond->fix($hash2), {%$hash2, test => 'fail'}; # Strict $cond = $pkg->new('foo', 'strict', 1); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => 1}), {foo => 1, test => 'fail'}; is_deeply $cond->fix({foo => '1'}), {foo => '1', test => 'fail'}; is_deeply $cond->fix({foo => 'true'}), {foo => 'true', test => 'fail'}; is_deeply $cond->fix({foo => Cpanel::JSON::XS::true}), {foo => Cpanel::JSON::XS::true, test => 'pass'}; is_deeply $cond->fix({foo => Cpanel::JSON::XS::false}), {foo => Cpanel::JSON::XS::false, test => 'fail'}; done_testing; ��������������������Catmandu-1.10/t/Catmandu-Fix-Bind-timeout.t���������������������������������������������������������000644 �000765 �000024 �00000005607 13341726377 021436� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix; use Catmandu::Importer::Mock; use Catmandu::Util qw(:is); my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Bind::timeout'; use_ok $pkg; } require_ok $pkg; my $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') add_field(foo,bar) end EOF my $fixer = Catmandu::Fix->new(fixes => [$fixes]); ok $fixer , 'create fixer'; is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing add_field'; $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing zero fix functions'; $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') unless exists(foo) add_field(foo,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({}), {foo => 'bar'}, 'testing unless'; $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') if exists(foo) add_field(foo2,bar) end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', foo2 => 'bar'}, 'testing if'; $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') reject exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is $fixer->fix({foo => 'bar'}), undef, 'testing reject'; $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') select exists(foo) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'testing select'; $fixes = <<EOF; do timeout(time => 2 , units => 'seconds') do timeout(time => 2 , units => 'seconds') do timeout(time => 2 , units => 'seconds') add_field(foo,bar) end end end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'before/after testing'; $fixes = <<EOF; add_field(before,ok) do timeout(time => 2 , units => 'seconds') add_field(inside,ok) end add_field(after,ok) EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar', before => 'ok', inside => 'ok', after => 'ok'}, 'before/after testing'; $fixes = <<EOF; do timeout(time => 0.1 , units => 'seconds') add_field(test,ok) sleep(0.5,seconds) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'specific testing'; $fixes = <<EOF; do timeout(time => 0.1 , units => 'seconds') sleep(0.5,seconds) add_field(test,ok) end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'specific testing'; $fixes = <<EOF; do timeout(time => 0.1 , units => 'seconds') sleep(0.5,seconds) reject() end EOF $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'bar'}), {foo => 'bar'}, 'specific testing'; done_testing; �������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-all_equal.t��������������������������������������������������000644 �000765 �000024 �00000001626 13341726377 022756� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::all_equal'; use_ok $pkg; } my $cond = $pkg->new('string', 'foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({string => 'foo'}), {string => 'foo', test => 'pass'}; is_deeply $cond->fix({string => 'foobar'}), {string => 'foobar', test => 'fail'}; $cond = $pkg->new('string.*', 'foo'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({string => ['foo', 'foo']}), {string => ['foo', 'foo'], test => 'pass'}; is_deeply $cond->fix({string => ['foo', 'foobar']}), {string => ['foo', 'foobar'], test => 'fail'}; done_testing 5; ����������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Buffer.t�������������������������������������������������������������������000644 �000765 �000024 �00000001617 13341726377 017560� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Buffer'; use_ok $pkg; } require_ok $pkg; { package T::Buffer; use Moo; with $pkg; } my $b = T::Buffer->new; can_ok $b, 'buffer_size'; can_ok $b, 'buffer'; can_ok $b, 'default_buffer_size'; can_ok $b, 'buffer_used'; can_ok $b, 'buffer_is_full'; can_ok $b, 'buffer_add'; can_ok $b, 'clear_buffer'; is $b->buffer_size, $b->default_buffer_size; $b = T::Buffer->new(buffer_size => 5); is $b->buffer_size, 5; is $b->buffer_used, 0; $b->buffer_add(1, 2, 3); is $b->buffer_used, 3; is_deeply $b->buffer, [1, 2, 3]; is $b->buffer_is_full, 0; $b->buffer_add(4, 5, 6); is $b->buffer_used, 6; is_deeply $b->buffer, [1, 2, 3, 4, 5, 6]; is $b->buffer_is_full, 1; $b->clear_buffer; is $b->buffer_used, 0; is_deeply $b->buffer, []; is $b->buffer_is_full, 0; done_testing 21; �����������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-rename.t���������������������������������������������������������������000644 �000765 �000024 �00000000460 13341726377 020335� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::rename'; use_ok $pkg; } is_deeply $pkg->new('dots', '\.', '-') ->fix({dots => {'a.b' => [{'c.d' => ""}]}}), {dots => {'a-b' => [{'c-d' => ""}]}}; done_testing; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-copy.t�����������������������������������������������������������������000644 �000765 �000024 �00000000635 13341726377 020021� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::copy'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw(copy -v test to Hash)]); like $result->stderr, qr/copied 4 items/, 'copied 4 items'; is $result->error, undef, 'threw no exceptions'; done_testing; ���������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-any_match.t��������������������������������������������������000644 �000765 �000024 �00000002144 13341726377 022756� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::any_match'; use_ok $pkg; } { my $cond = $pkg->new('foo', 'abc'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => qw(abc)}), {foo => qw(abc), test => 'pass'}; is_deeply $cond->fix({foo => qw(cbc)}), {foo => qw(cbc), test => 'fail'}; } { my $cond = $pkg->new('foo.*', 'abc'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({foo => [qw(abc)]}), {foo => [qw(abc)], test => 'pass'}; is_deeply $cond->fix({foo => [qw(abc abc)]}), {foo => [qw(abc abc)], test => 'pass'}; is_deeply $cond->fix({foo => [qw(abc cbc)]}), {foo => [qw(abc cbc)], test => 'pass'}; is_deeply $cond->fix({foo => [qw(cbc cbc)]}), {foo => [qw(cbc cbc)], test => 'fail'}; } done_testing 7; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-Null.t������������������������������������������������������������000644 �000765 �000024 �00000000750 13341726377 021064� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::Null'; use_ok $pkg; } require_ok $pkg; my $data = [ {'a' => 'moose', b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'} ]; my $out = ""; my $exporter = $pkg->new(file => \$out); isa_ok $exporter, $pkg; $exporter->add($_) for @$data; $exporter->commit; is $out, '', "Null is empty ok"; is $exporter->count, 3, "Count ok"; done_testing; ������������������������Catmandu-1.10/t/Catmandu-Serializer.t���������������������������������������������������������������000644 �000765 �000024 �00000001161 13341726377 020452� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use lib 't/lib'; my $pkg; BEGIN { $pkg = 'Catmandu::Serializer'; use_ok $pkg; } require_ok $pkg; { package T::Serializer; use Moo; with $pkg; } my $t = T::Serializer->new; can_ok $t, qw(serialize deserialize serializer serialization_format); isa_ok $t->serializer, 'Catmandu::Serializer::json'; my $data = {foo => 'bar'}; is_deeply $data, $t->deserialize($t->serialize($data)); $t = T::Serializer->new(serialization_format => 'dumper'); isa_ok $t->serializer, 'Catmandu::Serializer::dumper'; done_testing 6; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-count.t����������������������������������������������������������������000644 �000765 �000024 �00000001145 13341726377 020217� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::count'; use_ok $pkg; } is_deeply $pkg->new('tags')->fix({tags => [qw(smelly stinky malodorous)]}), {tags => 3}; is_deeply $pkg->new('authors.*')->fix( { authors => [{firstname => "Mark", lastname => "Twain"}, {name => "Virgil"}] } ), {authors => [2, 1]}; is_deeply $pkg->new('name')->fix({name => "Huckleberry Finn"}), {name => "Huckleberry Finn"}; is_deeply $pkg->new('name')->fix({name => undef}), {name => undef}; done_testing 5; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/script.pl���������������������������������������������������������������������������000644 �000765 �000024 �00000000303 13341726377 016260� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use Catmandu::Fix; sub { my ($data, $reject) = @_; if ($data->{answer} == 2) { return $reject; } else { $data->{answer} ||= 42; return $data; } } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-add_field.t������������������������������������������������������������000644 �000765 �000024 �00000001624 13341726377 020764� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::add_field'; use_ok $pkg; } is_deeply $pkg->new('job', 'fixer')->fix({}), {job => "fixer"}, "add field at root"; is_deeply $pkg->new('deeply.nested.$append.job', 'fixer')->fix({}), {deeply => {nested => [{job => "fixer"}]}}, "add field creates intermediate path"; is_deeply $pkg->new('deeply.nested.1.job', 'fixer')->fix({}), {deeply => {nested => [undef, {job => "fixer"}]}}, "add field creates intermediate path"; is_deeply $pkg->new('deeply.nested.$append.job', 'fixer') ->fix({deeply => {nested => {}}}), {deeply => {nested => {}}}, "only add field if the path matches"; is_deeply $pkg->new('test', '0123')->fix({}), {test => '0123'}, "add a number"; is_deeply $pkg->new('test')->fix({}), {test => undef}, "set key to undef"; done_testing; ������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Importer-CSV.t�������������������������������������������������������������000644 �000765 �000024 �00000001522 13341726377 020574� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::CSV'; use_ok $pkg; } require_ok $pkg; my $data = [{name => 'Patrick', age => '39'}, {name => 'Nicolas', age => '34'},]; my $csv = <<EOF; "name","age" "Patrick","39" "Nicolas","34" EOF my $importer = $pkg->new(file => \$csv); isa_ok $importer, $pkg; is_deeply $importer->to_array, $data; $data = [{0 => 'Patrick', 1 => '39'}, {0 => 'Nicolas', 1 => '34'},]; $csv = <<EOF; "Patrick","39" "Nicolas","34" EOF $importer = $pkg->new(file => \$csv, header => 0); is_deeply $importer->to_array, $data; $data = [{name => 'Nicolas', age => '34'},]; $csv = <<EOF; "name" "age" "Nicolas" "34" EOF $importer = $pkg->new(file => \$csv, sep_char => '\t'); is_deeply $importer->to_array, $data; done_testing; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Importer-TSV.t�������������������������������������������������������������000644 �000765 �000024 �00000001432 13341726377 020615� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::TSV'; use_ok $pkg; } require_ok $pkg; my $data = [{name => 'Patrick', age => '44'}, {name => 'Nicolas', age => '39'},]; my $tsv = <<EOF; name\tage Patrick\t44 Nicolas\t39 EOF my $importer = $pkg->new(file => \$tsv); isa_ok $importer, $pkg; is_deeply $importer->to_array, $data; $data = [{0 => 'Patrick', 1 => '44'}, {0 => 'Nicolas', 1 => '39'},]; $tsv = <<EOF; Patrick\t44 Nicolas\t39 EOF $importer = $pkg->new(file => \$tsv, header => 0); is_deeply $importer->to_array, $data; $tsv = <<EOF; Patrick 44 Nicolas 39 EOF $importer = $pkg->new(file => \$tsv, header => 0, sep_char => ' '); is_deeply $importer->to_array, $data; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-lookup.t���������������������������������������������������������������000644 �000765 �000024 �00000002045 13341726377 020400� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::lookup'; use_ok $pkg; } is_deeply $pkg->new('planet', 't/planets.csv')->fix({planet => 'Earth'}), {planet => 'Terra'}; is_deeply $pkg->new('planet', 't/planets.csv')->fix({planet => 'Bartledan'}), {planet => 'Bartledan'}; is_deeply $pkg->new('planet', 't/planets.csv', 'delete', 1) ->fix({planet => 'Bartledan'}), {}; is_deeply $pkg->new('planets.*', 't/planets.csv', 'delete', 1) ->fix({planets => ['Bartledan', 'Earth']}), {planets => ['Terra']}; is_deeply $pkg->new('planet', 't/planets.csv', 'default', 'Mars') ->fix({planet => 'Bartledan'}), {planet => 'Mars'}; is_deeply $pkg->new('planets.*', 't/planets.csv', 'default', 'Mars') ->fix({planets => ['Bartledan', 'Earth']}), {planets => ['Mars', 'Terra']}, 'default with wildcard'; is_deeply $pkg->new('planet', 't/planets.tab', 'sep_char', "\t") ->fix({planet => 'Earth'}), {planet => 'Terra'}, "pass csv options"; done_testing 8; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-IdGenerator.t��������������������������������������������������������������000644 �000765 �000024 �00000000553 13341726377 020550� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Store::Hash; my $bag = Catmandu::Store::Hash->new(bags => {data => {id_generator => 'Mock'}}) ->bag; isa_ok $bag->id_generator, 'Catmandu::IdGenerator::Mock'; $bag->add_many([{}, {}, {}]); is_deeply $bag->pluck('_id')->to_array, [0, 1, 2]; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-replace_all.t����������������������������������������������������������000644 �000765 �000024 �00000000764 13341726377 021340� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::replace_all'; use_ok $pkg; } is_deeply $pkg->new('date', '\d{2}', '01')->fix({date => "July 23"}), {date => "July 01"}; is_deeply $pkg->new('date', '(\d{2})', '${1}th')->fix({date => "July 23"}), {date => "July 23th"}, "interpolation works"; is_deeply $pkg->new('words', '/b', '')->fix({words => "/bar"}), {words => "ar"}, "Slashes"; done_testing 4; ������������Catmandu-1.10/t/data2/������������������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 015416� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-greater_than.t�����������������������������������������������000644 �000765 �000024 �00000001672 13341726377 023463� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::greater_than'; use_ok $pkg; } my $cond = $pkg->new('year', '1970'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({year => '1980'}), {year => '1980', test => 'pass'}; is_deeply $cond->fix({year => '1960'}), {year => '1960', test => 'fail'}; $cond = $pkg->new('a.deep.year', '1970'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({a => {deep => {year => '1980'}}}), {a => {deep => {year => '1980'}}, test => 'pass'}; is_deeply $cond->fix({a => {deep => {year => '1960'}}}), {a => {deep => {year => '1960'}}, test => 'fail'}; done_testing 5; ����������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Sane.t���������������������������������������������������������������������000644 �000765 �000024 �00000000272 13341726377 017231� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Sane'; use_ok $pkg; } require_ok $pkg; done_testing 2; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu.t��������������������������������������������������������������������������000644 �000765 �000024 �00000006753 13341726377 016357� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Log::Any::Adapter; use Data::Dumper; use Cwd; use File::Spec; my $pkg; BEGIN { $pkg = 'Catmandu'; use_ok $pkg; } require_ok $pkg; # logging Log::Any::Adapter->set('Test'); isa_ok(Catmandu->log, 'Log::Any::Proxy', 'logger test'); isa_ok(Catmandu->log->adapter, 'Log::Any::Adapter::Test', 'logger test'); Catmandu->log->debug('debug test'); Catmandu->log->info('info test'); Catmandu->log->warn('warn test'); Catmandu->log->adapter->contains_ok(qr/debug test/, 'debug log'); Catmandu->log->adapter->contains_ok(qr/info test/, 'info log'); Catmandu->log->adapter->contains_ok(qr/warn test/, 'info log'); # default load path ok(my $curr_path = Catmandu->default_load_path, 'get current path'); Catmandu->default_load_path('/tmp'); is(Catmandu->default_load_path, '/tmp', 'got default_load_path'); Catmandu->default_load_path($curr_path); is(Catmandu->default_load_path, $curr_path, 'got default_load_path 2'); # load Catmandu->load; is(Catmandu->config->{test}, 'ok', 'load and conf test'); is(Catmandu->default_store, 'default', 'default store'); is(Catmandu->default_fixer, 'default', 'default fixer'); is(Catmandu->default_importer, 'default', 'default importer'); is(Catmandu->default_exporter, 'default', 'default exporter'); isa_ok(Catmandu->importer, 'Catmandu::Importer::YAML', 'importer test'); isa_ok(Catmandu->importer('mock'), 'Catmandu::Importer::Mock', 'importer test'); isa_ok(Catmandu->exporter, 'Catmandu::Exporter::YAML', 'exporter test'); isa_ok(Catmandu->exporter('csv'), 'Catmandu::Exporter::CSV', 'exporter test'); isa_ok(Catmandu->store, 'Catmandu::Store::Hash', 'store test'); isa_ok(Catmandu->store('hash'), 'Catmandu::Store::Hash', 'store test'); isa_ok(Catmandu->fixer, 'Catmandu::Fix', 'fixer test'); isa_ok(Catmandu->validator('test'), 'Catmandu::Validator::Mock', 'validator test'); # store caching { my $s1 = Catmandu->store('hash'); my $s2 = Catmandu->store('hash'); ok($s1 == $s2); $s2 = Catmandu->store('hash', foo => 'bar'); ok($s1 != $s2); } like(Catmandu->export_to_string({foo => 'bar'}, 'JSON'), qr/{"foo":"bar"}/, 'export_to_string'); my ($root_vol, $root_path, $root_file) = File::Spec->splitpath(File::Spec->catfile(getcwd(), 't')); my $root = File::Spec->catfile($root_path, $root_file); is(Catmandu->root, $root, 'root'); is_deeply(Catmandu->roots, [$root], 'roots'); is(Catmandu->default_importer_package, 'JSON', 'default_importer_package'); is(Catmandu->default_exporter_package, 'JSON', 'default_exporter_package'); my $exporter = Catmandu->exporter('Mock'); Catmandu->export({n => 1}, $exporter); is_deeply($exporter->as_arrayref, [{n => 1}]); # set config Catmandu->config({test => 'reload'}); is(Catmandu->config->{test}, 'reload', 'reload config'); # define Catmandu->define_importer(foo => JSON => line_delimited => 1); is_deeply(Catmandu->config->{importer}{foo}, {package => 'JSON', options => {line_delimited => 1}}); Catmandu->define_exporter(foo => JSON => line_delimited => 1); is_deeply(Catmandu->config->{exporter}{foo}, {package => 'JSON', options => {line_delimited => 1}}); Catmandu->define_store(foo => HASH => init_data => [{_id => 1}]); is_deeply(Catmandu->config->{store}{foo}, {package => 'HASH', options => {init_data => [{_id => 1}]}}); Catmandu->define_fixer(foo => ['capitalize(foo)']); is_deeply(Catmandu->config->{fixer}{foo}, ['capitalize(foo)']); done_testing; ���������������������Catmandu-1.10/t/Catmandu-Exporter-Mock.t������������������������������������������������������������000644 �000765 �000024 �00000001215 13341726377 021040� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::Mock'; use_ok $pkg; } require_ok $pkg; my $data = [ {'a' => 'moose', b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'} ]; my $out = ""; my $exporter = $pkg->new(file => \$out); isa_ok $exporter, $pkg; $exporter->add($_) for @$data; $exporter->commit; is $out, '', "Null is empty ok"; is $exporter->count, 3, "Count ok"; is_deeply $exporter->as_arrayref, [ {'a' => 'moose', b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'} ], 'as_arrayref'; done_testing; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-convert.t��������������������������������������������������������������000644 �000765 �000024 �00000002475 13341726377 020533� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester::CaptureExternal; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::convert'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; { my $result = test_app(qq|Catmandu::CLI| => [qw(convert -v YAML --file t/catmandu.yml to JSON)]); my $perl = decode_json($result->stdout); ok $perl, 'got JSON'; is $perl->[0]->{importer}{default}{package}, 'YAML', 'got data'; is $result->error, undef, 'threw no exceptions'; } { my $result = test_app( qq|Catmandu::CLI| => [ 'convert', '-v', '--start=2', '--total=1', 'CSV', '--file', 't/planets.csv', 'to', 'CSV', '--header', '0', '--fields', 'english,latin' ] ); is $result->stdout, "Moon,Luna\n", 'start and limit'; } { my $result = test_app( qq|Catmandu::CLI| => [ 'convert', 'CSV', '--file', 't/planets.csv', '--fix', 'copy_field(english,_id)', 'to', 'CSV', '--header', '0', '--fields', 'latin', '--id-file', 't/planet_ids.txt' ] ); is $result->stdout, "Sol\nLuna\nTerra\n", 'id file'; } done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-TSV.t�������������������������������������������������������������000644 �000765 �000024 �00000002770 13341726377 020632� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::TSV'; use_ok $pkg; } require_ok $pkg; my $data = [ {'a' => 'moose', b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'} ]; my $out = ""; my $exporter = $pkg->new(file => \$out); isa_ok $exporter, $pkg; $exporter->add_many($data); $exporter->commit; my $tsv = <<EOF; a\tb moose\t1 pony\t2 shrimp\t3 EOF is $out, $tsv, "TSV strings ok"; is $exporter->count, 3, "Count ok"; $data = [{b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'}]; $out = ""; $exporter = $pkg->new(file => \$out); $exporter->add_many($data); $exporter->commit; $tsv = <<EOF; b 1 2 3 EOF is $out, $tsv, "first record determines fields without collect"; $out = ""; $exporter = $pkg->new(file => \$out, collect_fields => 1); $exporter->add_many($data); $exporter->commit; $tsv = <<EOF; a\tb \t1 pony\t2 shrimp\t3 EOF is $out, $tsv, "collect field names"; $out = ""; $exporter = $pkg->new(fields => 'a,x', columns => 'Longname,X', file => \$out); $exporter->add({a => 'Hello', b => 'World'}); $tsv = "Longname\tX\nHello\t\n"; is $out, $tsv, "custom column names"; $out = ""; my $fixer = Catmandu->fixer('if exists(foo) reject() end'); my $importer = Catmandu->importer('JSON', file => 't/csv_test.json'); $exporter = $pkg->new(file => \$out); $exporter->add_many($fixer->fix($importer)); $tsv = "fob\ntest\n"; is $out, $tsv, "custom column names as HASH with reject fix"; done_testing; ��������Catmandu-1.10/t/Catmandu-Cmd-run.t������������������������������������������������������������������000644 �000765 �000024 �00000001120 13341726377 017641� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester::CaptureExternal; use Cpanel::JSON::XS; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::run'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw(run t/run.fix)]); my $perl = decode_json($result->stdout); ok $perl, 'got JSON'; is $perl->{hello}, 'world', 'got data'; is $result->error, undef, 'threw no exceptions'; # Next test can fail on buggy Perl installations ##is $result->stderr, '', 'nothing sent to sderr' ; done_testing 5; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Exporter-CSV.t�������������������������������������������������������������000644 �000765 �000024 �00000003431 13341726377 020604� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter::CSV'; use_ok $pkg; } require_ok $pkg; my $data = [ {'a' => 'moose', b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'} ]; my $out = ""; my $exporter = $pkg->new(file => \$out); isa_ok $exporter, $pkg; $exporter->add_many($data); $exporter->commit; my $csv = <<EOF; a,b moose,1 pony,2 shrimp,3 EOF is $out, $csv, "CSV strings ok"; is $exporter->count, 3, "Count ok"; $data = [{b => '1'}, {'a' => 'pony', b => '2'}, {'a' => 'shrimp', b => '3'}]; $out = ""; $exporter = $pkg->new(file => \$out); $exporter->add_many($data); $exporter->commit; $csv = <<EOF; b 1 2 3 EOF is $out, $csv, "first record determines fields without collect"; $out = ""; $exporter = $pkg->new(file => \$out, collect_fields => 1); $exporter->add_many($data); $exporter->commit; $csv = <<EOF; a,b ,1 pony,2 shrimp,3 EOF is $out, $csv, "collect field names"; $out = ""; $exporter = $pkg->new(fields => 'a,x', columns => 'Longname,X', file => \$out); $exporter->add({a => 'Hello', b => 'World'}); $csv = "Longname,X\nHello,\n"; is $out, $csv, "custom column names"; $out = ""; my $fixer = Catmandu->fixer('if exists(foo) reject() end'); my $importer = Catmandu->importer('JSON', file => 't/csv_test.json'); $exporter = $pkg->new(file => \$out); $exporter->add_many($fixer->fix($importer)); $csv = "fob\ntest\n"; is $out, $csv, "custom column names as HASH with reject fix"; # empty exports $out = ""; $exporter = $pkg->new(file => \$out, header => 0); $exporter->commit; is $out, ""; $out = ""; $exporter = $pkg->new(file => \$out); $exporter->commit; is $out, ""; $out = ""; $exporter = $pkg->new(file => \$out, fields => 'a,b'); $exporter->commit; $csv = <<EOF; a,b EOF done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/catmandu.yml������������������������������������������������������������������������000644 �000765 �000024 �00000001236 13341726377 016744� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- test: ok importer: default: package: YAML mock: package: Mock exporter: default: package: YAML csv: package: CSV store: default: package: Hash hash: package: Hash test: package: Hash options: init_data: - _id: Sun value: Sol - _id: Mercury value: Mercurius - _id: Moon value: Luna - _id: Earth value: Terra validator: test: package: Mock options: message: invalid reject: 1 fixer: default: - nothing() other: - nothing() ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-uniq.t�����������������������������������������������������������������000644 �000765 �000024 �00000000424 13341726377 020042� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::uniq'; use_ok $pkg; } is_deeply $pkg->new('tags')->fix({tags => ["foo", "bar", "bar", "foo"]}), {tags => ["foo", "bar"]}; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-sleep.t����������������������������������������������������������������000644 �000765 �000024 �00000000443 13341726377 020177� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::sleep'; use_ok $pkg; } is_deeply $pkg->new('1', 'MILLISECOND')->fix({name => 'Joe'}), {name => "Joe"}, "slept didn't change the data"; done_testing 2; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-index.t����������������������������������������������������������������000644 �000765 �000024 �00000001451 13341726377 020176� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::index'; use_ok $pkg; } is_deeply $pkg->new('test', 'c')->fix({test => 'abcde'}), {test => '2'}, "index(abcde,c)"; is_deeply $pkg->new('test', 'c', 'multiple', 1)->fix({test => 'abcccde'}), {test => [2, 3, 4]}, "index(abcccde,c)"; is_deeply $pkg->new('test.*', 'c')->fix({test => ['abcde', 'fgh']}), {test => [2, -1]}, "index([abcde,fgh],c)"; is_deeply $pkg->new('test', 'bar') ->fix({test => ['foo', 'bar', 'bar', 'foo']}), {test => 1}, "index([foo,bar,bar,foo],c)"; is_deeply $pkg->new('test', 'bar', 'multiple', 1) ->fix({test => ['foo', 'bar', 'bar', 'foo']}), {test => [1, 2]}, "index([foo,bar,bar,foo],c, -multiple:1)"; done_testing 6; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-info.t�����������������������������������������������������������������000644 �000765 �000024 �00000002023 13341726377 017773� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::info'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result; $result = test_app(qq|Catmandu::CLI| => [qw(info)]); is $result->error, undef, 'threw no exceptions'; $result = test_app(qq|Catmandu::CLI| => [qw(info --exporters)]); is $result->error, undef, 'threw no exceptions'; $result = test_app(qq|Catmandu::CLI| => [qw(info --importers)]); is $result->error, undef, 'threw no exceptions'; $result = test_app(qq|Catmandu::CLI| => [qw(info --fixes)]); is $result->error, undef, 'threw no exceptions'; $result = test_app(qq|Catmandu::CLI| => [qw(info --stores)]); is $result->error, undef, 'threw no exceptions'; $result = test_app(qq|Catmandu::CLI| => [qw(info --validators)]); is $result->error, undef, 'threw no exceptions'; $result = test_app(qq|Catmandu::CLI| => [qw(info --fixes to JSON)]); is $result->error, undef, 'threw no exceptions'; done_testing 9; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-retain.t���������������������������������������������������������������000644 �000765 �000024 �00000001020 13341726377 020341� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::retain'; use_ok $pkg; } is_deeply $pkg->new('keep') ->fix({remove => 'me', also => 'me', keep => 'me'}), {keep => 'me'}; is_deeply $pkg->new('unknown')->fix({remove => 'me', also => 'me'}), {}; is_deeply $pkg->new('keep', 'maybe.keep') ->fix( {remove => 'me', keep => 'me', maybe => {keep => 'me', remove => 'me'}}), {keep => 'me', maybe => {keep => 'me'}}; done_testing 4; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Cmd-count.t����������������������������������������������������������������000644 �000765 �000024 �00000000747 13341726377 020203� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use App::Cmd::Tester; my $pkg; BEGIN { $pkg = 'Catmandu::Cmd::count'; use_ok $pkg; } require_ok $pkg; use Catmandu::CLI; my $result = test_app(qq|Catmandu::CLI| => [qw(count test)]); is $result->stdout, "4\n", 'got data'; is $result->error, undef, 'threw no exceptions'; ## Next test can fail on buggy Perl installations #is $result->stderr, '', 'nothing sent to sderr' ; done_testing 4; �������������������������Catmandu-1.10/t/Catmandu-Fix-Condition-less_than.t��������������������������������������������������000644 �000765 �000024 �00000001667 13341726377 023004� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Fix::set_field; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition::less_than'; use_ok $pkg; } my $cond = $pkg->new('year', '1970'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({year => '1980'}), {year => '1980', test => 'fail'}; is_deeply $cond->fix({year => '1960'}), {year => '1960', test => 'pass'}; $cond = $pkg->new('a.deep.year', '1970'); $cond->pass_fixes([Catmandu::Fix::set_field->new('test', 'pass')]); $cond->fail_fixes([Catmandu::Fix::set_field->new('test', 'fail')]); is_deeply $cond->fix({a => {deep => {year => '1980'}}}), {a => {deep => {year => '1980'}}, test => 'fail'}; is_deeply $cond->fix({a => {deep => {year => '1960'}}}), {a => {deep => {year => '1960'}}, test => 'pass'}; done_testing 5; �������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Importer.t�����������������������������������������������������������������000644 �000765 �000024 �00000013576 13341726377 020157� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use v5.10.1; use Test::More; use Test::Exception; use Test::LWP::UserAgent; use HTTP::Response; my $pkg; BEGIN { $pkg = 'Catmandu::Importer'; use_ok $pkg; } require_ok $pkg; { package T::Importer; use Moo; with $pkg; sub generator { my ($self) = @_; sub { state $fh = $self->fh; my $name = $self->fh->getline; return defined $name ? {"hello" => $name} : undef; }; } package T::DataPathImporter; use Moo; with $pkg; sub generator { my ($self) = @_; sub { state $data = [ {abc => [{a => 1}, {b => 2}, {c => 3}]}, {abc => [{d => 4}, {e => 5}, {f => 6}]} ]; return shift @$data; }; } } my $i = T::Importer->new; ok $i->does('Catmandu::Iterable'); ok $i->can('_http_client'), 'provides a http client for internal use'; $i = T::Importer->new(file => \"World"); is_deeply $i->to_array, [{hello => "World"}], 'import from string reference'; $i = T::Importer->new(file => \"Hello\nWorld"); is join('', $i->fh->getlines), "Hello\nWorld", "import all"; $i = T::Importer->new(file => "missing"); throws_ok {$i->fh->getlines} "Catmandu::BadArg", "throws an error if file doesn't exist"; $i = T::DataPathImporter->new; is_deeply $i->to_array, [ {abc => [{a => 1}, {b => 2}, {c => 3}]}, {abc => [{d => 4}, {e => 5}, {f => 6}]} ]; $i = T::DataPathImporter->new(data_path => 'abc'); is_deeply $i->to_array, [[{a => 1}, {b => 2}, {c => 3}], [{d => 4}, {e => 5}, {f => 6}]]; $i = T::DataPathImporter->new(data_path => 'abc.*'); is_deeply $i->to_array, [{a => 1}, {b => 2}, {c => 3}, {d => 4}, {e => 5}, {f => 6}]; $i = T::Importer->new(user_agent => user_agent(), file => 'http://demo.org/'); is join('', $i->fh->getlines), "test123", "read from http (file)"; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/{id}', variables => {id => 1234} ); is $i->file, "http://demo.org/1234"; is join('', $i->fh->getlines), "test1234", "read from http (file + variables)"; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/{1},{2},{3}', variables => [qw(red green blue)] ); is $i->file, "http://demo.org/red,green,blue"; is join('', $i->fh->getlines), "RED-GREEN-BLUE", "read from http (file + variables list)"; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/{1},{2},{3}', variables => "red,green,blue" ); is $i->file, "http://demo.org/red,green,blue"; is join('', $i->fh->getlines), "RED-GREEN-BLUE", "read from http (file + variables list)"; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/post', http_method => 'POST', http_body => '=={id}==', variables => {id => 1234} ); is $i->file, "http://demo.org/post"; is join('', $i->fh->getlines), "POST", "read from http (file + variables list + post request)"; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/post', http_method => 'POST', http_body => '=={id}==', variables => "red,green,blue" ); is $i->file, "http://demo.org/post"; is join('', $i->fh->getlines), "POST", "read from http (file + variables list + post request)"; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/not-exsists', http_method => 'POST', http_body => '=={id}==', variables => "red,green,blue" ); throws_ok {$i->fh->getlines} 'Catmandu::HTTPError', "throws an error on non-existing pages"; $i = T::Importer->new(file => 'http://demo.org'); is ref($i->_http_client), 'LWP::UserAgent', 'Got a real client'; # http retry $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/retry', ); throws_ok {$i->fh->getline} 'Catmandu::HTTPError'; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/retry', http_retry => 1, ); throws_ok {$i->fh->getline} 'Catmandu::HTTPError'; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/retry', http_retry => 2, ); lives_ok {$i->fh->getline}; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/retry', http_timing => '1', ); throws_ok {$i->fh->getline} 'Catmandu::HTTPError'; $i = T::Importer->new( user_agent => user_agent(), file => 'http://demo.org/retry', http_timing => '1,1', ); lives_ok {$i->fh->getline}; done_testing; sub user_agent { my $ua = Test::LWP::UserAgent->new(agent => 'Test/1.0'); $ua->map_response( qr{^http://demo\.org/$}, HTTP::Response->new( '200', 'OK', ['Content-Type' => 'text/plain'], 'test123' ) ); $ua->map_response( qr{^http://demo\.org/1234$}, HTTP::Response->new( '200', 'OK', ['Content-Type' => 'text/plain'], 'test1234' ) ); $ua->map_response( qr{^http://demo\.org/red,green,blue$}, HTTP::Response->new( '200', 'OK', ['Content-Type' => 'text/plain'], 'RED-GREEN-BLUE' ) ); $ua->map_response( qr{^http://demo\.org/post$}, HTTP::Response->new( '200', 'OK', ['Content-Type' => 'text/plain'], 'POST' ) ); my $tries = 0; $ua->map_response( qr{^http://demo\.org/retry$}, sub { $tries += 1; if ($tries < 3) { HTTP::Response->new( '408', 'Request Timeout', ['Content-Type' => 'text/plain'], 'GET' ); } else { HTTP::Response->new('200', 'OK', ['Content-Type' => 'text/plain'], 'GET'); } } ); $ua; } ����������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-ArrayIterator.t������������������������������������������������������������000644 �000765 �000024 �00000001527 13341726377 021137� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::ArrayIterator'; use_ok $pkg; } my $arr = [{n => 1}, {n => 2}, {n => 3}]; my $it = $pkg->new($arr); ok $it->does('Catmandu::Iterable'); is_deeply [@{$it}], $arr; is $it->count, 3; is_deeply $it->first, $arr->[0]; is $it->contains({n => 2}), 1; is $it->contains(10), 0; # test external iteration again because of circular dependency is_deeply $it->next, {n => 1}; is_deeply $it->next, {n => 2}; $it->rewind; is_deeply $it->next, {n => 1}; $it->rewind; my $count = 0; $it->each( sub { is shift->{n}, ++$count, "each ($count)"; } ); $it->rewind; $count = 0; $it->each_until( sub { is shift->{n}, ++$count, "each ($count)"; return $count == 2 ? undef : 1; } ); done_testing 15; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Importer-YAML.t������������������������������������������������������������000644 �000765 �000024 �00000001430 13341726377 020701� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use utf8; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::YAML'; use_ok $pkg; } require_ok $pkg; my $data = [ {name => 'Patrick', age => '39'}, {name => 'Nicolas', age => '34'}, {name => '村上 春樹', age => '65'}, ]; my $yaml = <<EOF; --- name: Patrick age: 39 --- name: Nicolas age: 34 --- name: 村上 春樹 age: 65 EOF my $importer = $pkg->new(file => \$yaml); isa_ok $importer, $pkg; my $arr = $importer->to_array; is_deeply $arr, $data, 'checking correct import'; is $arr->[2]->{name}, '村上 春樹', 'checking utf8 issues'; $importer = $pkg->new(file => 't/non_ascii.yaml'); is $importer->count, 1000, 'parsed non ascii file'; done_testing 6; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-Condition.t������������������������������������������������������������000644 �000765 �000024 �00000004161 13341726377 021016� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Catmandu::Fix; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::Condition'; use_ok $pkg; } require_ok $pkg; my $fixer; my $fixes; # ALL_MATCH $fixes = "if all_match('oogly.*', 'doogly') upcase('foo') end"; ok $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'low', oogly => ['doogly']}), {foo => 'LOW', oogly => ['doogly']}, "if all_match - check all match"; is_deeply $fixer->fix({foo => 'low', oogly => ['doogly', '!doogly!']}), {foo => 'LOW', oogly => ['doogly', '!doogly!']}, "if all_match - check all match (2)"; is_deeply $fixer->fix({foo => 'low', oogly => ['doogly', 'something']}), {foo => 'low', oogly => ['doogly', 'something']}, "if all_match - check not all match"; is_deeply $fixer->fix({foo => 'low'}), {foo => 'low'}, "if all_match - check no match"; # ANY_MATCH $fixes = "if any_match('oogly.*', 'doogly') upcase('foo') end"; ok $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'low', oogly => ['doogly']}), {foo => 'LOW', oogly => ['doogly']}, "if any_match - check all match"; is_deeply $fixer->fix({foo => 'low', oogly => ['doogly', '!doogly!']}), {foo => 'LOW', oogly => ['doogly', '!doogly!']}, "if any_match - check all match (2)"; is_deeply $fixer->fix({foo => 'low', oogly => ['doogly', 'something']}), {foo => 'LOW', oogly => ['doogly', 'something']}, "if any_match - check not all match"; is_deeply $fixer->fix({foo => 'low'}), {foo => 'low'}, "if any_match - check no match"; # EXISTS $fixes = "if exists('oogly') upcase('foo') end"; ok $fixer = Catmandu::Fix->new(fixes => [$fixes]); is_deeply $fixer->fix({foo => 'low', oogly => ['doogly']}), {foo => 'LOW', oogly => ['doogly']}, "if exists - check match"; is_deeply $fixer->fix({foo => 'low'}), {foo => 'low'}, "if exists - check no match"; # USE AS INLINE FIX use Catmandu::Fix::Condition::exists as => 'has_field'; my $item = {foo => {bar => 1}}; ok has_field($item, 'foo.bar'), 'inline condition - true'; ok !has_field($item, 'doz'), 'inline condition - false'; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Fix-error.t����������������������������������������������������������������000644 �000765 �000024 �00000000416 13341726377 020220� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::error'; use_ok $pkg; } throws_ok {$pkg->new('!!!ERROR!!!')->fix({})} qr/!!!ERROR!!!/, 'dies with an error message'; done_testing; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/Catmandu-Importer-Modules.t���������������������������������������������������������000644 �000765 �000024 �00000002153 13341726377 021552� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������use strict; use warnings; use Test::More; use Test::Exception; use_ok 'Catmandu::Importer::Modules'; require_ok 'Catmandu::Importer::Modules'; my @modules; ok Catmandu::Importer::Modules->new->first, 'default importer'; lives_ok sub { @modules = @{Catmandu::Importer::Modules->new( inc => ["lib"], namespace => "Catmandu::Fix", max_depth => 1, pattern => qr/add_field/ )->to_array }; }; ok @modules > 0, 'imported with options'; is $modules[0]->{name}, 'Catmandu::Fix::add_field', 'name'; like $modules[0]->{about}, qr/^add or change the value of a HASH key/, 'about'; lives_ok sub { @modules = @{Catmandu::Importer::Modules->new( inc => ["lib"], namespace => "Catmandu::Importer,Catmandu::Exporter", max_depth => 1, pattern => qr/JSON/, about => 0, )->to_array }; }; is_deeply [map {$_->{name}} @modules], [qw(Catmandu::Importer::JSON Catmandu::Exporter::JSON)], "multiple namespaces"; is $modules[0]->{about}, undef, 'disable about'; done_testing; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/��������������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 015715� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/����������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 016214� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/001/������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 016514� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/003/������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 016516� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/002/������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 016515� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/002/test.pdf����������������������������������������������������������000644 �000765 �000024 �00001366071 13341726377 020205� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������%PDF-1.3 % 1 0 obj <</Type/XObject/Resources<</ProcSet[/PDF/Text/ImageB/ImageC/ImageI]/XObject<</img0 2 0 R>>/Font<</F1 3 0 R/F2 4 0 R/F3 5 0 R/F4 6 0 R>>>>/Subtype/Form/BBox[0 0 595 842]/Matrix[1 0 0 1 0 0]/Length 738/FormType 1/Filter/FlateDecode>>stream xVMS0WfBLV%!ɡ$22QhWnk&8>,JR&ltc-Ģ8Tp<XYL(@^ C<Ol?_wlCz�h<OLlh N̓+O{F8LDZ'\焒s - A3K!+`RX̻n[(-$6 �-AwD0~B%Bt 5 Z`KX`0@ {dfg%eE(>ZuM B90 %"$&̆9~qԮ'l-P8!po3_EL{ؒ z84@6yR`{< kmՈ&4xi\L˂{o={5^zEFZ4= Ws^]/B^Co572 yQ]kPЃ= MLU0FqĒx+3J#lahasұQ%TPI_JދclX!vcmTeXAGQQuBZ¦`X(+WM\Qۣ@+0eF4uQ ,Կ}TunUi߭F}+u\nym]nGE6,ڤwW 7ȷ endstream endobj 2 0 obj <</Type/XObject/ColorSpace/DeviceRGB/Subtype/Image/BitsPerComponent 8/Width 2477/Length 267627/Height 317/Filter/DCTDecode>>stream �JFIF���d�d���Ducky�����d���Adobe�d������= ������������� �������� ��   �! 1"W A#ԕVXQ2ַ8x9aqB3S$vw%67RCs45UubT&'DHi*�  ��!1"AQ2UaqBR#3T6VbrCSs$tc45ƒDd% E&'e� ��?�D&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0A#"?S槬m G]cJ&}eآkm)%2@YB{ > ȴ[YE$4�Jhm3\= �<d`3_Iz{P~rjܪaVN~5ir oPau< {'\e䧨Ɲ#%^qA8]K86 kyogE]ad.UlQq^ae,񛒃s/dm&D@A6AaH_�q?؛B{䑜sHqHǩ.JRL$Ox"V@9o:2zgeY t]re.R@]5`|2U)խ֟P&`0"gNwL 6 AobVid)bNly: $kB.3/�[V;svԁ1w/ <CeXKQxrt>Vn\7n~ 5vb3% ŵRZxljlpCqixR6 fv#zL"y(c2ggmgpwykiaqaڴCUis̼Bll{@ZhPlD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0<cnГv�rYjKa_j3 bk.bŘ}ra؛pmNtxrN 6Q5Z+JкZr7oϼ+LՕ+k6Y> G, 4)%ћт6ړnO']^ba>Aԧ0iiia>ީ6f[FMT6#,rj3l'H/^'"Tk. @)C%7{ig y?#?8mo(&#k)-hep-y,N+UPFZED5ҺyHZa7kya啻Wcu�#џmKCwF> u=ccpn^s#qRVSdsUz~q:"rm?v-ؓ_oT*yE�=fӋtAqJxAjWKSolѱ�^54MIiATG�I99 Z9飝-!R>s[ 7lh&"'0߽21=k|OoߴWL #oCAze;Ź9&<hA]=}VXqW[vQ_+׶fH=֭cݳhrV!"*n9t3aCIZiüifvkʁu8v| A6؛.Ǻ]PǀI5tdpkRX GxV'|yE|}g(#7m؂7[_FAI2@,=D b3qmG  ?օqa?zj({ �p'<x�Eyɾێ&K9 3ሑEw;xg*"B %ROǢYnܑyGџWEK) >y~LցQ , P T*KÝχc*}!N rcv\o<F;ho(nR*Q:AY�7&[V6xb{U^7Qv^3y<{#*u4Vx,Wl|,}? h˷+I6]J=(r)`;\ZhZA<B5{CAiG5D&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a)Mh ]ٳV0Kq;Qy5I˿vjE8H" aeg%scKizc[YgB=>ׯIޕ-k�.7YASRz@RQEP: tn`z+6jVZ@xOXo[溭V;�뫀|p4<H#(5X~^%!Tj֪-cVS26*-0!2y%WlP/QZ{Gy{܉[ÃO.<5Aʻto'$p8D9\`qa#||W2 :`V08uHK{;w҈N^Yrz,&`Lzۊn'!:EsqIh U:\{- ]dld=#�JMǽXrI;E򢎸֒m@�C,P/POk�`$ecr۶Z cI4yU)^ּqn6@irȉL\6#hT 50�_`z%-=3H:oپ\ɪ"6qGˁ ZA=U^[~Zyv,-yd-`b$�:ppDP< hMꚟUUL_3)#<;MiPpQR-Ek0ASֲQo^FȱXYH0r7$=8j]:0(aV0EA A5ZAPG,qSׇgl,! A4q^XhDȁSmUH�:v}?:ֹmL֩`ݟe в 'Ƭ'U77LWŷVƒ<*].+:OWI?Q΍+ - "VM4v rM#USY0?|.ytm\>hKq- ehYoaV9=lN#QsT}+ó?%<uguDU%]tlh)YX3g>[/n2緃cJ7Qkr'_pSEZ+3Å+B\uagQD\آܚ+:P?= o5O'+(!2zC]BE'rGws7FK o.%Bc$ $Dp.sWt('$o+ҭmC9Pċ*e掠ŅBȸ0 JG�d=:˚xDsq\nB |.N,q�hO>\:&ΝgUqAvjbc$*k#lH״JQpӸ>*4ki2G4ϬտP}Ej35n#h RG"umD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD-?�j�I>gBI!g � �XФaj '=O_4%Ui=$>�U>Y�V)/|I!c�M?j�I>cOI�O{iU K zH||��Oڬ?R_ϰ�5XC?S'/~a�B}4�,???V>ATg � �XФaj '=O_5SQ\y|AN!;] Ie>͑]Te6O:SxMйb!;\4'n㦫tpk4IHh~{{6SnWuF2WnFn.C/Sr@k$ĥb<qå�G4Y^367Ox[oWzwc<rHZ<>[f;5] v}藺Q�ҵWTKid{Z}' K`{Gn+ ?nDe${5;ȡAC&bdb}^1qN.7)<mh{"oN\0d�:xj"Cu4:36W=ZK լ_:vݨ3\uS)U05c:Ӓ>%ʟWvK7*ٶ߼Mj}K-]y�:-e{R>@LZ x=֯̊#vM#kCWU@e+"O^ENW*"Zvsk< qrWkmٟ=6!I) [ Qq!#p %hW1qs9%[ܜmeHÝx^�| x+BޭJ΋⅛joi' ol[ԴtFes\>c .nș"ov51NbwY�6ZcMz (VQ贶sRc*CLcoy#yi4*㷯;e5 gcB尵o`) t>hqh[nVIaw 5E"]@! bj1e˓Wc2GGY>LPېhnYי7[Hc߸ZFIZt{Χ�s"Oʚ&*{s3z6hbļMG0kvv͉&Tn(PmF_ }|a ^I{A%PЅg}khp $sHjm[PExn۟ԣI.otƕ瑭ĔҼvb (m<kUBZU\/ 㶆Jdr.:g%4 7i >s [# x}ͯR/NQ gin`No[zcT:jG[^o9W+2~dm\nOy l҃^FrWn"W ǘ޿5}@i�\99δnKmGAU-+}rG6#u% *D)R>jt+oxÜ:K8R5y``CZښ o B�$4 }7|FeCTrﭤP-)#*#.% ל%hdS:VC u+!34�M F…Ω0j4͢AoAYܲ*h{/%h@,rsir2:˳1ַma4.n^Ua\[W%񠢹"łX2s$dmqO[8)+0!= )o%!}ljq,է6z3O`5+uiyEnnFj&n;<WN7poWHmΕƇK uw[)-[޳Xi}HeO�{VBx e{mQm}Zސ U""XKH ~\4W5aH|}N>0 |Lyv)5Uan{ sGhAYEE"lDZߴm.AAZ bاޢ�,ӅlTpʉ(d.chI�&/)O;!cIq<�+2<gbT�0(iW0n"b5iXJS(F2<3PY$e;f lw:^dPU*_$M=KZWH 0|{Țѧ/4p.`#U E-3qMv*/FvYCYP(z HD@�D>`ػ㱵>F>?QyɸA;gQ`c8N=NLslMk-G]u3kg%yYDD9ʛ|(9t@<s,b"\]con%|@}e%m&YZz^QʜVB 8h%&2B.JO/3x|�Q$nD2)'wU1ׅh =P*?ȭ8Q\_ YӥlٺJ.AUYU TI$&1 ( 4IETMlG@7n$~jxd* My ҂3('z1jgj1;:("b(bc5Hx;Pq p.i�w90TasP4Cqq�F >EL%bR{Z)}5;LmE3%q(5VEr MYh%Ei :&Yknrc͍3ihh5$,r>}ݷ )֮.#kUlD&0VL/Vr>-hvKk0=aZH+"e v:yW(Tӑ ~z?}Qk}賶h~Ui٫hӨ@u~=>W#`pL"aD&0L"aD&0L"aD&0_Š&j*I$eUC &:!P�� s9*j8 ۍNAךD_x k-`hT�"ɺ#�0N=8ݙl`?MV60(^ꆑꨶgy\._{a}@<GZr&o,jUo;S@'l>#r 9h&B4YGr"�9t`/Ǵ\guԭ[88u\9U9~^m&ky imyPq"Vͨ})SDm w2.n.TY10t_8@͖R*<gVR/A C~-wO[5Tx(|uv| lY(OWлֳ9E� r}C[K/a=j]{TkW.H*UJpp^̃+Kާ]1d瑡"O<[r&el6\UF׉5Is@xzºۍ8蒨.eq%ڂr8V-6*@* aVPza9N/]ٍF4BK[ ,lTv/3Eh��#"R)KkQBO:|2;wNAQ Mu^u YGB.I;2 ty �ˇӽ[ft?<Qw.f3wGj| y8rXɸ�p 9$U~L"aD&WʞFqvn?K欒:* `<B%`95 ~T4pAe;sf  9HR Nq#V&Tդ* ZN;u.fixmEa%Rl6X›3TON G0xycצSY[rDrͯoPk HSn?J N [ޅCK*{w$*;]gieH)$ 2ӮfIrܸ`ng?vdf:Ðs=,E#rxDr", j<+ܟ9\\xg]re$#m5K+&h ]gjHܢ `a:ɷ2؝k+ p"5`5y ^t87֓?e5ueGV2:l[t d6$`{C�tc|Y Il' }Z�|ea%y؟,MD!EECKlQOe URjk90&RncUCDq$)G>+Tvd<O8/m6'֕4*UpgM6-y_۫7H-Bv. t3)xwO#܁D|{[qmqi)7;y-p�?H`'5ёPAXMD&0L"aD&0L"aD&0L"aEJl'ޥom fӢZ.13,B2tc@ N(^̥z}VƖL{7!ˏhK` "V mO6Nʦ=hk$^:aԪ]*D&0L" ʮ9Y+|+c8TF֓?k/KܿLtPbc@7΂ ·=}m&7{ӣ[9H)W3v?$�y^mKq% sAَݤgJHS&Jr?`@,;lU�:7?@X(Ʊwao-t0tBLg-jdtث ݋%<t1$2ϓ & \,#K 3F|^ Wv.ZMtADEdU(%U#5RTSDgL[\^yg#%{DZ­s\ZZH T Lp B<"{5\TH;2:|QP3~p`p,:NKAj�^0׎H"*JWBzu$�)AZ]N^#IEnk/QnsqzilR^ӏ{nmiJ4ݲ \92yu�{VOA zѧCUh %[97B~"}t٩XRۃh]B쭄&-|Ĵx*4YNv]uB8`?o/u0>c3boJy:߰Q5Aj!X(5FYy$S S['af9p SF%7:Kxoa--Q\tM5ٻ?<Ŗgoiv&}d}wbY!XYWB`#,K6+SntWHzMMT�d(Ce׳Nx DH6$cd1s\W9&Kng0-ߥ?Nkip*?L"WviRm'u&DÖavKF ׵'N?@2&_88?Xsg%íns9\ۺ`9Epbcm-{f%�D<*V.ҒEkY*.%PI}puhb"(:Wt_5ٛWRqbl 単cXu\cdf+;5[c ֺm0\ĺv [N0VVD+(-J( BEdDKbn vY%(};o7v6a]m%|!pnl#cE,r.{hfCff}c-O!cqwʫD:j)<oVS8 (YWpT�c$=E4F[kEymddWOtS]0 Zyw1\%B0yHVkL峘[\Ef9͖"*c�kH#̬Zƺ;_~o~&爘"p@ NgC:dͱdtSi\p"5ߝOλVge1͏T v7ƱX:-vmR#[YWn^u(ͫUu](bwG NaPRTzNnOhHak`ǻ˺(Z! Ća'Wilkfai7ld^p8l܆ qh#);i b^YYڨ9@V0oȸ TseP_zcqEka2Le _t+%,lX_܇697 |.h{9tQ[NL%$huݢܬlrp$3,3Qbp^ 3=G 8幂EfǵW}]H f6msF\ؤ>g4a_LA%$V@d*s9 .=G2t힫)Ko-\LRUɛ@3 y<r=nyYv>qqo%&hu+5g͗V- `uk^,k)V{aAf뫍70Gyc7'Eqhqs#[NQ;!EH1Ue8("nf&fR6*/aT1rxӋOn[n7\ $6EDچ%fx\\ҷ>?m윷4^YGeډWl X�*{Uz-~{9'R3bРI)QeLP:/ro a.c7䶞w. 4,ptrArCm8cج.rmnѝ-8<B{VQ|EĴoعY# oFO%ʨ2M=<T,)Rr-]uKma!ù]Xls6Zuw\ Cn!6$],2=vy->RL>X'*?[)4} gP5:*ZJ 2ƍ|irHv ju0*DMbA w޹2ۿzOL,u=`n;; dn vM`wduI^FOe^G @%s K${bBH]k@Ĺ` "I$�tܓP!ֆoU6ngc!ᒰ"w|>qp8d� S'-mn"�>P3tgU<4S)FX5TK$)htU�ި<DK�n' {g-f"xt2C67_ot]e.0[eE\ZQ.Wi<ۑO5Jf~97, OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^|-?'�r?iLݟX&`/w1Z~O+�v~ҙ?dߎMIVz^ciW3v~c歂i<ۑOJf~97'[{ݧy_#>%roO OnG<})K5l?v?KO܏xS7g;ɾ)>j/K ~>~�ݹn,w|R|հ^sD&0L"aAזbNvACH|4L\z�S;Y&Wp7{ϜѲe 87 |t.:a \O&q5m1xjԚkZ94 IUN<=*75CB#\bH6fp3}zUײ d+3gK_#V|<CMZǸ %+ 0<~t3C"u8s{H�pmuf-=#n{;Ԓ" =7a%$&YzEE,"&X:npEQ5g-#Q7Yp�:SdMŵ fF[ v<md"+_+h s/)̌r8Mpa#wHB�uF~N5c"] AL!&1v:G =�k@ZQZ{o3 n鷌a2O/e<b%̄T:r*\Aq;TknmM(c-V؝­+ڶˠ^>Z~APЊܱ{wSx6;mk�At�{l"hL3 2 T' 5-�M~CzjO/$hqyu8mƟAJΑPq[f"eQUab+v 'u}FoÌPF'I -vfInɀ<3H<(HuZFB6w4]q[^iձ>VTh4lU%b|rﹶ#Ί1$lG&@UV}u%4-[!.Vj ۶adC+ \xPU#$# 1=5nS66inVLJ_v(1l/SU z^#+[Ml=QJ ѷ[GV<u p[N$ [$LkPy6"$1B+;minjG64T,%ih:TՅC&ب8;8f1BB/۹ۖ78u)mÌDQ7Tm{\H.y_6+ i'f@cj+$ IhN`ͭD JԜ+4~Mƈ;"mRxv6EEPMd&6[S9-';듮Ry6(�jE&s<G"(�khөpq ^ \ںM~;DP=>}9uDS5nQƩѵZDI)6kg=Q7ưSWrfTV͗EQ#<c_W�;$ҋH܆`d{n*IZ -#P\ŚZGӁPʟtN"d.G {X\s.}37|n>pn+?�2̳3f2W\4bǮu[ȍ6CU̐yGkc�N.B Kd> "5לkՈO3 #|k9c&e^^UܠS)a7!7j$RMo#,Fd':A` {<vЂp"e1;&:pKj sd|Z3^qzMF'Zq UhHE<lȕlI +  u$r *m8~eRtp-WkH ˓n>aPx8 ׽67LsW9:Ȋn kze8alJ "B rlUW�R+ljN^G_,7IM[:{O=-�&05R*UTfmW+k6ȣk o0_08:IAXȐ>*I8D@3.#0Y>ō/?Y-b3\94\-Mꔋ=F Ȫ}Q2lWͩ8X[l\pplӗT�f;Or\w{p}Q Z ?s,G,7B=^R8WaCjrV_ճ_CٹEH{2T7Qy7dٛ^T}R]Y>2I .eft;n|| �xP956p .I;[}f 4 SU3koN#E)5*Kt\X*jV3fUho%1Wj ^œ ]04gr{=,]uY]dbY#k:k\jKCZWtD MHi!iz"qh.Z^{TMELn.ْhU�)LW2y.Ce\A>"M<jŵm)4iӥ�Kj<ـՆrk-5ne >o#5ˆȷn;r_HNELT'$ @r6GO'"GTxB#-g9lmxQA<ȷ "gr^R(,[~I({ul3z̋S,\."B9ݨ6b"lYKbpfi 9Аg}e^uvAWvo pW6=[v?7oКO7kݸk)YksQedrj)F(@yH!nAY8˜{ͅi-]ŘGѤp`b4͒s5WvOYY6>Wh{V$= ъ3~Z-ztfխcɠ8cgn&n$څfEm^yOǸ+<MFf1=Ԇ7D:͑ $5=AM #<fxL� doD&0X[V,G UIX9yŴ\ em˪sv!M^ð%*ա2)8vTkdlf{L5~֥ lYX9RA[G%{F/sƯ$� "4HnutNd?63AٯfUǘ3;-z"4t{!K4 Ahpgwt *KahО$X6'FcwAvxH+_E0L"aD&0L"aD&0L"aD&P=^:Q%U.̖eCiX)6 )bl*Yi IK}w28c/}A^g+\U}'WY 4͕OE >E cF#U5}1}zrG%qIߨaұ#}̾լ+PhC]gowE> ڕNSM)f %7%HD_\؟TTG-p< )NAh LPwV #@-s5G|&\1D[yu BK_jٓf Bt["u5DӮBoemݫ}h$m}Hwa s-8p#Ix{SЫYcrl"F@dufeQGROo^ >e?coۙ."^܋7 :t&DѩޡsM})-Lf;ahwf0$N'.x,K!q{u2]{B IWO0J a( hc|W#,<Ef̽<G>7ŅGǶ"H4WU`;`쭇,]zlK|ZFvY%0 R[vXtၼƆ�UwlNS5K!'Ix< JŮL"aD&0L"aepU[AB,(dAdMTULJJ&`) !3d Oz<<>j 9xO۟Uf;QM˯"7y]٢yDgjQK)#RI /dL@P0L.ڙR|׷ m Kj|ju?qbrul)Q'R4wVIhs@}aג]Ci놮M0Y~ Âu*7/Nl/zck\fH@'C<OV;[KrD<mGؔW>˩”Z Gt%>}ق*Jcn.[)'X upf h1J<,#K`V6Ow-&u�F$'<j*u;.NnUm}]f*e]K0ĵJobSbT,mӪyd[\`(M xPYp}An3XG$u\hFZP,O<׻;.,6N dC{)JPj1G!L rr~yR<GWD9bXI:<AlŏS^s& t/pzb:6J#V5K+y:*9Kg6fۤhlچ}Ek6q= dx\aD&0L"aD&0L"aD&0L"[v'mBOpUTv0O40 -d2hPTs9ӛͿr7kd27k>mu.aEd35{Kj>Y`7<,ͤ,k6M.pbw 4@=hN܎_$o Y JX'Tt f2K8::._hHDp-!~Wۏ3w>2˪8q>}!hQ# p;skE,{]9žmxj[Oayxǹx7Uчg*50L"aEDoҲ2]ljјfmE#(rMeNC S|09ר)w>[aq sљ1Yi-2֭^;,`Cfvqmb7B;M݋yi/6xԨSht }6(%IZ5o2QQISJ߅*70G0t|྘u=ݗ[gxm{]g!9Lm1!Dxs8ηqb�-s&+ ɛK[@nhkt($˂ �7T;@8Ֆ\Wq/L 2nʚ.:b%xg&uZw/L/ e;mޖleGVJ95ƒ.0n{D3<mtWݗUc rү#F 4kx;Ji2pJCz1&cuy#Ax}IegvkHiy mܻNq`ki=<p$P`W8ffeE]UQr|dA+&CS9�iw \g<WN{-IHP=͍ <~, '"> exÜ^ 2wcבCѢUIڵ{DW]R%{WlWzK#oߝaאW]?Phv9H.ٳnwɶnHZ36($kg*҉+̠ &z=얗4ܻIYlV"؂^߸ JG |P"U�b[�.2߻9;f۹ZUufg;Fk%-qk2-X2kiiǺ311x\XH$B5γ\�h(PY9?sKtǦb}Q#[j չN 3xq_k� ?0d,xIԦX6�Cpymi:)[}հY!(uT#_"v=;]*!3gQQ,�c1Kqy̑$'x# m}ö|ͤxֻ=V5dhU7:LS,h|R匞'`QNL�J UjzC*^bٹ gy[<[ E!ҽ[iQ$N glip-%i xV>bJLM.VVDpr1GeEUW3־tS�/ΆT SӪ߻D;nW.n'ۼ~߹r؉\C-a_m6fRQ )nB7fCr16:.+@ö핥$idl(8kYPuU`^ZI'R:us8n= a�'Zn{-p]`dOZBW9sм�f4 plܦlˆb\sn[8r*�3!Qxif?%cA֬DT&'MV[VJ pX,3l"mX~4vG$̞*hxst"pdm:Ko7iFLsZE+멦LB)_BYU%q_k!'oha"!ԆS\[X[#cݮ25m׶]ck>ن=gMzuZ}w@D]LW5<ZHB 9L\5Bv šu�Y湳 (fk첚Ȱ-ks-qIa 9ڿfؖ17V6O!r!k۹[1m/-wtKOc?;X7zZ[j|hJRK[ jAN4]d!Six`UUMsK}NB=u�s7p+uFHUUa7Γ`/}OW)wُc%C{g6>VX^k$l\«20n=6W-!δqZ]G#A1kL恲JփPU�{'TE꺇y90B%& R]k~E"!,ճ&ho#xa"ڱ^ ٍSdk;6sQ\Gfُ^isk,f(!uz w#bIvFÔ:g3ͨ�*WjI(9/kZ*hMۖZE5ыc$Nm";\ EA,`?\2i/{Ie] 9Zጉek'1dx-&#8wbX\R0-c\\l f{h|sWF%h;Rvrw>IMFX5ù8VYQ#r]$S%a?|Xl\A<q&^<Ghdkqb2{qc:emA1k} Ysl?�"x(]y|lAe&:@QMELIc #<)L==3I-ﷷku2bwGі4+  yllF6W%~n69s]R�.IƝz[&FKb&_~Ov6t\h}-negGJһD2.eFI�6wSR֙np2fq{٢lX=a<M~Z>=Y9"]Io~@Y_ kYlnj6Wy}27i#|fk΢.lBf~mOnvg5u3"810;)u R#&T%:U{=D]}_o[-]n!7d-{;|Cۘ1˜鴄Im{4ib̺y 4[QV;#ji鵄a$&s&DEyho I1 }9s͛ 3is$6ay(ɣg| ıCXncqLC]nC䀑V)cݡ{fIw^6y\SoH4QD O8% um<Ȼ|ʊkyc49̑Nos)n.mčo'2F:9#w9Xi- >E0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0ZgL"aD&0`Gr̪k Y\.5Ms$:-kJ٬VQlSQӕhUd2 %g$kGq -7m+&C9XI>$T؊]ch(sesH@d*/!gEWZȔB֠Yˊ<[yȰݸѱW 8-69qWKF43skŠКѭs̿ɛ w]i K ܱU9M➐8y=<r2`s-cprYPc\UA�yo 'q>u8x`4XXAGe HKWq אHwd3{fEGZú 2IZ+e ZHJV bES%Lu~l˲)7M(rs| ,V/;7Itt|I]B| hS51TLВKN [SЋk cSȚ`Xs`R&`*_񱁺AZFOf?H:[Iٹ,ىwO#˴Gv]Q/q^!i=?Bol GmsLY9ې4zN!q*B S|$ZIm] Ic_  +F}M0vk82(ڔ>Hf@ziN~4ovQ&Γԣ+*v2bq=SS7f5ۈVقEnvi[}".`Dq=juŅ.q,ɷ-ķ ܒ FL_WR45 k-m #9A͛ ¼jѬVl{IJa [o~jj{x?E%]=Q5ڴn--+K�\NCh+J R}Xy$Cq4>i \#mFOeё 6rqMu݋Y*DF,&QsZ4ۥ)kzeF%ql^NtA-2aI/.\|垠b2*s!j16Tk -h1@> xjI|kS܊4Ddgu] HHMe3;$g:bV1۩am핈ltr<xy 5džRW- aq×L1Ukx,h\Ӗ5[YqFBo_R(BE7#m=KAKU g-9Q5Ta!Wp9p+e]3{|68Y{uKqXɚX;Hѵ{;MSHO44 mK[\vŇqd5Wg6Z)Lo1i~ {$W,PWQtJF\}UXUfqdsw!a֓W7Sr5�cB.E*{bT[6 -"A ̕am'@ZA=Y{ Ȥi7튞kprch,6[,Z_N|?R+ x!+KMΐevчUx"g8nXq/TYvMo'n嫘Jq*H$)] 97y94lN8XJyuN4�> 6yyke{iqt#k)(cӓȤ7/+Qi0'*QRxB!-Ru#xöjg ;X!W(U"rf,037BC^8"َ'3q(A[Y]d@vHy9L #m:G.e5AϪ8DĵRWЩqv4A趖(.7Hyēt OӠf{7.bK\O[3OOz=dI/&m!%6_ZS\uPC$#ֆxa"<p0JV=3SH>#-]2k�1~ci9H=Jx0:x1Z\ v"OdSAmmDnRsP-ݤe.}Ev܏1yJL?U$k\bm<s&~TRCb[˜݅B?ՠc;*jskIDg}MDl.&Wl'kz|~pm,{C~KRBDE.pW͏,#)"vr\X|,V SܹΙn s_-yhu'Y8yg@DECa!kG,Umt_w⮰r1x& b뗯s쓨ѰcbTO2_=�ox{@6{j"Z[:h& {`f_n1tv-E;hihXc]onٶ]zYҽ.BGsGpnk˹hag83I泏wG]hye Nt*O8Q\)y{8q7٭mrڱZb^o RjI$/yjԧ]T F7~i<y�Ob#zZW9�xqR1οS8UWNI }]n+XIyDUzLiSm;?:Nr9AH`!ReңSqdYww P.wSp/<.kpVli*ےV+;Z] g)xreg[hMȜcUQÝfi/6u_A>!x6hwcp@&*Y 8!cpֲGo~2HuuIhV39}rV]IG%{Si')w7`b8#nn rk>uHY&ǔHw"m0:%뛗pYyp%i-ٜf&pZ{IVFq"Ɯ=7ط ''.ь񛆎Q5$ӕI + DGܷZ@7FcEO9%q,级)SY͆5~�+4H@Z=X9xI<U�x�t -a�ˍn㔥yݴߕMmK!=g]LPy ElD'y`wXN6ڑ1զS[ϵmO"_Zt'<.੠r`>u>Ykz_uEk!wʫ.Hs<;I)L+jjl3u dB%$&)N~qdù6{~&YZ| <Zx5Uǃn^|;</)piS#Μ+w.qy} ]*MnHZP+ )I >`b3&,ne$W&qnmmm{-hy2^$ҕ$xhq{줜dҠ{V �֎M OEL"aD&0L"aD&0L"aD&0Z';W OG㥑:VUёDdv͉_Ջ2X<K6/T)(*qDWJqsi}-{vGeFЇj.oUV@nWq1Ntլ.<KxմsiJ�P}KybF6ƯKlKNL&E9v*^su:,nS+lCXh^X�*˧q/3:28B(HsI4+3IHMVqn-qla~D"=Ns!iS`2o6~1 Z[Sk/y#s:o>cAV{Z!q1/l~ ut�IkU@X c AYp y*Wu=,ZI;fcN{oz͖#<{ ^.kd�JGUk2Vذ`3%#8Ċ "k/Qhs ôܫ' NJPS+e:$]]& d퍺ыr}GQT󚣸u}KhG#O(xT*ǿ`-l:ORQ ڟS0ܞbG'w'?X*<a;=1Q O)NOj~LTxwr{SbڟS0ܞbG'w'?X*<a;=1Q O)NOj~LTxwr{SbڟUc\tq{be1| ]B(4ld"'C5YL.5 xHAXw 'yXx%<�j=EnonC+:"ʣ0MJB&weGs=,m3m[dz[GKelazp"o Od|Z�! zT�7 =,cVk$;tf0bC[u.J$gǮY)ve[׈sVB;d q!}E^S}T^Z8||ʸFk+r UN.IЪ!( `ӄhYY#5ƃ[kNnP|Iru߸CPB t׍Ioz\տ\KM55<9-aXjn;cR.}y҆Qڍ(S�tmn[|ns[VU髈Y?) GzL$kk]-5,~s2D&0L"aD&0L"aD&0L"a4غa4lQUKo'+Igv�A/P0T]Vꕜ7W:w81[~ |Z2ۼmAhu&?|ev㎗դn#<45|G4Ӊ'`}7s$gM'lI1F>G$xJNn֫�RP<Ζ~FjNO-ɱQm3@Stydf±oIo^HjMn`,+8DU++a֮ � =@|@C@sBH _W-:))(DL�Lb"SS@D<%FE<dp H. q Tӊd3H>69`!#05v#=30Ɔ%4aʦ,9+&bq�:έm+w[qy_äqǻ<F,ncOw36zn#H(!}HZ;P\48SY&D*y}Y;pVSjJCJv=s,n1:0UM6P[K,q~?)jC/,<y7vUmh/ڛ#; 9Tsḍu46W; )v:Pp<:d&욇W5f$dmبR08tmΩz9fmn< Z6:'0+>:CvJ5w1y=pA,Ĝc%<#nV(*{MRU4c7UagN;x<=b:X A;1p<XԎAǮ;;"<Oo?tܼA{Y<M'X䌂Ezi}$Gɠ\uF0d^:Q5ܶ攄hf]峔h1,LP�i';{ ۃ'e;&r6$Q:>+gs :Լn16`in| GT:w.얚6ChF M#=72ԞpQ N2|ztI:ٰφ.:j2ԼUU5c<N GwUbn{湘Ӽ쫡74pP *qKfՁ*l4JZ*EtNJra*<:Bo/maw QoӼ+lb#@}ZE-Gs0lwam_c6UrktEwZN`h_l< -gpk}-'$0utfT6>OL?6$q?@Gg$KQp [7R,WT}+|8#L7`xDlAJk% {>5j$ '9O^na+Rj4{ް91Dxg2%3ϸK_iZN\gywnDwOqsk~,w~Ї%~,V/Qr0}ܑ錫e1xjaFBLb/=S:Bu7(va`m"ȹn�aU2ZM3S89F :+hRch'!DnfmJeܐ:f7)AK,|o1Sk-k9IἜQ4<ZEz(_MH"w>zN[޽<f-ے[߶NsyŮ:shHw J8V\\J]߈J61 &˫ћO $BӯSX`AX7\>A/O?ej:6-r5❌{l#x<񖤃G4] :M}o#^ַZO]M?8PSPRա"g2"M^* 8J&wVeb'6޿5ՎObj}n#~*$pI0GVF Znhزb76<DC]si𝃈s#VQiB~AwO2jՅ%LWKW415\W Xf�1{Qstcufptn}ڻ2$uO25Ohe]Rx$n,fٷ::Dov\ۑ u#Idn kK(miK-0h=88i ZRM 199<7=30=j9<vﭮm 9HGsѲdlE?cnmc;ZrCqah|gQ\mw +CyfYCdXgjj�VfV;2�*abMo 鶙P͜r}]wjs;RWP@=�}ht r)+p}Ոw`l&r{Q1IGG !4RŇ@nLoΐ:r{vØbs{7 卻 0jidAx�"M% ٙ[\WPet20ynt'][rBy-ZFջI7ܻB,- �JhojH-@<�x7=q?טGs <txEY8fӧmZo}ϰRfdnV W\}ܝ+^Kٺkj5&”ε3F_U 1ɜ"r4~TΨLݹ־߿ܘWAz{ز0m@PS%KbfGͤ47'zlFx$B [Ŕm L QOk%R]^4;6-`Fu}{3BBtp97P7fOT0E~jaN: ꭑtoXVl؜6{[9a6 I eS3i7a󆘯N:;6,̠d%b&Zk}E{g0hv)<GF2Eh(* `&E@X/�]uݦ't7-\H֖ XLBawwFd!4L5}ELqK]'dGAR9AλE3rHZ1T|+D8u<Ns5F&k1K\Π%hOg)o[)[),de_(.bKr;*b#ki"Z-7% @k"upw)L"KJ]iELSgۺWp[?&).s>.ᄑmvA>+�SfqQu41QN bh-fJ]YbP٪PU\7zD"A){%m{G.pD9(x.!sF^L]ouf.-rt`=cAcǔF "{�#XWVD.nuo# *l** ME}Mڙ@:m䶿_6uDwcwb5"ع̿DMU]l\8{{Qɨȑ6:qW`'۶wMbJ{$nLp,p4lcڼEdp\+v۽،iݱm՜ܱ�QK@̭(n2\P91X)c%{RH]%u8XaLџƪqΔnfO(( %c1Ս"b$% QD#gwu WR9]fjnKH: tr7 hka;Wkaj@�2y4dcP -aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a�@edD&0(,KF-Š>\ =:z d`1J 9눛(Eh<|C,X\>ݑj<woHAN) i;dHEׯX%<<iS`̪"eTWRk l-П�Qlkg{eJ�s!>�[P)SSV+ͧhbt fj? o{j<v 4fr/i}?&5\efDim shq ic?MlmZ(�pխt[*ԺF"fw!~ "T /+P㴲 CI1|1{%_75-m(`"5u] qk蹸 29V`6ctYdw9 ja<^GAh\['흁rF糥n}6թI ŝҩ'[U镏r)dąjS㝌ubn)٠cCxxqT%E2ٛ2&I2wFFmKx6u4U_ήĦubV Zmy'62ꏜa[ YQEh7Z;DRcݩ42 򻁙bn.'I�q�&xM]k*w #]Qaͼv3O2b}g&RNsh[o5Q͝ZruRvʥ">wo {l#T2uaW VhB5uVU<%+lr)dr\61RȉFt@^*66+Ubd4x�ԐQ 1@S՟Ԣ]ڦ鄚<dMѨe#K_BBj]vr5j%]u$19)F=mN@W B1IޖYI5Oåqw4q:֫'0Uy ^0pFڤ%` ]}kYA,发08%)QH%BaU쳶wr]F 1j"i- l:WY\ Fo\NC4hu:W84T60v8Zri?:BNjZlЈw,޹"2(@PM\׬ ӎJ U :61^&e�?y;4TkᷤC w 1GE@sECHVg(0WlE$Tך Ɠ{N0yӵR9jxBn\TJPPenٿtmևKq;縝rc9ƦpQU{93'9͆� Hk4F she6↟y-=?E6kuO~kD􎈦l^F6dj ̊͡IFe3٭}ӋfNhΡUslvY$ʚG@NNU�v ;V-hhr.LIޞ]DNSla4Ld=-nӼػDyElZ;15{hݕCku2;v&"(OTgSjw3lㆾZT菸d,UǷW+/CWBSgm5Ua!T2IJ@h驶n_/.BZr@@9F1-m/keb[S@_u �a86G�.̾Z/N㬼?5@,1i?ХӁ ɵY cDÈ&ƒBIC+E"L{{5YVKk;ӉpPs=(yхķM(K@kZ !V7N 5)m|xW[9|:t}: yMppsx9{ZٗT숷s+gck' 8%"WJTjY|̆I7ct<`"|WQY5(ѱ�h>؞vuTSQj"E' =.͹Xa(J%> __Sh 2u]1ŖqshP9%^"ECWqOO#}P69PIqDEBLn賷vq\@sv^yukiSt \D4"tG�$2pM ԗ\tׅZ_6}f&j-rb8@IyJbW/j*�n`VUtJr+laܻi[`.4t|>Ɣd7 ;pX5{Q"-`qZyc;KhrvD+y)ɞY4mr`:M.PWzGSu]$ãN]ojMXՐN^wjy=3V֍\5Rf&mtZ [05{:-.z] ʎԔXi7N L_4lioESIvy-Q*DM"Tϟޙ%c|7NFN5�.<ʛ1 F8§I8=:(LĿ灲E25G+UyM(*klY&j֊SG(3mNp]TY#vfͷu㜄jw0xM(>̍ 4$kĚP[4J}:ȭKy*{Q;|4k+EbJ&!Z/BIcI֑s1tړ9S8䊨t:m<,b\ 8aD@+yeqqkf�Ewyj-mx.rnR[w|-\3FW[!P 8½�W#%r9rTTjyN Di-AD.ps?5Xr(.q2Mxͨ͡#A-# z Ӝr<MgVj*AXCZF[*hޖC Tp2~pH ]Ce7sWIc]4q&GHkO(qHn�pGe6Hq<np.ZWY~[8j~[f҆^1J́:G ֧}FgT�GR좛L{뻜n%.sEIKÕAE҈-ZȤ@�iÐx<47+5| 5bߩ`[fIkǶ/,V `7lCh&aەFg9ƍ1Ѧ8926 h$M>sn I%qq8 �\Ӭ{59) %`0꣗*V r>#| &ROHX><-J($os#J6swH2j%~NV@ r(VhrP)L!,ۊv6{gl@I^{ a'9pqͰGvk8Uh54;R<K+78hX2딝>",HL͗;gE6b['LDQ5IsΞ97Mѽpi+湭ik|Z{l[p̰y{0=y;YeAT/F ֱ՞2!&fT[.Ǫ*H]d@GA1k{#M*ѱD4&.R#D,q>x/[ qoeWb/5>T>�CEAo8eȥn,&nӶ`YQdZrv`|.bHȥy!9|K;#$ȽC26$5kE+6X\{Pڜ\sʃ�(8*uN{Yʜc-$"-;>z-@L`0C�.e%F8�YR1iEI&̒x�/^߹+{e ? M{훗X#+ {BRf+4&TCeMx(ٸl ;6+: Äq,dMc mpy@s6!ͭqj}F#8CXVUxdF.JȪ#V28Yc&+-[I5$Ȟ\\<r 10QxLS-#mG㙤1DL{ n*ߦ0L"aD&0L"aD&0L"aD&Y4?{Y^•�U%j>;`~͛UcZ"j.7C7wo75뱸&/! Z揫Âe[_=ȿE+J ӗ Ƨ!zk�][M>Gwp| EH�w+Wzw.7&\*ZjN?$sfeg.cG=>n=V[]>885OkG@>ͼzus)I9N9\g?GLzsٿWgM}7'9=?eK4fnOOΚ[OoOszDʗhܟʟ5�p/??W? ??K:km>?Y*_9~~7r*~t|}~&Ts@\6oT,鯵g?GL?AlߍY_ki ~OR�<~sٿS2�cx~7'gM}7'9=?eK4fnOOΚ[OoOszDʗhܟʟ5�p/??W? ??K:km>?Y*_9~~7r*~t|}~&Ts@\6oT,鯵g?GL?AlߍY_ki ~OR�<~sٿS2�cx~7'gM}7'9=?eK4fnOOΚ[OoOszDʗhܟʟ5�p/??W? ??K:km>?Y*_9~~7r*~t|}~&Ts@\6oT,鯵>�GD<Lw9 :9L @@~ ~up~7'úhhKm* Gv>?#Vk(:+DDG5aKFhb t! Х��� K-<Y q&^$oQs@knhk^/Wo=Yh&f.:쫍 aeJ]WUI×�Ȑ 搽L#;qmk{lm@UsE>}ՃN|\aq"$xYCR0L"aD&0L"aD&0L"aD&Q]ìu`h.P &$Z" Jli!f^1Z9,A(s^z<b{r+Go\RYr\8I-.;%6;\[+{ٻjr2:"D7WqlП(Ǫ7 PT6Yfn}UnQhA3z%Psvp*Lg7}O9Xe T維slep5m4$5Ow^,o[2<V)]NͽģAOS$ u06KDK)9xvO,UP\  E79 �r�[ooא_h\ǷCs\ZNWˋ%BQxa¡„ T.Eٷana:٢p̯53nQ:NZ.$L7O]}Լ|xA'yTRMq=DpUgmѸ6ܶH"h5 {\ ^ 8=Hȋg d`֨藈EhI 4zxq?fp;s좙g'̡dV0JpmbMC,Z+6Jm+OT^4Tc?;zJj"it32)WOcNm"!f-lo]-vB,o kltuJOslx%4g4?PTHAjZXh $hkSX�SU mU@C-|_QӞ wm.XE.JV]V8Ak x(}H0F`ʘCm(Ik(DY"'! ',PIkϚ@HUH@w: n+e62AVo,sFΡ?P6(%o6H1k??mV-0\Hf"=dޤ%q$O(Flیl9ao+h'ݨ匇4 6|2iLWL#$aa1k5XZOQ, ޡQM+j,` :lJ=N -շmr 6dn{0gfto #\ј|#%޲]w1f.\Y_Eɪ~seqҷ4Rh�(Cܤ.ICuY{% `H?abg_E;'tYMkݏ}g\8L֚ikżɋ{S63fZ. NF*i3 Axu($ڌg7.) a0쎧@lNY^P:-|DZnSV?oH9$icx _69쮨Dsxߘͦ=%5F92<sG\M$jy~FQ]*j ^r.LN!c߱?KCl?@zog ܎籠zQ7�#뺲_.i-az_۷{Yo Dx%C`82YӝI]jȯ=Z@L&Q}$."#'P=-gGszRYvdz?q+&?.^G ZCVm豻ktpo`ǫ+HS5菉jCץRV>M[(VY8)^CMǪ=@R* ^F̷wۛ&: Խcฅ,P|SD%@sY$oBbnޙnXp/TrsӢhdK\* @ igZgXfjⵏ]8SkWcy IC1H3SqI)} ^-fF]i}" ]nqG&ym|{Z}K|,rVU n/pVm YĒڧtǖؘe Eْ7PM8Bsz}EX˷_;=-�ߐdXj]WF=ԓYܞݴ>ۿ:k1ӛm)Kc1HHG+8ٖSs+mSuuŅD YZ:Dz32t[ۊ9s ɷe db�99َ#@7;{b,7=Y䌅pZ|!G 1 yxH1Uli:@|q2yh09R3eT;oT.wnG=v6$x9'ᎷN:@pvtqR.l Bm9FUEA'a,^ds2뽊=UNߩl r#VWyη)tm[eb\n- =1>Src"Ze%=lE-& Ҭ`�5dgز;C6[v4bq뭢J~A]{ [C^ ٞO5&迁G$,L�n''Z.`o}dƞ1%3 6Oe#6@͓p컮O-S9}>{w @@$lkD1stIhh(+3IuLa897Q&ٻV#\|Z-pڢiqڙ�גs;L&w\DnX_wf<s(de{gw_D[kI+29?k7x Dw}�:eqMn島Y,Xx<"oo[C mj[ϻ[&vmcڸiZ<䃄{3kfnrQP1TȞL+;!-$SJ)A8O}1v;<^~n3FHVn?rdi,|o t+},0ѷ6iif�km 6-8X-%:ܼze;KыdrԆY4TQ!(?Jn˿Л6y 5$؝UaH5=unܿesY#Et٭'=ut UrWNkXfg"f솷N\HnðzײY5T:2IAǺbYwOuCCs;Z$[I&=K&@.]ٌ[{pWtG1W{mR,o :B S65X "Smw[9:R+>IS WwvNn@ujݵߛ4isffb�Meth$j17uga$ŭngS+ p5Kx_Ifpe,UG" ;2  <׍w*ƸW^HT* ۫ >]euJu4^]k魠DGmY~$*Վ7MMK|Nmk>v+XfQ/HI@YeSQir稩/U]r$Kݴ1L Sx\3ݵڙ+kͭm#׶VIkEqΛc@7Ȣ6FlCX]o(+8jPslr99cm#MVd덊GV,,qpC?eN3{TbiCY[^,K/Ώcr/yk Ra9s3X<\l9ryro4m é\�4Wy muZ6GCXL:lhlsG&\f)\:Dفn,X)s-rIw1BKm52».q̚.BQ=N0. iSSmDŭfЩ؍YA;C~Z'G. vϯQn=[[z8<p yǁ0V1;FBܛk[Oq㰕8Y]ÔO WCQn{ȖY�K{#ʒN,۫ RrPI9GQf:glI"vbݯe\anw 8YmlWrXio;gi#'v.h9Uj8H,f2dQDE&/j鉌xB™sm6r[9kh$`qY_} [H=X{yhXq2S1S]T7qM7E! ?�DD4-Ɯ qplgǃ[(Gq5f�6q1h>e:x@<"'ɚD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a�@edD&U=y%iْ4)}Ǯ+X{E6V1@)=^H3os:kKsk`w+nj7Gn><=8G3&0`muJE 5""ڡ?{JMIJ¾"d?SkX}SDY錭h8*goXAx˓k\>i %<Ws[K@ﯱhLa.:K xkI\F;S]n"2{i"%Z?ik/A\}b ۣp�QdYa: ro}cswNGxÜ-aF UQcճ[6dԵl^Ե+S-#q婚rkgY77w{RGQk YI-|rUQcxK/$(pGL e++PmeDl|hdE7c\'-[�s4'u9qQMs-zܗnPFkOyY5I57Cɒ(p(,3qs/rLObٕKHG8CIڴ-]gjH{s^l:  Hic ثWLluggQ@Z;t\kjtxI8e .ƐjJYo7'gB1 7۳ P7Q4v^xq`!癊c^nokYq)H0ŭ9MLJHI7$dDp |e 8F4�r<rcDH.qR}ryE0T+!bVUiV 8xA I<Xɱ]*ic('KH{G�=A<‡7}ɒ\'I=1 �jHˏ SԺݟ'uޒ][eVOQ:'8Y}ySȒ#@;#ErVۧpO8MyR8I [դ.67 9\Xp hq0<Y̱Z*K*AܜWxq׊3 ıㆂAn%Lt^nm I"`w.xh&*>9kۇ;rn-Ԇ.'ts3nᭌ84htӐKm P=T?ivңivs[ 1T$qI;DIi_$\6H-d2MybJkKqى_wt5K{pcFրµ=xch[wiPj2Lj]Es =QLc JG$6 Nke<HuZiXʢ'`r9�n˦xu7Hm6Kj%uz qiu;E @${Z nA)1cX -iB@^Ԝ8j7ޜeAfmdP_R*=l6R:Z#M9  @,*,`ۿ: +ul-0]ǘH:i\;G]7JZB$| `G.K5ҝBZ-I[KnUD w+7Mrlt[TЕx+I %{+`3Ug_(-ߜ{1q5kk iY(8R8ѠU>=X$a�O+H$(]o {OpZO>y=k|5._\|fᣫ/%D:?rDZ.{#.=#jm^Gu5sb�9j_ےb`HwpX+J3`Mj :B]yĞ,f嶣p8LWoruS$1`xƝTp={ P�0Fo3 V7=Z7ddI^8WxmQ[)է(iZ2C9G-7$LJ�<Ûѳ?:snm l>Hl(aAD Nۃ~yiL- #|S{d pX0:wxj{ˇI I5W+,Fasw_WUµ4: P1ŞsBQo* /pLeK}|F?UΠ˺'OeZK5uK1"5�L^g"x}ϝrrU.;&Uy=<nhiƤoF ZvQC%u뛪;  L:v7[xH]ěw$#?4,77r:W:Wq{Z)C@hW=ֱӇ[6ڀA̽NĈ4`D,t,KeR'bf+s2]9Ɲ5˂sog;kdUHԳCO[{uSQ}}VifF:[Xq@khYv(!NN ;\!f㍸ẃF\ZDO81Kq<a�,Y-Z/<ԁ-$V.1A@5/uVa8/<!2ڂRrl]ǧx'deYK\Ea"PM&%nTsuGy,jK2 �Բ3aa.\Bq۵Yqqu!χ�¼8 =@=\O-]52ЛnZ 9aGKq+Si4y6HHPݼ@햒]b]l˲]xqlad-iw<P[Yb8C#˸}�4*=M"hMGm[㮾:~p-Yfo231Mv$e+dܻܥJ"۵M"]ոvw%wot@d< Ԭs|KzB8Xeq[FԹ1ڇ8yWhi ;s9-Pi%Y),S|ܝ0k[%,a9Q (M7JͲgIHQv7264xiq?n޴25u</WB=<4y4pr2f5:[=9LP8\z'` C_E=PmBV48Qyf[g}xtv9٧ 'VߜL⠹('NYcl4֜Υ:9uHV#fZe~'3$w Ty C5~kO? h�(�ݶ֭lv�̒xjI&Z%;GG`k22ȭL=t _X1Mv&=3msO]们}*�F3Y\|ZXkZw<H`ur `oyCZQk彼J^?OwO%Ʋ|Qb=XF�9q*u< =66'uVx޿!;TxV[ '{@&:QSȁƑnAQm߸y\Ǜf\W̏;Q]M�#Htd E ['r1{J8a -H�^ .q#7Y%ښO6O2T+ϭx-hp�6\׬#hVmѺ-8"I8M! N" 3yn2o$y/lGmuAO�Q&L66.6C"i&Wk(HV"[m_g ""6**=cصDDI2&BBW,:iW9ĒII<I>2-kX��� g<Ҡ\֞⎷{-ܰtE~9+�T:FNns6èD*M#Xjq<Ǝo{}aR@8w0. m@Mh�V;t&!jWq66 Vku* %vFE$gdWD#(O%r,,8mLi}K;N.Zla<5rTV9ƖY7 �uy9*3Lj)+ЮxǧHpP3Q'VDM)kt&2v f _j).1365fى7]>jxb<vy͓<\1&dD <97H䰓3!L"aD&0L"aD&0L"aD&0L"aZ'NBiMlSw}JialPmٮyǪȱ@!KwE;'aRLt8ײգ´i�o]#!/ C*)k8𯊋 cS][O)7}i˴F Y :ґ6:A1�>\]jaxcO*S|J~禗铴?9#,{�?/ϒ=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EI;_NN>X O=EKr85ܓ|[غ=HVʸpB0~;͍/}X9\tkAqw_+#|fen | S_;J*Zjqw^= Q)?,An>cwَCmLH a5͡ QTmllVֺ}>K$z* ,aZ9�0L"aD&0L"aD&0L"aD&0rȮ3][m+l'<#R!qjOB"�2~1 9=NzO}nҵ]ui̬*ߺ�+qfۍ[;Rxebh"]i#+{#_u'ʎkx}4g^ںL*EzԲԎHPAɺrlƽ /'%ŶU C1hZ<U9'շ hїM d%[BaN'4Ӻsc$1#*E@}g-^\XNJ",竲٣fcF =IRdb~aZY\{ar.vx5Xon'vWi6 iY :จ4�,E_‰ *Cg(&p9Cu)rA (L H AA<_L{p{ k9y<a[즿kMjKU.~dx 2�@+Lfg�Aro�ss.&ptJvdtZbm.LaōӉ.u\6ݎ(oepk/ChߣI{j56MY'rf S=Y+Gٙ6E|#ʑ@b=GU:mz]X6cӱR͆Wgl]]RYuo+$sLS.fa7C\Q 2x%R9[(to:=b{@<3p>TW%^7R/͙#Yc%u8VkϨ$8tpp^`ھ7[Ds:�wRM^{C>=\b e�'լ^_eCC0‘emL$WeܪQ_z]l,l7-ϴDkuT+Y9,M6.BJ1UCǵTNGb! Q�lQvĸcY =Ѹxk98!Of\n,s6i!  PAfͷJY"LjEB*.4V3[CJ`ŸiivnEvYk9+H;Ë+HYO,kEXip޸Y�8IJ#f؝kp[94KɰӬ bs&틒�hU:f"Ըޙ*\vƇ\O^\ػ֊Il<kwF[$O TWy\hs{ K\ ^c,2X´&7&3JʲBL}>fJZ0H] 5e!bE �'wސ^@w װgvk)ak\c|MܖcfŝI1Jzsq{�#a2@-XC]qi v2W�߮z蕬Jix'ndRehRfZMo,/Z.쩄i:b7@zXss-s{ pMrB}.tBhrNz4Cg> Eop{P<CkuTClŮ=?]rlhuYAD@z�1oR%Nt.1+k73L sd+h>AV.mտ9#Ym]ٗ{08.#k>߽kx ԭzײg\8cϐGRiUjJQXn"bQH|�S�9*iuwAp;Knm;Dt6;'eZc=dr<,fo,f"uۼ;>ks:Q i* tbXu &o!WSMt~Τc/v_SӼY_Z3c�LDNɣ 4u+-ɶnaqBh=ٞ*&v.%IJ71cI]!]R=)! 9C&3`W杶B`/0ВvG r{ 5/{~[E֑n1,{Vrœb`Y}^CK$ǻi]ẝdc'q�]%m*>w۹*j+g^Ķ^Z �\a!ji=fbt;*|3ܹ;Ls6EdGR6D[}ۤڊ|gVzm=:K }v;i1Y6Ruj!zը\N-(Gsx; kmx <S? ^JFl(Bak.H�e|1"sŅ>lcW{ Ž!L}kce*ׯPu$\C�f ˳:/vq2 [Q:X_b̎M6_y!hc3{\Gg&उ7oyg=y,㚥&u0UjAAY'lvX@E@:6(*e[[ͷrsE1#+rxq /XR:xk{wisA.̕}4n)Hy*;Y�A2U oƩ밨vb�D; ¾؉�bdg)]uեvKlt8dxܸ3B�Iq }6qavpE+ {oy�4w r~~d%v!XjM uSD˲mړr%+! bȶUlq}9]԰m)~֒=btwV"o\rFt59srxY&@\<hen㯹i,UnLR}pqtn5\uՊE){ozjY'hB}aP[st? 7,6k[ٶ킕WZɪ.V֭˘9f<S"9m2Xwl}t=WvM p!FVYY+h雲 {E#sn=ࣤ٪�`3sngi썑oN4%A;dm niwe qQ%-55FYo g 1{h<2\ś?$g'JJvڮӴ9'xx =dpYD&%x RPDUD9vW]7EwM:+OJ/lt<W-÷ 9I'zGzyݍޖn+ 7Dmv.*=5{/n%MW<ZӦޭ0g\(GZCDA*تHG)rVHz IUg˲6\._+rKcM{6KB8۸lz-K$QcmB Ygz˾m{p\̇CKZ=(QE"*xQOQB?"Na σŎgk=}t34$})$/.,uau$'6)H WL<X}Z@h u(,wv:_r(ۋCcc]M@+jQ^DW$N^y\)Ŝlo^{4q{(4j$Kɨd *�iY3![n}3ye0n yrVqȈ  (4L$l@$ơŒ=ն6 y pXLS41佬!iuqM,*¨vm4lv7Ob@m"1p <$t[;3FR%:L޺mѶ|@&w$> slρÄ&3rH5ϝvekں.5 " k)ۜ zRC}MFRflVE'yX۶󷘁 t/kL00=mL;鑮h0Uti,")l+ٴGM%��6;Rw#i@*> k7F}۷#](:X(gx\g3r̮6i{\IOG_MX�cq2pq ݣ1 Fed)(½p V.k)Č@>_\~c$ KoM ۮX"n-4~31jj;fKm9|.Y<vb<%clf9G^ojpdo#E_dbExiC[*N;\7ܱ~ɐ&sjKɉ8>8dY%ND;8ϴɖ~8\�(:'3RAV0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aEv$&3s_#SMc0,B>fI&ĨMJvr&mo tT2F)͋m{oxyƚ&"Gx&r*On77AVEBG{y_j;$UAW.CL%C.N_Ӵ}t 5 =_V.kPF y7JU='_j⟠+\QvAz"2Q=|v9pGSO?Th鱸l5JAwPrmÙ$)za1э0[Kyq=xд 3DLwneSzKJrxvH-1JȰ9\EG(gg:j f+%"8�NE 4(hc;ȏIp,Ym|[6{b^,PfI@5P5ii#G/XRCqo546mAhǪE=5M*R겏r q(*JyRy41JY/nCNr9#g7.&?%7Ba)>ho,H@dKSLa�2VNʟƢ\̧˯Ÿy�Sj샰`M-{s5EbG#IɆ:h9|uz0]sK/2k8A:}nA푚xgFV2ӇI\ ?WC) &E�HDUW6z]Jn#Lph%9JBf %ڴPѡw78ҕ9�xM{sl!v^9gmºxR{Vu&+ȋ jWlBxBN-Ymsq9. 27o',#{+S5][\_&:a-2j1쎠ם:h;?mmGqڃw"@lSTC=ZDWIA8V$&>RJ7ͭ*,qK"1G8Rq.<底9h3Yus//dmFuFvA'I7WksU@WL4{ Ga]n*16tR9ZA奖9E&]"Zse\Dl- m9ja`;#|I341:"`/hqCV4:辜t'\ndrrG@y_'c$M յWP3rҩ.Q"odٮ~B obXHo83[89iJ6[DG9,Ɓk n-sE\Ma}ExERHy9ʭ,صzNZ,ܴsG튩#fj/r7ܷ֔llCcSL(VVgOu#v;W +K>.=\ַ��;_y/.-SXEQjjtsU |KTTj�7wd0蠌oym l,Qd]9G€7wjDqx y⪬鹞H6V1K杹9iqxh Jas*Zdx\m{7x\ΎFQul[ 4{\n}Gj_ s BraS\eʱl$jEJ]6iKjlp֑uޤiFPcWop g*cݣ+ʨ2ba-Y+̛KƦF>r}@caрݞ!p͵4!#ⅈ՟Wt_K~?S6~c$)ZvVcܑyf";b_fo:*W!@i [{K|`{CX5ܖwLn2#P4C59P (\bi^$jE 58+FT)#(wY֨CE-|s�6Ihr-O>\[bkjأyKsI9Li<džٶln#TMx28iWL4 cv=/R֚ݚ<Ɣ^-j7LQʎY7D2Ǭ)&vڻ.I6B53Jt/{5DExnu[.^Wqs-٥j�"6hie5 쏥= }>xL8#S+p::*8S]uiDT ɴu�@F?v߈p9$ `Sy&*`Y]a[˸,i$J݅$d+NL~R=e'Orss(Kg{2oWtdDw bipcȺa+z':2WOc5ѹBDz."-t,ȉn!έae{lZ7:e[fWm)F'w'Y֨>@D[IƴE$r~a%vhmv èiXʗHA:B84lcIrW5ϐD9Yݏ��Ur[cogQb$-wh['=~96)U\*֫q (7˸]H7I؛r[Lie78#\LEtR7n @"΅c{]vh�C\V x /AC8I'9#%1pM4(8%Rg]%^E }:%"V%4v H;P?5[e&{j<MuRpl{ yRIdl5h$ ^rizң\S^Xre푌<f9TmlӅE2x�tUe/bI>Ee͈T.ݵ$G4?rdmodVuhdLv  %Ķ;1wN]MERђZ[h\؛~B Aӿ~4*Ͱ6W;Z*-VB`b}.}`<H" y 6YFmdmVGC�`ٞf6ڼꚧ�"q ?js 0TR8Mp"і3ğXd ΀([\t_{:+J>}<FP �)\WY9l8Vـ�|o�iفÏm*;Kzέ�y>~J]Xڿ/@H))Ggh]ܷP0@Dq&ila";˂<:@xKB4;*Yj!K,-BBԺʄm~*FC6!JCvdN҇zIw{n.{I[!MlpP�Z� ܚ{Fշ8Toe�)7@HaM.STPBTJg:Q'MP@,,JF{stӎ\O8%Z̶p(H{RvIN@2Ӆɭ˾pYb77(<hLīiJqZK6]�L2] v: 4HS8{k{SN܎L2�v@*À]�ȂܦY-yEEr `ٯxyn6ֲ@J+6^ycbD޺2i8dɌHd2pcָ:K #^G7<ѭIT_2\6c*OH/$ I1lpSHXDNDJ*8e ,n5aGG+]r2y$Flb1<%5;T?L O^6Ↄ%176ʷq HE9)܃REc űOp1̈́}͜t~a񚿈1r"4G'U/hdiXxv b5j(-SI6,$TI2P)@��2G$%q$jI<I$$�A󋘉AgPq[}׭JF1ҬdUUL#ޠtWHD1�b$xp"xD~R{kzfVvK3lmB6s"הrђK|4Q )J"r-c|hւT< Gu 4x'Tמ 0L"aD&0L"aD&0L"aD&kmg^m!s)k5bkj۰{հ3A8Y0rZ>\]28=guXL_4st4;m x]o-n>XZҔ>%/ٷ"�1:nYg|iuc*rm)6_47MK,7]|IE gR/}. {"ܿ[}~Ϳ uR>_=|n_­?fԋƆ)cfK>H/Vl�roEcC~tϳ}t$[oOٷ"�1:nXgپǺO-U?ܧߝ7_,|iuc'*SmHhoΛ>Yo1rm)6_47MK,7]|IE gR/}. {"ܿ[}~Ϳ uR>_=|n_­?fԋƆ)cfK>H/Vl�roEcC~tϳ}t$[oOٷ"�1:nXgپǺO-U?ܧߝ7_,|iuc'*SmHhoΛ>Yo1rm)6_47MK,7]|IE gR/}. {"ܿ[}~Ϳ uR>_=|n_­?fԋƆ)cfK>H/Vl�roEcC~tϳ}t$[oOٷ"�1:nXgپǺO-U?ܧߝ7_,|iuc'*UpWk<zvCM#Xm*hMN\j5i]`'NC#[3nvmSBZL�TΣE$}:`d2 .'@ u`:?WL"aD&0L"aD&0L"aD&0Ph+WL+ 9NRMELʊf)t n!vǜ׾ƉdHY$n-'KChG-S\^[kƼ6F ¼AEBkWBN:%:~9nخ9En�ULVr! ש _{K3$q#"gy+qSF汍\%eZY^_X$ӆX=X 4FR)NS)%1L�bg{Ka `ZCw0[57]MQ9Pz\SP|X-סRp'D< \\u=rC:).旟#|8e տ[mEw*U(݁즀Q3L{eQA QHlj0L@ů\X2Qjt蚿KCt2FRIy^3 իH2䴺-[;%-]GBGctBolϫ%y?sss~(^8D( i@G+V@eTSnԥ܀9;KziLzosN\{ۛY86c82Nݛ6\bfmӻ'(SVᜟ[QʦeIT)&K"L*pI9bLr\cb1A)�6$p4wQC.o0ޢt`zmknv7۴unM͹SA6m;i-C^A̷rqoFr}YtLW6(bɋgmRf)"2g/<:h~>tQ`d=Bci5N9q6C-<qo FAc4gv5{W#LJ&8hp<"͔ {=蝧Qr&xDT=@s]qf|UŎO 3h]\C#HK GWepa\Z_0=xF,uD-F{5'0;Џt^*Â9&&L!0e+6<fmqٛGjtiD?q{dNlG'VQ>ݸs@w4ùimgDjm7q9AV^Uo gU$X4u0bohwyx Ț'G4gt.^.1Wou֦ m.8m b;ݻu3xsr]5x &2<.Vsfq”|K$!ZK<])XFxn̯M L<"T9ڛÁ}7ҿy Kb;nqylL.{K0vJ#v$A0J4ű$.^Rٍ..dWVwo�{djzjnݠ^2c[0YmiFn*1/6l h@' ;(4ТF*Ӹݽ:c&fptΛj՜SO#Km7l%;|72`klG_tLn1[kdw3cg%{*=SXjuN.1٤[53׶;%+ZCsLȮUjv~3a'RAD:ݟIV{-79l}i,: L4p2uwceubc[3@44~P$p-u-}jK b̫Mtl9%0~驛AyHQiǻ1A-1qf-mwѸ, ж>i�NDіZy쁢I-#|jt|`⺚I=b~A/Ƒ] kN i4ltShU%nAꭶ0҉rXcga9K_Fni^̱z.#;U(x[.!׆i6Q1t][=..̓A5npi9L C"&;+q]t +FJ=jg) fd̰sZS zѩap'$)榉DI/[a~d1ܻmŝ=Ѻtbu=.6ⳝm]6-s"X#Y>f+>&.1G4d_�C.occĥhD7VeIGKWB1]!63[=p0wrgOnO_x=!Zx+ltkZ]$׍B1ZFοv3p㷗+_k22pGLp*ƨVm)('m\1̛n]/r꣆C숑>y6X�wgdӼO &v]ml8q/lPەٝGgmopN sLsĮ}o!OngOA~DыxVm މl&%1Jc=ϧY͎'v\E݌>ym8a2T6[{ZG?=pc5*7:[8UZqk7q}o+(LrF4piJ*h(TiҤq#dJ&bY!}|J~, tmޗ[Hk6mc.@h;2%KcY~n>IَdJ3uFOapsO3>Ҫ]5C# + LEyn~҇L%2hD<:奵co.fo {l^ׂpYn7qd-Q\Gun% EĐ:;ӈ,uathxDڼdT2v۫yuEAh'n:T�p\rުvcyAµy:9pYLp:HfHZAlNm 8.˶,pL)JyBqkV r;-` ʋ*TȗMלbH|LA1 țc5՞m12o;ѤI79x>2mbЛL=<KiM2Bcw0 �W! TnnhmO`n57a�RjtVE#R(d]׽_!/|Ν]h X$Ki |2 2bl<Si$a̽ŶH(;șÏu({stROqz&1�WMv$,Tj G{ءE)n.ZJ vo2�5[tO8 {%;g}ketbx/{K3tH<ٷMcKplztbY]6>h%.\h$a< ,4TXD<˹ģ3t2 ?<b>dcnrtŶmq{"7G0 q,awsdk'L/lWz۝-G 팃CR;QHj`<T)I+ 3q҉NǘB^�""Un*h,!(5㷫7.&<F Ę12DuPERVK\E?oKHp.!KbN= )xoMʠ 0/U!|MC;[( x GMkum>frLL][e5o,^NRnXGtJ lm/r {cE'Os15mOvet@Uȑ](;VXL;9E>EWL&)JU n0ŏ*-}t'RVJtp%fsN-0X,|*J!K G>ƻT1Ajw.Q�whx0"�"`(|lٳK^&(sۙ$�[> OH�F8CĽxs^{BObiPP2 ]w1Qr n=!d6'[93^e h! NGhjxp}F�#q?]Og)A R{6+e+OW\%ᩊvNTݪ}RaxFcM\pts@�nZ;SLȾGm&Si 4cyGt@?8ߧSkQgn3NAB_H-NLV]CLWz < kӬ?Q<]1yƸ}FMl%5t&i6r])~�&gw l&$eΐP&l., ̅md+` u˵"+Gf&D5S bpm ˘))1w.6U\Mwso+DH e1֙f Aq81Cj uE# kcLcgE#9%PGB'WIv,#tV$n:IAΣ+b<xG @ཱp&L'^EBǤ~z0H"ą7A_%-+5PlӴT[M#@rfpGiŽ[.bhd,awy >݀x9¢ӐɨSB9Q!r9L�b b ]s&c\ \   +5k H##9SD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&h]_I0QBWTy`X.G OSC(-Bn.h�Ox p^⸱edA<)ƒ51w.A^::$$,uܹTNU,N&9DGZc@cG�8� Ie2\<^.q'5$SUQ qF@�]!P h|d,yxI7,�h�ꕖmNܴ }z"J_gtb 7{%܋xZ¸4bڤnեאQ#gPY+llty"S>ȩq#H@+gn?9wtƞQ]ƭO 'ߞWe;"f"[H+ah<Z<Ud_8'Cȵl͇w~  &L{$.G%n�7䤴1,PjgK3Am;A ZURʍK^X-n2Mɮ{Ry%eİhܞk.#V ݛ-u~pkG2|@ �㮲ccmIgM2M*^_ilH dL]ţnRfX]GgQ^&fDīc*"r4c1Rh u̶1͌ j{*Rݿq~V h$Q@+#tdHkVTZ1e[ hCE㕁iSMPGآI3DnR Y>62ݧ>$1w7%,ىe}ۚtq*O&x�E e,e u[gVքH,SNXĕweUnNdU%A/+u>") kyCsPVݯ6nH AJt\v04-Hр.)T=S%>ɂg]b*ktN"2)]_;K=9R% 'CVXP8REeplq6۴dEyZ:=:t}ǹnKosO{0N")p@JYxRkc ECȜ>?m3B;I#X>uM|㬝}xk˥!+Fեu4P enOoz貹M:bZj~J P osiG2]ltqs3mqc$|I<Ο{ɻxnfJw{!/ƒOoIc=b.yKbˮW" ePZŷ\&V8M6Q<уҪ|o=}s:W>04s|n!&4ԝ 2xY뺚CO ]A<WPÂ*.װ;�֤c MA]9țl(8 *aݦT) D KpfsS_cOmcx6&R64xd|c|-*KX(,GEM{#7A{8jkZ8 :FɮUl 𪰃]]t 7#Y�E"OXBD٦%qn$/#KŕN]I`40%�iӋMf?k\ǜͿcn{Oof7�$FAC#4ݛQoPihHXj{k 35JܞCEWA \E`((c z,Z Cbcy]>˂|�ා$yAԼC[O{DtP#ZTqV5[�P)ހڗ\Ϳ{cD(x?"a$QlUg;Nj&F-%sjE|�4o[ VcpL+vJ[̸]66ӬX4E]pܮ 儉ә5"(3.8ţܶQa+JnV׾PV+o#ɽn-Gy _fhE7;c4US#|c0iÎG,rHp;ޒܻH<V{-g{k'H]ag(à[G 0nC.O~ywhhp�^xD~glV;F',<mP;-18 J_96<ҍ[NH'2wb"\ڌ"lRdrv@Ocs9I[qomqmKƟ.uM{N8NR+f:<\;˔�ֽÅ_;rz@!g;=dvvͧg!�BAFݵն 1d U re"a=:.g̸JSt-v4hs!($i?=nq=PYA3Z]S~5MrykA4~CQQ *g 6Wzqdd{29#+ކ%Vь [VX\(RVų9}8mx*N�-֎jѼV�[BȻr ghL>pl&6Gɉ5yByS{qf:qSG(9l Rm̞+k2�6QL^3Ը^[r#}Փ.׏<-q4QG-jz:q^nlJ '/"l,oy˵YŠ+�[Gs(g?.my-4P�&0p<Ikbv1M ݵsyq.q绉�O|W?g$o{fԼd½}.ErX#MgYvQHo(rnS<+cKcc}{aN&&ԏhPNosk\>XU OpI-]4.:^ڍž/r/#|H$[E[F%ucP{ DfҶj¯g? ܘ*PafXmlL.72 dtB<fh:I( YXeG(}b>.i#4{$hu(XqvP8]Uia2WHH6*%ٻf!@nQ;cV>'7tthm@|NbIM"6` r[x 9k{SZkyjy6�#fl8S.HrdlgղqA)<[[s%Ic NOslx<9Pǟ?>�n.|N-cO.]$ ck jɧ8aVrՎ<o-F{J쭸D>%͏iiu{)!1Uy7fUbiJ%Dž}Ӎ 4#{\4ھxь탗[4ON|�I^s_ֱQF)YA(0q)m9!r/ptKH4b77]VpIu#DUkƓM*J}<tk+,{<ZjN7WW5׺1e,|Zi4E4EeJ d'sn̎噢rYQjsGsK)I<iAn;<4n0�n &�5hk�I&�r,IV'˞fGU~~]9ڸiנݤtiDM4hޮdV:b٧VBK�~K!'` >1ς8�*;l;̄X<$<J#)wl.Ҭ4ho45mA3nT1=A'#1A|2J}P%,Ͷs# >!ɌŃ35%Ay <o2|"]0IAͺTk%C*/G nœ]t[x >D CVTp+'y,!bK|!]qk|*j8b Jz)w&dn6uM%m\%:.yՎQpeIbE0ľٖ8% dl h0r `�UW6Hcoi<\|.s78>2xx7V@H뜭 ܯ5'[Dk)\:v&gdw3yF[w# Hwٯ f3bi稍gkU?5=TeGNu c:]ԬÙgO]8�K'}}FC%Ap�@ց��[7L-O2I$$XoC n&sx`?UqW EnUAPUzn}l,"I6Zh<ylil2@dL^'ڴP�H(Λ*�$L6~ĈxYSz䢂 X`U-Z'Gft�J)XnFkp-˸\\x1D| m U*B5ܢ6[,~⧒hkA̼'��oD&0L"aD&0L"aD&0L"aET߻F(Mmdl3OuNw0R+fk>`͖1Ț1Jsw�u nW!zܔ"F5q*ϪKV nlsiN "#¼yCzs:�%lI"؇EdS~$a((0 LQ9~]l-яi1Ln܏BnxڎE|=^1<R6=8E57Mb7x6E 5퟈sK<6-t:ct:+ jm"XTbҕ=~E)1ZIU{0×Eܵ�+xgOxƾ+M@ҴWL#l|C3w8yЊ#Q^<yٯP$03 nVY`g ]耑B!"#,&tX1't>U&w9\:L@Zx"8K8}uza_I7[IN14zMϳw59˅m19BQohJ)2QÝь'+c}&N e`i};$j9TUYL@8儻աm|VN4*s+|C2dy_XO+9`H?`Wii_e'+}FptER50@ze6ڏoIoahi1kL8F![߸77sD4EhE WK)Zx}$NNrJrG5$fcuʾw|AH 6 ޻EWE)Ru(�/FpX.\�$my�0HxSUd.<4Q#9SD%ϔu߾JMK^##&#O*B9WF"S&rXim6ֶ6ek qڂ)*wv~rY]%kKKA Ǒ!j0KoYDhkJfsVJĬؖ[٩=ʤ V-HͺB$^ >OoOsO;p6#.Rxxʣr؜6XA8=TE|Ĭwzewv�P$U\߶tՠgk6myc0uV&Jm DSU3L�=:L7֛J;@6& q!ØQ͇3 om}w<V TV5Ch3J&h˞KP9 Fuh9VBVI{A܉ٲHH*$(3zIp-9Ky72v N%BGpf9Ȣ\ .i!sA:S@@+t+^_JK2i.Rbʕ}yo;"J:x REdتe0tQv߲ٷ6VV\!̉pV4QPxZ3mi{u455q<H=A)L"aD&0L"aD&0L"aD&0L"T gWO$>,Lƨ].얨S+tNA+|DS7Er=Lx88{{=_Du5s+CnYl.a7ʾS@Ln]nxlm9z6ˋ(>]B�HWb3Q;) %ҟ 33txKd �=yn5ὢ=[æ &n<lϽfL2pwdUY[<SK c) .#Bć/CQ�& >6v+i $VNi 9!XKxDHZ}qD* Pw4aB[dz *g[B`Vԟ5:&sg9_Rw~wtf>/{>o)ik36�!P4+?R{3og�2�8�jܸ[ZH**j.<lyc2T2nXH90TCBBd u wMxnkk<9M2[$R4Ё-嬡k^K i-(i}nkxQٖXKIi-{IP Yi嵭ǝ{&DJ U\Œ%ueC9r1}u^{u.#)y-G.7ckݱ=mXzmi"G]7֎|H#*;u+ld?q[̣4cВz嚽RT=;M#I:_u.#Xrw>Tr4ѷ6sy79ZI^;m>[+{mդo<♜㙴sM9B;%͑\,aQ7g5Iʽ 9a =\38 :nW'KnZljՔZ 6pi#e}( 5{>ɛj͛p!Cͮ<+h4Uw/E_&S텭5Qrcb bCrer*� 6T|S|*tku_m5h"RA t3Pvy}za{w<~pCxܡ4,6=ia1�6vSDEx9fɍ1~{=9śhU.ߜ>8ԗ)!,U>vY͸;qv)62[}^QFó& _4LDI ~?aiTGçr8G[;C7Y͓8|ZB M Âu66b{kN[TX7LdQJ ef6vV(3%;COPvc-mj* Z(FN'EJy;C=g,Q/ym|K9µ;n{Y# p* +J@zc:d\\퟼9؋` dbAx n!yGT:Yr/!m95ںO\vKEj [[E:Q~t+3֐TL ֧BZuN)GH8)9E *>&⎪t;|+d7-<-^sb8c};dT;oO6?ޱ1MmyyWV);@qdyZ^86F#5gBw,[&/ٻVbS5tNAIYm0t"۟lŐP 8\@uœR[>7kmt>M uZOyCZPH5FhC$kOURI)1pVıJ&A`�8jnIb�鈀�HYΉ~0{-_G)oy"+}c*kLrWKƼse1#í].{04c#l'mvò@nhܣ&� ?+KHR< .RԿwLLwU;{CfۙCެ=d}Lenևw1֝5X ׈D Ob$-1ǯ˖_dDja>iHd:.J"j K݆fQ !EO G97^Aîz}/NkcqD$yuiݼVͼdWTgjWk7VZ3l\kdcGx$LqVW%WtҦ<)+ $9ɸuQh5 gtK~y>9߻Zg~j-lKKI̮m^ˋXf/`݁<v.>#\7VL햒6v;a{ pkdwd*oJ/xv 5@Ź}n*~,� UhB|&/P~o,n l1Ź[+i)ؼkr6$ci{GA6uL3f Imx,7 x5E$9$D^5Xy7p듉FaFQ*2�KD,n$6p+-Ss|2wS\&ƷNg._3ꑭyKIݗ0hˍ{FijdWh{lQF1<Δi:+$Na#yE#CR�G>i&~ɦYer1xtB!-g<6 2ڑmcpm}�k\1p]f߰D7}ԃI}ۛS[dB>4$!"jbQq7_!@^)5 {Xeo?m mW6-weKn۸y ys%؆)L,Իz෕1Lei(խ: uRQ6$@bd6w p0fePp *SG%w&\9Bw[^F\ sZri# b#wejr{Kx_I4dms61E4i#O7W k~zbLhHEEB~K93fFPpgA;�3o}w>%a.pۺN k'9C)/9ClCt帆�x CM$LTO+$? hI(?&Le2ÿ|LÅǪd1zsl\;ܺNOI!hXy#b̠V6;=-GaKsVTIבӔ JMf#4u%5즙4t!k/ΒJfS4z_)v>g,./a_Bji$3|:εFqfRA6y52smww?װK m7}kY -ի:Nꩬlj..qP7 "� g[gmø-0xݝ "ymӜY<q\{P |gyf;f^ )t-[Ʈ �Oj9#|gJTײ)uy7(+SVJI�x)4)YsQ0ˬ:;?->>Տ`uWw0 -w@>ѶƓ[HE>X3[o( ۇ} 6SnP#G9+fV-"F!]3FTLPђ;EA 69NUN#`.U p78V!m{|$洝ұžn湲<1#T9c >6W4- d$A4;n Rۧ $H=E峘hrhy*͖Owzb_d%߉lS,RldlH_AeCjӸ(m l sd x\5GsBz }U EDa:`�a(OeYo,00=4%49q4ӭ)mo֏[PůkiJkY*XtlsmavFSrLJ5WȔ-)7 %)_)WLAAX $[}ȷon7>f]^Y1�ih:Lnj7 .61s�"a$DW`8hI1O _{e7S唃%pHrèASKg'p'57X,7hdiX%ZՉ<{l{m|o {HSQ+]~ ݫB^L*eJ`tL*4QbL@,vlA&˽3#/hps˭baqqKf #F쵥ٗw2!umg4 myV!<�xSHDe$w"HfP}i�}XJ@!lnH[ɥnZƞw;k)7Lb֗5R2] -i';gs*hH<"^A`X<LD*�?Fb=\;_!;�/4J=rƁbj=}cO#׌~)n|S{G✽SN�C5nmEhx8T<bP8G//Rtw+290]uN!ܢ0\ hz ..KO}$24ējhupp  k# ݕ56 4োɚD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0B�2�2I_T�Y!rU DNT:@`MR&�CGǴ~ ~'E5ӂ$PLUN4>r(8agŹN X3Pɢc|w N!:<a|{!O�$YwwM"dP6k|^'�pP:RhDZD�LGOn4I_<C00Hy.Sa>7lu*!Ȓ%$OZ$WTf[$NY<xֱ,;s:Z5ӉԤVx{y{N T4Gk{ Nw@_cj:tZ~!L`xOv)Upʝ "oy]Me[4rnk 5{ՒH{*ָKP RiȵUu/|݇!kG$.&AFP7r mR A#sHk#ejFvv8l.eX5K&i- WN :hxȱ{#U4q-O!jFЍk ye<l]訑3N6 @po7�|& !s&Yi -fC PC*8T)Lgdᑨ7k'$+00ܢ,N(G8d]7MeH)H\,O:{XHymH\FltŇ2"Z*Or..25$$3l�h)$qy-Q/";Q@:2iidkM% ik >F(n& .\x7$4l2 )U,% # GwUœZ); XuZ}SZ8^7%fqp 5Ht5q"Gs1h-kC6[+.ٲevAy`<vyzćA&nKe^r[̍ww>ݭŵM*l ̛LZe{MnĨDrq_IcݶrdžHkcu4 @ր gm/1F VvAc}DyqR{%Cܲu-Bqlc8HQ+,d"`aKL�`;'oN{n%eh={&qi:^/{;V�=:P;o h{(^Әqָ5IVϬ{waBӣҴY_ܕ^;K xRN~e`LU&T˸E>KEuǽ6MOll.wOh1V#5怓F'RdnPAh &PY{Bv4{Y]|)�Q< \^V6{.4!s<.*k#{F4+V<u Gu6A4x9|k4H+$_덣J[woE(_t 4RNJВ]}tuN32rm,SHQ0˻ Ui4du-h[ 'h#ֱѻhI+Kknb=%9; dGJ)<|E$hI�sm�KJ&+GMrj/7g<¥05 Rwh�GT3ىoa$6狀k`T{1488 ,l ]T웗}Z9Hɸ(nE/_cw7<%8TS\]%M4"D9;иmi՜U*7YE)l�:ܮ.x67r|ـK'<�(Ô0mym�#x6ݥ'i$x3fhֵuzu]@]ilmĎ5g0O%XE9{,-r@9՘jj^]z�s%c0 l�Zn GXBm[G, a\]4W:'}ӳ5 դ*n$e@ʲ] NEa!K 6"ɷ G-qmFn{:nR縚h ei5Ak<H .edG i`.;LjKd䵷Q7"Jۢ5mSZ׵YSz#n%[}7a {6,t&x+jSž9o!"[Kt82F"CzV=ѥW4 {;K\R9caOٮ Rxl2<r}1';7kCȉ1DF(j{:R=dy'1[-$$$Ő0_%CMؔ)} }9 xidqKzǑ\krA c&x "<˨e4̭V&;Ir]n 5G3{ڴNN[ s69[IIH]ZmZZC0p;6pZ++*)6 E:az<jQ*WR ʬVm qp-<BB�.$2xӍ[$8GH sÁ^:exLj?0Y'7T\AI]Ĕ*ll؂48;\msZ m�;�Dԛ|6#ņs\ƸQ)췉q. Bmߝ Y}Kgb"mX t="hGdNWM5nѢeZ9:ܒfkh89K-?#紞'T6# q=ۇ{HkOw.c9  _$jZFUƜ634+$=BM *u8DS۶h% b f,JzR#pUV ìwTqaiD|H5<i<pn;Hfj5k ,䑚GLa{P<5UחFxSju=sUiPȝNd8[xvXU1'5?wv/#{=<Au< w7/4b)khAECy�eGSEoᾚG|BV-}s~4Hwi'3X'& غrf�;}movM82xw*v@ЬfAq.n.ni H`:j���:�@�����?s+,X<N"YkmRF_.Y'7j�"d[Bg3hcdLffMWKOwɼtWwr;pKJ@INMnu/uk[E$ogػN!IƵoYe\1E@P hYߝ8QKѦ8926 h$Y;`hN8<.q@�W#E^]ǯ/qz9T{Z;pR@&r c3Ӯ@ڔ{U@i۰9˙�>Kx#ah+ ico.R90CyDW8gج;mvS5`ϐ d":U=s[xh&}!:q sOd1 o|gHoyp^c,-J)cy1GI5}}=JX}u_s=0Ðɶhc2b  wu n3udW3?H'֊+. +w\;L,mI <$�q'Xn/'v=7vLi#kI9)Z^5®u~}[6dXʕg �Oh7a&[1�I3scm]q"=w wk"e\ƒY�eyuh{rGԂV/p<V,y8qcj{ öڤ W6 "*ͺdFO{1mg2ܻnj>F$qq!fCQy,VTqqx.A|9I3ʚiQE !P9HRQ ׏~{iwҮsEy i-Y#,,`dMh)(a"D*i;`X~l;[)e<GĖS/Nk4O$HEbWyߪ(U}?}5h|4g1'ۗ{0nNE\u-b/%Ou.jkic1!Tr% "ټ_uo 0Z! 84Υ .Pbld\À� +Z d!zD&0L"aD&0L"aD&0L"aD&j%-xOqeCT;2^ )>)|U-itIOԔ2*&9T `1GàgE***\Mm", J]ZD Gr>#;c8}bWs0ՠ3}-4<| ⵨IS/uBC! W:;ю%/֗;N=OZC9S/ =i&G(:IPCerIc/ڼ=,<TMW^WMR\ @{Nw姘$.rQ,EҐ{r׎N:o{eӝ e0׏S1ʨ^Y,sOZDaސv^֒�nts�D:yu;ya ڴ$'r.POu;bx\��flD:w0ԝ Nܹ^;#sYfJ?`߉c 3KvrM>P+m\T>(AKrL>n ڕ%q#O.�+S$!}>v`ں?Dz<K�$>N']6 FnznI# J%P@z ?|E?Ó=hdZ91E6'3[ԗ8eua;Ϥ2P~}Cl@?AMu '<uGYeD}ҟnĹոo5k^R#SG =nui|z7Fn ZNo c?ZGċSD&0L"aD&0L"aD&0L"aD*EwkŠWZ"fG0(tΒ tD$8@6\pGt`u㲖IJPu4-s.�"k vQ3η \vnm$"5CpsjB[׭eDZI0E3&j<y*S)�;GHAOOy :/G_siKn>tݲ7+7kqy> Y$\Ȅq`ԕIIɑTVHQ%RPtIBD!J`D3Cs .--hs\5­s\* H q $Hd1JZH A *5j[LjK JY3w"ASn�!(-܍} inaxq[ɘ2lͭb}o"}I$a W҉ҥ!TY6 aY[ѻzJTUnu٠`u\׶n㝴e/ ƑU6؞ j2K<9H@3>3W[[oJ\*{Z!d@EFˇcHEDztU  9}=xN -.),0Om;9{yZa5[5>" 8qdp>ɒ0Cj ݬ.f)Ǽk6xy3u�k=;W@Rp�}2/YK2L?|auc:FAWvd6k'NQXnb<㑾? ;QZE^b|آ!6 П=QU"�)Cqtgx15j¼hlP Eo7Fnf9^;5ɑy|0YT+7U#>sءD d]vxv,,0~ G|l]]6ݖ͹B85x%m ;;J-l1]ZFx8Gaֳ (Ig.R=W. ւ;Qs[tUzh͵7WH7=ɼ^J!�\,Gb#NW/QrX+.r0.*s؞/YB.sUJ~ab%OzkZѩ�5?4ȝ~ؑґSG S�8=6#VdXe\ކ괙Mj1|6 ]G7VsNٞHhi4$OuMTR 5sJڬ� XMV2kgfD%u��rQP63cy&FnX;IZEbEKhi#AOmvF;2Lpso1o9jx23_ HވkKE6A˦;i!ax"],u$9R�v<߻Z9zEtmm3r˻WI$L)*WW쑱hRGі7Wx E.iu TֵůZ; vw]M⥇l Sخ(`YO eWxMŬTQ;~�.J/H0~T2͌lT/u q(6ϕ1_8 _iFGd_/LzgY{FLX ww,!fIU?ymޑ0f`]9p+ҬiZ$ۼ'>iG:'zu>jծI$׈m@m7&("{%hNǾ]]y7O+)HsZ^[TsmǼkǮ9:UN;{Q l vn ۊ^ uHko &ŝubEu S~X\1re"˸߀-2l7%:_b2V͠if`5/KDHN2GF/(ψRآ"ZW{=`c/-8hKd�v_\\A6pi n5cH`~s`1w7ֽNڷEz=53s f p!¼hͨ_phWNfuy-1/]kCC]B*:leOtKp"؄]`'CǜI`=n1xhaUGb[<"m.-l7m'rFc}u,NZ<0R$Gֺ5Hf{ XU�LLQ Ҏ-7<粱�nۏks@6a˘50LawQp"lSՅ\ iip:78Uam|cAl|žѪ-30b_&d\@֐*2vhvBf!pR;0c/Άg_p!aqt%FnCdi Xbs XKݾ>~cƘ�-j>X@%l'asWQn,>zLئŽgY`Fٕ?-CoːmՅX˸ok0ٶ8ty8mc#Nk<Wo#Sӛo9K|.pgf8A+,QRwQlW|"Rl+JVM/@,];#a11 7Mo27 |=m[q{sbn;sX/S{8Ye,IIWPs.BnwLs S5R?]V EZNӎw>i2z(^!8K;`1cttm<٦?0[kr[|{C{ 36PѪkN`Vb<$kH\[˦ixMv:s&GU^3vا5՚N!aV*&;熎.oto0b;!ZM~%Ԟ{Ky^c_mm`H˖\Lx%2L&0əm-䴵a`m%IlFk#kp@ r"łKk5ڽ({MBµ^"E~Xk@@-I>_J؂>wm:&˟t$_ wkrSTVjF1gE zXlYv{~m{rg%7, 蕪2)i&@MT ,ЌJ ]7%(n+Ӹ=nq 1]D"¢$2�j4 kc:EC28jk^,{Z֎*fI}UQò{) 1訇D䬟9L* \[ᮙ=#enO3dsw$Zr55؛DN ָvkcMp*?rMK*gV4te+$z$QhR+1P1e@�&!om:4dcidV\nSu؝M8kM;~cm<c[n.L mKgJ[Bc{e$j$>;a{E 412BA1e`_؃ٽbya$ ]CpҷVܗ澣3�7X#tc kDܖ &iobސeqn֨vVV\ԩ g�;jp08h:uY�S9G1J!ZYo :`-Cu{\TM/cXSGV)&/ts2iG%A jf) U8r7AS)Y8q: f.m_."IVM*t& {ܵ6M-/fzK|#17=xi{ "4b,( P;2d7M:|SuYl<c.omyHlY֐or'Ze[7+̓Z |i#׈iƸF:)!HrO#3BJ4(Hj (_gy.Ȋz2Bnֹ v]�;{o dh&JKY.B[y $c&= Mn8蕌rˮpDSFEN"2B-|bRwUR@ &Cr9]qlOf?9b|ͨ䆽spc,"ZS{`>C)ɭ4h�r"Rv|2sAM@PYS� f ) óގ&m﷝-xx" K GC s_ b:Z iZT>'U#Qi"H`9@K)?Sb_ W . 8 'њ(") %�f ">ptE ?�l1)1sb{i�Ao0 ==0pfN9Bը#p SBLa!;);�M~kto".% SϚh!8yWէ9SD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD-☡ 6D6q � dKӼCDtOަg9�u�:&jcKJ�3v#F*\�I> ?R{(9*x]1ʦᥝ4D*-[[nAYNz�Q(X- I�OR!JI#4}4V 4i~DD+,+t9x"I'M [@�tZd4xO�ē|�>p(*\\h�É$q:J�XӦt]^({ 7`z!éJ[ח nSO+1x| #g"x 93S~!A�!s3*)Z-#ZT% 1nLGȧGpEl JEP*}tu]aikHjO8xVˡnZ5kZP\U'\4sd'vM8Jǧ2Ԗ; Ӗ3p/;Jg+&HI]fAш_$q:gM%�Qطib{M'L2챥S86p";ʥ5V0VL3u^!jU6DHM*?je 2VEQAҵD;NZѺ⎗Di145!ͰJ6NI &URtkR Pڸ*_{ܻcQV קk8sЩlcjuvW<믳IJ,RJKie[vڞK$h֊5h2yR(ьh hh( \jy@ l0'K$#^b;~!۰tšAФ*F"SUؙ-�A_xWu/uu @OTSǤj"^)u+) ?g<prnFeDɕg+8rRz&UNe@>>PWN/$0S/4 R( &*+MI {y_;R*j`̦UFa wY6L 09m̈k kC:i١*,) =EQдi!;65^ԕqKmgX\8&-UE\X"ɻzv>Uݺ2, u|{P w]y5s8 4r&:y,XIm49](Ԟ.#HU8ޝܬt Wl*'0AsRű-ؕ4<-bٶ)̲-fw#ydwVt{�6GGJy'o69f\Y{ؠ`q]-`'�[h-ܷȳH¹9I]kž;{D\:(Ee0u(F[6[.=]i0-7 LnypaHR@ (GkEāgSZ_o]<vH:(EӶױDLIxKs;HȜL+f<yl݈�& R`^KlN*sYklӜV. *AFM6΅;^n{#Y J7j^$lSI,NR\P"Ymâmͥ-{qag?Ƴ@#u:6;Kma-m1A NsZ_–QvlܓGSw$4yEѲU7j2b*fe5SjU;F ۶'8sGnn-'�yx̾y<]ٍaٍ$!<efUm]u#{ZUkvu 'OIbO[&E޵CZx>FI&X}N91 &5W $RDp<d∸YEy27ivƎ"* d�::w6rl5_Fѝ g.C{S3xX!ޙE9gHv<!}8ַ  m\]t[4T9V:{4EcZ�hYx Ǜ%NZͷТ{$7ZR6V(sa{Rs+"VfaJi2KYn&�(Zւ;x!'RL7dv; 1�׳ƱGFYW<MLDfԻ/8'apz等&?%}SwU<$fгjX)GHsp ܥ}8{d؎ < r繼*ꃶym=4%ԃ! H4`xl|MlֲMB۹O1MvI3VX SInJ jl%M=;C;R5~k1s6]s9$M9i Wjhvnv�!6^X^yݨ&qozEڎ,.n*Ž{ĮFlN__= F2sZ6Z\&xu ky.q:[W-+Z5HƊGPѽeic0{��9iM*p<NE-F6=skqN][Y;Ev.TS<<ۣ[/3/9I9hf"[m  M5 iwbFQKtq6.F$;P .5cnͫA ? ;^hm:B~<nZ;{kmujyNT)v,]wu獳 .KrmA�$ 2P\&I糩 x6";,0hyX<DcMIc\\ƻX&[9'XxEvOXUS{d8%Ymz>1twJH y quam-a܊k Ch8  f{uADxsO&2ؖyHy<p[Y_0w24' 4 GbgWk@Tu-91 ~!$QY˥;ϗN<<MÔ2\e.d9ǐ�x����vx14e <&kG<cMɯRRN(p]_׮+$#ƜKZ]JKmGn9Lɹ@&JŦgyAC>YM:A=ktlx=m8khGt45nH5M,Îb؟ݲ"]r{!Ke^dt4x֎Z< h�-ŭ"١\j\OIMv86U$=d\zr Wiao[H%3&~c; U۳fwq%SN9ͬeZno.2Y &S|12gP? __g=N7* Q!lBGۡmMVkc#畵^hþ�iQ�W)q+9ӓŤ0NT -Kqg"5 jExI%I'OqYiX/.{U{Tlf8_Heʑ޵ P2�;zRL=Ҽ3t;zQys?y'rcxdR#q2 |˽=᥼7?qR<қCv R5ovfS‚o -Pʪ?>vᝆ DL7x�lx5.:S> 95^� Э3܎\hQO_} ]y2؛}_ecAv4 aTRi"bJɄmmsLw7߁,%!.w=Nlw^>3%?kǹ HjtYw (hZɰgs(/9'Sls\C%Zku@I(+2+Z[au g e#I&Md {+ޠx=SRn{elٶfѷ@(T,+cb"7ܪb \I"CenGQh' 8 :Yb3, @|7)K/p\ubɮ5~N™,R{M2oNPJƜ3,*5T`T&n6\\.g;5{&/�9cl Cod1ۿ$g|tpbD:J͟8 !Bhƛ'[?kEaa5D (dQiWBw(x&b ۀ\ꮥwNGt^wgM*#Z}S<q հWP#@Q�WՑL"aD&0L"aD&0L"aD&0L"aEңva-wzNZNQ|}f*+<[{Z쿟X:֞syko o== KGy��u80/tks(r gj64��U5i'$|Hq'�b6Iz_6otΗK);Gg�Q]hw xק-[x|ü*.f>gBcPj`7pJkj4DG"uo>M8ꍧIE8NSMq|fHӧQU=Nמ_mz� ӬfAK_J+d�z ]u-fz�t38?V YiW]() S@Jbu }._E7R3QbX!zB{DX@�D@:_uEh9C�1Kz_(6$ۚL 1" v)wQ/,uY봨pnq.u#�tDsh/"ߋT Gc1/=~Ý{iq�#5u}ۊ6[�_Xrۋ�n>}>�PmjG�RsI/>arG9CƓ ~pR.p>rNɀpUrGĂ"잓k3팧.X?h׍5l^ [ ^LG7h* >(n;͟h撟V`Kn37QiL"aD&0L"aD&0L"aD&0L"ak*𳨜s9j NCHGPQUpR(SrIWۻ2٣q="z'V#ptS]{BlyQ88i'T4ud׊>7Q i݁'Jh]z 9z&U%WPFF2C^#[?^wNKcqVK.|-̆{$}^$n[ i%u;OGmM_ <UסX@ܡYkRm_L�1GV8fۜ;UEBD�l7ݷ[>Idchl<6H ^E7fy]xicÈ$( ]Z5u;; rCWQY:*.Oro]*]L}i,^dZ%VT37#6[xevĞk|]tZ5Gdab<Z^YOm&hu}nHUK4Vl(J䋒B)gw͵{x]h6X+,.o<LFጼ'Jxf0{{ϑ9S;>%EYa.dR=!"w _pI8f4Yh@.A-d%<St+iEŕE݅>um'6jYXkjnț0meax$TRi)4)J{N]MmJٕ=F7'D R|t=EFq@R˩97V6M Ƌ\ݣ8yx6fyK: .kulky6 7RL=LHxYrUan5*M#r+PʢA3t&u!rb  QA7} X!s,h| HCv{=8$[|n[)_vn&8G'$5  HuZEC SbIN c\HI/`8Σzt>l%ЪD7AS 3�[잢]Mқ+79%tŌI<8EpZ9O/xYK0yB 6/o-8?^;űOȑv|JpX!�9лkm킟m+l锒`sO==p YLB<"ym1$8xǪ'4P%Ir^ DO#~/(qL<JoɇRt,?ڃgabo$A+;Vg < _τ{ĎU}ʆɪFEv&*J拔Hu= ER8xLtRYf>Zu x8sk½pd?g(pep"0EZs=J,V:eh"t2QKDܛ*2v{BC-.cu~ø7rt. k x -x;ˋfԹ2XVc7;Mg͒mۮK;}@t)J@ܼ)ӣYCcߴX@A%K7Ζ9،j|P$�J*@B�^7F>ߨ}3,Lr0;b&֏s(`,G()6ww9Zu<8L-U{͹!Yͯ=Ē`6c+`:�uŻV*8)Li1Qpy^3(lh[,ٸi09<rO󵮆-ηvnۋNa#9X65l͌=p#cvTohyzE}QE |vuk;pA(eP�r@Ǚ#Cy}83kyddŏG+I!iYJk.'&<,-sڟn21H-ow7jƶa7+HHR{jH 6zP2FMrtV&u mg _1HQޘqFKA-\7Es.؝lz}u -h�^ʒE$HIptN6~ Yr;} Q4櫝;֖ C?$W(9"_ª"b�, AT;̻c>_nmKWXoDqk$ڇD8ih.{1P -gO]6B"7LXHx>!Y!k!ݦb8U\:WXw^xPC]!6M<Q@)X06~rkqM;a0'L2JvnAuV\nμ܆-f[ kLMW mw垨Vev"S5R2arR`1)*P)W^>g;{u2Y<ukmK{ۛv4ipLjANX 36qh.G+[0i1H<-ћ3V1uyv1#0;aX"*3Bq2LL @*Md}՛X &~i^/P^ti5ȫ'팕ͷ|5Oq}[vy[>ӾdDPdmF]\\^Ҋ˨Sd1Vb%@ת?5S*E! g6i]nG [f#tz(v�PT.u1-jlyt. l?9r0,cd! ˘۶ v#ƥP,2^1yHdGn a`l^Fj*Gj,kF*~�6c$Xl+huIl~\:|ȌrpԒɱ=ͻZfMqyb7bdhpjdu82傱b-VQǑƎHB"eMg%h2O:ss<;� >m9vM@$~A14O1PݓXvsk`,N-=X)n;bH:Q:ȸؚO=F J; T"a..ĊDܗxt6h-v3m~c ǚ>*a)ߥ2m0"HܰJ8L9 Oz7tc=ZrˋȈ~S͋]:MGHLJ%jñS6%uڨn^]DUHРJs7.l6;qW>;+]}m5md'bKh]2%ݘx5̆xJJ3ph]%,#"m21Ss9AVR-R8DL@0N�`�2BZ=6/qKG�n#!eFRF4rb,F94Uѽ<f &G utPlbU?=D0@;|beܳIq1FDX9H!8ihǺAݐ]NTOțSbjsuA7%S3uLT' 9 BrZV6Q@Al*EVLss̷p#K7p[jUtjD7J$L?9$=3+?ue}C 8&mϑqǽŀ驢Xmcw;N"֓$4΂`$q2.#0HfɉNM3W*S0p@ >ӎ y-FQ :+9xtRu80�W't/Io('AG4ӁFPE1Tص5uDl1duԲgMVү[ыA%Pta3ٸ|\ňg-K]ı1A$ݾ*ۼ=L5,M=C䉎 ]MM|BH"aDy>aT0 sR") ?��L|=n<ݎr,f5Aጽ0 |.Zp$qtwZIg͌Y$*bk\*Td�l�"ݝw(6tI)9*L _i9L32Eh6J\t8.%dO!,k-=ڄmpt C49vm3k.��$iMDa Aa0DD�z@���Cz�wBR . Zx4�">k(PU3Ƽ!RttP1٫�  &*Ԍ=MX&h[m"ѳAAڹӌ۸~a 8Aǁ< yhurCY7(9dG3e[(goPvCE{eH$cb|ng;]`GY? PWPp<JE S�+/)T:DxD(w5R&@=�pekpyXYu8skP5FA09&k\J[LAE i|`H:CMo(EN@ b !ykK[<Z0{ŏWq^GYO#xyz0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&h^^%Q�0A5kɊW%URVl̩RL;*i R7i@7Q>CI`иz+q^@`h+SC$^_7hFo9~ERM#1ffTZMCT**?fAɁsp%7H j(8}z_f;vwogo�im \I� I�<i,Wj@E5f$d_Q1P,QǎTIFUDc0:c\�I�@\ѥ;$�$�M�*%uM7"6]fSGgij`#ZvwX1N:պLd̲压hVKà'LđX\D~mi{ .oQ͐05=Lo~^u oRj#idX-rII:!YðD3D98Xlt{388{^v@o-'Fs;Dq[[Ƞ%�h kCj 6oi^Y"**~'n$7KuNRCغhdlu ٲg]ҫA`[嗁jrI5sq@RY-m O9Ŵ/{T@� � gmJٺ;j˵Iʅjc 2dL\0) N( Rc~K@4ᧄzء:;^׽4|ӝ(M+JӘ y3c[fN$d|-prVtٸbH#;@u:|cV4\ (+iԁ p5<Ju?�ϲ@+ͭs*T53`}g Ԍ:k&@`&/A@~sn:I|MiQ΄Eiu2 simhU�HUk0mkږ/ MRyI<Zɴ&TǤMΖz+sn ,dsmxQ|riy@RK=s48:>'jŤ20cޚK8TdÝe'V*3^{[6BAr; I[ٮ`w1RU#QsUw#ukqU{7W lBohI 06YZq϶v͏_]Bj=88&�!by#殔]oBzoYUdDк3UQ&jAY^eRݟ&Y&C=kw4'H@yFSFl8[нB,39]C75b&{Y5KPSMZݻ-ƠCA)D+ u::ͫh( y*}ùM#4 vI _[d.1]޼*s@ 5pjk{*毤VC][<OWk{jY]f sQn^8K 8ea"n�$@M49΅ I'!m%x@ر7 mqļGgC@b^GM(O}]r-n9*D?nK 2 fvfL!ߵ3 ۄI L<qtբ~{KXg>vgm4btXGyR{V,/pNHZޛ.377={jjo ZޏҪifHeӏz>d"J2|wyG7SThVrEzn+.$xR@ y�Qץd߅2[GT Gg1#C{|M>}+7vVѕdSm)0 m^io֘�hJ?tԺ8øIK}ե^(sXʹN׿ЛyoʔH3[nzl {z|g (s,HB5(2nO lvSm춶F6Ҡ!mLC+A4cJ{e{zkXchC^8r|هvѥԏ_fK^-mxNخ7 HKKU5a8}zZnHʴA0=YHYoMaG5v0 pq>hUt'spÀǟ<U <0NC5up[(ZjL;Kf{#Wq^XHWsa 0֚(. &VTUx=o0Nvw< d:6%Wٲ<V$HnxuӢ-|Q%p'PN #.rOdW,ZnaN-�?x Ͼ!1T9Q.2΢oo?5:G &@|hXV^[ϔDyW���5i- lyt]D+\`O|jM}u % cZH,ڳ~?nGM.EBlLX#MD򗗳ia$S ڵ^MS"ֺ`Wqź/~=Fp gyZe9I#@'GfG[L80Ԏq4EBByP9" Y-_^+`ohYz8i$-W,E W"#$5n"d�N7+{ig#y8Ga. ࿺jaEO䱣z<ZjOdѡ-goGI:-Zk lim[ӑ[RPEh�NJrHyf|@IrFE#ݺmfw~fe´$:a!ʮ<ƊSRn?mkKWP)<IjH n ѭZwOE5okaBQet-L)A-c&.cHm y1?'lnOs{ ]tϷ#ܳHvTxX{J@D~*8uc[+trB ktd@d/R;.kCp_Xx;پ g~�W\89c\ 8jCȂ# =]`ݼz8oǚb+;ϒ;kDju,z _6LO`}Oc@LP""J?5Z\rPc+dž6�#:p6> :WWFAA#ͳ'Rg_55dHCk-8ZּK!_6$U㙇A]Cmgn̊V+IMj${LqA $� $ؿ2%|q :0pw XֵD֥$n-qK R"6 Jvط)ݷc\v)rS V$C ms"K`L66 h*J65sKn{||�<;wlMf6 榆MżUJJI$cˮk6AQX])EqWlQNF%si^Gw~ F$S~ksp{wk||GԻ5-GR.frdj<wqfj躶Ťp~ե& *<er0mb;' |;NJ/-h)0:y4rHG|>5^qŚBZiݱ*K wݕݴʔ!IAk J9@ QP0A LL�{狝υ7|n.qSYxFLhx,t]uSAS:,ʚI$D(BD@�|M5Zs_{vcfPxWϹo:dAAlҰȦu5Bz�f:Q6gQʉ-3g6<EBFIqBo$A39 >�!cւ^c�x>[qzzq%~+tzgQ9xgs# \,sz$M$\f2o]+X=Z8�=~d*ݶͤmT '̓|y-?pe G:f/[ >T5^Tڜ$٧" "CV Xj}59ёs|<֎$XT>m@ɭh}_oEBT䌚l_@p']<+\p3E {Z,E Bul~�!kG>$sq"vgs�TFnyz789�z}Oh\'PEL^6%`ٻ.j;N26|̪A5Q8,DUUkLn7r%6;HY8gsq|�I㳌G{$9+*L"a_ż%pb/ZZgc? 7oi(&<;3n|;~zNT\PNt;^4ӝ*@*7gL"aD&0L"aD&0L"aD&0ZA})7g)�A�ov5^w{tBLE;>Qg}M~ �~$ʎf]U7$I~qH3h a2kTzJ?W8/rW&�1˶qRwi}gtYE� Eca$B/I6пSgP.:m<w}hUfx.p%P˹A5jis<Bķ}=׮kkxxxs3w]J>]fv<r1vpYY+Aޤ:8`,Khu�FPG9ֽf_mu!%͝b�1B=�i`ij鳒Cp"T(t.[4>2Ȋ*C 핾SM~L z}VT&,n @Ŵr|G=gw;^G+j|aLW<E /=Ov[qz<ₔR^Os6;.3�#5u}QO* }Mfsq.o-߷X $6dg1298%oz'PtDT?-<]9GLKPGSDt~$`t8D|3:Kw2HkV{FF>l?Ʊ$=ӹwg6C!wxy_63]3@BwhVN\3쮵+G# "q'%_S`;-oQV"C n3FǏDwƹ?�+֍%l\..aqR` F7F7^OdVA'\nĻj3᳛-{;VLىL"aD&0L"aD&0L"aD&0k$ 'Ӫ],j{SH+F g1EP"zuݳfʒջKO:ewۇ:> ٌ6Uؓmٻ0i1(q^~<o$+XD&I׊<I*QMtEʲTͥeu3)W+j0 D@`]EvvL6kk\c7v3-sxV<9sLln|Ɍ5 X5E<Nfa8xG4�U0BCbH{!Tz,PȢ*H6!C*QoH�UScC34ZAæ\|ZD;SFw,1ӿ,ep-G}KVeM =3F]chh;b#}b\K'r٣ؘ{PSP:>2f;[N۽M[e$o.[^\* I\9JOsx't<Ӿmln{."<4s�ym5x; jV6r(#1L(;lq~2g�0xo7}A?vw<tK㑽<49<!ÚOskc4sIZV O9=ʫתٷa|:3 u{9�Uuؔ[@;œ NH|ᮔCqe:E7ɐژ;5ڒ{{ K i2ۺ历W{~wkmϱ#xEly6tw$"W8E'*.EdNUQY%JMT & S�PLu.m-`s5­s\* A๶HGC+\X   .CD&c%#Nd0%5YCŬ[)T|!àWK&r1i0麰g-#їG -w &WS nɬfaN0*)[<)*M޽ 6mTlQJ&SyH}� J@vרqvr!fntӪ{4eܕ} .bZF·{jeN|:h2EM<#)<YBkl4M6V *2(HʕA,[%/zFpTP#=Z[sc[;,VIbɾ?�ےZ\\m<uV2sºm]W5AIeo2<T^LߡUG#&a"'l]7~=st2k$b?tC}l ͼ#HC 'I=K u{rfI<,Άk*״QVrs Z1 pYNak7JA9EFVe"WoEIcPTb_U[3Lzɻ]f<BV:&nH] O. W5JL#/].?9z+,6.pqx{;PKZKWmiDGZ׍S$vu7Ӂ FCMX#ށ6OAv%LG1uu fq2 TLo+EA0:-/T;Fly/~B>аm{ɡ3\򦁯ddY+VX T P&b�Rw.sB sN>\p;Wx9d6zo5E�5\~ar�<:RxCuzP&w7NHdr^=]koZ@;p1<EĠSuʮ-s;x~Xk<I2J QկȜS /Wqve΀SL.lA^S mRo݂`rEJH!ZXktB^SLSuPqۇuXM9L=d<Y %IFV5/st3i3[7;]U=Oٚ (R۞qM7^X]*-J9\")Ee)'׵`~u:?WN6Zg;\�%s+*w6XlWYv.҈G# o<5[G79Y##;3YZZ UmoMw{#YnМnԤ�։|e@S/R.Rn~l}�O2Rsx?/a񓉽ℰ޵[t9}fo_顫l< "@RՈdwg}ӅV|Nd6JJޓG@ t_ܶRq4Z;4/l]+[i [Zdwkm{+9w$uwf.l*w{jJ:Xb\N5}NѤ\ε۴He UaTmSoL�gX#UJSe#6Sl0,ŦLd۲.Y%Ihs!nXz Tv313fk\޷vm!^Yg1}1\ n!y]<e_ާ^&ڏv|YluMsz~߬qPʸ٧(nnz2Jzs^l|,t;;ĹKH]$Q>%rmEoi6 &; �6׆oaofFѯ{Zֽ7; n5j˯m-[HJj: .ӖHzɃc8e]׈ۻ۴vK L{] \<&[8�CDc]Ooz.--!1{y�cc{0Cbu"4걸YٔwQ[mdT)3#Q 5DDb3 c KW3yvnp@1Emcdh w'<InF ,嘁^ K(l߈{wm[%Ս$ccmddoZ4BZVI.] ud 16|zfXɺzs8$" Fn~h[3b?={dgv>鶞k]P9'keb"M!6ٶlొmm\}{mw#ׅlZ~Ĉ~h %ff|nďmEdDlh1iA`I2}&#h[n-0d-26l[45(e4Fc{C!g;r>77$Ko1Co#:w˪ך;#k1[@~ႏf*&ʊ$yWt QH|@M~c|`ڽueitE#vFuf!ڴ1_dt5Գh˖p{SݴoSTgjc`6oґOk5{ ޻$&T@G>r%6Oauk=Ol嶖 X˝o5~Z!Km}5xgC3fJidM�H@Խ?jhbeݺ `W{_u e-Ǐ9RR9Q %d\o�]g!dvN6)d[- ]ڱ{c}>bc_p-ي;V QX6{u]\ش}XȰy�}*37�Y2K{Vh4 ^v^Ο޿7VvO:ݷ vdqd_6&2ؖUݧ9ŀʹ82;9 gie6K KgG+iW :qq,U0$~lc�(!L&/f-Ը)kx7A%T5c˙tbevç{ MG GS#�tHV"%t3FeD UJO#QEqqor[-8JY#KItBO{{v)uA{*'< iĴ)S�"S�h< -x4 VH EgHS*G`Xp!N1ܒKס:PG񹲳P pqm[w UPW^\ M8+µ=Qy$STD*/N /^C\ʵV\@ v*H{5�+Q9Jp><qE`B-TZEɂ&rA/;pԦM %u 3 DP:cءNN{d8P_/ \7^#bZm獄I|gEZMWsᾂ_ZW2F2F*Zh ]^{\*. ٛ.v 3)^=rKSrF(*:ff>{k[a`"8o1ӻR+wot\,EV9Lb{>Y JFO>qpci=gINbE`k(q+%8QCEyG{ltzm7rqv:6ܹƂьԸhuayfϵAshA 9ö�<[(qNWLF}̟qM7 AB%D.ɨ_` {sm^UX"q,2Uk$ l'MK\=Ǵkx9tHs,ME$ jB U|B0dkΝѤA�?[K pakG~͐PְuyDT Q q0>1Jr1;rt> …3_;;ÅZI*8Tr^h}Q2|Ad$P5Jڡt@- IjׁZ H׹ixңUC')J��`)QxwBL|uX4$9Tp<9kW1aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"л? MJ�2k-Qd=-AT慀[/Y&ҼF pl)=<w3kU=sXFʬHwy3"ۃV00 #M_?:=gE#^Ԓ"´%qE͡5Yk.9⢴(8YFQr;̙ԥ#ڳ0]^E}lqњs%hI14i粰 ͘s3FGdPd-Ɗ=aBEv,N]J=kSpFufeyL%%iz|rݣhw@ IƲh."XgjDvuHIQVzL]Pk$ӲGiiiimM+P�RD{@|Ց3#H(LZ\,TR/Qq:GQ9gRya/lmqG4OQdɟ1I~jA33`nJ'K((=KGEd#Ci+췎Hqݮ8j+W$ݠhhfT<tR2RBUu&QIr*h|&C$ִ�QrROsks+M"Z*\M*KO7x4rB�|:tOAӠ=p+COí.2[ȶD{.YIUD(F@ʫ7(DlTUC@!Nr;aV A<&Ih,v$-sssAEH�TוHծtR0HM­2me$ᚻ]%;0^AE 0Y2G|l~ 8:PtAdƉ f*xx;::H!',郗)Ș#Z3d$(hAF AȷI b"O,U9s28c5I־)˒Ouw<sJhhh` 5@EI5&ְܴTdiZRCŦ!ò.;fzV y2Ɣ(7Ed4R{ =2҃ lÍβ-tk+]%3I„|l>)ٌm9xG`*JLҎ1xh.76&Ǎme!S�(8_'?sX P#r͒=38,."coΣG"jxơds,}lJ>Lm.|(yeƉ6}7pԕ.Ml, 8'RHtQ'Q$+Zm:nI6UHZ48۲Hiu?Yq2v H.KLOsxBHsCN4\\&Wm1q#uo'.9˿'Hu TT>m 4'<q;!Lt�2%sξie�:;pLէñ[M[ɪPqHa{.&B.Wh?P.CAc 4>-hh&DƮh3x  Ǧ1܌^L.\:f$sYxsj́t5Q& Ֆ!N;Oi3nrxlcHI{|^d) Zd}S�jqj?x**Rkss@xEn#[W;@h!.s lF] kAS4y{f# iMeVM+U#X?]0cpS L/b hu(Y;|*\O.{˗üݭ:( !i(˞W&(u1mͯLT+IitѲ;F㮴(jzSQT8In;*պ"{չEÆ:T7kkbMF Ys;Moul7#%9fRW-cn\hL0ӌo9[~[,!m&ꏿ{�@R6 C h;Emmzk+~hV�C�L]Lu-h<s8.Ld*)bR6Ve7#.h%\?ӞnqjA<Ƈ58Msc}4W!R8Džx�uR^݇کF޹KL'H6Imggl2Gf' )'q�+IUW$[᭞Ynd庚o#y5K]P7͙>.Q;9c!fI x{jP9(gXv~{4O>o4p=yDě u3^#SUаZlYH1(A7Vy1̰^o;jj;zƲ8W-)8}:=<.Hvvc{J C~?~+^Ż^#_馉Vq@I&ȫ\s h <kƍxcHL[kvK}d['9}j!5<&uFR=xر9[yZ;48 bĞܚxǮ!xTimq&lwQ659`Qv#>ZJ;a =M?4DNls=[Z8#x-iƎuM5Sz<Uܭ q4iSPW 5}VVRӟ[3ڰ1&w#4.2sѲhOFN�Y(&leTo.l=ݐ l#=ŤR31#h�`ra fGI ZC+Fө.<M 2e{捓r﷮S7w-5l(PxSK):[pdԯ1!\_>La�-\6;]ü"8FxNc#};o}ccC"'pVGvW8nHڷc~ٓ)LrGnEpr@U5O䅆Cm$[!|ePM v7, Q�(8Tԛ593׻u]1w*Jo.UZ9$ݦJ=._^ wid d;_mfزp kl$4WDd wxr?9{1XaW)ҸyE1öFZm -�v}2:t,#@תwX "Zfm4<hȨxg;ma973;B=shb{@b*;~.ra#1vIk^PK_ ]!sZ&�7uNFᵕmrEVt}AY&2V[Ȱfteu%2D$|Lu9zLzn e3IӼj$kXT5M�mx<$ȁ4SSjRIR6wnX4V[XMp:VԽ*Nr.q(ȁN)Qlc:}�O-ݵl1sCs,q�ľW3544;"Z�[i=R^Cr7XEq[nj>~)WkֽE&LvY陧 ;LU:RZ7igec fjO� YgCm7yZC2Gȃ{ \dsWf B=G۶Nҵox;icx<̪%)(T6g!(Itg  .e9Pw󫣳gqB!{ϲ^<#JuJA{tky4}^dñX*0S{LUv_{5;=8T<4Dju#))$DZ0`ŲfQUU9HB�f(F\@k@$M��q$�V{4RO XP[9^\m.=zNkYI:v|-Q/, Wm;BBiPJ�j( [KH]ֲ> 6}c<MH\<"2=As].TYG<p6}zVBrµUs�<)j20@q~M3zܵy#AB(`P2: \yxtܻ呾SZ{usk\G%wKq4 4JIpiB-Ary6T:;@ G#nLB1&*Yi%1M@Nq:*C0x ܯ,sa5M;G<n>L`8*F�#ZWt|.qĕM kWiVW{T神P>:-\?\LZ@ e�'K8] rL92;?[#͞s{#v<.< Bu F]ʷMպJ O5cŤ[A0o7smLQMh>�$vqX]#\w 8 3LE"�G�Xݼ[gfX_7<\$@�NfufgQ6@MgYXٳ7\^+ 5Ϫ+8|rcViM 5I$w˓u%՜\, qk1]%-^@ `c|h&Dm^oq^@1p1(ǭē,mRG<=Fp^Fh0L"aD&0L"aD&0L"aD&h%9$_P�W(uC�Խ N۹^#sYf+ko]ĵˬTM^ʚgӷn^*(C@ }wd9y븟] 3v~[Š[ޢ;ݘPudɘ�t@~Ý_(vC�1KO捧K_pHM+O쮧ޟ;^J�2h{\WX"&0#w>F?�8a,#w[U TmƇ^i!�u.�NɄie?|p%]~X>XK��EAclE!ȕM?{m*wP�g�('sAWpu@x>¬9W9/_9@O``1`!�ӔCE}Ƶ>ҟrU7[}v5ưS Sz(=@!K^JVq+ c%)CH n_7?7%WsՀSc/jOާsXνz5Nb�4l|{8y\;�&X;}X!|e|:fLYZHKembXPA?x)O!N_l|CEk> A韈z>Qi8 X4hH4 7F�侣?^>XS:fT 1c\wu�;3 oׇgABb'aƫ6p&0L"aD&0L"aD&0L"aE#^5rB=_kŬfCoQUJ`|dr<27KvSg,;g/gL֗,iL{x)Fٍtk%n#heœ7\ cL۪w땍KhYX7hB$nr@f|S1MԃV`za]mn7"ylH}cR wOMK:[bx[,WT&0Ru ~Ri5JU7Lr퇽;*A!z:%mwq2@wwVw1wi0C<.5ÁcØ4ȶLcKMZY$o'p|30|o<G4�E:ʥ9F][[ MUe:.<n^7X q9ⷌ,^ /7?r2f FV B.`vt+0YA%Jnud] t� y8!XM| HCJ-XWOc(<K7i3z_kmۜnnⴷ#BO ʷC^%Z۳۽Ffmkʛk 1sA;9I oIy#(Ύj~N)Go!J8AKӥHs;986NT#Ϊg@04_sѸ.2|2ymn~s܁#-_+ o" {3cqGe(.cd&⻈հF\טP%UK3vlyZ⃃IדUčM/0ES.@K@.N󢸋]>{dBˣkQ;sbѪKcujOdCD;]xZ&u# vDS ґ-rHhSϚ6M"]6Tɪ)! &o167k[,3D­s*?\{ ]O=k0A�8)3bւ`P.P3)E U 5CvRpLzWVuR{17Q�g¼$QwVϬw1ºHl>ּKnWl^}x{QH;Q * ֵ~[UZMZlB^pT-nXYje ډL)<Okgfns?ͅoEÉ?!VW8VF酎G:4Jڛ52U(3[2M>cq5sϸFI̫ ʦuF= -u.@P*dLl_9췻nk>X Hm "Gpo.W<[m'F[-ZJ=޳sȯVkK$9a2WcFz0:dtr!3S*߃oͿVVqP&+tA"x}ȜZ__K_zΖQvZU"Hq*cۚGHhRQ3R˃z(Uh&X<%v>M4ܗ=;g: ľg^i78ycc{m Yof 79gQr; ag}{Nn #s[БWFIjy뀚W [jʶ#H5>Eu%G[l08[ƱK ЧΕX;6XvJvw0W$7ZKc%Jֈ]# cvEv7mx250lG_:NR[.Yag6snJcpM2yH? jw>нXOM͇~7xFooa+i$7 ƒ,~AU p6$%H _4훥kVYuՋb+m1U ǿ8VQrn $nϝ]-юݛ;8 XO pdf`{d:XGˉp>]#X]鈹 y�.h=h˶Pv(#me%~Pܤ~@vI'M71Y]$=]eS`ky]ayCg479$N 9<ȗ;aiuom4I�iZl0ルf@Oe~FZ纞ks,MscsيI#c; cYߍYZ{7ҫ\F F3Ipb@�(L2ܓݶo2sb.`YDt0k,ِ $Hqӥ3blDvm;4Uj[kv^!<揹Y~NKFv"AC 9 '`O@�v�o-cH̔6ˇ3!]asfFfyC5`C8L_Sݵ+|c-md/#t`n5\[T\0 jVbK{Tn~n *=.bL \gKklc2#:@ײF9m!IڕC[cakX_3ս1=l<pœ mۚ(GjqP] \k-*JU5lٖ,cy 4QOR-P|v*ոuN?9.?5ܾn]lnzk&[J{im8α?^mgNwwkN�yͩp&L3XL<$m hG]kIfW-Pz/q{ ^{�n}s޼|xŵcoFHƢ H m팟gTtl5,-u՜Y55H=*Bhu9~)/7'=Y٫r%:ڋQhʌ\AvP~7\\SV-C $kb{%ܘFkf 7ጶ-4257;03:91%n`Go?I^Yf`x^2Akهg9 (ZIGTawx*EUflNse6^OH*MNU�Lש5ٶ͠Zkz_=ĭ CnK;lb[+Zl>^Hzqa/ʖJq8o-�x�:i-KɠqQ#ZCg:EE1euUYeB2-= nDA@x{aqkHd.[ZQ*]._k,q s|ĹMno.2n[Źm%<2Tj-A܄Q MUW )&s,i~"x%OUTL]մwD1{^`7N.#m�\/3N22dYP/|O [n(&xwkN)ݽTu##^kSEnv{#JL\+HɋꃧV|yA@ɗøvY8"=Ruڲw^gZfΰ}\laa2P&vKi~gk0J.@.; U{xb"j^A eH2PY&ԫ!2+5PD®Ir;"-s1de^aq,so#&}�Esmwu,ǿX6ۋ|r+;m3ټ^YӼ3<gi@0PFJh yI9Bɘ6@92TDI z9@G85]-]2\i>iv*M;3ZF;ide\=J,g4t?uwл%5uh'Li (K4{śX*-]d rQȂEr #)ȴ]cݒ{ dr%a8{bcayƗ5mݰOwwk4iQzٱY aѸ6x_AsLRH XxE"Uvk(nNdU1 +Q!,Cw:1LA*,E6Iu#{MZN 23[ 1G$'ds #.*q[A!0TAR;e`s\*g1IÂ;`03*'1@Ҕ5;X/lۈ#hi%F{e/sYHֵv[!ice['N(֒C5R �Uj$3m:+@�D2n"Q:;q'de ilis\湤A3שac{TNNiծAy/(tkE<>%W�g৅3TUW誑UKq(YĠ$P@J"QᲐ]-ͭ崑9k㑴$k8\05>)CNcA9ZGb<LtP2(.I ^ tQ In+'?�H4X@[_Qzh�?JZ/"K(K2@*MRCb-f\@ּx#X_?]"{{X8H i BTRBq܋VTM ʵh3y-T+]F~r"pL9"o wo;xqv/(tF�%tZg I,19w+i{dsx@,Kd pJX2Xk5jW2pfSI�*U'["uR?WM  d7m7yl˶T9tn1cKk6>.!3G(qk6훊>u\qMlieodU:a'ylgoՒ$ER.K,]9d7Cy/�ijrq[lOZ -ꕥfcL zl.OuwM݌,Ivmdel,u2ۂ$2ù3E;GI&eliEPMaܣU b&Ctv:h;sf'(�XhWe6x!`p�KO'Op_ ^L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0ZIidw=A{X,WJ=JLM{UZeSPR8OrD'" K-uUc.-!} as`san,F|.`=׈MUK.dzo+ܟZ-eKHZNJ)ȿu2ˠ]}S�:gdlP5PS|cx3'St!J�\I>$E2$OB'@7N7SD"9hh_~վG4p�r(9s<W>�xQ [9Z/ ?W2jQm+4+n/,Vt S�(D p0H0G騨4ب>Z[nC~DҴ44x0P(^GźP(y\K|zu>7Su^?Ã_ī .]~JTf:B2F_8*6d {;e ?6")Pw&f sX+II X-q|vciĀKNq4�y- (zYa]Ru [EGO@XF5vmmL")Fh,- &@N@LXd%ͨTҕH. W@ qeqMw>D_#c yke 4@. 7uwH�2fm!"1 :Tzys& !N.w<' Jɬ85O&75u+yML{HbwRl{WZ@epخKJ]Vu*䣃 5w6b §Q?Ë#ōy<6Mg+g:�4p ->[N/q4VmC.4OJyٖ^7H=MjH#br)pT,Sg9$8"mqX^9r9w fsOf[qdV?rl$Ky76 eL-#-LIM$,\m%Ja(ZDknESZޗHV#4TNd98t8&̂Kre�os fSWu C\g%Ϙ4;h=A�KKev>iFU.6 y˰w`3vHC_z�G !SLT1^ܧc|[}G4h\LorO ]0226Ӑ:[ZڜxhjҚ)nojjθTesu "i<]$:@ge~Hܦ[!(`AITVG0 t, nAq,";و!{rkBޠTٸå"ԃf[m,-u 2ired$3u7x!2֌\Ay5l [|dT60|2LM<ťV+FŽjQx'-  "٭7cX)Nf,P1W, i.w#O&KdpF0jp/YWL,mX\p8u#3ݥuԛjg[ǑQGZ>{Rv{R_A1꺍z^MB0[=�Y :ތ> w26f{;Nk2B])ccuɗ-#Wr{Żj&+݂i k: <jm/hYe& PineƎԝ(M`*u&O:o-t6X= p<~mز9 ^9ՎshiG�pha&;͍x:lusj+(V7ҳil;risHlR=>- ]-T8L6I _6X8dq:A qt-I],2:kxvВ8h<Ii ǘ[wLqGh.-(ΰbE1ЍOc N6=QLv+iُۦ뉚j[>jm3YKyl`Șȝt$<#<ggۜ}Vѯx3V\<QJK?pXlmfdn2k* lx6sm&{uOtmI̔u<q{оFxr@kDz5[ ?P&VDЮ{├T{EӋg6iD̼{9Aˇjw[QH$`JD;l&CX2UGuyNf.^mk [V[9I[>\vWAn?-Fi9G<a8lmR swHv#n5)Ē`FPɏXj #0Ɩi�؏k eWTjĊ+5n]qcB'>JC Бoef^.h8㞞++\c 1lܬ9Dt18Q7|L!!{+AH%6� ֏Y=3M)94Wk1e\_\in"RF;`찀eTlYڢZ{cfgy�vI84}XF[v?Oyp8K1=p2PiuQSE5zMTt֝[Ծ2=-$;vB3t⺛J[5Z䞉Ŕpmsuk6lTM(uĠA-(Kyh #L"$;u߽e0 "ist3#C-\rU%㎎XyqȆ(.)Z˹R^qۿiwbN_#Fg"HQCOF帍hbtdz@FckGJ�Iu-/>ܳ .ykK=%ҹƞ�GUvfc\l/fb~GSkn~ak97 �/dz ] wNNKv\^ztV|x$6{k4[oS` =sxDgTrs]pQ5B?ךOLR"[زd+vôDYܨB!3b]6&$ҿȊ1<ZO-5Sy1yM�*pNJzMʾTH96B8u>QP둝V')ޤaRnPp9r(xP:A o�Ǿ_:2c(hO7>�/{`l VY6ƳR؇s{MQLxҢ)~QU T)bc7 ckEI'kg,A4I4�dޠqxc;;X)LXg ۛ,;"v#2 )aDd[n`bE PRRIy3oó kgiwdyR/ c>W' 1[}w_]!]sFiN]:toYz/a}˒AhX[Logoq w+.7l(Eu)'Hèqk^tq5+[5$0вHpl!Ĉ9=yk 5 m m&w,ux\UqtىT+}vTiryU1: [yxݪ'oܘrRkq20MG'x<4 C_xͰ1巬,ʔFFFii5'-uL p9Ҕ6[\͡{:yb� } O !g*JY5imoGb&W6@yRI-xUasn쉟m흋^7tviU:/;hXML@LCvl^Zl"nao~x\y X[;S'< h@g&0檩,EΪriQ9QCHB"""��8<4X7mh\fuү+|}sa3T['=TA۰�3y@LV"O-[JdѶlŲ܏w426`!:O){!Q}5GuwQijdUYDaFnjIqRFz0 UgN2,N1x>�rkG �[[KKkv02�}rII<I<II*L"aD&0L"aD&0L"aD&0L"WGyϭ�t.Wγ4}܇?sgX�pm>?K�[ʦLGycwwׯ_iā~t� 4o<�_֟]oY ,d9oW=?U"/}M'Vj^c޽z�_�:,ӳm<�?sgXxEOey*s]==(d]^u�Oy[7Hx?\hmqM`C1A(ϮԿSy>nsb�||?OPQw7P 쾔E[#rT7|k##�4B'(ȁ1Л^_XU?qs7 ;<W#nccB lӬ֒Le}P9v =zNƉ?xvڝ1f`?yrS+gwS0�*k�3Bŷ/%;u{_לwun|,;=̣=˷]7xi�kW�>qï�¤/Ogot6f8?\W&u!u>D2*&| ʡCdyQB.OQO]uֲT^�yҪ=@pxw׮>.Ks}.X>rW1e[RDDDضDL" Bw^̋ژVP�{nt;s#~ĭX\*o{E:hhx 3u~vR-^N1m/W]4"TMBB:1P1LzA(kL"aD&0L"aD&0L"aD&0PHSI撱2MvP?C=Ħ! Q�n xk-`cZ<ͮs\C#;a ^ǰG " 7N}b*Xck] *mmej" 5_{Om߻mx=[HrrKw. Gmw\c!d dc�Z⺥pg6[Vrtw<%/EGUY' $ẩdVDQ%PtIBD "3` slm#C湮kPA GOIil$9AxW=Wa� 1pW HNG+MK]6?_*A}5Co~d`Vgyuawndc<Ǒ+ MwNGiD=9jypE69 rW6K[Wb�mJ�$AE L Ųw6�9!tجͻaYCqdh̦1y |zAcŦ.,GG^X~}۝)]SPje&++HkcAJVty9TBz&+R@=:tE% �#n0>S1celgغAqǘ/pּv;knyڗ2\i䭽{+xa6@5H$ kGv #a˽hL kIaRa8XM'L2=L76ɖ^ H{! |{\IlvlKl>ڮV߃!ePϣaٶH%v\ɚ ;;NS>v4)#9f`HÉSDnX6t勠e댖"09Ƴdp1W_bgxClqn/OQ@# w;i0=v ka`HnG 5?zJ@0C'* tS�gTm]շߵ;V BHծi<msMZ88* %ˉ2<p-#\*$Th.Ď՞%j>C)^VHN{]){LzGT _竝3Zݕq7]Rc%-[C-%g8DRF3ut\nmiEk R!ͯYh7FV8~O< Q@6(mS02qlvLmrHo;q isZ( M&ڹ29[ugq <=FAJZ1iuu*:}F;:/lVf�(dP*|^z@EsLHs;ZXKPbtր6 v;ӽ!ܑÉWc4 1coz-_ {ZP)5ꝙ_J٨X FF)A:^eݗȃE!i�` =; msv C9m: Giw2 ͕v6@u]H#sȾ7kiJkNfkTY7^EOן'ƛdRK%WFQ&@AB�#}Ax 6ۿoeٹe8pIEk+\ؤ0[y  >\.BGOmn| Hr:FM>Ұ+Iz.(-YRױFkJT2V;j1lcIw^(~�"ø�v9cb] ėemm#̓[C7@eFVܻ 6IuE'3#Zݵq$ mh[=0Sp6Ji(ҨJñfہ{N|zgm�⧇l䱙s d p⹵w:9iB]ure-nnZ䣚*8E3Ss|`jQH\unj wBC|TZyE7LO@PY1gᤃi6app)_{8I^10в1gku7z33CEߟ9_06h�v|Pdj6mo]&Y3ҎWmT"*ǸkH {U3 qID[Cyaݗ=q\nbq8ը ǹkΈ̤}awclHg\T k\#]X0֠U@έ#H{R>18kP�v,fϝ5buRT$qf{NP9]=[1s0;n vJb%KE켾Şn6K5O9ɶ-.r6b͓[Cs1x.ѢfnbF6mXi/ýB?Gr)991\vݱۜ:^SV{=="ɹ}egn-.kmŵͽkLS{:]uo+Zw?14da4RHZl}z튕{^9~Ng]\S@M.#v19së(ƿjIq2ܲ{ŗw%"p݆GE]$c}hW{AlkjQy85AvZ43d4=@ҼZu؄5x=sAF+>t F͇Q/W6L#fP(:�z3c:۝Bw!gq|ۆIFю@Z Y(XO;u,#O�vlm͋y"Q)60UHwv 2-v)Qn۩ >8tDRie,<1nlwCC_u n!k˭ˮm#$جܸdw7F<Ǣ sӝjb^@R)d IAm G##0Y 102m3qV9\NF&_/ 0[nh%> RMqC3T\l09ֱhV#-׷x;:]emM+uۘe꤯hlO4ĸ߱#Ƅzi$bRQ6!-FN۟lzG'rc70b2=9]6Lȿ o6?J$!dZRFVWPZϹ.E)mr2GY^{3E iG E*eqץ<_ɘ͛.Dkn<eH+cxyXltrZ~ ?!rLQ$3y1:% [Crr[Zs_LtfHh͋i&Ad[g*eiID<1m/Z./6vSU&'A"eWGfg}sճr0v|d:9ANPHHga:p w0l45^/]mS1|y6.)ZI)8^-ʥ!uTj�>ВT8 g B6&So<L9.+k3{piɣ Id9bᱶKv^mlZ-~2F-u{5m?fҟ$#27P6t| %w?"{-Dz3/lCqًM[6 TVك-E�k7 l3-UZzɍ "ݴˤe`ayKC'a,ȩtlx׮]ҝcG4 !-ʟ;`>$*.@?KH&٭`.=�LHVL")ow$5;=?iM_Y K#`5׷{rK'Hq'p+i*3\SJ$\tbC~ V[7)`\4Fِ> ]NoG0lR. {<}]4sh2 T7 ̌G"1Qt劊jIBdB.Gn�!V(r:29cqy6͒EvHtse% =I&37w` �aV7 [##<1{ƪ9ђthBn2&E1AJQ1HvS @騠6P雨�mwՖ˸ܻ~wq!P4\i;Y>9iCq#32xcq QQG+]N7rs[48q#ʕƼ8pR@@z�zA8i}N?XtDN*:h ydlp2%!@#PLd.[$^2BP<.C98mKKZx�kEBL"!Ι=b$8x�XgNB+8A |x#8$;I2dptF E!ID t./Û͹9_mi&5l{[\:\KJ^9ҜV-":AK hyv^,Iav%cvmVQM9Wz���nޫoߖ9-07os!8Z˙b,љ�>Bbv i昈D]BI110M !~�|"=2q!LD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aEg&3LP$PVVN5Rv(uHr*kb<JQ �q)T$zѺ lW9u /o@}@(C*uWfPwFPLi,"Ǯ{5F�e8SÝ>W:^5_V�" �"=��>t@^@WRpp&UH#/I@LAQPRRJ <)t'SA9}CEugqdK$"O9+NWZ/kkJ ӂFXl`THoH&1:*+sv2pHor*9"^Kg%|"T�+h8HH L'(%4C��=\HXѹSjHr믖}?< SDBp#]N-<yx'0_'_! xNcNJLETTE7`)™́,sCRʴ<;>#POml+#qIČqmh5R]QR[s:V5T0W&^E`Q샷R@^AOU! O0)H=lK-|THuH����Vr ȣ`q:� kwq/K;Xv.H%!nH "[DAR#40yO4@T㹺 Xp]>&h;KYC#Bh9h-XgsgEJI$ADQX^,B)=~(xKAGKOX$ `}ƧGm=qS)nPVڝmS*]loWA60Q9U&EV9XN6acl/DyG \kN a^e#O604&�@ Fr'TB6tu]^ԩ'j^wӳoܥ_UڀwO,ə8zC󣋼xh8�ցS^8r6Z e6A4d`;hI&Wx[-e %V :j &Q܃WJ �eVps  LsvDBn(k@ sy�9@scYs7mibm* w֎dIp &0/gGcyofʖsCyhEV! $npt 9*]mqm7ot hO|FҬaAjy%VQlrU%.�1ڎp/-5sKy>Pgpf ȼRTP?`M{vL !3{U"  +yTv-wꍏx8H4 !f[Mo[29) 5№y Apih5>.wg;ͻu|.EDR=aI{\ELV!$](cV.9#uu<NIJ'#8a>16sBLAWP3$ذj뻒xe Z8!Ѭn$`֛io+Y\gu_lRպE6 9U*kluva[1[F>vFA笫..XkgܦeY|^³9԰c>Ӹ4CzN4Eב[ƌơZ;Dpbʜu',f({4ddaB5kٹ-50:+=h鉇SjKkOUuI{h-~/n5uu=ikb$ ,QhZ@ k@*MOP_k[yKCo 6Dʱilڶ)tGLm [z.: Gz糶VCyjwqF*#qhh4 6Yd1|^q%|:$9k8ֵRVބT5G%.)inC"ˌ[{Q,@$ӷb\K5h?se:1RLA,{ָQљ>E,d`weu sC\I-m ^֎W3ޱwxU,p*BQ!Z,\MS|DY!ڞPPt:l{%S|uy͡&Tκ3 dٽyh hc]ZqK-;q",״A_1ee]vdv<v&E[ixSK8 3ZHEZ Ln"< +XM%Na^ ֡g͒˙/L>s06Kp0S7RJar'YԾ? a\o}S)A.Gcu<l׻\(r7jɭr3 pf5ۻ.@ȣ�s&P-s8}qWњyyK+I@Wg4MZ^AqsD&*"R}r Vgbn]{JLS3|0yܘ-|e#i&!c,v)58QЬ5NU9{t&طiZòJ9ydzΊ}kwUd!5:\# $>*MӃ& ڨAv,S`1/nbcǎQN}܎e ^ 8LI B;= su!K!61P^уDMl[v S;69ehq21MX$FYHIG b 2EۂvCl}"dvK$WoTx4k298kdN_.k-}M\TRF{+MiJRBuH.0nuEHBeloe|O4Rk{yItZ `.4q<VE MɑpL K@7,e*foku>AmeNHU5㉎1pgfٱ4Y (>E楞v..ٔmbM֖s\LiX5L"QIm̔q Ma7=]&WA[rz瓜q N<Tlƶdd"e<Yf]ˤ�UQǎ6!ͺhckn�CGI�'M} }3SR.�8|zu$מvEڒ,$$5Ez*]˅hgwlYJ ڭwvfַCe Am(I^ 5shV $]M{\[C#+@ZiRrײvMOP{?gڡ D3UyZE4(yC*(b GWPCr[KKYٱ]Hֵ�j'R)e, @,=[ߡJ7ugb̶FIDm]Yd,H>UdW� OeTT(鱝n9g^68m8%Ak>Lj9xLJ� |.sc9-Nrֶ^}z6a4|y큒$&޺Fk43-˽-`(w&@U"XfنDyg9;98«DsxXj4 I+CX 4jzpྟ!}Vg uڛ"$z8Z*1J,\VU彾ty8[!0{9u]N}]lqLӌh&=18p^rs#տʌ{줔v ;eH3ih:*SV*%0sH�ͺΕWW�񼈟7qʼ+OD�Up߈m j-JN֮AYVLD+U!Hؠa*Hly X<켑ڳ[! }$n? dwy})n#Ս<\I7ղL"aBAKZFE4s!%% L#2D^=znѣFEUP"d(�9ֹ `%Ēy�<$@<�XhV;+[YvY6 9%%:@#].;y'ħhJl6w#G2ND|4 4O^b<Msk6s8Qz50MB! f^`d,$C&cض)A$Gw&0D`w77{sKI*EQAad,�5P�9��z&0L"aD&0L"aD&0L"aD&0~/=P6qt�(Q>d~ÝyiqM)�G.in(NJ e[D^<Q1DL,6,i3 Ű��*e(g17x+6TֲYIJːE)\�;LrGAi)ԕ';Vr` 4l{gdO^?sVe׺L~&֟Xe9V+ע�x_q^/_Ͱ, #g>qQz�Ɵ]_m7h?e�GuZ߮f2^5#Nޠ ?]�]?V�'',<:?652ry(# Z\g=?8e"&Q6�Ș!3}G⽛^Gmf2n26KG!{7w:=)q`_z ;wѲ�iroR\Hh‹Cd$ >'pJL$ 9&z=eYEA "t83sFbyςoc'{{+xcJѭ,T 7L�+aQ[O፥qW\=j?Yz?&}bv˼o o[{ OGy0Q0@9gwg}gw[*;K<D%7ܑAo =@�>36; =C1qe#w)'AS +誚2gxf@ȅd{<xzU D%bR�!=f:xtWgČpą5h>3~0L"aD&0L"aD&0L"aD&|\n] RQ &EEb5Q]�ɬ0`0A{[[Y,ck9>7=ck44!z46xN5%k-# q[.Efy/'pԠMPw@##(~H;^u�iۖخ͸ݥF5qq1ڒl)&%TeՈDSQȲ_ɱPv]GЫfF9A'$壶ʑv[@QY12jf)D:)eK4w$RHǀ潎i-s\ AU ͵ŝncqkZ湦 Ne&H[xk;ZBR4z"en[|(V}Q7x8]<a7r0Sl.;DOy;"."Ww]տ|6n][?Wlp8yQ;Qo<FDRl7>!I*a2S0@) $0;1e6+HP]v�7ui&FG!$lg �~tndwrA/.]kqOְ�%#1'۶|KepS06VJ 4m^wZ(ĺsxG/un]tsGEHq6 |.:jKv$9Vxt[(壃. ,N45<H3QMvv_5ֵbP'#&^sȨoP* +7vzm>Wpa! \1^A( 31i~Τk[Sr1W6H�{ \ %hjNn#$R ۟DH,1o�.57Y�CH;`[m0Rz5gv}[fsL>޺E{?r q\V%+mL>mT<[9kkG8VH zA 84vTITFER8霢S�ghmݷwݵ{V;AJEdp,7 BX\͈2;K s\(湤 AT;y2o8pvHp;e[{[ْTYpUs!?@�KGI%mAB#㤙ts@w㻑̄ ?;ǥQb;m.h}]ŨL7L7iSjj|5ˆڂԖl`.cb}J˾ WxUF5U{R@@FNL7Knq6K{n;gI0Ye9FM`xZA0ԟnm!$ۥ aX1…H$4 kK̖9QZI| |B֗wI>ҞN6WV^2>HN=ۿnni[nefqsY+.: c-24cH6ײؖm+'gHnȞQor"kGjQ:ݙozFg'pgh.NUlpQ%9ܣ+b ֠r&*#`nޠcz1{Cpm'n탌#-A,/k 5]kΗo$$mp E-Z׷P ף5ދmbjȱgcj.Xnt) Aa$A@0tN~�1G&j?_0n;v䡊)Yu4I`rs_<O{y5+EPz{|<>wfiq#)F<4-!ZEͤiͳUd*v B`iUp57a1EDL@ƻ{o#o|P:|V 8t ̖mp7 ]]Ǽp_=5NJ{wxMɭFc^0Ǟ{tXl=܅Dow$`(elk^ҚA0Qs:qk{6mv3:{ 424K󜃨U>nIƂm9іHv%"j$LA8׹Jv{9GY"N ՜k"N���:>d.w.MܜBLZh`Zغv"-ᥠ4Jv3h`]3qm[Wkk)'[}Զ[y[PiS[U|&tjX7tM$Ѧ/ƞBeVv$[#Б6FM<((^qS8fhc+iQ+F7Io� ޻krx{fK=5ѓe4Tn\jnKy5nKI"Ay('1aiZ_b0/QDe~ەD]-eɃ(&unVgXq7;ԋ|ͳ<onQ; [NcoK(B1cf89/bY,e=Kc!^KNKx8㭱T:]Tc&:&V.(ɧqr Z܋MV1A96*Ц1Nqatc`3{ \lmm[n1 a[aqh#oqgw[eMżŞ#E\-qlK{e"]"C<{tIkivL1.#*., EҬcNEVfP7]&ŴںYA#<p%ї3M]\;5&;#8rL0PF(�ZɘJֆcQ>&^.Z4 ol!k4̀U]*C()sBg9sS�yL'[px{C mݛa{$ 8Ew C'xs|^sLCDRJÙɿ<<Ƚqap4w Q45ަWkkJe!]J’+5e~f vvEbqm!w�;#gm|n_cqMdS+6d�[<e75{KA|fHV#oH=kg-r$\ M"KJ=z1lQIEʑV6I7_~F xnk,?NqvLe12Fqyc;?i_ї{ 3ٛ,i'lH nupXCk^m-$Z`d3Vx'=E02`[xC.sK΋a�vodۻ͝˯F.P @=Y-u{BCkV~ʲk[_dva?;�Y̕ h^jcĘC 8QG:њKc!$9U(�ʗK/ɲ'n2W:O=HLYqH(wI ~ImgqSr=v$ ]py\^6B9#7Udċ&r;'Lʢ:9RH rBK&os3</q%x�$cX#\!@&cHsH�{8Ў  \ kcH&)?OUy ˵#igIU;Oa1x>9qQ3iS�owwMOaq+!_iw5nVaE\ּlqI6f>DY<.)$N>"Zjx¢_CtG@͌VbݲyZUH~2jDjI6W^DHt ݭ.c9#¹6 c�]%o=*'5sy'\NNpTD ELC!PԽ>TϰeծIP8<Y@ *9VY-.%E}M_ƢF*/cd<ªS1$ت%w@jzb t&qx/ ZZMuҍfHcb[Oy:*V'S<,5ow&z̷kIoM)6b&Ar,S[I/%P*3ϑW1[LWv{Kpq8 NZ i7^;\N/7oI�P8nEI Yۗ@E[(nB8%SH A�%}ck,ᴾYi['\# #TcY$6¯s ns@y]+*;4 -01~)C_G# im8xy>xx)^|J+(ҦL`ujc� g e 6'oq9vW;LtR5'!5CV̼}"6EZ$Q ZM_&zإQa("HT1|z|/S�63yLxkVsc#[Lm^bWnbD~B@M9T@@D@@|@C`9cx$Q/ZWS"i*DL:P&1a��>y^5h%q4kZH�$ k^�$�9O״s"*n7EpHe%JrzfK &qGpDskItqUĭkYl(y**qR*^=l5K*ulB>Aݤ)]DM笒K0mυ6/cS$t9 ޳[Mc)-on0.e3ZLkpdz,.#9 do#pӮ3�fӠ0C"D8o,"W،Uxf9ʎ8]^]BL:6&H{]n$`e'9.-…C26SD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"6eIn6naH(.) {'[)DĪ/>jR<6G¡ Һ{p8dp` r.<pU˧NUQw.\]Å1Yu80acC�`�p�xĖY'L\I$O2IW̧9LS)%1S(J`%g�K9pp'PB(=tb *DU˕|ts@I3( z�|G *h ^lRѡLj|$T*O_!ڛMȟFQ"T*}"_ QghmrԤDhHW|#.|kɞ0L!$_fd =Q7 JCIB3 )pxχ^a{g`i4eT]UWX⢫(uU8u0"9ֆ5�_H^dyj}ry$:@ao"v קwώ y/nm&M'CiS*ۭjMnQoDQs84%xIeM彘4D! ne__?? (3Sndܙ1)Fr j5|FWnY dNɲ<E:"^οU&퓐UgV=fX (1)�twW=ӘDhIUx84xN`qO>74ܺfkCfKKÍA,h�MA5#f$5hݶ<}9bޭQi({j[FE&rg2AURl3˩#<V5Exr2tiPƊ55({{'Ku>UY 9 ZNnPԆPjgY7<o$³ug[k* K?=Ůk,N2uQpATCosI -GiJWI+F1{ !g;]} >&57s˚#Zq[BW\P8U_־esH, 6tR 8^#ūfD?Yˍtb2yyٳ0S@@{#- 9^�uZSb#sBaHL'ix%@FZ#-iRzmMa+HcM*R.9ILq9Y4iYn9 jgʿ[99�kr(02-yqv6cj99< A8.o5&hL۝½#*FɶM..;(k )YI:D4F"UoQ[=󽦮m (]Ay/Ll{@c:2W { hw#V!P>]o+vR)�٭"+rj]-#SvF5W5曤e瞜eEJ aMpd۸{(d&{SFjAtӘȜtshs+8wb8IHyfU7Q!bSv֑4ry.b]FXjV]Md2%N(Z9{s8qs|T$Ck%><M&3DKxFjG>v2kǯHKG{As{cEC'{? 8NdN\M,Bd3�Y˄:&XWckF4v d.ui4siݩ [W!&#}-Ojn?SN]y}*mEOzb5Uܗ\T)';ʡ5 .c,erni7l k\xq ߍÇd7v - LSjP.s S>emFvڵm7\Mjl FG،-ʤۄKnuSd>}&A9͡.`AhЌ˫hю"Sp(^ӸV<y u֘;EUEG8vc߲K?ksNj0Z#*q1J>P]rFF"6QF!Hu*NWV 5lm^ G:Wg6{ԠԮBm!#j%YeqouAaŤUA' ݌*(R ,ln#w-kKXh Y_<<c..WtNf�hkxR6MkX4 ПP o(:cJI^`k/k0ը *]E> vgM@CB,)DDmX0?/1ɑlI.dA/y28#y.@;$YelvEK"[9043Xl Uz}Mk-2y%aɏ8쳻nPЭ6m/ d[B&F@վ;{pvxZؚ׌p&fjMI:Mfn@8?@lQJ3t{Lt:�p.[ >UMj^B@AC nV7,t\kEnĒLa�ʫgz'I?]M;-� LNgmmu.:EnyK ۻnX?V[KaV&ߗU1Q�]ÐC6Ֆ+zlX47ed >ڝHxo<Xkhڤ {!?̨5iTk?o5} t^<  Ws Du-*9tS^ra) Q.&n<pt;kF.s�G+J(1Mxs$?WjPm %6\+wn(jdV/5}CiEMҾѝK7QnT"F k:K۽v=)HlflDq:^ =I 93W;M)/pq-au{>FUw1e7cZC:UmwjutLD, ty@,7Z`j"i#IGt[4pX;]yt6Ay4{Hɍln$brcZڲ]`D]9/61fs dskU[K" vT|f[[l6W1c+P}-ˇuEjrtK㢤!|\8G=1Rֽ55|}]5bQ(]7xJW4Y?2sܗbF1۰ѱtzlXc,Z]Ȇ1M)i8˜tJ8 e|ƀ*G|7 y,ڡݿ܋h3_jݚ@P+tVI<1T|C<r'0 7v+C0OwZyR�h}껾p'55y-qהlr.5{y[ex{GOߺnŋz6hͣdNb"ݻtHc0�ֵpkA.&d�Uu5Z\شwS UIeaHV@ (RKdc0_X^n O�K\(A 񷸂!=$$4$#S̔t4s좢b:t(޹:Mf#(D�f1<G.{�RI�>�I <�XlziR2!8Y֪[9c~)9XZ QRmLHA 9O xl &s< Ov봊 ^3y<Nbk*=b ]ףYC@Ak 6qE TI"��<g9I$$ĒykX���SD&0L"aD&0L"aD&0L"aD.q^r-!)ob@C -9C)A*$}ƴ>ҟȹoH>Xy)Vˢ_/K4a;+�V)|@sdȏޚ?uMl2~בYN5O[)QDn?:Γb#3_cX̱Cs<wO+~+ =,xov#웎nŽP7c?^`lIe'>G^dKW/Tw�_ 9�QރN ѳq�a$dBMHI/zhpww#%�?=?> "?5;gzxY,Ao-/QBMsiTrwvycׯD3/Q)z > uq<፥qwIߵqĬ%'ztp%޹`#" Og onG/<wkg>_Er~TyA ~�3ޛpH{ ĸ3;dkiѴ.1@_ ܧ5AnŧZX]U7$I~Hd*%rz^Պ`�p^gw^>;U3 \-}_{fi!7p. "#)2ݞ(X> w#Ĺ#; ��xfs-]<:߲Y^7Ȍ4,e4u/hN{_78,+tkq !w@x>­^ɄL"aD&0L"aD&0L"aD&0L"M5:J (R59D!`(tωbx k{K\�C 8x$dFAG"<[:hIGLf *tA:0h8B�y}K~sxfMw_uf%۲H͂~!%6DlmşV-Ya|AԸ !5g�)IW96mdc tUHg- (,$  9x썆^.h16Hs^4A*K;O-{ \4е Y)'OMMQpl&*w!ؙ:n߷v&mϺ[i,͏<ky#m^5$gp=Őf'# qch.]@hƍh$]|xD]&᳄U(5]#%PԦ(|ZG)f`|rF7­sZ4GVx',|w qkZp!4 !z3)xk(3+ںو89z8HB0@7P'U:bwr1}L92-w�Gs-iSMߒlvR#w/eݱ4R q*7l85;]?FE%!HE77@Q/pxStPlx#mr lui]P::~[ٖ'xq�g?Lѝ뾙{bܯNruDWvǁs¢AQu ;׵=%LJ+&b1@bzH��BESjNl맻<NsuVߟ-9%vњྶ}J_0{V?Әw&ޕז82w`Wͮ@n1O}FvAozхvsRjwdXA >&nnN@97w@DH$7ΨWHq ͅ{H[5ccRVIѿ=nRbfCjܑN"pA;}lhY:0UG*LOq��8%$`tu @o-yz-8Z=7^Fec`/-0]fvKoݴmn}C,%c= [֎={Ց;XHWv̧*SDA0pJbDU/A�1|;d`-o0ڎh&icA׊#H!o},AKL<x=xEZ J9ů>f*/&5䰑3opwnyTeO <Yө73\̛F/.I{l nR bKbEشJXcεPz-ݾة�w$q_V%,hd.:nUAg TERDL%0x`,/첶P>>&ps$csH 76wck4 Bn +/If$$Ɣ -(V.-/VSPqX sׯݓng7YwTQu[5>E-V&1z.54ͻzwL?355)i!%͚]qBڠTԖqkCD$jKz;-6j fNjg0n;ms=Z[S}Zǐeo7Pa;Lhs;طb\U/絕򗹺o"{V9PH3P=;칋bj[>QӽdcYXĤ VgR2QödPf990,~ %.|ɗwpمuå|5vd; n%:LS[ "kA$G>@ kvKBƕ^9+Nq)-e'P);ӱfR.gE [cllpm_,4Kߔ-u*mYw]ZiS+vI}q0^ȋPGk7\wpZ jQ˪wűn[E oZ㙳ܴPXeTsLRtG'C㲶yj#Qn06KG7Ͳ>- cݴWY&0ܠy~",oZj$q6z+s:~ܵ6'E<Q:p>c+CP$Y6U<zSg/ݧy6굎V8t0Z]8[f[VГ,To'cۑHwP=C⾈R4qc8R gZ=H DL$dj=[DɪዂQ'5! ՗߼uܱLl-ZkwJeY3/$=I=77ktl u;4o\c)lRHj mּ9p dp7Q"t-'eF.ОңҤ8&鋠QDnԋb[&x[Y>So2Adcoxgǹ2B<o:d k!x{cȖ:C."VCK'd"ɸ6C)vfo@E- -&#$ٜ-19d;z-l{̅2NKgFwJ FXt7.Ot2۸ FFVul -QlGn톹tbb91V Nf-.@U-kN1T(n۲n> 1x\/mdAkp_,0G8t$}"CiIl_K J#W@ {2ᣀ7ѿtc&]靪N85qKi}2%b[3 Ɣ |q.Tñ7K&|팣V̶w{2 -dYk]^s�1 ēZK^{ +aB \Ih"׶cɚIBB/ea:rv&rVr13ڳ Nw>t>Ĩ%(mt Ût `cLا^L>k޽g5%휽|*A|VG0\ 4#�|0n&tfe6Y4tI ٢x(#'n%Ye(2f0x-oU1n7-[Ccีܙ,4HK ڝc_f$н.tqn]cᧄ,du6`HV[r %b_5F)#EfBw|m谐2ީ[gm/W0 .m[Kcyk# {u󡶹rYI@7S'u+ k$/mZIŎӫX 3|wFP""j:܇qRLPT,2d%{_$W=t \4i|!ڛ^b!T�Hm[ -H"5,s~$Ë`P£RMBHUH?0g?|n^j./I j?TbVZ+q_1w7淈%hxCE'%f͗2A6XPXS]%@lDDn-%w:gHCC u4 ,oP,9:$bf7P4i"ǃIOUj_1b%1D SD SzϦ=<K-Aqy@p-<A_11P9q:DcLa1=DLsuI_=u1s{ė8K<O5րƀ�_x&0LMSÉLr`CNzfE ŗ1K:u @UЂZT\^�*j8V<'x>5* qMR wDʩbq?n.,f.[`ֻ<Ů /dVԏH<PyS]UL%1DJb((A=<I-AqyPz>tR@UrF_L DS9p = ?@0ln巹7/XdֽἝ+Jpt#5UxCjLEҤ^a&�5U{&*9^l)ӆD1&绡U2%H {|S[ϐ%Mpi�[dA+lBFwsmlc ?SD/ּCˋO l-aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"л? ̒aJ& >  #g /EG~�|!<?s1ϚIZ̲Ѣh2]̥y*ͩNZ SvpiyWtTW+K,0j\ZCuZi4Ai>2K+x. zAHQmGS'*Ulͬ{tkfeԜՖw+4L*:rn¨)hKx#K9�h�I?9;诧8-ֵ!Z5|'Ky Tb\G*-Xh5b-Dq&̫<vV7PJ!p-aks{O5p���s[܍bHm 8r9qKq<VUPr6) Y5*]1 MUc/i@ C--fGֺ$1j<yrxqWǚs='a/mUČ|Esڗv6I�M%D8Q8~#B <1%hJmhW[�kGcw#3\Dq88j/;G:4)bkZꘉlo:e =/cٗXQh6�@WT`ڔ~ g"i�1 I=$=_w�ַuo?/C44rcG0UIDN$P�(DCw zd!sGsU] еMPŶV 3bНO pH\=LD]SrJckDfJk vxxѼ%xs8Xw&4xTƌ7$Up6.>'i-{XjځMt%7=8탼7Acک[*g C*꿙F0pY)3/hXQ0ԇ8%M1|[ oi-$ nf{+PփZ H餖5~Ykt}/MrfD)b+=X#*"/D"kk5dҴɫb˴еyN췎O `$v{$#^p;r!qq}hڙyJ\5:j >/wl+w^Jf_H5s)cr'ژ"ͽq9FH+K.$]k;fșCcgb3э� �KZ 56� r8zwRIV[R&�9&>:th.4ܺPYE;`.3Fɶ.J :8 .cWr�0 mںAudJh� Cb!µse*[Ny[J,þy ]=اD3+7K{*ȗ5Z] &_2ǒʹ/-mu&<�gncG־Oc-&$EIC}N-O{G <﵆:q85CjMq-Ir GMIZܜ+- X@Nmܹ*E)V ~c/z&ͻbfɔp̖ce/e>m5\uwcHөc(PA9G!l@ocRNa1c(+xKWXKXZ֑r܌ۑ5ܦ9L}k!s뛇ys3SNfBTk49BXvd-lݵ i @6q=Mr;g@i^-C F] [ۑrnPGLv_Tu-Бب*x7Y,ܿ$\p=}MS8QE0vFjca`B]LMF!ĉ' 4; *-Š}fmK~G#%lb2"~[n;\`&q#cDGTp;ZO#mݸiư艧ǭ]ą+V#ro<js=XEo tr7Ԣekɖ+De mnb ;XV혿ec̩MU2_6[E٘hYdh>\ڈ䑴|yS6k2'+-~֗PDwLӳDgD⊼5sBjfF~U&t+ewdJ, r{#eݹHXC2F4ڷAq~c54[[NA{m̵t.SqSx:\bھG"R /u[B(f ! ,o6'FEs)gnCySOwYXeq 61;,cG|B&SE>_"q%qƮ{9H�r \rr}N9[~0ښ=cZ<v*eUH}bu4vnk\^>=ј睼q5<(<Uyt c{Q&"M×Np@e§xM.szvXo MTMm9PpL9}# n�@9 P�ՎG�ִ�80XL&K�q$%j ˏS=ꅿYpԻ<VO嫂iJ+9;.T%@+قHIGPɸtelAܑܹp{m1Ir|RɤܹS5џtGxcNjFWlO^"~<Ŧ)=&2y VM=3(|qvPFϐc!châA.#QOdwi5.q�t8w:wvHɱpcy5$g1C~\zOdVؑi r}jrb1Fk(vF+*ٝ~Us4NmvN 2-Y&d1@8MxI a;mW�qI3^c`"DO? ZG`Dmwmp ng8G掴#JG5o3XvMudWꦞo#2A#bbtڝA"HY\6=Ȭ102:q$>,X8.︗\>lz8�]5}@ow'4i[ fڼVu##`<Z5M".D|I'`^r"sLݩ.>G=݌C\&83^ZH&g/׾xp8y@fkzg?�vnDNK2KAh=U EדxyQtQ2TAd7V  h#P)($$W_r/N\=3Dz֎~ (p*z+.a0j~O(U!uJĝ6T2Z6Bg v @_M2q[7m 9:QW�0rh<3.yd9Yxd�YTwo-U-mb{CS W c((Y U̓Dta&CgcqkXctO<?4s.4�q%c]@뛧@d��O�x+|z:mquǏ<;'UݻȘ#W'c%!OIZK%ȺSDU(}E[lr38S&ahnC#$QW1ӔB۟b_k:}z\Q)6W@Ee<&.&-daR&�L?Tr ,fs幑$9MI'L @��x��X\]ս2(6Z#}=ΛrCJ#5E~QEBE,)BxEmIJxʵlpFo`tϾ0m4. �hEc WV#`+a6l8iы-"H i P�� I$Hqt$I$ĒOIJkCZ�h�rEs~0L"aD&0L"aD&0L"aD&0L";'_S_8w &0OtQjqf/NC�&h� kv|}Lı]܀َl&㵣G₆J_:Ɉ~rXzH}gYt؃@j?Ƴbb~'On+wc�r%6Q}�~;oMѲ�?^'u,.H3džM t7;^釬ww{bޝCw$%@uwD~`>6m?ב5Lr缿 7x?XԿ ��= @ ݟsq�-wwV?Z^IatG{F_wRv?�$q7R{�kvٳ>#U27-e=ʮLLwא@ ר ^l[=Mڠ}QL~h\cI_ jC7k@9ލr'"n/Y"#p||~(2 3Fi5aڶ�& [l?M$"cH0^Y$3n]<P}fە;64u]B/egӷ6g7^20׸߽;1æp`w9y븟] ܰ.U>\4PwF?}C5UQj6{Y }u&Dßly׻ڤ9ׯ_=Ҫ"ݺ c<MpB^Y> !w}e;x+� SK!4S7MaW2P> la.?vw490L"aD&0L"aD&0L"aD&0L"L*B(2j&@P)r!=C>$9t35! A 8xF״9|+qp怑VF='4-rVȼ[YhĊUJ;rܠ#q(LPˋK*-~۰ɷ'uͻE\4: mMɖ!S[fͶwnd]L0"` ִR9 <�MF2H'm! .d 1LCQ?Jr ꘥1CsHڂi>\TOeՅю@o!{OBi]JyRIz݃S`)P0S].E0 _/?o^h}ԛ6�`Kݲ]@ʚq{iRD`ߒ6pZyTز dg .G^U}νzBvYc#vϣ_"=%Xt5>*�bu #ylMܛN\X=ŏiA38Ios $;$R�<ZA0 ŷ2[$^f# 2F&H;2Fůi 4 4h"شiG_7akmΓ_h8o'N;=LC@FuWNש6|VWDY[NНrb)OjcWZ\i5X;?tXZ˴H|>HR'% <FR N~j{j*wX35ERP3&> ޫ`e1ӌ'VwRyG,|sD#(`coR3noh}՜N ,ՠp|NAO:knGH:Gzңsp+F;e7ecDY>`^d~xuomt06Ck<2c{o#ptN:S7O>M87l@d85#F8 R\2Qoam5keJ58zTNQN(:/mNe;{yaH^[>) IuͰSGsh;M+s, --ndc/ `SZcd{Ye5-/kSRJRa㹮:� X=BL hv}OsnOƫrVF+wL}%ռhty͛lعV1)-g ю"@ۈ[+pǺ*}vkoT.I>)m$Q]S>"&嫄)9lT c&sgvVǶ2ko1YKRǾb{ƭ7>[CÖ5,W0.%[+Fͮi|vOWڗ:ނsrRI,,ir2a4�bHʄhhG;Mt}+:Yv5[fFZ9?02 dS- osbmްmͷp`3SȹQqM27LyD4Df &>b(C�00 L� !խn]w0g{Oj�8!eq9,B\^^-KG<Á!„*۷>m8skUgk((3l[�$Qӝqހ�=.7S1GܶG+Q0wBŮ,-#14o$ x#o~YMWwE_h;T|y[-NpUezvu@qH%NR.}7dLg/Jy^Lv}=fkyns%­u&0-R5YmZiŒyVK G4b튫=ݨ\"'h7<Sw5!άf)O SaᎸk4{cvu-.cd߸&Cu }LmEkzwi+dIn:;9͵N s Cj0zh;{JŬ6\C`UE0X(AԴ'Q�Eś!hv[/񹾇|>Eױe.սܶgh wS}{{ l#B{2܍1MJv䉒p %{8κdd O=)@Yxa;]qV(Rt ;oρkmw/1(mn77:70�ջF k-fCivL�+ḁJ[ü*+ڵt �ى6v@ }v9=T|q�vcĽJ*Gy'\vKwV qՖ|`sF[YL<Hfڰ26=vmNGM{4-Zl r1RߪV5IZs`a\ȘD jUPYv*t9/`o Vܷ=eﶾJyEg42Yn ceY.h6Cm&==mgRf1Xf9spȵd�){FqZV{Y(_9:`'=YT: F<tN5oөl͵ںff'qt.-+8:Wn5|a~XِSj!uTdWw -x Lw?_8O-hʕh*3 5ڐ"RnSa$!< %1 SrM=+ww[ Gp|dxb. [c3�/i}kC\Lz{زaWbJ)4g\:1R[* @&B&N AQ]1ڪ!*J)JlQ�3nKVEuݰl릂[w l-NdYm$i|vkgj\FyYf;h5-21yZRwCc"gUEJmi{P#n@P']u%%݇1[[ܽ&<3%d28pIG[HNN2HΉf k5d圛0HX�,ZУg)RRq,t'#\<T t@8QRd7r7R7u&W]QnB:5NHk"!tO!wx-3FNͻ/bN&nj[$`{wtFiSKm Y>2Yx}Z #*%dIDv6(S7L]K:& {Gk'YLKP#L˛wSm42 ]-ʹmlnlT֠9jM`kpfHW.ت)Y2y VZآoLR"o;-/<ْ/wueغЇGn̓ ka,Xo;K|Q]�QGH8Y)DGNנ"zx~n6SQ?x+rHh䧚epzwkAۖP{&,-ӑ0xNpԶKwg8lmspd2;KvbؗU@ iis%tRUŷ"˴^[ۘ71pKzqt2Rd *=+U-v$k$NHe1|'+w(-Q1Nz݋8"vzubaː'hUݵt3ip_nmeX@ba5K[;*ˈy: (%IATs0�L`(*{l;G!G&TI{Dph., �ldWx"TXI1tn;@@;j%; 8t:G�:f) >=o.4n X!%Oj7oH�ueg7 Zrs\(EGNi-p Y^sFoQ%ft� `E1H)sw~b7O|nHg=�|O &̖7�<xwv$'5v5Ñ8x~b8M&`Km̰$XB'N1*O0ݎ<ŴYJ MMxkp H5΋Pko,0<JmmZQZPQ#P?4+-0#Q?0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"л? ̒aJ02ѱ%}2/[3)+J=9N !EN1Ҙ >3 ishWx�gjn O:Z*y p*^eoȱh)O[WԬ&ASyM\%kh�T]"_y!<n&èYSyG\9|E.W܄iaq4M >�lV~a~O3Z//%0�hA?WEi_ T+?W&O?iz ?z�| 7BC,2z#Ѐbf*Dڔ%d( pY%YArRA4SLq1C SSu]Dz�<+NTI&FY(t0uē+� rVBDW֑z(8xɢًiϥ$8:L"Qç &)(gwT$@d�Oc+7it$e�+Ē�0XtH5騫DTsR0N�=>N = ~^&nۚ�HM84UMXA%F֣Y#FlkLqm˰rZu"ї ͹H#d,%BK;1Ƃ5; 4\M�aDpI\6&ih+ŴkI�@ R\)12Y\:ʪX"UF.UA4RYE16܍NPP+ABhp$-,Ho!Zmj@I*\VvQMj$=[ZJkZU)wI5I!W<ɑpGMxoy'6?WH->'!K!#XOw�ȿ׸�t龹rZb)ѯ:ށbjG[j޵UVlT, ;7zb6lm"iY\#:#PҀGݹȽk"#lCK#8Ex> IApVIa%%b6}޷Q=^=}ZQn̹9F Ĉ\,prLi|[M< %69ϞQ6N t'e}j9+iG9"uKKUCieMFSY1;9 ~#7 Bɂzi0q +UAgW][O}ed1DXSV5WQ.  Zkl~`utEҹ$HtGUyK7:Ʈw$1IX}xPGzO5K߉:_7: $L(_a) efEe,iY`M<b+ڵkypJ,rK [WP460TBm-vqOScn6"#PfwE*s<+2'*VYL}-2v/h4I4ѬhxύCžw9 eճM}F{Ey}Ĕmii^ԾNX[*S 檅jW { M.V]љ^-Qƪ..K?}: fخN M<,qs' n`<�q*jKB.wC Sw+jctV+HM[B[}3TnxRs:}W0g-gU]U&l=)w:cvYY25}+U.8f5�CkjSsyļP 2}kDV:j]Y.�m Q 9Pn:qY*-S +;>d3+δ>:啑{lfj$"cg3EsByy`K +%'d: C]@n&ucP2KW-Rŗ 61mCƛM%E=j-& Mϔk 0n<6X8ƗܱNEeZ&Zhg&Zv|.:_s!]#kA @!uvRǵtorgKǷO~r(3|*u& jHtRÐ1aYcp,o^kI'_) �v[qGrsn"q'y )P8ie^ORvo;Ī+Brh4 AʚJ){1Ip{"Ap^3]\Wl=ysjY.zSVF@|,\) ᦃpȏ|bP-G9䳆j]A.BzpӋld[lFokELueBYi Fum}[Ye$W7lG)o朠uS 1[Spfuܞ2GQI&eEѶb82<H8Pav-=-l;RAT+FInM0wT{%*['MDW 2%_xEx3mc.'pZ] 3N8к6)W ==xƘOq㉴8gcW99rYޤ\n_d ^2�N]ڝw<ߵYd$x`6VktF8js54kp i$K 7y3CS{U sΠMKpcJeo.gnc.ƳZίp-KVv8'Nh‹?Q{OWڜ7n|`Y7mf瑕|]]<T�5v@_t;%Sk-=ДT>C\ ^LjZw�kQn ,ɴTL-Ost&.SU/B]U oƩL]ţYCZ=w�[6&۽[Nco 5XޟINDYXZ]:[!^Idtd�ͺtejŸ1R(\:;}ku;I*I p<C8(uR1܋ e֖ \HcX"аVՐ6:. RIB~oF)_C)^9P/sLfŅufԇAӧRʷ*N]?p吳7a͡iM<'nrѲ=.hV&"/=q+8!β؛!ݝr2 anK3}<uWM?BQ5VͱZ)PzKIkm|a MDiUv�"WNw]lقvK#A2Fֲ:!B�qex$2lrta\ ,q.2<H�R�~燈DzZ۹EʍSĭtEy$+:^Xwcmkԏ(}brb P*-"&D/~kd�k[It7MhXW |t<M֊<Ǝ%h"tov!6Ms]k[Mhz \(c9hXkTؔZ&ofqVw;͜)=d>n_ F05*l^"O'KNn!39!D9�R1=� DrK w;caim1+]֖Eۀx5�.n0n@?V4:KLC<OʴO5?Iu�Y3S5m["љƵfj'�E8M ?&#p i# +ÜL?ݎRy_si*fKjPf)z ɼtD,4[dFFjD۴dɪ%M4P)JP� Kq+|q.q5$$yTk��rG3}&0L"aD&0L"aD&0L"aD&0L"aޢ^۟ܥZ׫Um+):jLY4"Z1AD`� ݗv+kX^p9^H>h9{sfw }vC\ }O/vJ>Sv7#Y=‰/GG>w޼`eXr\Nk Ŗ>ux.]VzDk%>PA,/9Zf4;AϨGW0y6ww,{T5i#VkS5Ǟ>>w^,_TZy*R-kr'muiA{d((B��|3ͳcaw{.n84Tpm8λbḿ{Γ72z~ ݒ?ݍOp?&{Qwfiun�׳:ql9n^0ڸ ")#&vW(yn@ylfot:�+ft  j8x .8F܃fTTf!fK+,\wom{ˬ? 6ĕcsR]UmT峲o,/Q6U"kı4k�#Qs67wyklo-ďiPZTVIS'>пٳMސd Qg [8 }=]y)KyJʱ?dOeZ"V:Od7iND@� q]u%FC@$Fƞ`+gY^vݵEaචGH|?C~�R.o[Kѳ=v+uQ@ZXpPRC0u�gc:m[{"cH4j=} fsu* UH?؟u_Mސd Qg [zI꽟=멷%6N7hZaV+?u2:zE?B:7PXߗY=yKg+ZPt<#-kucn㣅AhӈʅdUҊʨeVMI"� Tɦ@7@�|:D �[fkJf^@8 ߼{ڇӵnηNNJDo&O�弇N-{~=OC^noݍOpL#K}/L}q5xŬ^B)8 =^QFk?xn`9R=f1 * pz(o+L载xYZ@x{k[hcHB)Pew6HjN:0@S*稜~s4EeHr!D)z@<sChXۨ)bFEO[7A΅stFOS�-C.3c!'\'Lk#2z~ ݃݌GB?/y5.] CPjN+erHU} 5\üt'/Vg"(AH{J8Vy �t ֖CMv5cAsWc%L"aD&0L"aD&0L"aD&0L"aEU$ITM5Y3*$JHjp1�na}%-s\QsO4AP}#⑲AA [ $0H>CڞUЂ?H8S⏏U7A5Y@י%ݯ( ݶ&"xGp?�4.!ŖM&L�_F c$k&EQPj&r5Pr NC@@@D:)b&^湤PA##B^F"ABw,mmkv߰dk{ rV3 Y̐ѬCHS1ߝ)WԐ 处;oZ8Ev hɻIh67g}SL[OOmŚ^8=|rDDĸ}*R9[(}n3AruE}A Mz^.iY5᱗c@e݅ggʆfV)q=Cjݲ9ˌe;kn">7x'weÑ3Y*,uiy)" S(;MD764@Ϡޠt]Fݡ'sEPr|Nqtofr o+onSL)rK|[hc6wZn#gfvUB[I\M5m&clsIXz;E[uEY$jk؎IKc r!1۩ꨋrAZ۽H۷{w>5KdgidHnm%n+Z[gvr=kdCmb|V%^F֘La|Ri-3s8lq+5c$WDjK(t;o0;;Y�qaf}d ^䴺ȉ[709#<ZרV5bfgef`yi.e+Q,a4J\>7?~ċZښT~bVă5܀�CC;oˢ]H.m؜(gtA.d2<q1A ߛ^O55mͫ<"kw<7ꖑZv6+SXahO]K]re.BMRu*U" =&ߟnoXc[q89LuV..-\W2H$P ӭ~7/~\";Z>c-4%isCnW[, lmN6[2n@ӱG)J*7U f (�C3Ntnb3v]0,ue<cutc($bPK3{:؛mm\F}{{}p,1N4Ua.aA0J�kpNnUe5ka6*d1.R ^FmMc|v~`brhY.ZnD [6YAu{$ 91ɸŶ5ğJqOd]6:I+oagU86؀A'{aO\{<Jk9H|:"u�N6_;ѝ;1'/'v6\nL}P@Da4N;I s)FdG6\Q #l4 rEtn+LEĥfK4 F KcjD|5+Ȁ_G.(2r8-u9qM{3;4C Y}j#Ƃt){y@jGT:ycs ,]xb?Һm.0 <zFD[l$$bDP:8\WQo,4 U w6t]Xs'xHo34YI=79o1y4{\Y$kSP<-qW08?:vl%`?t[m2*p)OHUa/I*/Jh+/ی@k5g (Q8RUA;S^73uפm7vK>9;-ÿGwL4+k.7/wIdis_v.l9+%?9ɭiV ^3GMa]NS#';]{*H(SݩFDvj( ӿ%j2 Neb@t7[kyS[raG0g-$hכjw+Y7mo]LkI#Ǵat!ef4٥jrH 8eJ!!~1 �9cn x􅂱dA.NnnVG<MewLLa7f�f 39>2!c wt5ܵe˥t &.g\5=-65Ee!x %�Y^s#˦7ȃɀk:=H'L[V,6]!:`(\CLf sth:JU}:*qTdo[j1pHitM7 d ì[eŦϋG̞'8/-eu_Z\Ydm֑nֹ42@4]Y,sn4{a# ] o'" i,Z^G:PQ$Fֈh`-�$x_vIqe͜ =i۲ȹն~0{4Wr�-Q`03,L{3[{R:@O ot^_r vNbn1;C;MYꌃ$h+%y0;-΢VU3P:` ӵly- .O8}.xZMB(,42dz)>^/1=W`J#Z3Xly׃ k.חA:*,`6~V7 OĔ�^CǘTSN!T}@&ۯmmŋLƺwmq}jX[,L}#2fktL'\C,nȖ)�=sWD.p ."Y^tRY %^7pd \`TA2Dʳt ~�DU$ { Nml_\;mf051ɪ9h=:AۛFC̍ؒ9+^'KxCR VYɦѮQ.nCO|E5�Z:P"U 1L$N8Ӻm`}=R(b 5#mMpdoamOƾK^69:#NWr1<@K4L D(I% S݊) P�I69C 8/ M@5楦7:=qsjgp$Vb;ŗtݜ|y_zT)n1 ܑb G,+ݵM썱k9#SDlײgT2r0Fᓻq&JֹY<t,$qk`h"hK"#Cf, `"(__ՙ <k0c#xs^O%:C 8n ZO#J'<_i(qKd'R#PzAI7)ẝ�``� 9ۗ$E#:%FղFjh󳼂#,\ZZ8skxy 諝3/DHB @WMpp5PP) �(.Ļw{q7=q3#_0DZ 78e7jK u�I8>!* Ϭ3O�<s5%S?0Q2Wr6]/-ZMȘ;=XRAO%T!2ͺ}Viٱ)$ tv42v#v&pq I9 7H*#itC^ F7IREcƾoL#AtX^�rYGeo<WPE!kfWw+A콚׆PsC2GM%{KMM>$U8>`/d/DDIdERDɪC&@LC�0xx{[9MrE;iV EAxc#C!>j8p<G_x/&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aEv$/Ck:<Of5DE@% (&8n9D# Mx'i|uӲ@^|^(H8zȇvoH v<1@GR >6y6`lkԠWԨ:YYq# e$xByN* ~EAk4]Q@LTP)`"sC!DD�6*jUoi%=|54̓@{)It<reHcwQwr^ }BTP0R_1${ƁUCAOR)N\xd: xc]GaWUMkŽM$_0[iai]^ʬ";{1r*,),r0#4\k`6؟,Ls 84Wv;wsNWJ/}j80$P qhj*H9U#) ev1ițXM55jQ*WR,{n/�<)o:JӅA-&HtBBꖇriu(h*Ex^a070�Na��נfVU;K[?GwS苷Mrw.I%n$VQ$ݷ*9*C+%�CѱKMGyp5u1Ph||@?QEX0eYi#.hLN>gh3H$ߵDHD�zxgcu#X B}T f>:>SX Z^tW"qeq6<_QLW\$-(MypmrfD_O&$Y,({()D$c#n!;{Ư$F�'U(L촷c(4exhW.$uEC!ʯ eǵ$  ̵ԓ:!Dg =g@LDAE s,Nsu@ OCQ 48qX6ַv`_W GNk.<CCH5¥W4g*yi怨 !ɭI1g[=St唅7XˮBM(-0; ~T3U*_'45㾸n>F^8R20F:X8RIMtĚ+sSlܲOjs(6 ZqoōU""]b]bympDTٸ;;%-턎Jwv\0j9 !k7 ߜhhq:p<Z$e) ig`Y ]èhIåWTDUc@y@H+ɨ�rsP2qnmq_ruil.4gsd|IhAhݦ}ȓrml;]. flVaFPltT] tcBKu)!-k{05W5xT32|DI5>Wi hHGl5Z"cJݱ:s:^r2lFѐU8-ZUPJE'v5AfLS#U\(x `;E3. `&/#ʕ:c`PM-#P[l[_/^mFH-fc(*�5 y{};NKJ'IUxr\-f)ҷgbFnr ,knܜd ̗{SFBP,h�T-O0Po])s| hsS4-ԶsIHml_@Ʃ 4 {+V*GVIH.mjq'՛qݯˇe~;xp0<xV3'.Eomm8i'\ e]ޯqQV^VzHRX8]mVjc"n"4Dd1v95n ƳR~|slv.ss]s'# j@.;fhpK@ xs#ݦANސj~/{*@x;ySsabox,N&\@J;;|d\"Mzb0VUL4sz{RZ#h#P?$fv9.KAAj O<r ,8POn8>~{S Rvn]a!rѯZf-nܗsDYFd,c6|nwPYn [+potk]8m;e {q-hk(`2F YX7^M حPymu_ښ#6UZM'?*((M?YR &ljdr$!5 ??%Ԭ۵}chisLQ�5ZjMs{#w5l{WD5YWhGQhUmuAG:x(,;Tl\IGjkSjɒ7Zn2\\gn{ ww 52F4!h Oޯ,\Ѱurfl^5`h6@2/l;c{o}ii֚e'T1GpNqHJTC/o/Za`HXM41姓$Zn E.ϕWPNim#YքԳ<~#;qL( %!HsDidlLmq6h_>Wڞ{81cY,٩Kͼ=TRF V?$WG+C&恪(wH#q5.Ҝn!^qS7W!<hm6(J&O{m8㻻4pkit13OrAxrmdWP8G##a';I, 9d @ټ[㾉痨FȬhdD]>~(ıx!*g>z-8((k<7G1P'#qtṂ+&b:(8ଢlol[cC+3DW8 =o*Yq*)5,]k&a}@yJgV %ݠH_^Zlpr³cg|r^ݿ!9Cew~sڍg2Uč=pbywusfm5'cO1K izcDl_ThAK`TՊ맵c6Uzv1Ꞽ *Avu~ђ>ò6㏚I3Y,WK �T�ֵ{0amdِ<9``k`CYk9$TpW~rrWnY+ejrs is;uuF9!AͫJZ1P;9y(@=-m~7۸mH EG) 2Jōpo2J͔5Eb G}3 �2 x;Hu4)7VYxGGLv5`%i6##u(c%MI95IqMM*"s"۬&7r-&g(78�U#+(Þ q8I}syՐv1vTʌR#8I0uln̢w( ^fsoEk\i/G5rŴǸ!GІmYfn�EP�#�G"+lv chx<KzYZ3y!VvfT:K6y.Sd¢公N<U~nf괷w๙/ L>Qr)g9ich,:fpaO*Z_RM*5f"FC3UkM*="ՓD D RCYCE cU.dqsMI'?n8cl06&�8� s}0L"aD&0L"aD&0L"aD&0L"כ\{CBٶ뵙gb[X9miՑtR (R^ut WO܌ҲVw,4-J9~d7]ZFZXc)2m2gV_ UUc)2m1=W_|0K?g|b~_]~.ϋO;y�/,Ciu>-?Xo'�3 L~/w'Uc)2m1=W_|0K?g|b~_]~.ϋO;y�/,Ciu>-?Xo'�3 L~/w'Uc)2m1=W_|0K?g|b~_]~.ϋO;y�/,Ciu>-?Xo'�3 L~/w'Uc)2m1=W_|0K?g|b~_]~.ϋO;y�/,Ciu>-?Xo'�3 L~/w'Uc)2m1=W_|0K?g|b~_]~.ϋO;y�/,Ciu>-?Xo'�3 L~/w'Uc)2m1=W_|0K?g|b~_]~.ϋO;y�/,Ciu>-]�yyzN<Ֆ}[j.TT-&Jq22evu =ysd ,- BK308 X9p+y�wsژD&0L"aD&0L"aD&0L"aD&0YXnoUR*ܷ]3$ p*Jbb_Y,db{ trG#C$ocsIihW {sIkj8#NT:˕פgNv=QڝO:P0W*nj9/a0Ww�fe祒ndX\p2;ğ0Ƙ뗚@L޿ߪX35A�L?74{ β橾JߵYך3k&D0cH>a +] &>SQNFC77|Z"BGfy߭$"X]1o'^l˗ȕɾD^8"b3~elB"EP�|xTL~ K:a[[}{b i15‚{I/ ^nsf [yo_kwsfy2&e"R7t$WJ4L5> ^Fl(FqIq��..�J|}~}<t Ox^ǖ^f[|ݣ \\ \>齶^Vor9"`Y%<O< ?^44h xźmV&)<:Έ'q(r5Q ]n~}:~}%gscbXX؟֔MqlDٚ,y{?L75M7{mt1.oHMccC,!̯z!Զ"b!B]Q\Ғnb'f~2[.nT+ʴaPٔs۷n]o5Z^Kы$̝[nJ#]s6")dW7nq\%-<V?ζeդNN JPC<u/:b$2U7v:̲ M5P"a/AΞ8؛o{ЭӸv 1/7ֲDw\u:(a*\;{%@rRKC啠ɭ'89{iPØFAnփ!F:mo6%VV_Dž:!$@b9stP'K<^g e.tX ;.5k7FD7SImnKh Yy!rj^Rfh'%{ǝU,7$R;E@k*9S$_ٓPJ Ag޸a=%-,myi�{@?7-&(6퐰G~c ; wlV&3ɷ� wn).1tȰ|-}b#XlRQ%. ӡ[Ȕ6vCt ;3puыMꝤ[Xմ!h!pb-}M7`jlwIH̓1{;h-\ KGUL5O3%Mn»# tӲi-LT ֹv6rms&ԙϝLj9TL�6 -M�y !.v"񑹮oLw|rGMa2X^\Nɛ-Db`:Ο�c]I5J5dB!}:n~`n1+*5 #6*qjʥ tbűHTH�ݚ YgLE LEwݜ#Ec]Dc,<N]MN[ \NBkMk-pG \Buƀ5<DR:q5TLҺjX6N.젋@'$jJ`Rt7gz5xLoqi{ <0VhZՇ&wWQ6Y{6Hpѐ?|܍b I2z>7a닌'r-vY5L)֭]bhpb�Q09>QI7Y= 3_mskzkݸo+D,MYm]CycnYC-3Œ0{IcZ�7FLôvŐY!+7KdJDb+or7y�S>>.m6s~f,V7xd0w -qE哧k?kf3/k@/ 1WLiqMFHk49%Ln7߮-?dI+XcL :PDq߰zhr[J�3asw[o#u:6e} wck/> ÃDgab3W\7�ZŨF&@H؛wk,_^5YLL%](%UrĮ*M[< )\&F@ b`\57zdz1pݒJdc$,c/8%j3wdHss qlCZ9]#&+YvH[KGn#LHWQ_\ZY"!N7*붘J1DH;'^6R]Fڛ{ _wӌͳ% |#٬2V.Il[,e,uv\s o ø%,~t=�QBJ5iR)rv2bGeZ&va?qIb lata6V.!C5Hmmjʉ '+qm-{g!͚^r{OY9${alv_#٣#TXX|T5F<=v ]vzǾt\n-lqCrX 7xzn7dz|>Q#�#˞5#e`A.2*zIHYQM$%4U*/ ⤺K1QQJUkcnܼ_ugH5el125tr!ac;]c,FBx5P0T�ݒTj�6nAc 壺mh.p*VM- �:$XSϒ>t]^>9;e {OC`.L]jٺs$95p[H'yqdTYˮpI�8b%~#V4xw)ArZcp{P[wkGKv:)c.!3E#6ӎk(vdRxP%)+Ui؋:Sw1Nfs{;g)+UHw+fl<?4썣g0bi_ N`d;rAm~g9mqet\q ifAޑ%Qs5WlO횠C"aP1zei;mݬ̛Fʏ}HpSjG*A .XʲFp,uaix z�uנuz9.s$#|Ԣf76+5W"p#PT) T*L)9 `7 [jGjm˨Dr>򑼆X/jŞii5iV{:WA5p4 0ZOr@̢yVXvL<"ºe"׵$Rygx nÈmӬ-x-~Es## xd]Z_Os]p}шK25sk !4<͍\hqse+5RjFEw yb%L .1~1T�|:xA. kxd&|x̌#AnIcQPi  I:H< |5Wf@&1♻ %;@JaY9u4i励#K+GQ)~1|<>ϕWDu+JC͕ME#s KN?zl{Gqn=_V9ڍǰxYVּTJ#,qc8s2<?Q.�,O13O?o(ᘐ]\Zwwk `/G1ZGG"_IQ tDTlkG(EdP3\#`v(.M`P0J{q.;o',Kde{f) Iϧ|,,1H2Ox}}Esk] {}Ȣ&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD- &0��xӉQq%HݭFBNiB.gqNI_h3SvHSxw4)"$k{\G1Q@AϒD{)h=`!h@+sS[B%3$ib|$`BP,H:(jJ?ADB6-);NcIɷihA<H*I\�rYu`d[�mhƞ@i�7ΪmƜMU4`" h+j]W'fZ^Aa5>5$=0*G}s9&Cgd&�I@Ə08�ħʻkb͞1__=up1ʞc%�4GtpM4I2SM"P�=G䕱'ω桒$w���9� &$T5$7U9le\1tfPun*9mjH Ay ӇE^iͨTIOqL20te %&K7v ulYY,]>pVIg1丝m<Knw:5�&�7·v6tKָT5 5.$�(<z Qn[kd+ےM/"^Ωkشs6jk,8TZ<O$`8tSi.yųb�vPjMm.gqE牫N2I a@ ]2zA}`W`RNjF1 &i'nU3F&<Qư@tU\AmoǵD]+4bh8N4h|553#Hē@Mdq55dj5;hMoъy.ܷ\vYh@][ŭBc%e82N0oy&7/2d&lxǽ%Zyh痐sx =f&ːA{@|k7UTh;9 qm D5]ׁ`$Wp[7ִ1 YWdݹPIbz1 Ebq$N:kRA2l[.Z,hb<hB(o Vw*HD"~3*"?E/&rD Z�~(K0+45>:\*Ղҿ.跟NI6i |TEN9o -ZT+EO=EUi\yi<5x gk{'}{GJ?sgP3efBAx*57HԴ jlej[,2n_6&UMI珟3 -٩Sn;mc#f|9�"�lq׎꺤w=Aظ�I/xokZP*rm}hi[B/X1u5\za9vGnt)CH@źt v ר7ιa79 p khuR*)FXv\54RF֝ +.a~2v9ںb]U?\m+bMcJeUX\ݬ.+7+d{]=,haV̉"\81q�Am) Fh| L,o8vJ9LimgC%l['WĝEjbM88G&Ms qM~amdNwmQ](p;חd[rYH[FZZf& G84i%njK[Ѵ=ڸC\k �7m<c4oԒ2>dGr`ݧ, ,EAUSpڭZTRxIɝcMpP o81p<KC,Zh*uX֖|N *I I3Sw]d坎"z8lNnh?t0NjmatJzZ!5`UJ]K&5{ǚcH-刖ume.`[GS*6"5XHAڜEKZZҫ<IHv,mGrr5c 6F6H,^@^B ~ DaY"3kےc/|F vͽf:" 5%daq2=4 CC^Vr^ܦq[OAѵ+6־}ӛEYSUm۸H(Ҽf0%sɵPɴH[0LIM{ !h[0-MZ]k<^-mLswz! YxZZ $ 7�9^&*n?꺧|honEӟ!$'Ru)mRpz3Tҫ鸗x)+%pT<w>Li�oe]4v44: %FK9<$�D{<?.mԵK=wӔ۹9<Ugj E7z&Jγ+TYv&`- 6VE,@G=&K{G_e_yG tUΖRhXH�=Y4nrf'V=/0`Q΅ke{Fgк}QeZJeթiN16*"zŗ9?yGq|/1 mHx$B\TZŋ-cd>휌'@>hm۶^<}3[SuڻaSvݙ˨}nb@WKϬV@#T*%0$'YY93NHo6)Q<Ϋa4kfZY.]QmOV;Hn =hsB㕲-{_Jz*y'<pW.H!u.Chdʛ,Ob HmI6޼8рզ0]s-5Ej6 ZpE|/{K:}ؚntL6টvk]5!' T D'Kbjr &c"\ӹn" �2Ŷp4pk|[ǓI'cP1qɩy; ExFP�heߩzs.oݻzT-viyy&EB= E1Iي\sٻy՛8 LGW呼F"xrʍ ЊK�:9)JV:ZD".)LbY7"h4bŚM$�Rt<gLRI5$Ēx1cC�`�p�x��rז)RCLlM&?4^v8;`!=^k_`ayuQ,E<ncM4L2y1#;(È/c|=O 'GQ%"x."G1K݂u~r̝(Xǵ3a89)_?9ٸ,]'W.?dr`ee#d7>œ<xlj'w6&כOl"Pgo<K(r!!yUMGu@}m7sXWm#=%q;{(Oa޸r"!OJ^<jvUvU %((f`'8Vy#"Ne&(1vSȶG#y!~%ܮ� ����-V쵶hd m�>2xUS0}̮,+7Oҷ):봘/G(B]&Q/0[~fySk46y\ Ohu^@o�J%{/ ;勣qQ&v65c;4bswߣ|gkql6%>~vዳ}�3^U3SyYZskjIG}n6l/Rۺ+WpRM49$ύ;y!Ζ@k kXmGccAqKX֊ W<MINn490L"aD&0L"aD&0L"aD&c'kN9ַ}K_WLدkls20l\'TIcgK+$LD�l]̻4΅jh҄Qո?FqG'wԐ7Mt5kSΣ�C{"2}ҫZO/V~pya ~ >Zo藫?8v߼t- y_SK՟;ol|XzB_oO</D%6>B,=!/'C}~�"~g!塾? �?jvzm͏HKmIG�ȟ?DYöE%6ho�Oڟݿ^~c"}|7'O/V~pya ~ >Zo藫?8v߼t- y_SK՟;ol|XzB_oO</D%6>B,=!/'C}~�"~g!塾? �?jvzm͏HKmIG�ȟ?DYöE%6ho�Oڟݿ^~c"}|7'O/V~pya ~ >Zo藫?8v߼t- y_SK՟;ol|XzB_oO</D%6>B,=!/'C}~�"~g!塾? �?jvzm͏HKmIG�ȟ?DYöE%6ho�Oڟݿ^~c"}|7/ڟݟ^~c"}|7,Rz_Q>DZ4FҵmTDkٷYjPIƝ{T dgPw�G#~tgbctzKC@uj ¦;~{%0wq^l1"D&0L"aD&0L"aD&0L"as6bzZ|_'c% ^X3b\[ dT)zN_no]gn틟v1m+֐[wW0XxA4244m48lhmA$DuD=i(?75/w ڣdՏA^\Ӧa!L w�íY-6nown^&&vNmgh&ߣpvd]MدpB|Cd^8չǰDٙ#2^Z2Ul((>)1|J96ٽwFՃ[pn|-ua6暂 xm|Wc<4&:U庡3 a`N&Q;Ln% =Q�g8mцۆ+%.henIP!b/%|<>7pGHTB5+l1ąbYAm (;#hΰD807/oR:lÚ�g߻۹iݩΠ_xy,qyt}2gg;6ۑ2,ݸՓP 7qyꋂ΢U"[ ]brR%kcR9a'|3Zgld(QH@ jS)ݗvcݷլK,tm XNGi<7;;,<2&f8wVͳ# IVnh]`r[Q6vړ�RxPY()"}Hcz PtBe]6!)m#Y,N.,�/`+825n6b^mƗ]0QscsMwVMDUMDWI5U3J&JHj%:jD r֚nau$ik5Žk-p$E4*!D$N-A 8<Ah,nگIj _Ȫau %q˃F1Itٌq�D�-߻[nz Fw, GuBHl"|D,.Y67ͯqcTW h XkEYChڣg6g:Аn 4~e)#uO~-Ī,|szñ6MBG2]gf#g-ˋ|+@0hݫdk^=;Ɏn6iZ٣w MǸ yU xIhؤjYJ9bhNdH(JDX3B28m8&9R&[H~Z:lD.sX7.,d^bXT- fqcnN<PS$+RG= u /5T�#8-߶ӋtgmK2B m ^o( 2Vj'n7λ7[|˪킅GǺ6|nJKj@cCdYf/b Bz^Y^+)R1TY.L~Lf#ufC&!p(쭌B7KcZۃcrʵ)՘gVlY{e|El551:[F:M)wRu0*RRUÄuNIF5HR@(S7ucDf=Ü!{Fǟ7b%K|żL0_wE-p nV #_tIooC8񴬖$doyc_sIhF'~ؚ^ wMBestnL BXb ˶1"g@B)%\$=PGoHbd%{#�;VEQtˋRٴOu-%dv#nnBٲ5ŢK i5ݱ:)*QEV=TvmX=]o! "vI!j3M*nhg)*$2px9snSYѻCG-{{ct">c\{ܘ(bnl[e[Iݤ<B F̄meճ<T̒Tj^:]Tw[HbftwtjnQ>t;/;iyr.\Jkt[jS$y{mr-i(#h-nbP#ֻY+}Y~e]2SjǹCU4wnFE Ӹ:/;{S)rW#d[wdy2w6ip,Y oMxײgzsM󉵓1m5bHIP ֲCȰKVtD|T[>`>zr.鲝UQ"/ZM2y &k"Rڛf;8{}iV7!s}WF$;=5Xu[dGڶz\r_}k;)3)fQm�qlN>ۗSlk+ Ih[k-Lؑ$n7T,l: *3O* }nY.Y3sloʺ\sGF}ن5k %Vţav*LbL�-ěY"u;K6DLsJ[sȩwMq*86Y2!JΈRl?3;‰fb\칅$mXW<Kh] y8]ll˻e^ݶ# �PU/kN'd )"QEQY%VUye((w@,ysx2햶0glVsmӝK"2G,r3_ դL'ks/Sa / MO湴5{\(?jrG(FOjad+@<L@IEnd]>$Tׯ:k^x۸Z@ t34EufImfeL$'{E^$6N5a>TRNa F dݶVI5g+ `hKSɨcyɀ u a3rE{7v̹ {ܵ+V1]{{\3p\B#haO}"Cֱ(Nb(`Cï9X9iH G<̭Zi|zpy53 &1v\IYPra,aPqʠZ;c%)1oZK1u6oap:.6FJ |n-r19\DoHq4,t.aiZZZ 5 |T\MC( 0iG7!U >ơ#0b TOu]lՍv0SSYj'ɛqbu{npr^y>fFsS,1FhGAWiF]|#rc$!/ SnT�:`d2Bașbkq_Xa kۑoq<mEZջ2)$qHװllb<"c=ё.4H|Riw紇(쫻},moOjyHE|4(nd>S2S6in 9kX.eyaM(6l_*Wmtlx5'݇WùJn" M4xw>T4F .c&yr_N� ge2Wv;lw3967p{6X$$ t5SV&Ko[`'nR $oi "5P<auTM˔lOcK9btbwu("_ .h.2V=TOTָ~yX2ԫk٧]CPE+ԀH򦢉L! �`(@t5\m7@٨EG:8}PH>0Jsx/[Tjíu%x}Ar(ȉ!LcdH:l({KE,U?|n{pa-WbXcZItWeHFAݖ-nˣy{FI$K9)P':uiEtݤtDEc⚉*E1\C{6nQv֯& 7s+K8\1tRG#_ |gQ޶7qb<In.82+J5-p{.ꪛ9U Aà 㚤2u<S+dąjؤ I� 4\[.n#.8ka.`EE0Zy9lE &�KkեKO2I'd"a�j9<4=|MWj&\(ptSL\,�P�:zfqn\rcZKX׼0ik,k{ҀR8ƁaYmťv -mMHh$F� %D&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a./$D+x nq)@3 VY˕bO(YVjtᇰ=6(D*!yKVG3mP@Hq#�<5ǪTXe1X)ssiV= #t/E j7n;ny39A7orBoӒqj/ R3I�iy׍Y!7K!MsXitF*vI챮soute$jզ6V6H浦L,4sZF T9ys1jV ݈AפD 5bݪFvSS"[(m.K2wA^s<OJq:KX[ v68/pP'|()ȿv^;p%X&I2$e(t*H DP)!@�(�dQG Q 0x?xMsJğPPP@ �_N°ݿR"$ EQM _/ש"atԞ|SU<wPp� *}U;5lc9<KJ" ۾~LbNf.K f$Sp!_^kyÇgSa(~{,EXtۜ37[ڶvÒIg`k J)%7:t .jrٌ~e' 1® <�InK ΍�5&q ̅Qu}ŷz"CscZ*H,6Rٶ]4AiYUGuq=Ì3:2!+ q{cTmuq E;'[ɵ׬5vc喓M%CUK[\ȼnYd\�(Hzb\Ǖܡ2,~MDeYe|rLF&H#;&ѭ<A20Y?>G.=5 &À&q׍W- uC>dY߶&ҔiKkJ�K6.Q;rtQeJ`_}Kc ^$NKrYN|ٌh|ϓ#kN`*(zgk-6Q]ȭmcVMXsrjVVnJ52zo0"O0i#;pr }c.<ib&O{;]1 (|8}vJ\n$&s#5qqIV2l׋BMi(pMa8d3Zִ"*Q" 8\T,i-?.̫}<s8X ��^22ƖqQ�h֊I$r>r-Iͣ]-=4'#u'u6ةj"$n<+=rK`饟]"g ;9XIaf..w{67L1ERf {kZ5:0 G\g:zOx 4=60*{e,6e2AERuS;[ڕA'+\YZ۸�dicN4cI�ѤV)y#c,qW kEx� 0 :ZOlmvthZztPw96Pg^Gx-eh�2dr[]mu{:ɠCCAZ71Z0Yγ\a:M[ �v-7Jz녅Ҵ:zJb w;zRF֫YFA+<G5IGR;E_>WyΠ]iMfukwqLcuK"Kv\G`J6"zx..uyUa5ʴ@./'ZM̯?e:ʮ}VQ׼! ^;p;Ldox@% qj5Ol`nO-c6X%sb%ҹM:Z.|bwtXt.?."sMh,6CeWFxȫ]E�BB5 "ݲ٭;+|HoKXA97&ն69ڴHhB U+_ Rܓw̙òLjMOZi-gv9ȺU4n\]\V1&syxD;{GMQ^[+?4UW;$g5Ŏ>[.6 wD #:|"ccؼug y=pp벭JX.�YC9k.N/gcvՋdԍ`VDo @42#)n]tR/08IGf#ܣjtz89Qev$oNilehڞ۩4uU h (VLù1o}ِlIlph޼#дtی\1Kл_#K4@GlGwq_hRt ?ʧo`n-LҲb:SXQLr"-$D2J"^嚶ZKܷc& Mey1L` lͭ\ 1sw1COv]s$^VMZL\_T5]Z/ߐFuUFٗ镙=hi3`Qap(nJ}y^ 7{VGkh@s{Np2Qm{oMd+vƐ&h_$Gch!>rcx/fƺnKqKzJ٤tRmSϏ,R&vUp -Ϲr3䲲VkĆxco򠢰n`[ij>x Ɗ 2侪GJFvؗ5WwA@WegQX 5iTG4DA-JuW&X[uC-Ѳn`78]++W:혛dY.rڋv\}#m4W 0 ߺoquMMoRHHJ�%6RhTǘ1A8k, Vv-m"cf8vjǰO)nuq<\KyPk//su+=ө YNM NOګܰvRsDqkZA(B>߰&{Ӛ{Zcf%A$c8{3l|[ܮ u}I0 #3aWu6;M W6Y,  !jLfg[t/>򧁺rCbnKr&Tl=,V=S:ăxꋩaY7]}x89H)L\&迆 w-VXC#&[G޼>bNZvx#%ӊAtG \--QLM_l5ʉnsj;k<ۍ56:9Ɲ.J^/ri]Ll .S(Ϊpmڙ5S[m-٦Ѯks"`4BJ�m f:\.㋵IcK N+5:ѩlW8@^v e VҴ"K(uF4 KXHȝ35ge{)$C\Qku3Gcn<vqHF0yOw 8DxEW#aC JM/u˕rHiT2l١(TT_c[Il:-ǃ$ z)¼쬤l_S}=Oln<P dQl69]!w]3y͝ ҍX~vYn[sZ^BVF@HT @q.6ۻqgH]FeD,h+5ZpH"&r8xOow:4mw4dNxRi>[hJyw']V}&$E$OYz^'im5XjĒ|Eo9&k_$YOi{΍$A <�Gv#xGeLw2fֆL0Ie6RrL#b_sBdidai�OΙLm8wr\6o�M|O2Wƿ_v+֙< z'c.{., |;z?Hv3w~�\D42w|rW طotTO ^[м ]ƠhyUlIn.= y,eVps �|T 4Mϟ̷]J`X>fb16cjґ{σ4+dD&0L"aD&0L"aD&0L"aD*C4]Y#zk:ըkce]D7m:ɣ-%jzݜp,pdqdApZ[-:I@?Qc]Z_E^ֺ^_#UN?пߛws=%yUY ~?Ug_Ox9G*~,?rӏ/'<~I^|#?EOY?Nw>ʟo ?ܧ ;WO}SVzq~�ӝ+τwc)=8�B?~o;S_mg1U7?xzJ/��~N?пߛs=%yTY ~?Ug_Ox9G*~,?rӏ/'<~I^|#?EOY?Nw>ʟo ?ܧ ;WO}SVzq~�ӝ+τwc)=8�B?~o;S_mg1U7?xzJ/��~N?пߛs=%yTY ~?Ug_Ox9G*~,?rӏ/'<~I^|#?EOY?Nw>ʟo ?ܧ ;WO}SVzq~�ӝ+τwc)=8�B?~o;S_mg1U7?xzJ/��~N?пߛs=%yTY ~?Ug_Ox9G*~,?rGiww||ڪu톕We ( OE,Js]r 'D5Ǟ-s�v׼�@4>>̳l-B(K֒88T4bD&0L"aD&0L"aD&0L"aD)RF]- >D$�5vb{SS2g)ro:i;[#c7q[&[nn�{shG#I8~jMiuT")W O*2;C*?m9M=ciW7pӁ3?<ncp<yχ Vn1(wXJ;�<TVcQPzuv�|07__c}}m+{nA;t3-׀?Gzu2c(2QQ pSՒ&z|l5bQ2u"Hr>f:Fm+M (C�Z77̳h.+!:I$eZB-vQ%[MEūwnlc{j׶@ڴЀT tj-ڨm9J}[l9>KTJF)_@:!-vKɸ9a*NrV-m mucݧvmnSwc6quýj`yx8�tZU)ؚmWMq#$ъae*V,'d $D:U( BR}Ve蹶{嘮bXEq:d3B _o%'FS͟.Q:f^8wЃۉsl9YV>":`1|+Wn1LKD �=~@Y n`1CmҾYsmym&/}be1fAp;[x"kpvџl]E,oݷg,N1 Ӵ21["lTi)(nvS-3*N VGFAHRp;T/~=mټKe]ŝϾ09 ;e}ZC˦5mͿ�xێ<$kjd3]+V#\O5s b3$ 3!U>C3"^R>!P%\�JcNuNw7lv6 όvs�rGm6F͎k/$O]5k䦇ry\Ģ; ceeZoDGjգ5K$,ޘ mvd),OJ*B2:!Osj7MzIAc?t>-gVҿS1Vn+\ FEp;Xa>1Ͻ.,m7u,71C09n"qv9h~ EI̠4Wj#8etq A?T?i9߾zgmq?~3#?|8YJ+"{Ž/6Y46+-Lqu9<E _,Moyr.&7ӽ<Jss {R)*͙wp-.�іItY0y`#1Rٛ[7Oҍ'xYq9l먅mV0ݲtc'Sb]7;g9Ikp㑞.XHi:]_TENoQ]Ɍ%ruc"*$z0UrDuN1|z;n2;6ui"sY{n}!_㠗=3l=4mY\ۍ n-pCKl6ImMn}0}bɸ2X$yj$t. sn}�uŃFo ⼚�;-k63y͵'kgu_i!m_Z[-"+e"rB.al|ylO<o6uXZGkd "")1eX;lu Fҭߛ秿ݶ3w} f_}i:5մ@ ôptK]۵^y<()_KF-kV&hhhG"&SK@=\~Cv4v2 .%7a3w++&&;c]݁׶ms3ɊF#7;ե`:O3m,'xF�{H [3MV\&uGzPn-o ўbuʝbN|c6PɢUTUQAt{ף1˹:7&br63f&_EeRM|q6I}@nظ-[enS==4pkg#CZ1N.:oc>wӚ o4~LȪ —8'a�=U2.l7Pw~'ҿ \n>{ӧ΋"n#ۢK@H>$ zF>)_O>:9xZCձ_ʌk S}clUhwOx:a' ɱJAƻURt"(!j-տv7_q8\vQOLXNK;yZeskvbیMoa]^ok>'=Ʀ)瑔c@qԽInj~}'ب&NwaF' '&UM?O?gk @)N cvd7etzuyibfl{{Po7'Ae匞+[wv79ՑqC=ˋm%pSAbvvW4i I fOT|C*F5MD?5l\颢r%A5 a~v[bl C.."ddV#\MI}Vz~&@#H襉,{H/k%h!!+=*ֶtWJʼF(MAs5r8q#ViCL,.:3P쥶C0s|07w.R:1,Lwm_ ,ɲu :P ikey5Ї=õUw"k"es. DEV>]vWFNeH2*aOr8 Fj[n"dbQ!P<=Ue#{\{ey[{7?o,SNC]@F0]V AkYGTo)m7 g�<.Iq]H1é@/Fuk=kz9}>سLU�xfd k^bdwSwe-2;{ wݶ]kD7a&LLf:1꫉dvH5frVl/ZU`E)"Sg+3=AR>5cw~2C:_p1\Z{KkugܵXk4kAhx-4 QiI;7n̑K<N0*SS\tsN N;rۋ{[n#g#{cqud턤 y% kFԬvKlEF mF`keѬ*DQ lV*n^`UDۨ"TEڈyG(MNͷo.*鮛ue#'7pvۦ[S4.`7;rX0Kv̂�tFQ-"%_3+vl%U[|?nd" !$j_0SP?qL%9llvV]e$7:9ۖl[vvq8"P~8m䶸2ua0n sc}LeYkBSM3s )JOrdEFE0*J?|BwHPs@qr[eg6Me]=kEk B]QUkq&3&X2j{I#5.hs*X+|22'H6WI)G#V)@!J#`wTzI9n6K,G {dxM�|2]'Kx`rza\(Z9F8Ӑp8TzJB=WAU UA *3&a1J? "!6L/%1a%;tc\֞i$p%x[FK<.hH(O*MC$n1zPQ!B= =:�N0k^(Z{.A 懍&ȑט^\+*B,"c5R9 CNQzZ]X6Gu^\* <8aVFy*QF>c MߪZ]4BA&-n �cw,0,s6}û)ډb ײ)hΨ#c^)^癭)0qʞ-{uZ\$U$R5!#[,:'qȾ!,8vyD,N,#ca9s}ms(':n,&>>m/(\m0 .sn}b>H}8xN4 "v7Vi .D嚵^򞮄K[9G*€yx,D"\8HŧRw-�2vp:Ӭ]'9p|Oi G{pK q޺ؒ5Vi5WIL�-bi9X)L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a./$EUZvMϱ_f+SLhB̹OR*ĉ " )uLx:^]`hԇW6]]CiM h hNP%J*v)3o(9T>ͺ$2I$=!d fE ]!5% lPdgi65s?SPF1<+r7f̩;DIwKLDGJcDh܇ {gt.'&� v�u�D@D:Q_c4� 4߼A8'�OU{sk):"(M ZYJ3n#h#Sx4hS$SUJ:\R5.<ޘaF]6mx54 >+5mhtUϧAQ>"Tsv8: kaGR" T]XRnsV`"Dp("̂$.=:+y_zr n��TJNV[3-L۸h饭i|i\}RHZQS }svfHOp?>؝UiZYB;^SY6嵂Z +-z])=xf'w:%罋p%%AW Wrh&vnu&<_u=B؏QDp$p.$QVrEѲ -/-:CRy6 wcmQ=;e4ߨZ=^k1kZ☮PHlw�_Qv9M"[wػJή!0 X gvZb xI5?ťp{eCqsZ|<5((Oҫ@[9[,tghERYH-'`zc�pOgT8, /s{j ^ʂQǁ*2ji|p3#ls{9ZZ&PvK@[+IK[JlIkl_HՒ '3so/ ++2,,s.OͶFAi#D}@@H Q'2/>8.d\I@j*N%5@fKm \5&[I~nh&-R̋o*iT;C3g5ۺ8X qhjIßh!v5gѧM*Ww�w/̰ԯ4[QkQeu]F-h0@Z&g A(MM&V =WG`#5Xo5 $ 4|%౻;'#@._WAZX ¯WYPZ-+󄠂,l\Fr[b WrsL!L,nnatdORK|'C+>�hSl핕̀kDd8<жJFTi%U=һ&Ijč(kQMnu{@ygMP)"Ogoj B �8P<Fޱ6VPftQDh|P  SorT\QT֐ %!t٠}F^afhHU]r;4qeEڳL`6 * aiQ%،Am:Fa( \-fkY-0P,PI=NEWc‰fP`U۸bl3SҍfqiZ ;Ks,MCN^$]ŭ[MUC ?2766>׾gث?WAɠZg\Yvݪ =q.?ۄiseZ&cq]4擓A�p8svṉ?!C;wQ41SZWPs]JvI4j[ #g|0i Gؙ::%m0jkMQ˒NL))!&5J.51QSjxͺܤ13sc(֊#XtWGRIk䅒*ìX6Ejqyq䊻f[e&m+*QO70AB+I,!U͛dO s.<zLk{myk9D$k Ipv�KўzW9tiy]{]]~@^Tu< i'Z܎oo]+6Φ>^CחoQKQ!.nN; m@;;S{`hc\]sy% !)�0Cc}-k(nm1Dջy3+=vv S%W=q3b;p]#6]@5ƲuwhlV\$kfl 0۲28m"|h#cwoN;=q~GAquM~OAȰmKvVc2)NAriReTJ }khd�XAVOe+.,Kۻ6FkgI/q4;1ZCBx;ޟ}MëO>SCjJo{5unA0F:)*@`l}̴F#k!I#\A{t0Ӳp3a0If&(Z(R!ԃa|󉛱nCr&ok5�1Kxlfl詻Dz􈗑ӓ;$2K8NVg {11h|yW'qI pF#[dH-kPƅuOa!MXnuNnKv[ܢb2I,fYʘy4,>+uYcA"3<`X9<Ml-1?鹻 ^(̿H|='(g%Wc[Y1qT)*ug6+L`ZϕT *#=Ff)-!v4]q)!oNe/pEZ<.iqsvoWhnѓs5ƫ]nG[Ӵ첶 �L[TvFGEgӭn+- k$g&16-)ŤyMۘۏyh;DԺzsz_,`Ko7-$kg~߬%I2U],5JzɵY P&p&=h6PA{e'Tos /�kW(}-6;y)ql5{o56ݸrk7v4JBVeжVyM<ZΞYWL?01䨙Ԏg!}w.'9ibTis=^CEv~!8t\9K,N&�kA.u�W-4ߋv5B%M7ɻ׼BԯHw?z쎚)kE\is_7nۡ sI.?Gɢm-'/㒧ph5l->}�SI^R ޛ?k\߷}\3xSx<V⻈\Y{px!i# $06^ "kx Tձ�ޠ>@s}[cop'7v34bhp=JN6չ:$حr3-AF{O@Mll'H U{͗2}Y<T1ȺF�+6�F'prS܉7 hnƵ:@8ku,}tC'kiLXL ⷏7|my8N+k _]L^^w-s8-�֙KZ< dEp|fjhu"q`R �_{$d�xz7'3y\\zc~ }g[c qK@'<I%\iraD&0L"aD&0L"aD&>/EL"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0=WY><!d/_HW?>oslݥ1Ls9#]A kfpWwHQBle7hJDV*E VSn0*<,zh`1Hn;K[vl\lcx˻H$8G46fېZEѓåZXng%,vR9t3:X[jBw<TQ;ɬJP\,5e wUA"vRn-A(NR9 nb߼) Y ;2V]Y^[B[:)6<�/i0v"&έyv"'Vs@QsiSo*Nan,PJB:nu+Ή1pxctc7 ˈ,外1x:%#Ӫ8 !W*{|l[]͝:O/P=hݏca[h.+l?PUNƳ3uApQ @;}ݷ}Z ]M[op׵y;J~2$`L,F-6޶jܼ"sKgn-͔+*byWYv \ ዪu&Kx$p�&EdUJ׊gI׸[Y78),/{fI0@)dHc=LUw;xv5hS"y yo'KdښQ {MzR:gUϤr-((;LDdt$k>߷7v̨Xyasl=HK&nO .We3;\m+7gOqd7Ixѩsv:7�c{  ֖Eآȱ:c,Lpڤ3 $Q5EK?{O]v>Wduff]7ύIMm|͑|r292{\{=i6]:S%WR2d=\Y5=-KF{mh9F^n�dw̤hVh P~ y׸D->]Mqac3R'Mc{o0I޵ y-uaM{kv<NHxc/i$P Q['6J)ck!zL팭&!+( HR9z7s;G4@X7kc=77;[^8a{!1Z^;a>O%1{[4�ڋ|cBB*n ha4(oan.3!b^ׯ$m .kRQg06QL~OUn�SwoLHLV\JӮ8|`幸}s$s5;]ȟD1m-W31 *r4 =x S&$]ۼQlk븉VG3k85-v$P)%}Iuphdo'qKk1d0f;g} esA,Q,6O7wj"9r�1װ彙#b458(ΘT7]85n(K*%re-)5D)1gCɕCow�x:-Ր_- |uIandlk\G9j#ziƛw$Ozց%qgm8=5֖ lkIw.dNjt`\GeDV\ i\z?zag6jTSF'۾\V귆7[dy6MkT`LV왖pA~.q ˼L8IG]:h4i6&2};wNPQMF9`(Q ?EdS꟔0 nmv'`k0͞R^>{(p-mRCŸr~"p;v74]7p=գLJF1Z2tFx hL3*4ʢ1N"^Á\9)RPvpᰟ.]q&=cKCq֍d.a ch jRmuF8nI-ナI$h�&Z*x^)!۾Y yAɊfg.DbuΘa"`B,Z2B[%Imnl{f8CK_I/vcdT9<e)hY+|D}CMnSG5b!a$䌶ג"ͤNҸE4TD $]*tva]:o5olgqp7PXisMPߨt[oUǒ|3X\ 542Z+S*6Lnat#d9GAG=[ t|fnb"oxRK#c&Yc)@1\v1`$ #Ωgt5>I` #^1*9,Kap:7WfX0*V&˒'X+%ܮUWHt׵d|1 %#i]͖vFêB/] ]ɜ5pG6Ԗ5/9y'E톍G=kR-P6x UеH@ȹT뙻F=Y mD=(uKtʿ;K~mLoU/-<ylݏ$ lNc0.=6oy\&ZŲ஢cCu2A!j\9Qw7~%:Ga@Q~ HB7v%() X .=8 7YCnY]gqdh+<mp;[M`sk|\prAՔdoF#Ew$҉Z mCZz#XGV=QIB h=$[e̚'R@ߛOpdk}g2y~oshZ< qiS%|8"s'%c3I%G0mdm$gi009(?{$&YϘ8Q \!n1 > rbq{@Fm\myKIxiZT=s{ Edq=Z9|^# ЃШ*3R0"ZG<4H:s&ٰY7h>ki)%X*@gD!I^Lf{R ՘~ݷYzKcddG\46rƾA=cCn#&:!F'wa&0H />~`I2>Ę6rlSe%%UI.c*@1|լũkLW{7s!9s'85ơ_$>!n'kH-190 M�c#qk[_)GYTE&4m61R@�@u+vK�U vgǰ.7Q8"oAmt�oysn {JnN;gyQ8wo>zbUV#[tM$RϯQS:^n:P`l\7FƙJ8H5h)p@ID� '>m]>nnm޶_AmߵZ]cŴwF1ô-vRvc ^dI4Ap/k.!�:7Q>~-kE+SS�!^eE⦞F<<,4[!;d,V 廦tPEQLH=<zv#lw9F#>XWC)7N:H#9r>Kn9 ʲ,=W +ML=x.ls�H>(ݢ^`Yc%>so#{庣mbqJŎ`{\s6)cL@u֎f65 ^>n7pvvt%&^>j wڸS)Jִ㪔O jiկE}^|||z3AEyz?�E}G*jQ%�yLN骟Q2j?`"wf=[K]$MM{kV^LQ,p!ȃFMÆh?)PpH`��*rz:{Pu{m-|ѴTE 4ԡ5I1E#qM $}GF% e ֵ̱MPtM_NP$SL3s ޽WwNiVՓF-,5<e,L!E=5n'2 L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a~ʾ3n/?˾G"7*~ʾ3n/."S{*ͺf`|�OOEvt\nkȽ|pQ3v) Cv=|Op#,sq_ʟEn*3QSU :b;97@ �"a:h�c�}Hpq{SO/_2ps#_ }?)\f `~|twjz>**ud[hs6H$A:Y( 'w ųёHMbBKGe+JКhhiCe|.\% 5'Q^"%oq`1`U^48!vc KVS* 㘥eLu,!i|Ztn$8.q8�82؋r;C˪1i$ 4 4 k[4s)Ne_^~_||) Q=oUV5CwcMW"�=z�%0ps"E</w_M  jKyz;Sh]74Txdv-٥Hձ\ JQ(|ct:$ӕIa&wtW!Ā(�.t@9CЙM>h]YR]?#5󨒈*E9L7L�>߽ZE.᠐K ?d/Ls1%{ܔɾӐr_p:u ̈́YۓCu=~[ F! b R�(}?. ԗ3Q.kSZ׏F#}&e~9چ wa 1 " b!! ͓DfMHDRZf-G�$HyI'RI$jI$=1\'>N� � ���(�F.aahXG0<pN$.i46!^y.TECwc`�Hzt}>)C$p@)A@G潛l|"?4e�㪺ujI7{V㽓iNS56ݣ%]l[P Nm܍Se 1; 8rE*FK_/U|09E&8s=աq�+\v5![;"ļ{N~Ӈ!AĞeP,bHcvw7 &L@!ޯzKQqwyJW<Z3|IZ8)+Ϗª5o5+|ݴvr큳Kib k=I+60~ J.RKС-e{O|}[fˎ+?30kB8NcAO [/ˮ<3Ƚ1|UKʪȑc+k+(^�vۺ~h@�egI헾u}|`>}r. X]~U-srNl=%iBNTjʁ +"uǫ~rϘy-7•lA hޟG8%K\.Z ._bp "im|Ym ghøfv1B--<fa?$y9fE2 ed&2.:/\2ucWƴ ĊZغQN@kN5#j=Ph ;3r58ux'q}bq;bW35E[۷"]}MsvV;pgkw3Zщ mpрQºM< woطJF0ExTm{Rio;*Kl[ʍ%QUE637ve$Q-{SrNDD[n?k7/um=ВD0Sd6 [D1c~^)B|HK@П^rC]]MG&[]i64xT؏k+nOdV�)p ݿm+Yo.&&I\K| ӥOg CVbuh#,6ڎ$n�rNM�PFД(hEӵ['j\Wڹ)!P|'rmٌ-s)+%t!{Da-mb\i>ix61#�/@w)Q7iK^u„+n̘_vY{L6X]_ȱ:´ҧpC(!##ϋ;kYR3F1 kk#PQ@�T[-aiuc.v;O.<\KcjH{@R+/:A!usS{MNC\C^ r{pO5Ʊ!X+(>QQ|8ۻuY/xX{v%CGE9G},k8ik}-$P۹mzWbL[tN6r88\' Ѹ]_YT2 t�1Lwcͳ3鐶]O 5֔qX;e#2AW8Zy4X=}Hv~f$||U5\J.wWN,i9ENu]HNtʇYqT7];2a<<G05r ``�PQkۗ2,㾚 &5*^gQuO1ąӞړAO_ުS{byɽۢ}%QLu[jkZܔB(Wl垮SM?S9[q@`hgBNe1�Ocb.!8Y>Ҟ8+ץ+V+^- f #XY騶i(L)5Bȩ_Yiec`IЍ:l<v4|e-p8W66X-]{w#5U1P@o\ zW2i}aM;T ME^>K,Ihpt Ǒ:ޝ]]ɻq!(K`gۘXq]:縊�@k@k[J_$ױлFpkX %qw6-NM\|-ZƄm`P,ui[}-(N(۳6ٺM�&cn{ <Cpα.sOr\8y"G˄l1WI<W*YMc#X*{N�V6~/g"y6Xmd7qҺi-d `�{j 0֘Vå#՚]r߲޶N[p#QD|};iku> XWR*E,OPP &`7 0Z!}M,e#J[!c"rkZ?q ?Qmz}wj}UF/tƺ##2f�?fq%;1vy\m6|U;VH#5=܇ 5q-q̷Go&<\E4y1x'\\MO ئ0L"aD&0L"aD&kCONf{&fͫ!2o[?g8 -մQjvT*cml,V򵺛!$ vZcU7L[:8lᦔo֠9Sz9smz~\ַ-}9<uN:HOO؝D *LS)�#&ձ9_n j^S<Um^sc#JѵZ|%ƽf@0r+aLjN>M]mPLpS]*nMYV9w"Id2B`)=  Mw[kIMqd`=ᤊV&6֒4sj%nFr:*8UNIWk7ֳbHlY&M&SuLʠ�Cģ ݺxasP*+H#!T[kY<z,D ^�>0|^"h)< b9D"1NQ?�>ݟd+I#zRî^d75oi5E[Nɪ`v Κ÷�Fjh<o`٣;5 nP 6]ȴ�ǟGr=mz�||CtpL"W>-/Stvwae;5)iH@UUd_Aa7a;{zu]M9&ۘeֺj)JxU{7mbN�\4h(Ƶ䪿n[z-@f2~1וv3J- ƺ ɊMD;zQh~J <{|r^LQ4(=U7-ž錍혰Z|.wWrWah&U˃h9oLIGSxt;nug*2 VV5œxY3> .Rݬtp$Exzz5z;;lYz_i{1ּFK8BRV63)L%")өF[~6~2 |K,xZE494o57븞+0:5sq]RoUXuz}roNA}=gkWSfU/jMK%36v$|s8+Tk$H($/sN'eY+ZP8q $wgjd[ K9"CICɥVU}%}@q2YmefU0~˜%Q,%d%dV^� 9_΀(MKbsR98� x)n#sapkn5xTe!*ND-td=g66ZW9 S`Kz i0kZڌ<lQ!J Ӟ9I&ٯ -y%u@@8׏[&Ԗ kFG-̀7iBdAÍE}h,A;cnjfkj.@S_Wqo어÷b$B%GQ hA<a|рC+iOrߒ8եqq% @UOb;HOu!tU;[R6]֯']HE0رW~ C$ vHV{<-{\ ^=r}u L`3sc!$>4x=elߴΟ1�M7m~{RtqlG!k߶-- 'ut}zxu\m+m/.-и_ⴵceښo[l9P9Bƣ`mO*$UeT*`�czfj,nb q #i<cEh�+r|�>XX \PUk%%n$s7x^k 3M֓U9+mvjUjn PfT)<�&RQgtݶb{L/sx<%Tۯy(h\S6?/�I*Sx0܉52tGi@ dQ7�J?Q+^խS_UY})ͬQ^+kS }esT[|dZxb$e|a~t&N:F1괲f5dF|5fkTzc k)j{xff5o뭕14x>~ 5æ"⊇*cM}se#ƌTn+@ZTqVrbwPxyׅj@(gשuuj.XE?X&ޡ Wr&زjQC RG=![[ /�I�'{ 1�̓ Qm&Y66'OcqjGȺ S9S4'^3#anaeT]3�#='B˽3 1hyTսδF٤i�}BO>m<;JzIy@8HȽoD:hDx|sz}^9cGҽ}ӬÝ2_NYᔶjأ-2dW_I},Pǥv[5#*nʯUDȬ@U&փD,ȄJ:aۋX٠trWrDr;=Ko `z+gh;p-G9T*ۇ[omRۺw׷x8fIf뢱u'#MG)%HSrb䰿9?G^60^@ۛgVr#0x*}Y9)9m)5Y( yGY^nS|.M��b6۶{p|n가p x-&O͔k,Zh �-<qxX{䯨'-:cotr ,W6iI=>eN,vr')�6'N0C F[CkXZx~m}\ld%:c|.w׋SU\S7n=jW* 27jGv9:u z: 9r%D ؆) 2Lpo3-{5.#C5 _^;6Q6$N:>!S׆:�i?%c�#ɟn" e~ mO\(Ύ>Cvm'.[[o�OzOG�tqh)>Yr߂}gbg?*y}ǍB4U{`RkF4i4u3{M^0)V81(|ravL/c�{[G844<8Cte0G.%S}P#}<7ήnl]FQÄIʡ0^vK\kSP訧cN _N:}8G,Shqo{偶E#ei'XuACO\(ΎX!k߶˖?Q?)?|/~?O\Y�Ο1�M7m~{R|ų8ۻp@ѫ}lMXkCAU(szzJ:U 1L�!D &,vuMd&s|S<>*Ɇ+14(O|P+9g7^3OhgmSKlH[L1@njuq& `t`ⷍ 'HdkGvZ5qߛicFͪ)JP7ը"nߝ[_6˸`(,klu|l2Ujlg.O؝DάK*LS)�#ױYc1ݯ&Bj\%rc'zѵ4Kxֹ/*^i8ЫH=60Hw[q&! {ĥ)DD�.+>mHqx5G̀OJg+Ob{w6)\h :s䥿zOG�ts'7m~{RtqlG!k߶--'=s䣌Sd:8 _^,om1lC=F)ɺ+޲WZ0uu]-Hy,[w^,dJR@Ja!Qu#gcu嵶9=F8Zx�5Vܷ[%#͗H  SW:xYMD&0L"aD&0L"amGZd{f>WWnzG Ydd(PJp{ح7wan{kmnrMir4/i$hr7]EX%գX-!̚#ŏiV)6r hg/j͝~:g/'9;W䡊AGG##<NciG-n-&mŬᦡqk#GhZ)#VNk\˨&9u˺N8@@;/wUr?L% y$σ rZ_TKjGXvV}l1;YqAM'i[(DjWQ˚׹ =(H#!P25ybl#DA(s' 6)wm{]G#k 6ڷFˈM@ao/3mV⤓I-ndX$zoK,֋X٩վ@ʡ-vI*hdZVFAĞ6tUQS!8 ]?vͫ=Vq,F6mա֬0i|OlC+{:0lk[ݿ:){ep{x_WC$en46z/:Fw V qlI@J7Q2FQDY2@Q1zQO1y,&ǒJ+%VkvSs[cu_G ktm$Ppx8%WWOwN$ͮW⭀&1ظƭepRVDN==9 _vѿ2focmS[[Eڵ%uk֌ކ;|Yc#,tlG:"<7M<#(@}vj6dhx(~Yw& �@` v-wlF鮎LmW. Nhpp{^VC2gۘD$VG4 Blu/%+pn`Kɕ$1<oeZ&\©�8 �s:en0(ݷw m-ۚ.Z~&Fh$ƀH(Pr_8X`d=aO%5phqP5(23 #`IHJ8jHY+&Y<Pv)U *8ãt+f2Wʲ7][!1GKɡ FimɍH6vown;{Imm!tFJ V<DS%!h/<lfg%ex%r$|K\~gbWN IygMip[tWIM_s `~#U$g_md36X[tDRvvMSTXYE"d l(V WN[2FHY,`nEW+z]I.g\qoc1k8K]YwN2UJc/DžǸ v3"sZP[{ca )s_񚫮d]Bͺ-(k9~A<MftE2HJs 7hCOlNf//vG%6 )`-/" # s++_<9@ڽ @޵gw0dmmZw1<`@G4K9Ly/:!}T~>� X)r"W�z TWP�O铺U}}w#|cyh,5-G2HwQu ookBH]F֞8i4q]$5Jم&7s)5 窦&wQ6w+ (�~(/ҝ07/d-dvϖW5RDcƮ&-�8h7޾n]ct͊ `&Mo!Q qg|K$o`P\u{TlfIzQ cx%�OW2[S4s<c]Nl B(8QhWޱ>Zc`c@ 8 9A-= .C p5ևо`,)ڛj0AV-3>2I,T zzHl/7nlj. 5 m.c64Gvq'=2,8% H9/pR+Lz�%L<F"e!�j*`��Xkph4-�{T'HkhѷSj �p�&q" lyH(> -!�~cC+mͧmSqfF{Y?+[f?H7 S3NlrG(;do^\<uRZ ]#UL))PӨ�emctu[[9A)P * p%H~t[Pf)ZMZTW }e4|ѫp{ZFU9-%�+ώApPz Fw trI-&ciݓ4mo=!:Oac: ;[+* { tn=ӂJ2Drw7)dV .A#<_r 4Q2F(h�1F3m�w0E<n-<͙rK]Վi#H(X4w;Ƿc&[65%u@aT[$#/N*7x;g(JbRY((NJ J"#؏�Z4(s=Ѻ;TsC-r0ZK^PEZKM Ii$/kr_[c+ψ2h@#@#|h\WB ;b"Jp:t1~tùt$Y5խAmJP^:קAK4҇"2ך? \ʜ1cc01(L&9"#|�wW8\2Iq.q$TI$֤QctG5PPMAAAýz3q1D ===z:G đ :O_kƐ7D.@c>��W{�?QS_*D&��WK^~8>ޜ/z=_/ߝ.v7�<2âr6Yx ;tT[ w _6Ig)Rt0aytlں~g4٠FXki@^Hh$mv� =t4.72FdAK\;NfaXtcX /h+ e 7b}ݤ� Sjkpf31dV o4e@11vh66#o 8ie9P>C1§N ѥU긒a1-yt_zsK^$Y:]o5z-@@zOPg�n PCr v6_+9RvQE cs9"c4PcQϹatWO>ϝ.s"\jI&ҤēĞ%~7݌hc1(��%?n^ Nyk/Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z?_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�Oq}x/8/z=_'Ηwz;�WşIL"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aEGҞ�^([)Џ �T3sa"?F 3gN5C&�*X�w#[#e6+`/`߿M7[o`ew?\=+k^�Y 5n�3-�qE1By'\P::ɨ:jCr(&!r!<@C?-!pёOH^)l*|<ŧوoB99A;D)T&HAa!s/SzjkWIt4}<.h9Cz?<me\h\O;\]fQjL"a�Jqp�o�TEt�J*z<��7�FM8?'4s�Z?rtn_N}%Ke4soi>_>~7s[H*,m?ݏUF.�j40o1ߕu|7E1xUZ**bAo+M؃v9]{pN3i|>,>K/ܾ} ݥdi]>Tjo6i#6)-~ 4mNSZȂ`o,]:U1:~(e=2o-Փ7PH>UI3~g+彟Q<4Ix.9ɋ6<&c$P`f,)g" . =Ĭ((*~#QXaf[ {Z2\h%|cKh*Ok+7ܼۛۀYJXNZMtUư5kz{"DR:D(�w(QL9{mv6Do^u q\o[GéY# hƀU[c#h/٫e̺I]՚E s}{HP1٩wv/%i,H> QWթ]WC�ȘJq'v3O Kg`+V}BvE[qS'~7^mSMzOZ.% 8صv^jMtڐl*2c99wj wR1gonZ@\`a'O2Z{Kߢ7zBorEp}OԻ|?�(�ᏔM =~Y_謌QUmmLk<;z6] Z(VEŶQ(AQCJP0Dnn&}ˋ$ysy8ԓO5[dQ(lm��9��\n'U+)ge".zڟspWes_Z.m)LY^+71!d/?Oc =~Anf[GtH�;W۸+c$֐:GZDI-$yԕѾсs-V h w!$'*sc(S Nutchɘ-+>s�OXYn휌Nh͵ɩi$Vkƍ-;y+{̳3ۏFQwBXcUEUH&ܳ=Xz^L 郱MR/D]uPK>S]8}B**9T ͧQl<Wx�i\i5KhC<֡W1Sļd,?5 d@  33ٰK\eW208PP+kK^+ VIӔVz^;k,7-jWUIRr_l]@E#è ,KCխluGɪEn\.{VRƢڕCJ_<WmՑ[BOE<ٗ`oo"1&AYj/\ eNT֊<^*)pd#eiPP@<&;1~@N�4I#�k-[S8vJ-rFpJ&{+FU~2ΖYc#6Wֽ=j8�X"!Pƀ}qN5ך 6_�usyea}fJy Ry[PwvFr\k2>{@Y%5J=;>Sjwt,`P;1&@'V=*=;e9tZn`gp*{EyK*@HicnplHbs7Q2FyZ8�vj{NS xI׵G/T[9+d9{/djw7`[OY�cgrKnII=xQ{aLl^N0ln16( VL*e;G9.X.ѤֆҤi<O.+!/}{r*^ K7�6(}f{/B11p^?|o#ݟ>}^߫K{]<-yfX5:|%}/息߃[g|o_HMWRPΐ4Nu݋YM"N&"2)&+*$a2F)@|s%7.b9;&q5ꬫ<.+/}eqKJUJ;_S|t+y�Luw*};]nl@h*̼wʺ9 CG^pэLW2 Q�d==۸wrCmvK )'NkͯմRN纮sjO%Ի} kW�~V�(}f{9߁?R聯_�D޾3ܧ x}JCqui67WR8ɰ*e&w,!Z%0*!Р=Dc\K7r/2:kRA$�xIiieiaqgcE�JkCqk [߁΄O:v�URh,}w�gы/ܿ]~͟J])TV,z6zeJ?=ԄrO)3}zŽ8R8T(C@� 3&㿘1�(�pKxeHRKjIJ?/$ޡU2ʛŪ6NC Lxdd쏘I.~PD:A ޻%,oeG9MѠG7VCتm5/R?U]IZzKե֑n={?/֊{e$5Kة@Du a] d6{A z_nL1[~K_}ڿ�>Q7&+Ep}W[q֘8x-Uv'iius/9gKJ34lR{D|sEedy<]N�#U1Xآ&7S5 10L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aJ{x� ontB?2GRδ}R}?7͟8YT?dKocԍlڳпՃ~�%6m+Ձ��sѮX=yO;d?ڻ._�?M̷�y�wg Yr{~+ Q}i:"c<I+Ms8dbz@@;+<{ &G4 $``6#U kPHYTX4mOUGP"Ht  Ev𭅾ifb6Xm>Ĵ3 nbiuZEI?`G>ܨxˋR(ȵnyR&A" w c F/0@P}3ڛ5v%XN0exߌ{cٛ~ǜri'}_HeEZs*Ÿ�So#'(>ĪO�� ߢy5��ui�]u�չ;W?/՗<tkͿ,[Υ~\+ Eeo!klz�A�v?ˑW�� Ywk}ZSm1LV.5隭%QBR"b9`(“&n̶Km;.!%Fj +l1 yx-Si y5'HEMUq 4kk# bJ fbT0^lNuoH /o daː3m=GQ$9TP(xxJ.R|XҜQ+Q,lv!BxK'EVkv@a�!t0g<4 &Z̤4 ;괃뮭acaGw,aM H+_S0+ -^QM~-5wf6#,U$ $Z!�0J+kd~z�]WI >ܒ7^ºHbii_/cM7,#l'+deɪ;YE/A�Gb�:2R=Q!�*3{~^f f<45Ê3H._~3O +gnԬV=@tm]M X'UT;7�g�5˨1o#W;eD.k>?ړ_гz_a ?ΑrR�]/=xȉoOW\/Q3wK]'�V?[U�QoVIeUרl;h C߱}m.@Ignveb?y&Otίgnӑ}o,zW8usދV<[BGzZY9(*1)҆%bjXP(&1y:"`?®}mk&ONPſHXR:1WO$!;}Y;j!Xyc'IPo n`3-7wyHL#=]PZ* ].#LVpx^:�4}Wg�GOQ\mD[sf(wcĴKyf<Ec6Phsȑ5T}]uĴq z$әRdZIyE*E{a Y/chH�h jAwa7)7 *r[IE1r@Q٪GWLb(Czg19l4 |D EGTG>a>iX�&�YhG}߬o!>vg�-~Aʪލ�?ڻ-3F&r]�g{��\?^?]hW]h�k>�;Я% Y�Ed[/]�)LT`l#2EҚZ�s�N�T_Z<]�IJYb�nw/Wd'gWJU�UcՔUu�e(�޿M]�?Z�=�ړ?3?Et;9taD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0J=�^P�7:STgZ>c)>VD~_fk,M�2U%7�rFFmYɄV_˿fn?j�BzWh ?�[�R]/�kf[ى�ScOLIh,,+6M]O.|֖AQwm}vV&*zK$nn훂 F)Wh᫄ȪG))^b#uZ[{w0>iG`W;T?KǵS|I{^̬:k]3˒DP'ܚђE/imb~ػyXwfYDra<ͽڗ%qc6z]NTq݇}i[f^"rțmjM9!6KeR\DvtHjS�=gM]{&&F?'?a&;,-d`O)@xLJxբU?{�:+FOP}U֟��qE4k9�9z�r�w3(g_W.yIXJPVߟՒCTdi":3�9wV �Z'"ԪƗ#vҭD+z󳢪Q.p( $3!tKqw{U4p*Ŝ�<ZI� AI.o(wф"rp$�G69]2V0[._1EnX$!Sß}pu䁼O4 ḳ9:'x8r�ЁZӂ G�sҺ8?\.[+9L(: Y5 FO6Q,I` lD ;|`vR^]{`8 2<.\ۈ5_^ѥ2�mwP`e_/t߅dSMDח8!)I39?AE!G9穛uL[;oy=]5^{'0[v W \<wNӸЊCJxUf+-\=Skc�f:ٟargQ䷁/5kԋ:\y]Xr.02q-I2�b}'elRjII<WzE "gwMh 9A 7KL.F�YY ��PNPzDG|�=Gl:OO ;dSak_s2xK~WWyIGKSȼta;oWc<r�']Å s&0޵`4]K&6́9[IUJJhY/DHKwDQOf7uF6*6\‘QeVR%঩z& 7GMWs__Yڃk-"i< >0[jXlnf68wr9� #)kIӍZ.1j́*ށ#:6~e$.3$FRo#ngnfM<C |x@=zԯ V6dcg#V{^4*CLϚ@γql5wO3$g<,RDc WQ6۔L!d];! "t xq:KqxP!:Gҍc(҄c^uM1uu;ZSkz1* PՈ L$k=]q0_^O깚G=$SS-`hl5r h[KWP7VjV3M^e#)- o,Lɹh峄]RMdNESuNk0GAEA41\'ht/y| In{}go:QGY5ۗLz3('Zq{DMf&FMP_i}, ״�|g>[9*st9]y|$׺$6pi<O0@��bKkt$YWjo zERjۻ'P@LQ9ؑpӔzXYu{veaAOQB,Sy4mm+I\( U<5[0p_,n2ptw Fo vE#T2(ޔ3UD>]rE ZStZ͎R&N}kFUȽ {LdN#hƤxN*Dk3 s9x9Ge!"d#qrLU]ZUY#5`1D@r9!2V H 8A<V\״=PGG/sV?ɩr9gt{/dAw7`[OY�cgrK|eщ\Gn���W"׏Z,iZ7(ON+y�Buw+z_('eHVe=F&IY&f!>"T�YMr^wk jxVUy{d,Z5ƂКUUև[ar7�o&B~?Zok7� _ w?wڅ'YMy[i4ܤI;i{nE@?!@3챱+F"@ IWȿ{܋dO#?5!�-ПuX%ϣv_'!=lm?̕JS??[e>[)GVN:m��=F'셨7ԝ)nѝԙ�ċƪ+_�` SD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0ZS)%1}�J:+I`WH BT91cɂZ b`Q'o'I\pu~5^SJL"o𷗇PL s몭`D|n'qX`�5*@ܓ\+=FYa5<=��jﰹwwon�f'�N-鏲W;>3?%�㎭��P86_c!u]>ںݦN:鯮'A(d#o1le9 ^/tWqA# Ƽ}sO#sqzeM5ge_iݾXlJgr-DH)&$`/ERCv>Li`dKG-Mt˼G yyǗV96z]NNP8q7c�E/ZFg]+5B+VɅnd�Mnc&[aI"aL?=Jo~sq51>???; ~E!܋3 <P<#1}* zx�Ȼ?GPuAZ~��UɯD擮O[bϤIX]曣_m�m'bu+BoXf.+~VIS[eO \c[g0+[w/]7/BM6m*N2ELbAPIS_5Tib؁J"b% 9fmW\�GX9;rXO�i^DV4#0qn.60q;axhLg.b6U=ae`~znn-tVw.8KYTg,q5i:\=M*<N �5j؜X9P#TuPmhӢLFL$9{@͘"6ouCi d<M됺pbʂ;1՞s RCOK);8ulRt'n;PUW_\#3`nЦV[đC"QΫ߹퍫=D6m )䊾&lxwn=UF,5:8ѧƵȢtAES"H I$@d�"i@�)@��gI}0ߪwSloۻ+տarP?]'WE@A-n%*$B] )(sʩsȉcDDGDs ~O<r _2�  /ܶ?f;땞uC -e`)  JP�)C(@)Cg.k~?ڑ_гz]a ?ΑrR�\=x�ȉTٰ^]ll]ZC['MY=qQ `J1]�$#6S{ k zwR7R d)5=4Fy<MOdWoڰ L,- Mt׏§_jo^PW4�3zB}"m&{{!^|-m\4YА2%Q@MS(~7.+lO*\\[̂ [Z :۹,gkx!P9ܴj}<8ׇF^:qsAq6ޱJaPUyYRbYP8zsA 9ۣyO$h5h�]Gaۋ\|Lx9RqÚ٫YL"Eq)X&lE s3U|s"SᛌF3KR{. Z bX{1(qm4' GW�Fy$v@;J-r6)UXڴfA3$Pn S :s]Jkc5o+G2$ÙoGhT7O#rM8xP[^hG�jMM�.r[\\NnWeX[{&1E�QKlPȗZQǹ+#ʠyE4=&IsY2| I d�f2joBz=2}HO`-d?Xh?޳U[ѿW^%fr.K�^C o�+�{kpJ-wmoz�D�w�b:k?앖�Y�ӾuGѬ(^H첕Gl۸9K)Y3 ~ zxIc"J;�uC -Twg}r�_l{/w(M5d Ͳ J&JBz@..5qEҚZ�sz�N�T_Z<]�IJYb�nw/Wd'gWJU�UcՔUu�e(�޿M]�?Z�=�ړ?3?Et;9taD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0Q?A/ĭѺGFl[<䨈h]vWMUGCvzuG_Л�-͎FY%dE#G4/ot<qzTg/QܕVJ(B-Zt:1U@GQ﮸{,Ebq-_G21?s&dN|\Ifn,S̭m-%3Wyt<76Me7ld2whW~F7Xy4йɐiO UHoS^6 #jjθ:lIJ)Y]X`Ԃn|sɻ {?uKu#xB?uѾ�3-�qͿ1BGy'\x$?qտwww_cd.ڪۦ75Mʁt; h�YC({DD;*"%Y~^R }K!#PG9{ek}6i�98W:oRM]鵸kˬ�KV (_nF`]Jį9C@t{{ȏa޸dž"hO|56Tnw^G! s}bsit>|-l̏P͡-G:Hfvg:+\z6&De$%R+LlJiaxcp7} G9RxKP4x;Gv G#χ!?i<�pNR=s�Z?r?/Q>q%`uwn~eyԯ ]ea�LY$?MmO]?6r*?5o1- ~H'kE22n͖٨.Q@*DΜ:Ϊ~wV3[S}@߫#m9�ƗZTRRQcyd>!qK6\3/xU9#QCZ2QSz%(kZu�ɾ#hb%᎝kA8D;\ٲC묐(<#NZ[Q˗5gѤ/ώWWZ"g H]&+U\0;݊gjp Ѹ8fY#+?YJx uvuqP&i<hK90ߪwSloۻ+տarP?]'WF~C.#�V- U3 ��r _2�g&0ϭ%4,XBO\ԿK^/"[_FFhf=DqRmP}%Z>b5[<dMT)Q3 L!FHk{!p T|Et��yy?i1+�ȃKQ=7v O+ɽa"9%TUr'utOep鎛(nͯnAc U=. >gm̶o*$8} Q ]JM,Iɍ7}"HmkxJ=% _E{uCk"rx̗NQHxz<K<\[vr.oxE94p ?TkI/wC~.nZI=[q RPnCns E@7Bu.oVkc0="5,Ñ;ԼnLcבOjip#Y�[hu]I#mmJ{zͷer:qV(9�( zdG p2b�0O~7#>>JgP\[Zzn# R1r!U\^ՈKU~(̉IVQ0;J@&Ȫ ޢ2�_R$c|9BGOj#vTkxoټ};<RP?Iת^V?V73s9 :<5$ (_tmQ _a�#۟S<ZD->iX�&�Yhqu#>oѐ;�c\?U�zUoF�w]xˣ.{3�DY+oQ�յΝW� ?ݬ�V_vOY-kl�Gi_0IĶʙX L"oMHn-o9 �_/E�Y,17e�YyؿٳT?�űSXN\o_߮�Sow^~Z}�IҟvJaIHjE] 蝜e0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aEf<@󛊻/sNZEKϲBnfxENKcWNwIŁ`337BCG;pR-'2{G<+N-8DTع6V<8 *+TxW9zUܸi6l.ᔽzu,TRUUA;"@ p@7{ &ۦ=B\uy=G 9PK;FkFx|@ ~4rH;rb݂FI=aSU)@qEL,ႆ(%7Nsno;7칮k]O<?.pI9HKDqc"8.OW-鉮\K&mV;bJi>Τ(9vG<.�}@8F;Zc2'iP WV^ԏd,x%ת>OY0'#n|k%lA""D 6lJ"su퉱-6]rrIJ�&3N�P[{OesVN>Zx=<zq,<ܐ. w.a^J5UQ 2K7XQQ4j`VUd&bqZI/"Gh5%ԨWN6(6 P G@ .2O�MovL}gy'\x$?qտwww_cd.EEK-MlқA29�IsԀǍ)E-Ȃݢ *!Slq9k%y,l;A8x/m2v`ABGzziNz[tmabKǮX�&h"R8 ȜA>xcA;|Iϖ7ʻ}u!:8qݑ>Ois�p"rz�չ;W?/՗<tkͿ,[Υ~\+ Eeo!klz�A�v?ˑW�� YybGvR0$6FmbRd3lvo]I57=y(t~nwMK9Ou/Kȡ?vzgwOcJ>�JWpkJ tE)#˵/4* JQ '2�H(pa" #ga2apkCwAz4hH\bJ@#F.<y<<�uTΩ5ԴV)ӵ:IM4S+qMbo!4U۔yӹUsG8>|GU9>2I<=EVEk-Fց5}@AUE;g륳�ǏarPqҶƆv]o5u xo4Ӕ<zXΔ6Q?PQPɦcDNc{-uyf\8W΅\GڐAHXxJ ߚ_kFY){G~U�\�5V}K$\敜MI۟V뽻Q,*>XI,ԌeKmg;lp6~rEUBRӨWscf cja-4>QN-\k*?s~?ړ_г_a ?ΑrR�]/=xȉoOW\/Q3wK]'�V?[UYo6x{Cʋ3#v8ݣX)UvUv0&_s׻o/Zg|ai#ZoaA8VA!st䟦71gۏF"LjbRd[RN~~2g-s&/e&~mD qQq?8}G \+2rvjbyHdg P:-zߞv"L*B?H݂'< 5@+8&N<;jjX8�'p8'Y<6<chWAVTz Z}#�بװk>Q(X=1p츶Mbli%dJ͕*) S޽bvw ] O:GI"iPugkV(#]F8̸ Cz;<ڴ|KǫkYKn|#QR&ʕqTIFI$23nd\y6B8jy/^$Rqv/RZܳ%tph<�P7dg޹*YKHFbL(MK3A P %xc`yM 7 e0Ιowbҥk=o]o;7w4'j]:j]-/t9'E+Nŵ&vs&E4tqYȠ.YUND/tEsɍ kI$5:�RԎq'=qEh?oKF\9քuQ<S!(]v9{FP5IF3op1UE(9D:˻`Ƿ,w똃ü gX zm*ͯ&&ً鼹h qluR osV?ɩr9_u#>oѐ;�c\?U�zUoF�w]xˣ.{3�DY+oQ�յΝW� ?ݬ�T n "OJn67yHi49a'`JvXA.'L)D=z7Qw6pvAs|af]pv; K.XTi'WiWӗ�r_ z[|! a?jS}9!5Ǭ|o/p){Ge'|ۛFqFx׮Kwk^5"61i-0TU%=&0.IpHjRF^7i-)�-U�BGcK>_ nj/l�2U*O�p�lq*nӗ[8?G��WGRt�Ft?XRg�/~;}'g .L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0ר}MSszd*ݥ,bPT$7l58H:ns s)Ns&.@mjSZTɤ@pZ,;o7GW�tp{jh||-Uk9> ^nv숋eT~*~p`=PU�?N~�quƽe,_ ꤿ9˶O h<EOA*qN0|Ֆzn0]t"TvQ,r @~3n巘r?_[iѬ7~ϲ?A>'~e?~]'+C(5NI-D$=by(IDQ[P0U;ᥦ9 XI{p4<hh#V^n\1{Z q.-<Y�X҅^#zſ<#ۚ*y~owoPӧPϸ/*(WןF cQ6 9QJMs,YZ "5 w </+ ӴoK޷M{c-džbs+VEiqkOUF?6X9!�#ZKk̢D&QEqRrP۴쪵P mFJE"vZܗжX7&L;8 LLL,F^�'w><-pÁ-2v`AB"GxHOtg)55adqOznf8Ҕbæքû@_"!RytQ ~ݖ[,M1ܲزVxdOqKmZX1p^ZC~RN '(2 m)Kq8 7n1ay�= ~w}j6v;K02퇿"'3NU8KS>+7*L\!u5r5VY�oM}m7.5{ϵV ^-x|�d{ߨvXAMWy6yU|il}4;Z tӈ>/YNA=<W\f?"WT’fE[w3wu9,N!ew['�1�!ZM/t_Gu0_8SО<YT)aeNE.T%.Fl�xgcc%0d;ǰ2\ 3W}MT;J}uXgegK| >_(i w6�/5��#8$1TMߘ$?|O?| ǻ_TNm��o�/ѼsHp�w�h7o5&kr؅tmto8%E�]o+;N"[N4ִV+AUn66M&6>[>bmrMnU:hɍE=<V|6ȄxB}.36s"V ]{˻u<s*=4yrܾ9%-C*5A䳙}^3qLS\IbZOf,R 3CF|rgXaɜ^,Yݛ5էQ+AZxn;="c+M+O~RX?վ@uWNmMTB6*3]S𧜭GK+Q UpNÕ?@َ&F.,ec.ӥㆶKQ7p.b^NͤTTxA'kNeQ?N?F˹:G2^(ؓlQ%Kqd+$6\Ϲlu%֏ Sy*.8>lQmwLj5Q-K=v55Ø&َڒݺKY<G"B=b[5{bvuC[*VxpՆ=$SL8牬E0r}_�ryfmųZ#qM9c1J 0AAZ|NUv:f#T\(va["bIƒ:Bi mqS�I*;lVBssq$Exc;sĹ4FEd�/J5hxOzxNL-1TB.Ԛ[ט/.cV_xQp6%n*ZyQ?4t2)))Z9fWdGW{yNF,];Tz OLpY7Wm5 0x5 phyM6nͺ  fQMf"-۷D( e*he�)J��)Kĕe+:|�\jH\VѵW-~ :pX{հ?7C״I;S4bcst V]N+K0dHRPʭxx%aޙމ}:7oȷdӺo]NVř͌Jg?#woAo^ɼqlƾAa&]h6mZG6öڗ^A;2DYB4Q>UzE}Cw4g hDo#�{?3~7o{>eiW)_}Z*:w}w{O/mzx?Q _ETFvޤ_eQ~bkЂGZ'u >D%D* 3cMc5-E{.) 4:ZYB7nʷݒBtB GOSiX(i w&/5��#8$1TMߘ$?|O?| ǻOR6~`wq?[�I32Og3)tq{D)m; *"gI,6`TP;,MUoMnU=:.s]-竕<Տp`!#O0)WxP+bHzoU5m} kK-p jxyj~> ~?eOnQpf:PR Wvlbl:7Q5SiOX)}26i4vi;̙ؿj K;3K>Y,vp\ A0GK7[UG@ -G^ukە<l3lRYT<OƲ1!V318km88 ,5i eaC=R=owQ̝]5\tu9בZrv+4֕Jp$ӂ|QO9f"FJY�դ> ,$+v!ޥݖ꬛ &B0uSK)ςm~팉ApIansYT-VaD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"a=<p"U1oIG'(f>_1QJa!Nkׂ<@A9/f|aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"~tzq,6˪Nøy2�b[7 jJH*ݠ TeS6vov\8M+#g|.-Hgw+nyJ@A#$ +R Hל;BR;I _U [\v ̌#-qZ �'Q�1|= 1e.|:du UHf:ÅGQCMo4&p�G>rԻq.3m73o}$"zN';S)JL؏슿JPΠџ Np fzzairslU*׶8Qܒխq �`>6ؙ;7TA�+ѻ`[t+M\<_� ~uMC6r cmŨ?c�YۇJMb]&Q.~rtF=3ǺQQz:g:qᩦI $濱5:�<h*Ne)t.ڪɐ% �{}B'vB >* 涹l8T9�y=Dѹ5~J.ϫc'ZGA@]"bg{D7oSDDs01w{K0嶉=䢮sI$@yޣnݝA̬h4kds@a&xI>2L)l6_% 6,~Q)?^ϪgHg+_eG?;co]T(Ε|ӝC =,`W|b 2<@'ɉ =ZrPv)H=r) DLWtBנ�qlXcep .Fy>ңkBS|\s$,wn$!%of^N=bA¬jE21޳(\ Npv;CsM[y `$\y˸PܗXxГ�4Z ,E*_c1 5TDTFH4QVEQY#58 9RG$2:)Z[+IBA !\s\ZEAυD-y>^=Y۲WW=j<BT*>mqrq0Z'xmɓ&8Om u 9ÍBu;hqwsOe :  PiO)NRI}:�:O8YKl 8 yׯyO+v7\έml}pw"a.]=<:yQatqwY;Z_%!Ϋ+ܓ WqUJNڕ*XkN#`+؈v� =i(cZ8.%͠7QW9s x�yYn-^6V3ޘhֽo'I*~T�yӿ |>^f+,.Fh.t  ^h|<yӿ =)؃�o^m~{zqZ{>#͞ g^ //_}?[~zrs\iMC^G5լS+Za4r^3m$#P踪'oSu:pi' e{GsMG9O9m̸Ue5wHZ-VzaD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD,szT=<)߶ecٖ ӏ);%Fy%J*U+3e )6)UG ~ڗ;2|dѝ_Y N *??#p58pc|.q=aCr' Gu-7֖^jh\0MI7nEFUJ-UtLjt7ZmÈl8[FyOw Ē|nqs5{YI+I>Dl *9[cЯ\Lؕ8nHn۷q-z1IԢe;N+k�&cD 7OSHLeM#>AGK}C.ؘ-H�+#x ZjLjUiGd6-HH6 "͓D٫r&<�(>ep9/y%Ǚ<IS@�&ܵ5-i.%ZWFk2m`U S�dI 1ŧQ.X!pkp#A+US[7�:a<gԓ2k/*m$N#$6"$kd9YD>-wp-x�n&uo{`II*(mks0ݶ *CA̔c}i*rrhvZ!Anvqdǹ9neڲP$Bc"aLV]ŴV;sK+xjRU yCisJW(~[JM�XM3v8j-}o^f4zc<nЎ/TUeVUeO]1UCDIs̋��=ڿGڏS_7G�3Z?3_]|,}yqE<M⸀ :k\�?>f Y=yqE^6nɺ ٠VQIV" 7@MHIHR)@�f\.+ p\7x?nK+:~2F_%'_qzu�mOČr'3(,毑xA`cƪs<h_8X9`ne`�>Gy.d.s0y�<#]z|(x9(YrO[HH#8j|EH $s&fD9e|O1 di (A Ѐj &jz6ϡ:?S�%͟f�Yq�%<^Din;YYGdd%􌌃Վ]Wr EUP:0""9F38[@� ^�W�< 6OG+ 9oj<V4X"4MLDLEF0“8&Y:H|JG)?�entS]\>']2<5r i7%F{GzJFn[վjJ.IJW,'a$RKY]F;"N"0)�s4&XJ2i }g"(B1FY8QDo?F?fs8k˯.[oQ~j=Q$:^)2VRKԏ*F"H|VbQHCv7׷K.[W5JVE{@U 1WaD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aE?�?wEη׫2|©5Um3LT#D*`g{#s2L=G\0R;]^{OǬC˙:%6#X-�BAEi[Kzn9d\9g-IH\})- Σxi9L�< "m6rZ66  VW601Ugh|V{ <],jL""¶38xL4f݋S=xn4R]u:w9La{!\Rk �(<C�J!+r=;nX�2߬f�5F�4>e#u�3'%v[|)<a�@z\w �k�L`%1@0 WLS�@@@C;�@\y�@#ΝϏgWіC+=в[Mlq ]i7#`2˯9TLC7iĆBR[-$Ӧ)Qkb vs㌱x<cs<srGcn3MHZmHHyYDfrV?x`c,slQ!EOnՙ;;`v�#4+ϧAuf :�g>}-#$fLC2dJ.R1dMVXjITdLb-9kH G0G] ȯv|ժҝ�n)�/>�֯۷ʨ�[ �EO6�3mfǯ?u�𖷣?G$[}g=c_8y_dc~ceܿ%ڑ޳澙~?ɑt.]^D&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"hrgr"qsangU?C{mQAcogt8Cj)�uarQ䷣㓃&5yN?\u@6MT$ki�&Rdɲe�� �gI#HjIjW_��K>aoTnfLi(ɀg!/XyLs 3g?B![ì#71�7PN/en՛rGMf@ptcM<!!pȦhCT?Q׋][W7;͏ɦ|o,]l_~_Jڽ;>M7ǣx1?Mv+"wp*{QY{fh˱nba.~TīHIקA.K wwq9i #R+{nmͻBPxirVronɝշ?Wlk?5qd�y?UݿNnf] U .: Y"*VMt@1J !C uWn.]I�7+܅=g�"ҽP~@9�@O9�>_aԯkW6xfGs's{YwʺnbESp(#d(CJ@ 71:|U.<ee-z4UZ)_g?8tѸ�&�W;�@�lǙN+{2F1lGHW1~t^2zih*W-1L1C L!98AA\t`wܦye^�`VxFȾ[qɗpUri =M%[#gԦye@r`<(�v^~O^sL?<^<\'.,(w5WxEJ>X|+:DWD; tCޥչ?=`v&?|'Ozl0Y�c�gkaqn11 J=i%$ѻ&xEH/F;nTITb(C":7<H #ĺEG%Wҝ�n)�/�֯۷ʩ�[ �EO6�3mfǯ?u�𖷣?G$[}g=c_8y_dc~ceܿ%ڑ޳澙~?ɑt.]^D&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L";s7\rk-rQ(u@ A_E:�@v,صY5*=R>\c.hDz乤qI][COV7\#wqwqG]U>[9Y~ % X>"S83L \PP+~,mx8xU5)0WSBE󏘗Eݻ*UK]~*1u;,%FZ4p過b0`]8\I3Kti8RǂO1~Da _S?eǘ?�#h2]#~߬kwnӓvMyfFxx 9ẑrkA7fW!ET8R\l382cxR8TV^؃ˊ6S>TWHI\wuن~}3dQ1UM V@r�J"s.BX,6Уuۍ`,Z6yTUs=;'nX�M߬f�5F�4>e#u�3'%v[|)<a4n? =-�3qwӾ�Lop\tw]9/Tt|{f,"j9MVټlU% b(C L!s Ђ9G"�KEZOF+OP80x�C8�2<cj\{qEGiԦue)x@9~cB&$m0av|3>_o&8w$Y DJ*P©�ZB%Ծ0,(dpQ�J>gw^Q5/Gg'Ǯ$H:lox5t7TvvsPPMB9  9k\ph RvDrS�%͟f�Yן}i�K]џ #-ұ<YU\1n_�QED_HgOuJYQE?͍s_L\?ȺRg.L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD'8EX̥gd9FUzi A%X+BRJa+:Ԅ{=,ZԚ2d/hͮS| TgW6 V/c5I'�P[үO^@Q 246|F. 9T[K(jx<݋=��15Z88m&.Py7vyqy_'kĊԴ-:�D,^Vmbyz +VVGo%tlPK]ly31+<;G =ŝ۸2$jkNBx9\h<.wTfn=r(.Wl^DD<D{(`nRplV鍾7�|f| :vc$(q$ |p%u(ס5 yqXr=|Pd^d؄/ 3,O+W&R hkx4 ʇ�ҳt(Lcڸs~_׮`�p̟;mG _IL"Ѹ�&�W;�@�lǙN+ ��19r}?ev+;% 7baȩxVm"bli:K" J` cđAGAA_ . ֋ђKR<< QfUdt$DVvWI;\bsŪbta)Rө,FuṆy&sq9]>u0uIGl={Yadzxͬx&ji{XIK,͂30=QSQG QPL'I3y"iX{gc?f;dh�5�KƤ!}cםE(sOh44z8eߢK? �q�%mtgBHċotz�g4Vllo o�vrsR8u?TQo�c\/;O2.˫D&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0RT=ϯngcn4 媷.N-}DU:nf1j2,ȩ`ɳG{dGu�n #༦+]! ']fJ\Y|`h-/ѽgk5dT6D;D }qz06͇6 ѓξM@yzt38La$Ocp ;�|M֛f5KiFafDlCT8HJIf$"(."C ut yN o'K8PHJ۝V< ZH(8:+P =�7բ*Dy^ �RQ?T=Et2me{`.תN. � p?I}(mi'h,aW8T&AڙR 쌲6Lq^,q5847u{n3pݖr@4Z߶G/Jy뫀tbccHjz=4!*(4ʬbTKʽ¢xYm".Ɯs<9O^n] !LI,9�@$<[Қ[lMGuQ'J(H?(L#z&`a`qyܻx85%tVVwE>n<O��W hCVronɝv��)w9?dm]RHanT2A PSEtӨ/BJ<1MWzÃ�n^(UP�B?##~UuGl u6= !??[#&4�[VRdӪvvNW;"NE+CR&UܮR:(jXHM�&�W;�@�lN+ ��19r}?evPh8)I30̛HKEHQd{h=EȪCg!L{x2[#H B# r_ ge{339>݂PWVۂt4̫*Qo5i `J6@e#1Y0p:kԘ pne^x  P^PϝB/Y[CH<}G< .l�t/f^~�-F/ďH{WJpG߿fVp�IWoKG-=#=+gSG� �65}2s�"I\0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD(d׹-E�v}U}om�Bgwwؼ�>;Uj)NuRk^TUiC^KJRtJIovv;<1uɭ|cڏ/`KjGwΐGݥcNȽ.<=NIos_?_5iSuէEؽ1{י Q*SPK>L2A�O�j> \iu0�~ʬ.bZOl^#n8oUMCz=GOƟuP{Pi] "_oV$7q9ԗc}8Viw_\n1mgߐkFiU7]�g執N?�fj�<f{o;{߯O)t!9t~^_+( R4-y�/[ɿ?++g7]g5I=�ϝٽuΨ|~i/>gjѡuStҴUAL�:�y'yM4׭کj"�z??��a���Z��_�z??�����O��_z{Mw/__�߯|k<]xyY{i={=+ޞ t`�/yݾ3/;;{;U9V+]h| zC݉+WOa_Ks~~{ݞOye~:[d>o;]:E+9+*3#qo<]SE5WON|V>d}ٓ|ߋ};xuX}uWg&0Tۿ)_ß/w~ ~7�piz罷y~iε+U{:iUiJq%&;ו<5 SVއ>Hz9ޔRkX; <kBip$\KEAtT–R8|81 [Hii84V F G�I#)Fƶ<ʅOUM29#~R?&={K߿7<�xfly� 3+]xjƞ:qZǛ~j^g?^WFZViL_>??O~�+�'> i8V~j|i/v^;'bz[{km4RUTK�oF:~U'W[g80L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD&0L"aD& endstream endobj 3 0 obj <</BaseFont/Helvetica/Type/Font/Subtype/Type1/Encoding/WinAnsiEncoding>> endobj 4 0 obj <</LastChar 119/BaseFont/JLUMXO+Calibri-Bold/Type/Font/Subtype/TrueType/Encoding<</Type/Encoding/Differences[32/space 40/parenleft/parenright 44/comma 46/period 48/zero/one/two 53/five 58/colon 67/C/D 70/F 72/H 76/L 80/P 82/R/S/T 86/V 97/a/b/c/d/e/f/g/h/i 107/k/l/m/n/o/p 114/r/s/t/u/v/w]>>/FirstChar 32/Widths[226 0 0 0 0 0 0 0 311 311 0 0 257 0 267 0 506 506 506 0 0 506 0 0 0 0 275 0 0 0 0 0 0 0 0 529 630 0 458 0 630 0 0 0 422 0 0 0 532 0 562 472 495 0 591 0 0 0 0 0 0 0 0 0 0 493 536 418 536 503 316 474 536 245 0 479 245 813 536 537 536 0 355 398 346 536 473 745]/FontDescriptor 7 0 R>> endobj 5 0 obj <</LastChar 121/BaseFont/TALAGV+Calibri/Type/Font/Subtype/TrueType/Encoding<</Type/Encoding/Differences[32/space 44/comma/hyphen/period/slash/zero/one/two 53/five 58/colon 65/A 67/C/D/E/F/G/H/I 76/L 79/O/P 82/R/S/T/U/V 97/a/b/c/d/e/f/g/h/i 107/k/l/m/n/o/p 114/r/s/t/u/v/w/x/y]>>/FirstChar 32/Widths[226 0 0 0 0 0 0 0 0 0 0 0 249 306 252 386 506 506 506 0 0 506 0 0 0 0 267 0 0 0 0 0 0 578 0 533 615 488 459 630 623 251 0 0 420 0 0 662 516 0 542 459 487 641 567 0 0 0 0 0 0 0 0 0 0 479 525 422 525 497 305 470 525 229 0 454 229 798 525 527 525 0 348 391 334 525 451 714 433 452]/FontDescriptor 8 0 R>> endobj 6 0 obj <</LastChar 117/BaseFont/WLLPVP+Calibri-BoldItalic/Type/Font/Subtype/TrueType/Encoding<</Type/Encoding/Differences[32/space 65/A 67/C 69/E 71/G 76/L 80/P 97/a/b/c/d/e/f/g/h/i 109/m/n/o/p 114/r/s/t/u]>>/FirstChar 32/Widths[226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 605 0 518 0 487 0 637 0 0 0 0 422 0 0 0 532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 527 527 411 527 491 316 527 527 245 0 0 0 803 527 527 527 0 352 394 346 527]/FontDescriptor 9 0 R>> endobj 7 0 obj <</CapHeight 631/FontBBox[-518 -306 1240 971]/Type/FontDescriptor/Descent -250/StemV 80/FontFile2 10 0 R/Flags 262176/Ascent 750/FontName/JLUMXO+Calibri-Bold/ItalicAngle 0>> endobj 8 0 obj <</CapHeight 631/FontBBox[-502 -307 1240 963]/Type/FontDescriptor/Descent -250/StemV 80/FontFile2 11 0 R/Flags 32/Ascent 750/FontName/TALAGV+Calibri/ItalicAngle 0>> endobj 9 0 obj <</CapHeight 631/FontBBox[-691 -306 1264 966]/Type/FontDescriptor/Descent -250/StemV 80/FontFile2 12 0 R/Flags 262240/Ascent 750/FontName/WLLPVP+Calibri-BoldItalic/ItalicAngle -11>> endobj 10 0 obj <</Length1 61592/Length 22710/Filter/FlateDecode>>stream x|TL9lzOv7B$j$4iJXPPvzWzmW`/W^}}} L=sfyis�8-^85 Xs/@Ӗ-u54\ 3Zpؖu9%t3܅mw?a�XXa<{<Zy)Ӻ_a/\нba\0;g,|ۥX> ~1?@W` sg/J ǜ0;ְ Bv{WBm5ǿpm¯;'&v&Nܑ'wI1;|GQsLq,r\c= uF:$g3Y<y$$B“b2fr&/I1RhbO KJ)垔S^M4mm幑w<=.8F:l)[\nap5D'DHJt$6&fJĝ&^?;s:*UɎK7&jZcg9/[M0&:)j]_${Y)/YݕWyxj' -כ+zz0ś"0ɁѲK�:-|\љ8 <p덱>r}xÏh勪/n;5dLcS=�A7۞q <OՄ(xB6M:)|llܭ~m֞^(z>UQ V՚k-Z36z,Ymwt֗X?+/a__RjFm1@ 5+CN^bĬel[|;f߰ow{ƳxY+8CDL4Ȇ<*:0&t K`)Uc r ;! $"H'CSȩdYM' % y<I%ϑٙdvgf[x/&vyM8ؿد{>mbL óy&/d#@Aa3X@ xHDpB>@!C,4Ti0Fh908UN"JI"q'qd "SI<YI֐d9d=I"dyl /J̠ ؈$HD0'Mb!AIId )$ $ h c ,9d"IPDLR2 (#3̂Ad & PCd %K,*FVӠY09|,9N"D:0\SȥE6Tr9t 3ȵ0\p2 G`!y`1y=k` gW Z 7ąߔwFqw=}qq$.+(W(Kgb_\||!R5~5NZFV\|'SW~׋ćʏbH\*>Oō/ʿMʯAqrHܢ*GmGܮxĝw{ ._0a[El.4C<(ta;M<$]^ ȹ"D<,B.&vpHhOXOx+`&N$gDxV8s)I/dH/TWWDxUd_ 2W"K)ExKM䊷EP#ĻX'JTÜjN33̙,s9ǜk3 ̅"s\j.3+̕A*`sediX[Z-#,#,c,c-mq,-D$ 9lVdK2222222222dI)-XZY[XZN,,WB5fբUA] VCP5L W#H5J&ߒAPt4&Vf ؆؆R4(l0ݶ&[6jai+%,cckkdoku&&&:te26eMMP+Kemm_fN---Qα--f;ݶڶƶv,ٶsm.]hvRe+lWڮ]k޶vm;lwy|u^CZJ+hm4"ZLKh-t5MZ::6&:t$L[Nb. FWӵ,z6=BzH/fz%A7 Rz:Udu\.TԥDS]NQX[YgX[gZXgYOζbc]hk]TgsSձ4uڭ.Sbu:N=IOѿ;)҇#MF/[mvzCG밇n;i/EwG $} %2K__tә1; c,ŰXǜRX*Kg,<VY +e嬂UA f͆HjY0a,%2Kfil(Kb񬐕YZ7ҷXu"֋gZ/ezuec,>ˊZgl=zu*֫Zf;5D}>IQow}~>EEoջ]ߡOgw3Y=l^}~>W_?{Vd}~]_!}ޫ/֗n}JT?ML?]\B_?џO=3Ys9 z__W W _7K}_Me[+;Ukk7ݧ<i{cfai=b{(r_TEB _*,jV ߉Z*~uGQ/~ g1L"ſDU4Ea*+F@21DcM\1$I&o2vEtT1&]L2YE&&]tE)DL5i01.f"LSeMb)F5Ŋy81/ɦDq!b)I,6SXjJR2SJeiXAMb)C4eU,q)[nMb)ϔo*0LŦOeVWJ~_n{Z~_gŷ6~\ ?/ .GQ~ oOr?7=J ?˯k :"o/iy7WjBYcIS4zzzQ=OPݠ^j ZD6Nnv.ͥi)ZkZzU}@ݮޯnS{ZVUinmV ֆ/{՗WWԗ״fUZ_տoookmZv6Auh㵉tm6Shy~+3Ksi9l-Kk(K-kv-L "`-\ "ի5ZVh%ZVjjK}L}X}Tݭ>-Ԗje"Tm\NIAE^YQfӬZEinR/U/Q/V/zެʵ\L*{{ԝCpEo՚FmV }_}6Muj1X[SDXH}O֛) dmw]k[QfM[3,k5}<k�="k^}lelZ&lMfS4k%]N+llC0;<ˁN9|.\:rvCxurCuzkudmVH(hXkɶXO2U,sx/%<<^x9MI|2' |mGDbbANvd>EX>b}q'"ZSX'gL,S8T)1 2UL5&7"d)'- *]D~C?L0H a,@ׇp o z}[D!CNS/eM*v#D&^~g0cx+XzA^#ѯ\FGP>fsX0^藢fjpг\l:!wt6M&DO-+9d&mΤ43g(۟Q?lFe3g(۟Q?lFe3_Dts%xv"?x>/{8D�pG2Ng?`eO =ssmj.R$O=Z XyE n<k/a eo,sex[ <[BX Û= V_΂p.#-b6Ep1\& .+`3\ Wp \tn-6Y7f{1nw#W+߇57MX{;^큭 3_9P'`'<øx}|w)Nʿi</ g/^x^Z髑/:>+ o.#亯kx!'|=`O_?_'D(/m6vjcݹՠ܏,w莾i|,5ݸnE wb>ewBX߳/mی(E}+k? Qzz'GRYq,m?g}ԗȶw9J2؉/᳾g5|?P�?bgKAp_Ȁ#=B% <GsGk b<fb!*щ،i@|\~6QBBIHEbH,x`DE"L$a<AEAr+z H1)!ekr\Jl7ZSa>Tӗq0*[ S&wN8}\1G:qXC}!U*+JKrsSS]IQa Z&pF d׻=]=<ؘ#ˮnWc8nc{=ݾlGѳ%Fc~csȷyjXp: G}:Gr4,۪C]Cg9ٰU0a'ݵp+I&FWn`=F:F 5C{LX9rpck.Ԯ,}kz֍m`6ՓXI.yFO'˅{QR.dž�':ձ5b dV.L gs:\.uT,+;`j6peu.D%|lYh{[UlvTϺl/avM6[36|tkkqa_k<݅#0'ϵ'Usƶ ]Oy97t&(rnl-vn/bZ}̞Įȟ3w>Cޓix 6w\)hCV8 ]FQhmBC ,ehlbѡL)?'%o,;VߜP~F] 3⟠ϓJZ_Ov6X \8Q%w1{T\-c]-'璶cJr_(Сȃ Ym5Ìr_q@sSٱjA<Ah}AyH1nnh]7uV{ٕr W U\Ǵ]%_-6'eOV9oV79oіu־:ck2?�pTJYpȂi F؇�VnTi:s^ꫳ(q_ۨ?IQ(n1{CW<\[HqUCuUo%T=kFm檕5W/d u!Gʤ ].SPK|䐎^ݹ7@YmbB{% eҌItauӺ<`\|֔460 viأxF#>4 7x~zutdɗ0JvߘJ|Q^džWq6()ĂsX,:|D28i.l@js6Y'KX_ <u5rY,E=\ɼ+bM(h8~?&9w.NUv}R3ƸVd6F2as5y k\假RFh1jMr:ҝzptvI bFƆ +z&fdZ ?ࣗڗb%.a-a#`%ףYI^QWg1=E Ѥʩ56U".djL69{⟽!y{I{<`?lpEށ} I3@LBriIZjiQQa5-)Nu%٨QW\ZV͊ ( TSY&#Yd9hlBR"Cf`M)rJcnL1Jk]7'FŧEaz)v{vh<;_^,VZ5Xק'' nY[ldLlS3\)1q)r#PL~uŅt�q 1 tRwhAdxj/:PI~%S-'ATML둬}jS:@A~GJGRSR8<,JKr 5fu缹yT S:}\]*Wmܦ +e?afSU|O+:$21oBScCR2ctWg/c~3aʒ_0mO @",q"M`("zIbk/ms+md">VBO 5$ùI%ťEN\RpK"':^KΜ'~w6k+9 5ێؒgg-nX:%ĝ=ȦaߊB{k<$ě҃H)J&]d<z݉h`;a#E/Ý4:zNݘ{,Lpy{+Q&X$ܗ �p -6M1K´ԢkvZ~sBFUJOHH< ]+ӴLZ% U<TSSN?U)`SK/a 2sLɻ4qw;LDLCDŽSu2x;Ph2~bݖx,Y?|+Y֚PVo > ZR t5(-0U!Վg9O y7T`mHh P5YPKИpcEὤs[Wovw^!YMQ#8sӶ+B99!#V3re`bѢ3=gxB HM/`O-b!dmBw +vG}\Dcbw k ՝V wmٞ  Ռ+c,sIgZ\gvj]{iJ<οV\y)g(2j%?snw@^༾T,܇08ɱ?\vy"" ASRSj5'Tf|ixz;sLp(HGƎX=>\_ HWYVl}y[y\rY0(G+8J/o2:Ԗ^єMuEx.-߼x?g*)?^`rarKzneeQ IU/qCbEvT'R@VpEE^N],0rҰLg yg?mA1Q4/o:{jk~[:r'3)0,˝7r#3US9ӝթ5Y-ݹ3ftħq,_Z $? Pm !::'!,$y{알o{HGej3$(,GjSK3C)TΈOȌ֤G๼e2[kK[wztߚ8&J ;/!5$:/j0"^ &gfTꢑHK6"BXbO.LHpZ]*-2ǗpnփpaAc؇:./Ð$ÿKdq/Ҡֻ,I"{brzp[P\;$Dc?H"lu$NԕĂΓx<j]M}R-X[o|*sJHyYt.B9Pl Y'Ԓ!w5Px&߉(*,-c²2s264l+w,6$f" 5a)\ѕKJՔt&&6lPmJKZK3k2l1Ќq'\,wK;ysBȄٿt7pȢg WKK\#Z CTf:S4 +O;1,~?AMO1>aBbF秤Iuu6O Z_TP]RPFZʌnCWAR}v MO\Ԋc lI鞿 +5x doBI@G]jxd$WK6] 54 gtZUVkw#dzAå(񹳶/֩CK", 7NSZTRj& tݫw,]jAQ<d+75ܜfJ~kA9�RO--b7VJ]VC ZEZ,ej\lK;ܶVex@8|Gߺf0c:ߩ-c/Q hI37vM4eUf\~tZi𐌺☂RGR5A&n q׎5QR>wlaPRY[3m',(&nCCٽt趬b+)d١46i.E]=nt(鍼S"ɑہ}>Imlv f6KNZ-Q;.DYPKE)-P5݆X.g? ?ixZO&3#ȇ:NofFZ9ai+U/k-3dˋ`nvE琤PS3:"1"\j叟P{ꍓsW&g?{^*Xߕ;98e{~fK⷗I=QIot 7Yƅ5xSLj3~pDO@T*nV)8:)26-FE1aqPNIn]>:!fxWd6 FǗɕ^yej'Zi s0꣋{dPnfͤt;0$%QcppU~jtd>RK-oHlnH@ި9ى搡ybFbXo֚軫j_O>:c&`)>&PFD=�˖P\jtHqjUPMCJ1aZ}~[ֈp=(GgU.}7 v'ff2˦7&Ib=jJ)O 5,<%tPcP1cRň0֕59bجp59">YUT(qVFFԝ4q9%k謊ĺQeGNɧJˑ`/,L͓_G&NVKߍlu[9 }99|Om116@?xu= 9 NMH͟Zs&nMJ 0=92$a5wM I={lTF!@ 2>q &6v:\r Y5pm V7w W?i .]*y @ǿ;D! IGvt33#c[��9EbDHDۭg9CLa΂ԔD=(s5[V'9ZPRox*\8U5Q D[7B0lt|s*HBB!~ʶQi*/{9M؊3!)gxt gW; /H* 6s[/ZXx-U3,T;81HQe--iZ}95@n֨QYU)YiU6I+܃B8ÿ Ђ>nGSBz@i(2h⣐?z ?&O걿#! W# iGPh'_D%又ߡ'6{.nΫVgiUgIHxؚ؈ꊶGk]ӻl6Y{F)cr3F2 ӜHs\eY<sd_{7F,[0:!ӆ rBtFbzi-#M*.'?1(173) Ƙ>8#usIMg mDMjJL1Aj2+S[2֭SM},O^Q�DGĠWa !9xPWuyy5)UUGDN)LU7MM&hd8/2\F=sI'eNςR9(3¹AU ;~"ùvb1t;,NwL?~GW̾hluWT2utetg9c&lIhO*tSGYJ/ 7E'bcqI 5y3ؤ0SxT-sf;p"_ыV|PpuPrvNf[]@U[" zɰmn8x8H`0'=?vcpwEZ+,Ƥya-j>-jxuO sD&Uyh\1ٞ#(xğyuΦ&d OFjq,jy4t;(4)MSS 5ľH^/-;yY 4gF*1V:IA]$kϟI*<C с_mugnٝpC8]ӭLorj1MFt1h�neoPpϏJpҒG y3k\^jJ^ʶ(e^,-aX#z0jp\ރz Cr홽t[UVګzif!MEM|-vL1ud"S"[KdEVꭣy!Q}F"c Ҏf1UspAA7S%WW#%0Nc[)YcRRrc5ѻ4@SbUvH8JK`(e. +K$evXjG!Zd3lA~Aoee}n _o JOe=8U MRYj3#5vCRfˍ.an{R\hR5B|ehO(]6giFFS}m`Ed'%gfU&ɕG3+dEEf s;I ,,l8NAz6qcݗtk'kS<[hr q!Qɯ ѥs&y.0$2"'%rAl;iJGĖ,zT#97)O{y3Y{Mioho훣Mdt|Bp>NH~}%B•8 tmQ}ߛ3*3545"Ĕ,eAq9b),:'%1=FcӘEl7-C<md랱(TRpเ}bgm^VeHnR!gE^m }4wilhI-?3+8E%4P9~l8iaOd~>go.zsQ3y`f5<1<iPkNHD^sqZUNB^xk]6n X| ˊ.>} �G\x[-ĒNi|' 2z QZp284v[\c2DS: .{3JIdtN2=^%GCƚ3L Ų+l,GJ6`A6D(AQiyQ7,A2=.M~_h|%a3 #hYE!ڑv U?l<,b$ {&E) נy𱥆le9;+(B䎵D*Yy2CϢ} 9$z1Y7ˍ۱Srh O7>*xz$*f Ϩ4>j&Sg\9 jW1/>#F3Gfy)oL%E&FG&nYEw](;zT~WJRr̦RB[.En%6R~ⓔUKom%S yRa7> }clҾ>ķIC$bcw/Z�DQ\>˔Ff=M^\5`BE7CVNMNplDgXjSrJ%um"#BScǾqQ%[c4ZcJ=_rZ0e鋦Uf?/zFWgxQo<?-WG!oHa#'F$>~i1q~#cP$H0MŴшXI ۽.+M5-A8_Ǯ?90wgw!՘?>̕){C"WP*? "Ln><ހ"?dʇG\HzL8qR%bH?z֎]'zOB1zjvaibb,b4BDS4xo > ì<!zшϝ�W"ށqO|Gp\R0aL)0} a^8bΑ{A;CF E>X:яA34 ط?؈h<OA~S׋�ߊ~cqMM!<v 5Żw{%<w1NC!! `3+dyc{ i(KA5Lc0Hz7i+a1cпc:@^/(+| a- B$ݏQ<Ǡ!Ҵǀ\9�OPg�vʦl D. fYnQq(?ZV砒q:E`Y#޷_`>Tg�JB1N>CoCދ q;Үe,gg#nZ1}\Ge֨ 1}@f r!6!6h,! 3G,`X8٨ a9l݉B|nAi}xAB<}?F{#QoA{!/~$ `&]tf쀽],mF|6z|g>{s# ; {-t7H>#6{ KOLNS oR{~ӋROl[?8Bcv%[# }Ov+q(וC+ eD'10=FʱPf#$G.Na%hw5"ސ+(?3O& ^ Dh`C'`KUPC(21|c/93/Ki2C ;I.2T?VM8\]Vʰ=8Bz{K1jgWSv?;NS\xѷhknTL"h5s {VӰnb$f$4UF+A|^EgӏJC xyqJX' 6[+"&DJ~ ~AX/Ahvli4>)t~97@<G:}P#ୟPǷRy;Q^I}O+Dn.T{KaL:pkr aD)(XL&DVR$E>+,ñm?Xk#On󽋭^B`0I J̇@0Zq{ Jpq^E\&6q" . V+[tgSܣ~;HuII+"_u l!PVi/Ysh `?I_q585MQ'"XF&ČǤ|݈0l<}ԭgJ忲 <>Aei(TF(0*; ot oᘿ Qe|xa[P hC(*̓QV8S r _=O`Z1nh0q91B!F##j}Ha4;7o)hgS Cw[ЎނcrSarW|< =h�C'h]X|)} 5Vi!A+b,<|6.|;u\( v@=7eCr.rP: q0H p[uBV*ӡt�0#m$X~1LD=bmD9$v9<Hg# iH)jQBC)Ms;%CL<D́T= 6TXgB:ymxh9 F^ /gG� SH'1>"S uK>7!Lޝ}f/qRi#^G|C# 'D7Prd v&߾؈w?i_{?uC`{DO0AbmB5"ڟ:#P6mɣ|'y7I>/V6΃(SF`*m&I%>yBSas6VЇ|:Y`Yt#X`l m})by(ozP6&|` hczD:KB{,P{%ݨ}J3Z-\^b}"$~ }Wy>x2|8ra8Y#d5>`#~XKA!΁8!h{%^}ȶفM P#^Gc0$K O ɀ$(3X2`A,Kd 60aq0K4�݄?"?;4Pڑrұ ȸgF Q¾ؽ7%7v!De6[ġ̬6)W F<k#{UGw618} G߇ (2b1 -{rD~q}%oG;iI@;olf 1?w壟}/k>7H>>X祖5|s>[:+( 裁o>l𾃶V0Wm9oF_x2I?^J~H~=�y7@~wLD5b]CpP/z' 3qw 'wGqA~@ 0;~1"v ڬ@k/{½B^>ǺMaxXPK =O2kF}I3+x)"VXm/u }}x ~1hs} qgwԼX,}g3x?We퀯3hc.Cٗ1 x~[x"Ys:"໧z?4|TUx3^|{x)H[MWju ;q{1@<~?f[-^ǜ~da?-1U 'CKVaLF ؀} lج dscfz46 wHb+y8\`|G1Чӫw~=1,^79lheQ?uٛvig%p&.Ihg}w=F mqNC}~l@^؀cC ֛/sNjD*7"{v p'7Q]{q|-om >G|Zݳ ߵϧxuz15bOߞx&K%h2,EP!ygE{2`{?rp#F~L1@ՏE5DC;`)1.p?s 4/ߝ_쿽C:3by{!WnČOU ޠ8u8sPcKubZ3$Ӏ/}? 2~wsLigw!ۆ$eYv_u2ogr.ő2@瓱OFBX/ 1aGC;0C(CC=gȷو&Du2֍r.F7JDǕ@G>E_(|+6>!v #ueG~<F#E] ˸iʰ6M'V(XH%؁z&B Rقj*ُ?/dDʔwP׎FQn<oSW"=Ht#</aneNafaO`c1b=<e)cs%\ W'A%qC֣S11[a1sF<>g>̍~_Wn)EXG{!qD{>yw^dO1ww.uށuc~ ߡSg'}} =}ĵȷ�ʟ6SƠL#B "ݔqJI:yzŽ## <?;Q>gi0X"^@KP/7ާЦ๨@=Eu|f."h0`<,Q_�nOaܛ�i)y{#` cvDQќ?Po C8^%W*4yu<|B1ē{/"nF7tGsO~FTGc" j09SDzJ&k=cMe]~8 c w^.CD;dc]nX?X7B@` `za<~_ljS1=<͸.Lÿ_ 'o9o1y _M1+gwRw9~qfJ~eO//vdu2beYQJd\(Irem~wd?z Or qdOw' yydjdy?f:ܑߌv/*!-HϠn.^ָ6/UnB eԣ8_<~ mahwW<=xn:zdj{pNmPa~)]eذmmD*�o ˣ)ϴqrq8/w_<0? ѩ]"ȳ@yʀX#6(,B?).3՞/$.YX@=dBt;UxRO?Qky-)3UԳqrׅe@C^ET{.ELP~UY9/OTzay+bQ*+:h2ys:beϫ:w_/!ߢ }vFg!cY% B|8 Qob$~[0#,"|{ ? \U{.(v]r+vwsQZHd料ie[*8kiY[ii-Z, =X=y֗,g,̙33 1u~g8}_cWA3Ud<'y" ]<ps�^\a_p%iӎK+/ɵ$yI}=[~FѾEĕ j@9{\N#Q)b_p>ݶx>bC` ej,"8"*;Wtqi`v#qp2>&ɸǿ@yӢ|'%1cJf ꊾHB0>NpO7][T23!jnBD|Wd2.+/h;֣m3dj(2wb޳(|# ,2 fyc9`SShW@aiD=[f ?~B8΋+D+ϖ5_>k<r ZԐpFܟ>ϬD=]܄t790GOL>@_'6χz2QŌ <0b�md{̟i>^8Q\jؓ}i�" QI" e͍eW h3OqO|ぶʵČQԌgq1y mwh6d/[b@hh(4GMM>p6K!t*ZGpy0-ظ|Q&QP݌&ߥhK\)Z^&)-wY%|e|G] s?Qɯ/wEG4ieyX\f vyz?sT Sr="qr]#bMH([I_zx_ /GMr~"X>5Ai}E#mpغ:uJ>K^Uqw_N=-p^6´Z6ڛJ~+p>k1Vڃr(:˴[5%^UQ2mOapTQѱ u~ڭbvI@HpEGzh؉=M�ڌ@ݘ&cSETqHSזĨ׻8}X]jj/Lٍr %,ll !X֦؊+ծW{lqwVv^ppaZ׏dwS'V,Pwe{Fr\1#Mfqma _7M[Q _8Wm x_7-m;vhHyHIfr.7k' y OLV% Mn1ik2Ƥ2=zTxMTܾ ߍ|#L2g&.#T{@<iഹmo1V0�h^.m$%3Ab6#Wdv,;d).&M"GoH&=MHMN&eMMړW<y&e^5)<\|.c4.F%fk--JVG,L$䵖�~7f "n}D !}߃#?_׫Zw-uÙ?Oi4 'rmp-e ?S2"N]ܬ?O"D>QWX~}*N1\%fߵT]2*/Lɩ>XL Q)Nl`Zc 7*7  Eg[Pb&5AU~c@ wc?Q?R稳L='~KNS/$ǾNezt$]:F}F>eO81u:L>ާR>n^=]jWSMޢޤvQ;7שv湍ʉ[&j#zZOJR:F�ʡVo^^^UzJj{ZN-RK\jzZ@=Ǭy\).7zM=A͢fR3t.>zJ=FMRIDj^!0E2 !Aj�u?5CyT:FGR)zT#h5u/5NM RC .j 5OR}T/=6(I<TwՕBuNTGHQ T[*jCIZQ-)7ՂjN5RMMmԭT#!u ՀO3)zyrCQ7QZTMU]/ FU ]E/̉X**R(**O"p!k(ˉeP*rRTH(YDelFB C*<*L]~~1V\4H/P穟sY{;[ 5u;GT#PzDcu\h }G >mOxc#f}ffA.wORQr=mnn-M= VvP۩mVj Ĭ72 5fzZtj WC^a/S/Q*jvWY^ezx'h-ûBp7,bL<,Y=Ôy\ijzϡfs`YL9w34qj =a}G~d==4IM L<^ s={<Sul/#Vk@X ^/@6XVE,K�π`xO9I0<f f`h橗EE2^/+OLZt=TV4>*JFQ#QR#T3=D)ՄjLFJ5RP tzT* T0P6(Ti*JQ~z,j|g7(18 >Q,#` `XxlPx顲?s?5CyT+jAA]¨R5MSuwm*ց]@AK+ ՙJ:QT"՞jG%Pmx u'U̍DR1T4U@EQTyf9*,@. .gpG~)_(ݽ=.o-&v 5z*Xւge<C=z(BpnaPj5DE P~T_՛E%S=Nե\<7Su8&6UIՠlQU);e4J½508>��@o5WHB, OfvtF tFO3%<=c6N x a챞c1 ^Ow ^-;;;{zywy 2⳼j«8<i[Z4م4xKS: LSjmZZ2uzi4Ojv')%%e|”))3SR)AFz>-OOR6BgO`==ó s 53?OvoO/W'pux{xfw$:y:azGWCv+.;9AinDԘs1S碵Ԋ*+(ΨQ34'93raHSdQSCBzCm"tQ\\Ԓg>mSY=x< 8%Xsq- r5"()H\ AjƷL - T܁5jǟ �8W}ДJ"H+%H G}\t-t51T>9ʔ_w9)9ӻOEkإ7'M.ZE'DwKY+1' n9À^!ZMO?:_C rt$qR^#Qwy`&X#Gݓo7 endstream endobj 11 0 obj <</Length1 66892/Length 25499/Filter/FlateDecode>>stream xw|TU?~ʽ25}L&T$@ !t]@D@`/(QA]+.Z|ֵ*\u9wp?}^&2ysv/A!$"O^S }%۶lo !1vsNEϣcf̹zByO9uGI]8( IG9B3=0N9w E}V2lVz voۺbwc|ςE\t.E|ȾFsC}"^N֐d?9Nӥt Lҽua贔ŝ{%8w=nv_>>qwylO'Ǔ)z== =7yvxx+zHǛMfysý&`Mp$'$Z&.N& %$5ɖ7鉤ג~Qʵs2gE>g8!H;9AЕtps}nnPܩ=nr{U7kGݿskwq�7ٞ\OYYMDn ؁x:7ĖOpx+:72Z2�7x~F]3$?Y?9݀z|v=M?!ta:qS>=|}a>X1+>|0оvϠ_~iͧ%>ύ>Wnss BOkS@[^ j z o�nb"Bl3>a/HQ yqN&SWԏ4Z ֦zM𓏴yko^Z{M{]H;=C}sڅK%<}i! %"J;1PD;a\Ko1tms<~I_ot+ ZGF#RPFŨrTj8ԄƣIh*%j]K:1Vl18x<nƳ</5xނ.|ktGa5q>H~H^|a{F*G0JW>{:Kt8jHȄHEVP<r#/A}Q.G.TV G#H FltVF|'X"fX2p8vcb'<|-^?ވc?_ƛH&`3`9aa(;Q4vp"$QNARq=JãP܀h',<V<P! 4�_x* B4/AbTj +*4 Fx=ހGchކh" MƷ|+wV|hh|'| ZE sh> Z3h=wM7f-E|[|m$Y n*7]vw=]|_@nc;d 'ŏNCD)~c]ya/KvGZ7e߰!'HV`{ş{Pd]a1a=0{8{Q I&cڙ`fvSavLcGcVfcvց4 1`Ǚ= ΞaYɞcQ$fX { ,űӨ ߎ{X<-s1{yK,|^eI5ΰ:Kegi,{foXf,IJ؟Y6a}Y. ceo{M)TS)ݔa4eM9\S)T`*47ML%RPs<\c5יGḥ 1qFsyyy"_07<<bn5O1gggg"H"I!mckgo^`^h^d^l^b^j^f^. (3YMYeEVeMV&ep9Bh%DDbpJĐZ,,-eA!PK2T{RmfZ,-#,zK<I'QhX8K222,NřɖKe2M\$.Y^Kv[>̶̰̲\ecgY`YdY,^oYbYfYaYiYeYmƲƲֲβ޲reee&v-,[mmϲ!#qUy.K"^R@H FFu$<OBҟ?D!TTZRGd !d5YKn#,'+J\C%r=Hn Dv$w;uVBvSir$3Dy"/'fy<Y^MծҦis\m6Ofi By<S-/6y*/G˓E,y<VG'[Qy"r<C&A[ y<D&)rt ,9INoi"yL^%3u{rIUQ+0Ai uX>Di*C3h&ͦ}i>G hZD�ZBR꧃h$,OCi Bhͥڵ6-j7ii7kzmvvvQAiw4OA]Q۩m6kwj[]V.m ˿,_Y]Q'=j<F$~uڢ>A$ڦ>NUULu:K}R>^W\:O=W BH=.VKuL=.WVW'ԫgԕ*9uzR=^>Q_PUUOשUשS׫/ԗ՗ՍݠިnRϨ-խYu& fvM-Vm6u'vN/_;QwSRUVޣVWU?<ayR|޲n9h9l9j<my$+d+bb)>c%s6g VK6}oVξa[VɾcCُlհY-X'lH zQe FK"#16V8%3kd6^RIe%5K6IɒHv*9ڤ06U gӤ6]d3(6Sf6[rX6Gcsx6Or-lI>XJdK$TJfˤߠlVHij[)UR[-ek,FʖrR'K%Ra\xHX!<,\-<"V Džk'5>ZIap_X' ppH(n7 GM1a!l [m &fYappJMx^! .F)~+)NKxI[xYGxE-*+Vᗄ3^u(LBI|E$ooʛ)%Vqɏʏȏˏ)>%EIRҔD%UIVO!).VRD+2e2H~Y>#*^~E~]~M> SZeR ߒ$#E~[2ZiT*1J2N LUf*ӕ4e2CJHT>'.,&"WEV+JRTZ\ebSؕpũD;;].n%[S*%_U i9|B>,P(eBeXY.%+[^ZNFA(X(EUb[[mhuZSJRd*E> |D>֪5jRT)CP\~Su:\)Sfe2JiPZI?SGjr2_YSV#UZRT-M룥kZ&TZ2<-_ۧ=Ii o^FWhZ:NS":NmZ1nbw^$`T{(0ALYEPMV&A.7D+*JmVUkô,}XmV(O+ B)~BP d B_HcXQ'4 a0QhF t0B &+FY1V5gW;MqivR;=odJl- lT6HziTn$?NYx(k#2O12rދ??J%g?Dz~ aBG!sY_8d|n= Y|o d| ;d{iy-tI{^5wjJaPE :XE?WniP-`7 Ct&Ey)gs ,a:N zNmB1dny3=Evh[3">M2_lV~Zek*ۯU_lV~Zek*ۯU_lU6<Kɑ-Fkw#چnC'_z0z +_"|͉P69EJ틮@~F�qg'Rǁ>&7@ߪ_toGzɠ h"jF-m07<}4̀0 gYh`K2]�ƈ[BϝWAy\#+ t-uh Az]vmMݽh |.m[Э;h'ntO/:.t/t(=~;t=,@jA2]jp}巼[Zkwf@_e]rM/IlG_qOܭx7;n؁{K~wI= zjz ~/{SI}tBa%cCcW2)hsX7Dyh' i~c~Vp;"XWЫ5{[ G֠ |v? BH||&N<yMcF79bx]mͰꪡC,P\Կ_vVfFjrR/fY5E6$& `Ql' ɾL>Kiy.=gNu?xLl󔠒 O~i?4xp"jfx*+\R;C|Cə耬@W^{oZI(>@I_N*Zo(wyM: ΆK<ρSvДtuojv m7nOoO󕷧G<=W^ўՌ.&|"RZ K}x-&8#z\to =h g7~TH~dmH->/_߲Qkx23@$=4eJL޶N+/mtc:V׊9p~k 01=۷=78x<| f54 iG-mU|^- {{=Cy(5yG EI8uz5sm7|Ӛ*liyoԯz:s.%<EjS %p˥.4b b{4iH?DC\&o?LeILj7 s ~/N-x6PbZy ^rSјq+ϓpY_ WrV$ع@#pW1ӎFz}|M>!F5 jZ2Qxyph@VB˪aUաÞ&_Mf~sqCL-5+*[}rskG` *Zf{n54jƵу33 >77!qtAɐMXqB~J8N``w#V?*}ցN3hu  A_X b0|yV77JQ;ov78,Hg.b 6is(T#r*R~KOG 0{u 60ݜ_L hm|hL#VJnk Nn7JpQ ,~ZmjoJ_8IWg[;ò)&/n{to07`_|pP[zЖʮ eD!yeD-hr9 nx_[RLG7'wQrQtP5 O}ߦ�'IZRu+ P|CP{R%ι rI;qbͽ 33LN޼٤]LZwˉ pbdXIH6Q(#GMsxlL!~@c11ec6jˤmw;_|(<ou{Qvo7۽va"Ia̗E$喒~ɾ i4/7а1o\OGt2W66OiL$Q̒$[Ä8J&)ppB͜H8䈋K-?}-Z~"ye&%;e눏3[= f0IZ>scx,Glxx^u _'aP2}%Vmat;_V:2t1d㟚Tg(.ї􍪨Q q>YTJN~>է:F9ƈcPYY(;Yd=v>מOoNPzzRDEBB} 8(HGR%IN0Tvb㒬؄ ZtJOEX_TRx@f,WpP(5Ym;/U͚r( H:h<diz!Uoӟ#yGlE8㠳A8~(g05{<~_g9IaCUX:\ 1Ϊ柼zͫ75õgtD*%wcM-׶}B|$3z射F?O qY1X9%;bW={df؇p3+r2/vFN `:O\؋1A[Mo㲉1dsؑdԻ:pq4*;_-7Mߜf|ބ~</p.4|v.}pii8s|_TDzFSu)q5Ȇakk YZv &Xc)ƬSYN v8=0lkkd|6''GO� y"`+[Wm[\}/eK_hWdyL7i&Q.@]3lda059\a5lu:blRW_ݥSi4v|; -I!3uC |V2;|3! bƤ.~S'&*!VXJ.&"|Oq.8G_+D*CbcQ\CFـ(Y="N`O?%X Vc'[l5v8?ˇKO`5ucznlqs`Ȇ\.v|A = L~U/+XشU޴3ح(8ejߝ?0ۇV# qNSrV_}jCy\:!h2b]Θ丄(yߗ;5Ɨa$lq/TCD""!" 762QW.}K_A 6$:w"?GS�o±>A~)Uz u glX Uf8B]a) 3u^4<SXBT7Dt]^ HTN5B}/^O p4XY"D!Bd"DOM$d(]`&] n 9ۋ3 YU :ƒ 7nL'ܘN1pXlށ sτ~uoIӑi!QܱքfNO^=78/ 6i?&+PW0`¸ Afv!xxc[7"8aEF68'KMs#+HL+vۻ;n}kKmGR&ܹ`Ӓ߱h]RLw{v؇ؼg ČEԍS83ar0c9,gS5\cq`"{XCr(^av}6BJ_/rmf7bާnڴ#5gw{teu+ RdīǍo1uh r,(q*GmYB̺sQsQȹ*\|,ô2;hhhh Y6G9$p[i / -y!\d(NfDOi3"'$'%xayxfC‚`wPL)<aK,ey<Z6 ;ۦ|"6j2hƈ0Kz]&kgEJ;`$顁 M58aA[UouQ \3 &檮(~l?_Ӥ/B`]:u(hÂQ+7j &˼Wh/G@pdKLki>%8oQzzEA [YBeFۆ,<h 8Q%oa$掚5o樼n>B")#crfϛݐpS[n'!* y/W8|@߼ G_;6v*("X_\\ं%yYahΥv[zs`:59xg\p_mtzwu̙n!=#`R~[Ng0I^qWIGq-wbW5=}=h00000xظU GF.�<4=a/R+v,}My0t2V,OEuˎ\zDžolh\7F `fT<\"7l8185'k8#gDcnB;8):*:*9=*Jt#�GQ݁sqss3$I<R ((г_ K`NFUv5#5!0 x1Ƴ L;QxbAQ8ÐL|R(ts >lM}!?j{݃S owbXVTlءbƚ*V@q1쑿E|2T>Fog Ӂ]~ }5luVzݼpRsȡN\dY`'Au^?ûA )h:"xXNle-Cg.ytꈾËVUMY\Noqtʧv74`VǗU&UNT`XRe~8_m93Ƭ}:2,ap9HwH-q!돀jcO{*?]<<J:ߑ6(AdӁţ\"=", eֽR/NJK(8zV^>bLrz=SjMUU-R +RW)m,/=Ҟ\6v ~>:g}iź}vjWҶ xMbu3sy<}K4(~-ۂ-VvڬU쀹l)WY"J%5٭;pWSz}y(3#͚R2x^sIزtU%z=ڮE'9-(3ʑz=5n}czbr8%".WߝE6q^ĵ+K #B(;(lCXنm++V*E).R<5 pR'rwSY OݩK-UV䞡v!GdžB]ڶK͝rR!הF WDhyغ,9ah ;SVM]җK Z:GOd/N^qz3x$Ř7Ѕ?Nx m|cX۠ތ rJg,<, ?g()T6 n=*R#)@%+%`|zlUR%TR .dQq=moo|^|BHfجpМVUrXuntۑU;Od#l|eX-WZ s2 s$u$/|>Skc\*Nf=cvQI UOFlL Os%{,/谾lqٸW5wop ꌴfW_<E8=>ΑUi'c'06MN{\nK GY#s(eCMP͉ku~"(3ʤkV94Otyk̓\.)/S2s!7h>I~$kDp.<?ggY,P4ygp#!3/=2,"ȋB:W5@ lHp~r;-%NHR,MNu \A Y0*+5%雝N̟x]mP7]]ӚsfGNз*;ar'(e5J]tϝ8.{GV/;i@1}Myѵ[׭i6y8ӿ:isRq1EgS{{3碫> bSpˑ^�k_P19X *;9,2V7zO]ZѽtV0 {Lύʪ)]]hs)䊇ngbT8sKT[?z1#/z77G#Xݩq Ţ_*7" 1~݁KG۪u}>ݰgrM.WFB\[�Ό" )VjX|t_-+i}q_A@pVf_A{@r!&"3qFJձB@!xVf<_Aa`%#"j3!勲 %G Q f4)ziJݥ]dL([]IpCfdzs^r3pXU{Zek}ԌYgD]^ןO%x!"%.+/xi\ololT7 H,Q=Z:�b`07_42ufmtY,2VPU;H7FCYijA4eg-N2"2d-%gjoTcˬ8nYU*SpŔ1#b-sSh\Aaޫ Oxzl!;?4p0a}C~ꦆ n!QKj?xQlYNu4;5$8ل%܇4P'urgXQ\ZcVT�)a>ȕDȲ͡N-^+(Zo1OJgUuQ5܃9ƚk/vM)ʟnغ֢Ix6ݵZM{ dCKdCK emi=+tm/fWJ#H:)|?RZm]}<ʔCJ c'˞Y?Ԗ* BJA{S^aҊ릖8ӆdjZGNpG \Te=.3LӇ%[=0^JezW6Hy0ӯ{$ *.Ӽq@1o7ͦ˷+5ɲ٢?'u]SV3ښ5bwF\1xy٫^9( ;e2w_w0LUfP>b_`2_y|XĹjuȍx3/x(_oI猫ȉ^N/ۿOy+?rL?%mԪQUi_/3sBAuvZxԘ T́Kt;clr S cKVgpj٣mRDtӗ/ՓЧd4_ o_d$*F!/ӐyZdV,LjyWہRjgTΜf+'t5<iYSqk^#&v|kDžC#cLY&%,fTx83ķ%BG!f,Z8;x>V5(kP qEM G;mHmH;\,fu: ~3:E!/k E*ubMRzAŲ=#.<2vL &֑U9*07\ۿ-3dƦ)$!;;1yHR4D1jt'}x`y6$7vqgц] 0𥿐?^i)6*T L ˻e^b˼ˋf{x+fPE/_ / zSJL4CtZӃxx^͇xtF:WaBIAIO] "69ݑq>YDvz]v'eU/ &Lǩ33FUGfDIvz8 i ֟/B&ed/Nd7Nq8% 8x@1Ku6#_uy6A_厄0l#lmQe˫N.ޞ3 n5mΈ3HP#k\oqI6.+; ⃒࣒OPЬ[4E!GW ]S-25'Zj1iu( +G&8LτHP{D!mbvzcHa֋B͝/.5L2+BwuƘͰB^IThDL2_45^hqcYn7@1Q8Ұ !R6smó0~M }@|UoNZOUۻsgP\yz%K9R19SpE;df ;S<q0Y8sVnW\~̰8UrM O*N >852Y:G@C%5[�W|Ѩ;߅\8JOpBR8ݟ .eg\#@5F V[7=i dМGoN&onNjv4"fO&Y]T,HptbxE&֙Ev*" pҧ]\H>D"ۛg/,HRPw ݯ/fH&QsF;2Wc#YѯKIW'\yx&q"=Fo3 AV}YPٙ3ܕ^ro3G=Qwjz<.Eqex2yٙ L0I1\y?"?u? 7SPBJy٥%YsfgU�=pTCt&9ʈŅG{#͂._iV iNҬfVIrIyWjʨ78d9]7i?Ļ=$]>E=t?W–J2KL#0~¢xo{<Fc О2 ~_#mOz2A% 1+td$gf:|/ >u4 =t}r'bV>2==gNUж[\%u9cf4Edh{v|ZZ60zg!]kB>1eqbN>NјoH]^af!4#J3f4B%>_O}\E7=ƓSƋK zb۝\v7*ց{vegH?Boypɢ^x /]b, ]c&uNT1f–s3#(iS,X^81v3Gڣl*;8 )͠ E {@KVqZ\\~8B+£{"y4/ ~Q!뢧ɵH G«5EO(_Ѽ`;5$`^Hyyj]FD8ܙzόGg`NdVsg?KUUyܬ"Gl#p=MQ0i[sVЍϐ<U$[|DX|d剷^W`rćCd OEtmv4 ;E yRS w4(BCF/RA@MTˈ+4Ƀ,!cg+#:?pFmՌo<= 1>+ohe7Cɋ̟n~M6YW|6x`AwV=0d+!6U$YUCgԯ;196GUx~3(jq]vSt\|ưen5&X3,Ibj"׺xoGӪL|MV8xۄ;WSQ)1"|2ԅiy?yk!a/`kxO(GWpst@.zTm6du}}U47 p?G"}D 6"@_H*R[mH" p=6븎N1 P0 c\j�7B?C 􀘀o!lF R<B ʁ{_h[pK_Esa -,Gt-l=2�i}/ ׭Cs. @[ȏ?G{Fh��F\h/)`4 t@>2_B{ҍ]z:q4A}w? *v"-qM` h�,5v"/+EA_Ct=YoBLz W`Ahƅ|4 s[ـ|JF BBIP6%0 :[ z_rcH{xL8DIR*JQymt=~;0Z+"@#`]^G7Ooh��?Їm ŒNMu zRV{M_}Z+hWG>[o34  ?4Ϡd#w�Y{?wy�duMFGO(A@z.tJ iɀ"ڊP9'Cm@C(k P+I`¹ЯkwCא둛 e56"7)DhgK;`92r�v>^݀Y8���-4-*3tj{\CU[vG}@A^�s1}\_8mA�/uhWBe{Ex Bn@EӂB׽7ㅮQb߃><_~>I[.Dđ]?|"g}VoA}=w hR/YtA-] ܿ i.r༇@G%pcأ\>XurQ {'dTMi45�1C| oES9&}-e DDwt#>qYseF)[LWP+F<8zև�F^P|vaGpX8["} gʢfML_]�b7Pl]7@qRX#W^ &p ˆI6t]8b7n9/Mp,8'4 ީd)9?UK_r�>6�@X\nv 4BDO/Fh�k|Z.~}(gPc 13HΰQ tl7.!O7. Ð, -`nfX(:x3�ntA&xtSJAp-nD;C-эPkQp* E~0Z0;x3L|^x {h? =7]XI�OKx,%~~Ct^r 2]% x O-"OTIoH%=s@V|P2z菃N?h,ҡO >ؿAxwi^Tm[qv'@ɫ`?GS� h zbTx 0L\h1d E.{%ә0c j rlLLfs>W8˹`T hG5I4%AG&_%|ꡭ'g8 j4\Kv[ԗB%r #pM=!Q{P'*'Fh�똁�ΠT <2 GU@( uT h&&�!X1\OP ~h}+9ddF4 ]uX~ɂC<C6Eg{h8c:rrssOO 5PmwW%2pp�n%?^t/\i�^l2Tm(?x[!�6xph_2h/] õ/��t^0v/x =�& w.]`=7q0qnʱ1x֞9yϼX125&(`+a<݄Da,̅cKn.'?|8Um G>D1B؊#p-4bNaz y/*jwKx@O=qlA Z3@ϗnA`v= nw<O?̽ @U s]eAta|o=8]6x}yۮc<wq9pBFaC\AeAB/5\KQ4=@ԀrP9'pQ- i: :5'tE8 : � ,I Ȁ#a1 \. {V=wx=' X�5:1 rW@ -ZWl yK2ꐓJf}U  Ջ!ʌ0=ywQDž\|Lh)c< <} bf_~ܣ]oOECvo27?&` 9$>9l0Vc$1'^s{@/?,>E?MV wE:mĀwgA<wn0?0?7H-U�Xz�c<OhLf=K_9Ag{=#|?,�N? !Orb!|Ӟxf'CF-7f_! A(R V)j鐧M~/D#%.S;ùo}s>Z 'Os9sm�*yw-}Xod0fؠuiאW+& G7躙ҵ0g#]/1�ل> 8m =:Q9pm G,sE\o~:k_nyj˽jey3�N�n{ԓɨAs4:źqܨo SFFmv`QHw#ܳ6cC548"~.w9 t]| BW@9\*�9 _ z:�7 ?Noxl N7t$ď;$b]r--p 2V4xӠØ?9 O >m*z'#>Bf~xgmC;/{\YiT(v@{cl nSMxbuk\_{> 1՟ݦלѭ~Ǚث(l@ m |F dlZJ[d)p 1a>}?y=1>jmB&BH`C/ A%H( dI !7 VA( 0 "`AA,ػyM6߽}yΙ39gSV7 4]�y,v)mx~,0h 17g|ܟϼߵy?Q>gP DlSynw~Ϙyqfׂce{o,/Cq.9EƳc 9ni;V9/0Sy*Teuy3c̯x�[ 4瘢u�u6 .W:j>Ey47ލ?U/E7B40>~i<҆w1Q5ڿ;J�uzjۿ$y0V>]Uv6�;K96] bY) 5"[3 e1SulMTf'sѸ'lsp=pO`*{> ks8!1q-D"ܪmQ?*m[up!Qӛ&67p c}՛px* :9J^)|"!E5h9MKb1ޡR1 ϴr?sHB?F_g}L5xsϜ3~>\9 {DGC͹<OƶŢul_Լ48(W~Qۍ<+m;=@moNh3;[U b8<c ό @:LC&B#sN?/ژf֫Cr'>1먪1WN+3D e1o:`HRsQ6}<$V"=x{nUaX(OokGs5:{L~iwϬM6XbΫ\js?hdpl5'T>nm/+n׈Q`")j)’&j^^]zt3\ta3ǽɢbcnXPqoe+nKѺ2(Qe_zO^qrI97^?{9n\Rqz9~ЋQ<l(Z 9h cGqlL 匹.s)R44ƈxOaTM=jq@j!JF+*ѱ .߄ƶfg㡕bӺnsh<c PQ׆V{D8rIjn^@oB_Zͷ@ά,==©U�j_s=^2-)kԆ/Z&"v>rjz~mV_ Oz\qGQQ[A<i뷞bm�1K�Vi%b۞0ǖ|\qٲg;Vy GW1m<Ŗ02 `Esl}vۯ{gxm<[aE)~Yiy,z6#ݓ[\{gmgsY:38Vg A|YGr{=CU>ꙧeG̿Q~7uoOY>>iERyOii] {7ӊa s\ c/f"TOgka LnH|t^/Y?ט]יTs}Ŕ_7dԅiotfvs`9Fre�/z*嗭akWJ;VwGoagxi?80| _OA03֋k G:61s 1׺Ulq$@ko;yj]xhP8-k94<oERk"*})r4R3g 3;؇+u5Zmq)j!L[uW6R?SXע/֊~k¬?`{OܳihǏai x_8(Z}N.! ~y퀈V#]OD1-\Cd{e=*ZƖhZ55 }eр6UXW4Sk3zҘb\"TG݈sV8M:&FQ1?6vl&ڻG(#Y'm=D,$q XožBmzs]`k5&\>0(Z1[:^/5Cpt=Z9nm[2Ds,8ew5,cK.X}Ӊ/y]`R#H A_[eW62�[OWBD1S~"1 w/cgWc/FjD;ףz.hDSPπ___E)vAsmأ MqCT}ƱiGD'[ȳ.BqN+"[:)jk]kc|^j} f{MlޮN Y\;VNNĹ pPS뛵" F*ƋE":OD5w=L?(2Ih_P^=b|E ɸ&oen%;N6k/³kF>;3睊>| oM X'kG QXC^ FT6>i5^Smwݖ*RkԹ*g'pP|FiO62y01(0P뛾苄z;|)O(sx6 qsQzچ8p^“f2O[iv%%ShM)p)6ӭMT:<I_L8mҚA+0't64(D}(,W�_N/+}&Lƾ&SMΙmd<QdX&46ifҤ*{|>$4TĸRWVL^AƳjyf+t7Q](QvEJ+ Q[_~3G&UĒ7EUo骁}!n-z?OGH]yU'l?5}j QjDvHԬQkmj1ʉSgi9u.-!/MGN4lQF;FMTf iǏ?Ue'B u 6@�!rǏ?~Ǐ?~Ǐ?~Ǐ?~Ǐ?~ǏRg}'B+!,baw Wܴz-f167Yf!l泙f.9lff&l䱙flfl&flưflFa306l es!l2dz6ظ٤f�46lǦ/>lRfs^lzIfӃMw6$&M6ײl:*6 ldӑM6\lڰiͦlZgӜM36M4aӘM#6 4`SM=6ql\l격&M lb&Mp65`&M`6AlΦ;d#L#l<lJٔ9?w6Y694b6'6?lc-o|+6_l>csͧl>a1؜`!llyͻla6#ly͛l`sA6956fWؼ%6{ټflvylcͳlvyv6l)b4<f B6<flg lelֱYa6ylgj6*6+ff9;v6-lR6Kp#9H{$=aGr#9H{$=aGr#9쑹l8H$?Gr#9H$?Gr#9H$?Gr#9H$?Gr#9H{$G;юhGr#9ڑHv$G;6e5uu!fF@ (u^d,ASj\9$:]!: 3IfӶ<JM'ɥiz$T)$$$$Hƒ!vH$9$Idd~C)uL $ד "q $@FJҟI_>$)$ בczCz$1)zLHwn$I+H҅dgNU$ $Wt$@kOrI[6t$h$-HI4#iJ҄ݘ!Itz$q.IXz~hZz(Hʌ ̚$5Hh[(2CHIh[ I�IuVAbףS!6=: X)B)I" ^QDR<9' 7_Z鐳z_(u4I1m;EI~"@=e~G-7$_S(%$m|B|DrC*rRH>УG %y2%ym#T0[&$HRIPk$'G |R/%y!MH^ y9TYJ yd;6= D#@<Mɓ$[H I6htM$i$l y$H<D m{~5$i(u/*: i]$I$v*yn%d$K%zD&zhHɍzH@c,! Hh$s􈑐ٴ,$3HIHӡsii$S)tTrD $I~cIЙG#HrH #&ɢJgvL:t$?䦣 $@'BRp/[BPz8yzd=|~3M_Ik$C$t!VRWa$0h\E\ t2!h[{+vT.fkV{K -H`I4!iLHSw!I:f}:f=:XERCKCR$Z fAlH$II8IMCJN` *H%(:I5JڨFV $^gKqp:GJσsOoWp3vbp ~BluW!c]_/3䝄~ >#ǂ'>nzz4xƮw;oǻ-lyoOr?:ׂǹ^ <Ƶ ^޽"vMs u4|P9<lێmې<8Tד\[ 6'&< l�}<}CNp! 88k5U`%~wxws-3`뎀\lt-6rdMp- " 1Sϝ_8y9sܳ3ݳ g,-Kv(wkyֳ0_vϗmE[ܹ酹n((W\{2"reNm1urCNqO=='8.a{l脑Q##r oHt)tg$ v_t44w~~S}]a/wτdw\ 312MLbɘM썱pvն4sFnˣZkYk5k:iԩ(fbTV"242.-oz]`\kኰpEHv28bP)NӒDqg+Ģ~yC!mLv-7u&A@W%%1KmUI)d(ZMp%^o6);)EReE߉iEeE9dV)*-ҋS2);DR:R&Q/5R$egMϟ_Y*2տVi*ɞ<̻^ <z-7Š�`恹` f`y`:)`2& `<Ƃ1`4F  @6C ``0 n  \z �A7D\ WΠ $+AGWv-hZV%hAs 4M@c4 @}P XjhP DHAMPP! @�j^ @yJA 8΁?w34('E#{|_/s8 >G}ppoC x�W~^/E y ;3`;tSI l(xZ0x<�5`5 V p; n`)X"Fv]$Q%D_K/Q%D_K/Q%h$�6@ h$�6@ h$�6@ h$�6@ h$�6@ h$�6@ h$�6@ h$�6@ _K}/Q%Dݗu_K}n2'_S+;�TQ endstream endobj 12 0 obj <</Length1 58680/Length 21587/Filter/FlateDecode>>stream x}w|TE3sw l*IHHO!B 5tP**ҋDECQA˃>VDEDET]H"~fܙ3gN$�l<z4wy '8zש A�qG?~RGM6rDv1tS�t}o v`8F0ӿ44jS XF<.B7~WOs�` ĸo20p70?ƙpр3"MһL>H}rY+G#:(:2et^ѕ}Eψ}0_1bu$82َBG1qcccc9& &$(&3c̀{bV<KbyOlPlXltlrlJl؁C댉3b<ēx-7>0>4ߎ'YR'5 y:+t!扳qcd$&{:ރYD8z,Cm;{f3 zvCFs%8q6LGg11ךMn1sc\ΦAlg6UC8uf)9Up6!O;aF2~HvՀz(9y~: \S0vC"~xoNVzN:?>d2kN:g֝Yz3ߋO^s+N/=]y ubඃít/eQjGZWY7N-Pr%h#ڷ:6lsg;nYoo? = j֥֯T`'0w7JCt}Ї*1"֔iEy#@?_E+E{2֜#!f$B*C!A1AKhzC#N�S`*̢8:Ss|$_)LRo4R%&J3%i_: Koӻ:ѷt}RuһtkI֊N~f]2:4Iё,5d#(54(ȀƐ mPt :fFmp;P!=,QI%EI$EK)FrJR4HH3Ylit7+vJi@z lT vI�%!H R8I+ŁS8)DpH$ud+4AҤ>H Y@ȑC4򥡐' i84nhi 4Asi<Hw@ iJwB+iBki4 ʥE ]ûIBOi>B?i1�i)TI`J@9Jpi-vi/8%CzK$ ̐L-w`tLZ͗˟ɟ|_%O7wiZ^>gsuyG^Wcq"BOʗ7/+||UƟ𳲋?s<_ |8q|3Ws+m|+W6|Nn绸|7{?>_Ae !|?xK*Jv!5(:懸1 N~x<'<J&=ʓ;<x 4~7t!'xc, 7&?_lÿ<O|5/ /xS /f4/[FYF[XZYi`222222222222reB"bR2r J}aj#Gk뭏Y>!&]>ItS֍֧Xn>g}޺Eku 'q$B[ۭ۬;;5=ֽ}֗lvNζ.n^ [mtAULdkBHQH 4 ,\y$w?h_rs}}}}}}}}!BW?j_k_g_o (y<NoʾLy'ɴohooowˋ{/_f?h?dmQ;ۏ?l3_ۿg~~ֶŶն<N֐GIcRDIgr7 $dGI!iBI3RBR҂$Hk҆%Iґt"MI;r'Bd9O&dLidE{Ƚ>2O Ed!YLdy<LedYJV۞=g[g[o{̶ݶ NF'mlOv-sVy}Y߮_w.lննgmlO6jl/=j[K'>yl##]d+y!Sd#yl"ϑ:&[NRC% OArA$oQrC%T:44C4&$ڐ4NlCsi>- -Mi1-i ԏ6hGi K#i&_EN2~\?ЏoL!;g{l<5ykSFvV{FA{V;mki?jkO ڋ/ZvQۢm.i۴ߴmvYۥ]jn횶Gsi{}.iDۯSδWuYk-U;۴úkڛ[cjAz/=D;j 0}Gh'zo=ZTwh1zԾ㴯x}'j$O_/__|P7?R3oe"o%ޚy[/y;~Wy~w.މBxWn P8(bW**h󾊝S|xŗPx*|+A|̇*!|ʇ+ %TmJ]䣔(>ZcqJ,CqJS~'*I|'+ %OUR4%OWJ:dYJc>[ɄWaL^s,~*9%߫|>O)BR4UfJ `w'DMbOl#žfS3l{Mg ɞgf6ݬe[=l+mcl泝~-`5=l/[%̖l9;VWJ[avaoG؛Qveoum&ֳq{SۨrVS;َ޳c}ۻ@u:XR.~TGc1(uo_m.~]]Vgws{չ<G P W T`u\]T+p5JTjQשյjI}A}^VS_T7[T5Cmfijc5]RpuzzէmV[P>jsۧ/m}az:ENS'StK%*fTTYݩQk}.u[}ISjS5_-R bMP]*Gm>hk%ju:AީβlvvvM[-ՖE|u@ SjR[RUQTPVWO&Na!mC}YݎTjH[cqxN}~>QO֧S7ק<Ng3ioڇgt�Ϧ:M {hg^zI^WUzI0ʘ%g 0+1iLgv|g<}~@@P_/K]Q_/W+UCj} I*mY `i1b9e,|̗(mXOVzJ֟ `}Xo֗cY1:ZVigO@A>} 3\Czdnѱ@ڙ]sӏ߯4GR 2Hi+|RRFRk)_j؄(#?CS/L0}6FGSﳡ@O|>fw7|Co9IO]Je1>.LV~gw֞bY"::w#һ{ юk:լLGБ(zK?3y\p5r8+a=гɒF:|>Y!zƠp3L~HiZۺnHItSN9eSN9eSN9eSN9eS)(O_^˕sQxv8�G_d*^ W$@(Ho~\sѠ诅�]Z91nƹy16֗seL\&DlqAYzѵpX0cj<LFv@ğH`܏RXaU< a <\ 0י`<OFx6^1$li}f<uaF{E-2w|+lz/K ;= %xWu?mx p&[w;ʿY_.#C>O9|'Of w|'t'u}[|6bp ~CHao~Ǵ.ceɊ)QJ].eK9RT*uTyb ?LB>W|#gnbA?&:3}[m1kX~v-MP|97{~O7:< `(,yˤ&Oa*Znzq_aq]7kU!꼉=+wj5;0ϔLZ~){K.+#_0.1G/Q,\qÒ?0~ ⟋8pc,d.0P*J(8mh\X%Ip<QIJhi{A"XKY>~8O�)p0j<)SbH!gU?k a,Jf1Qp ;9!b)99;IJ2,)[I5R3ɉ9Ra 9^*’RK )UP,'q?(?풌U&cc*?&&oп_>++ztֵKN;oW޶MV-Z6/iVܴIaA~^nNzԤ8glthڬˌ R[:[U9YM4vČ2ժnjGYQf VffR-eNGԻK9+x3̄lh:Q-U9ZV8bA˪2ojkl1Ԗ [l*FUU'9m%3BZn!`gi|ˁC;whYSiA jޢZ1rc[R/xUhCCry~)β䩧BqCSe-SY? UNǂ_<Cݜ+u2a786!/&F做]*i %)դJ%%כW9cR8"z GZ*RQM !C8t^Q]RܒV$F 2tNwt+`CnfOP5Ӫ:e傪2�E_.!rK#|[dCGup \ * 9QS]RtV N?c~lsW[Y\8*H8VYZ\fRhiB o54EQDEmc*c?3pϘjK|1ˡk%;Z-5:ʞzz8"<ݘYbCQt"ts6׷]7g.+pI:)wy;U 1XMȃR½j[6z ,vΝ;'| ?f+nV_Gkكl))Y0eՈBчnEXV*>vKRQnqJl)w]m[DZTVnò3\)=uńŬ`Y 3=F3͓`p qz1w^'~pBG Qܶt 3rĂJ JՒxDVms-V"o"_A@2iA2TKnVKGat9~2Y/wE5e_Z Tavكq@ Vo;!Vi[mF+`Gl4l?ճ++SG+FV[ m>LsoV*9ďUh8N,\@j3 Y-Km(YPpO!ixUU[aWFbKJe{fj~۷Z%"Rڊy8TQK tuNF"m`qv w{s!#TOݹtkSbj:r ốrA>)i`Ey7,3=FN%zh='tڑl)jn#A�,h[n)g$>.߸.R2tf}Y?;Q)s9_@;QΝH^^nnVVf1nDvDBNv1+YQĬibeKډG&:Fi@vIzd309[m%14X[bS�ά>de^>;cDZ hv(>6g.Y#6n (]_b7.@C[P[EmZ^Cf!  qq!rd+HE%%P=CKѢ5SMCڬY3t@C6%? 9)8AAR<_AA \Y3*Ŋ4"4FS\<ɽ4!Sad)87!#&9]a))�2,I|)F k$S]b.{N6/HT 8tҪ8˦Nȇh 5Բ3 k4ekviڶb8fbRp;s]0d?E;fe-cblJ@WػEԪ6!ҪC[V-6=/N-M03ZϖF/Ii2pynk匊 S"`gTPĭ9#3E8p/[-Iaz8&;Rb,5R֔.l+~} L}ffΘw[mmΜ14ƤI)c2rODmD"PsM)kQ0_Ikn 'QI1Jd|#е<(PO EH~!A+SB8nhq8 Y(^NvRAODxjHn5m%9�<==,uܜ{܌yvP;]zWr܂!ʹ3T>=ʦQ&m\\tQ3$*툉`M|/.Owi{V!v0q;YԲÄIRJ@ጋOMv9 \b%j&zw Cb|HQzE@z|6ک%km%/=ud?nyTQa%J-JtRCg|mo8QVΉtQ%# bM?I5R]!VŞ%!]n1C82-#"O&VzIݫ#!QTNHLH2U5ȯy݈olvB|Z*gwMj:,uQFPcB]kw䞽+-jZTBP5'P4{h4FZjHvL FBBl`mƴmX#V[#uQb@{ @,㟝h-kfW$$T-Gщ )=m%ᡙG/6;ˢB,G~V54):o ;Z&ڢ֬ei cs]KjQ1``rTn9}C<eq)<[~%_dTÙ_Q_|F~XdK?CZ!!(@ϥ *B9w}]6 ٔ rbF챴%8dB@YثtaQ bw4on!eGospfAP֧sN*KVQ\ڢ}P@`6ךtGlGdfYFr^^NbIP41Cȁ;RyGD%ehڤ厽R4@x? ǭApS7T?gD$74)Lm>sAj Wf<)$uÓڗ4UlghTFm =҉k痕٦˖/D hHfbҚb56OOPj,MlVp{c7c#pZVWK 4ؽKzwiK z4M f>Hl$o�G#w^,2/9ܞ[o6Gi%Y~I /[]뜗ؼWUUJ9] rMvPwKŝ 38k Y^buiQ40Й^C$O<0Pp_^;*^s%rTr(ϼ[ sBP/ޙCR0 JvyE f/c씭i6ZIqU2W0ɿ5+Tw<4|n!i]}RSlZhuVW^ҺO҃dy2z(d2j?$_ۢ6%m n[҄ACFJֱu M۴Y%qd8Lv`3aSzr{/-wQBSzX(^/MNney͐`ZBejhGzl Z4{a_:fɌrjrt4|1}u n\yxl\t�WbqJ{a}ţpB=R|q<"3%IP#.>2`p=SdeSJ亖ڼDPoX8iݴKȈQԴjrDvD09mtY,Dr+Q:$ѐFCj$DdN ;y]U*>(trsoP~=·9 {6RoTSuYJ6@ҵH"}id 0~~q+"bgGgަ9*7̉_MsSl~bPN-Q%hM4{ꭞoqU9Py6j$40J ʝ l׈G%j/8H#aiml ~2(^kO6 I|'ĥY[ɕ.Ƃpm8]ֿ(ܢ|LFBr}{Onͮe4 lQP??GR�p[] nO*訨dFZS.k>pM焹%\PWM<Q^y(DФ”9Qo7(E,ތ#YѺWSSђǩ)<wzXSBtY&?VV$V=my~}:سf@I40yEALd!'}祄:t,<r'.#JÜiI=;5%2ToۈȠV# {E֕#Z ( Xj1^HZHzavQ2ͤ3l>VYζy)qm [up aj5'Pf  ,-g0 GJ[G{k yc#n 4Ϊ#r,'uiVV>À¿%Xr~Bg  >ytz@(o "ح5[sN8n/*^Mqo�ݛ>6 |Pƍ_bEo6/50?Ͻ=<dN o<-4Wആkk ^**crr5=G CBݎaJÔ =w*EOܱkGbZ5$ ^fщ&#|]adH5uwдu25#}#]b}VKcZ7I;j@lwˁ}!U`J=$EG@d8NѺP[VCbۆ7gB.ADC6_I`1Zb;:G[ݻ"Bn9}^JP%Ů>RDv(HV0.5Fw6YY'$wrG;Q^3=Bi0ZnnY]_u ihNxȤ(�MwfHsdhY8v^-34Bfcs;5InиWy+7,ݦIZz3 ?ahtc S-vkDll_hdԄž[O퓥&o@a[eԔRy5%%#/$/2J5/Ú Jbjl2=*_ٟOwr7 >|urBrhlEVk\>DiQߞd}WI?EE$IU HZ}5An"5KBreܿM{LVj(4.lk jh\"g+Qmvvo0xΊ2?ZZ&u 9 F0ZlHتm6 *c<[VѤ̷1ލٺI\byI7{NYljڰ?S+4_}xڢ}@7Hm]۶( Hkjui7R;�ccgStc Pu Uhb"wP4O.46XYF !Z #z"c~$7FcyV9t~CO8L(.&hC�3B6" m7%XxJs8Tlq%A5"@ 2 v*/6`۠B.@C't $O?!8�͈/_ IvG4GtC ELP XoA"? 5h T&x&t8x#F __v`~ ~0U ǧ$ F"&"͆2RA> ƌ#Fy4D*]lX�o<"0GA2kś(} �7̶;)=ndQηߍrv/bW9;z_ Vgn%J/oIr(~7 CaoDbb(b4nQQD8jx@i@Hc<ߪsƗxDoc (&L_#>@0~B\@"-.`lC'e_^5,@$p=@Z:`| lA zB7<`,} :`-9 I1]_G~ETX"c%a4 Y,? CkWӥU` d "C{1_;IsQD<b=R/ob(~"2*3v>шf4ӭc̼Si #qf3d=I3fIm *b DK#}von�\k!@Fǰ rbER+ cf6qk<a#v~W ˭]E5QWnfIBorЧ|"l]ytDSuƔrf?!zU^CŭK֨RM2գ zu/Ny/a_e_Cf4>/(Ϣ~E _&ָC2 }I9'ȏ $d =e_בIW&<a\akPk݆ @04EGw0T~Z͵d/\%q1<GruH&M i(0hqGmۑ?kFa{vl1v* :*8{굽pOA`{̓qr% 0 +`hD'!+o`X. 9 ވ@H;)H#c{U#/xq Y0O`SW!2m4B)P?7  X0()@[Aۍ߇g'!o =^  � L4u`-ףn͸葹x~ECec$0~aPbVfC:F9*ݲu0Ve7=~Ozڋ:|9TIA OЉ2.h0UA̚cO<@^])@GqftG# 0JC afsM΁ĉ~L5dZD D@L5ڇx1Uӌ� F A@D)t f*Ы5f�M'!bXx`.okL$3WjdJ 'L2NaQX>zX,�O~0㩈(Oӻᴌ_`id 0o=_ۉb@V6ò_P^x3ȎA׃?T O斞<rhG>ǵqxUGh˖@ +5aV~-LwCqc76_! ]|x q?G?D1D1]e=AtAh0_%oOpa߃_{|;�O3CNGAFa;V5L&` s)!kqR&'޻<9 ðџlG6sa)ko019e|EN`wq1鰱ƐqƧd]ƿmhB<[$&<u7 @<10|:LSQC@}6!.C{kX>4_ T[8U(̄Ry)^ e^@z `ك{(vc= 7# aKl3}p-CC`"%Ym, 0 $I<VF` )9uR@3D`q5A:3n9g<f fxݿD=U` _ahxÛWKc'kEiCf|ç1 5fޕ?r<aWz|.B6xi_uh#ή c|!u¥Z +7L@^psxExK|w�_ Cr�zp{}І>uZkl, h�6Nmz;l'Zt8Hf6A.b8f M'Bc|wz2�NG&mYȤ$>s4PGS PxC"ɐtD1OB|D6!%#ZK?ބmjc-s!Kub%'iS.rѮSnmE\'pGl X@:&}. p,Y2F:A+Ac2p|ķ0Ox.>P(oZz4^:&"2^;`yhoqa~ ݂c1@vz_L+{?c:>+56OGŸ,QI+~Ȓ?IW B2�ҤU/*üD{0Na~8X(RWEBMzŨAEsMT "гF%)I=Ɉ|]r<o( p(h!W6"6y0:` FSN@ `C GrQl۠di q[ѿ%y<s8op[WP ϡ% (Gnfà^@_h5>Ÿ[)Q8oϾwB?8vMD[6e -1^ӇG;~yN[X62mT#m؃E? }"Y[>vĘ cU{ 8 wЕF/D@{ d c"#[mmutq΃&/}q ٟWW%[<wֺGx}`ȕ '^XRsWP^ ])ȋ woȃp.w8-y2ڪ9lҲ�Xgx|y[_K2Y}HsQߝ7@2Ρo9،t ǽ#{p/^3+:>)~kgDŽ)5mֶ-簞6޳>vo`hc*lq}>O| X-9ߩ0=+ \A R*l}6wmm0]q!p챛.!{}nLFD|]4G wH0Fϝ_1:#M_|L@l?Qey|9G֙q'9:؊F4DT:õ:gg_xCfalq6D"%HG'γ)9獏hGW̾-Dc8(:h5`!50J{hH&C_N1RĶE†hEN vch.pWn[\,@s/, X(/~"ԓrh[wڛ6<ywW=gI[<f7ۮƳb׵c;@qxsWPp8 ؾPΧc }ͫ't1f4\F`(ͳ(b?o-,@;#qc54asԘ '߰ÍpsG} l9VylLw'"?_5U|΋NĚ?}OVXT 4e8Zk~;}8gCI&\EIq88%y2!=߽y1nOwo7ʝʱcG_1>Q;ԩc<8E{o=a%y53=#O:ʂ2 mxq<:x);:B ^F݇r8C \ {Δ<:"Ӕ#PCS�i㎘xħ?*pЛ}KTʨ΃Jq(>hC(9D~FdD_30ԿZxUnENWP.uGxqA"sbDPtb //>#淨^ȂBzH4ȓ9m2YA(! ]ܗ|6ަ'Q_6 y+tze^zݏJ^n5ihL{ D0쁶}h5Yao:a={1gwM  @3ӯNGջW/D[PӦ-|k_mԯ\w(wORm0A܁JSsea:Ӽ$OCOq̄SXF߃]UȖ@;'7'adq3y՘G C7Ҍ;rW7vM?͜ R6Vӓa 6ؘNB0;:AdۑZp/<(mP=:j*Y#G}X2cn;6sF<{qDWsH!!cQ%w^EܧӤ w;L%i&6ErbAK ~5WXGwa0  K3`.=!G`$yi0Ovq-Kb;~GUo.{n{HsAv(),Fc7d4=p}F a, ,rNq.;s_ z^X_a _PUoq 8_'ߌ7í7PgWhF;L7`6b>YjEp_C"G$vc % Vbtuk"8o!>'rָ).}zĝzm�\{T&c__oxryf6^?$dyv!ރ50bg(#QQ˨F? uV)轠] nqe('wvtsaKv}wa2m}ePCNCc%ڶUa>0Fr7&l!}lg#20JD']Hwײ "#~x7WDaXik ]_+>U\/ڵɈ0؏ItbM b0UOvOZ_= Q i:HbALxM#$膘*W~+DY w!*VlkvD*e̓YEmמFx&47yY9bW")iC)s}guMGtVvOM_W7:vn  WIqb.bmm_R*ďidHĈPNfPzyͽq;on\C={ Aϻ1LD "|⋶!n"!w3q&!d.=aw op'- [aCkA0,0,=Ue{GƟ+i}\îJוc1^#*<']y=} #GWeʿ<xJ}ۃgOԎײ'D G<=�7o J}{`bS`{߇0|w ytG01=Ldd& wyȕ+H]_wS^K9*o ͻ({2ݠ`0u}  ;W 6~?Dp@2V(N%-�>ɦ"A^_$=oڡol!A01 M;(wp~vڣٕqSN s 2Ż<&IˬD4Z ;z޸c<{;=e|WiH&;}>o|' a0^^ؽ8*ecplPvW|C=%! GXϢyR,_ MY#l;qf~06˝`<\&/3ڊBw[Mf}|+Bt8;7eskqq<vxW!P;P>H qN�嫈ٰw!f>:>}pS`p\ HOH^tog}յ'ƧxfoZc%sϘz2La[[%`c`덲U챝V~\HPBLe5$H(6x텖(++e$Kĵ(*.@y2|+oyxYW /30.1^r7.)~p78F\{Oy7A^jR'i_1u޴%"!vR;DR&<2+!D9i<l|,"[clS277)~67UkM UXD}GU.S;1=LzRhK *jV@9CQ@QjKDJU(EZ\PQT�@A<f7,;o?dNfITs"?<M<Èooh'~c1,cF ~0:Z‹jh1 QY7RtE_kfǔ]- cj$*XtP}&2MهNl}k!6^o6[͓Z=2"au}?q$~d%Zɶ.LT3tZkQv9,GZg9wf}9.?[׬ؿY/z5><q #Uҳb{&D5Fez ^w!F..vu _ eOuE hs(Oc(^JT52nuoPuYrTiny'SCF}+cm~Md{UMqűVShe,j]/鲺'u^JROtZO|Puz8> JΔ}J~Zi[)=ן&u‘T^~!嗶gMg"PK%T|UIt_5*ؾP_+%VZkQj"O~I(OU͕u:6uw~'I:3VzP۷;ͺON˯rZgzc/]]|x#,n֑ 7lo_÷oWIGXKmqdߥ<ҫV~ۚz #׬WV|dh?Wnoif+hhd10R2|#0&XG9=ljP:A\p^Ib cz(hh  C`fc>`l=xށa lMFx 6^u^EX Fx#+MG`9, buz:n@gȏ[RJeH:,?쇭 [`3 +ؖdx ބa92<!x\dnf&e0.Kr`8m0Ãnb}(2Cj �Ȁ&iܐ ) I%ЮbV2u-\h9!q)uLZX/3/R6xvqpatL6)d@H4h &kaAdswv>/rV*X / 1X�|r̄ fgdIp'\ ~p0·QН B #! X�m Ў;w}=5|_9|Sv'u<8:@{hm8$2 BF[&ro`| _9D_&1zx;l[b ,'a6XŊgfTa \1`e^.Ѱ΀B p @O'Ip p"�h�fބ40f0 9A8�O4q�\l[׸BϏꇔ=;=gzY^T*2i\-SATը%IZjZWQ5_=%T!P>uIKݩthyiᎄ<V1X|8ؤn<Gv\ DLipVBvnyp™P�gA4 r yPDzl2 uk4߹{گU^#@mS[:zsYB=4Sּ}cnj1p1\B�FH8AW!ЉBg t_i5NW% ҙ:H,56-6XlrXc(̇G^Ln#`8|8P\6@�A^�6(vt+@X TMiXիSkR}>WO.zC6Z^QZU?Rȓ<s8"ln yō콩p\0 p5\JD(2Ja\x>ک�@8Nܐ ) I<"%B4=:"wYRoM:JwfFRv%u;nxnsCa}}ҞRXa_*zTUXI9⚊@ŶN L&gLv%^]8ɾ*0Nd&_YK h8߿ߪ OQP.o#g'L,,ev\Y벒2}eWf,+-sieeDV).hU++.(`&ؗ^fl+ѲVj UbTY%_:ޕpn8{l`}w}Q`}{w={=<p}w=,0lyKl;Pb}:>'Pd- Ņ xI[ڲ徖qI#sKs]sZ-pM1S->ɪʚ$+=a%WJ*\|iҶii.w{{㖸%+SHHjS#Vc_K;WIONO95_UbR] |)/yD57%P71%_BN,Vi(r,̦=2xS?,-WT0<Q֚6#}4ư4YjN+(?囦M3z\S;R'|a0rf /OuDF1Y'F.XnDVr}u"K"w{B{_41 XD endstream endobj 13 0 obj <</Producer(Mac OS X 10.9.5 Quartz PDFContext; modified using iText 5.3.4 2000-2012 1T3XT BVBA \(AGPL-version\))/Creator(Pages)/Title(Untitled)/Keywords()/Subject()/ModDate(D:20150609170425+02'00')/AAPL:Keywords[()]/Author(Ruben Verborgh)/CreationDate(D:20150609150023Z00'00')>> endobj 14 0 obj <</Length 10/Filter/FlateDecode>>stream x+���| endstream endobj 15 0 obj <</Length 36/Filter/FlateDecode>>stream xS**T0T0�Bi�y8# endstream endobj 16 0 obj <</Parent 17 0 R/Contents 18 0 R/Type/Page/Resources 19 0 R/MediaBox[0 0 595 842]>> endobj 17 0 obj <</Type/Pages/MediaBox[0 0 595 842]/Count 2/Kids[20 0 R 16 0 R]>> endobj 18 0 obj <</Length 4155/Filter/FlateDecode>>stream x˖]9ꢫo@K 9dž44X<([?2#tMRed׌MYݺܮz+ߖ?}pllǽ)u~1|ۮWk!˗IzYVݢ\oͮ}Xm/를+/MXCWv""h|y/].߿*%ZW/ՋE!eEN^_G-77_/#9ϛ=}kL7PEo`HnAnH¬O;0 ʤS#@H\*; J17jֱ?W_6\OzW7KXn=ߦ#jTBJɠ\-H) OFbh3Oj歟jox?^ɺɘc馚 ҭof'yWd-:o zN+^d(hNykAO31$ȳ$I1V)#vQ ex~2u,rt/.a\v"7C}1.0n)mj?ZfᕘRQs\jTjmb5t$= p^m@WmTY-XPgZX"XClֱ2av2p1R%6] ϱEC, y:L5XYu<$}yiG{q~QT hfXmb:uuy *%go@:$eKE]O@~/棋tUBz;TrjWxĨ i^Ӂ~RVksma[9KyCx3D4F"Td(F(y &%QA| 8] fEMUjo<yDq"!Ɖ6g<VtT5-=7eZ3WDyCq[pReWz[etfx1e Qgo$`/,4=5@IgzlpM; <9VZ_y4 GEK'@Md<sk<2Ual#^1 >Rk]=|=߅v4>A1{_]nCu V'zg{;RZmaQOp")c)<݊JN㼈<2,^H"ζ!;Tmz$pHtsJRdv9IMgWUr ҘťB>J3zAW©R,Pi9'pRT{L8Vu5h84[AGQqlլc3Y4'}I*%FfKI%3NjAx}PXWQutϓ rtw040ZXJ4ghmpDw 2̲eݳc&`<6ӄdZ jmO0U˳}=@RMm}XӋZ9"r3Z岐jtqiLO cΊℱJAGpua] yv QL<Ag$fYb,}lټB:49By?Ip!'r K1  CgrXl!Gp'&sb6'>#:110) qkԴqDdPzZukh> D>6|> ~m<-Xz gV)j$͈쭽yU|"VLjdi x)�ni|<e߁e0:H4"xo~~Lt1ط! Q`%3^{E Y <F{|7cOp*P _QPyB7]qUxйb%aI |HGoąyelԚ&˲mF>\R̊bpP1hz GQ*Z=Q' 53/x2Rd10Jı NvEd.CY)=}?pwOzM/>U|"Jf c!wꚼ#J,FՌfj-θ,k|!sN^P҈rCn' tƯ.)Mf)CcM,'=4T%L!ms;5ͭ++쵭c՝,>gӋr)ۦsA.H7([ Nбt7as/gibQ}oP>aPl͡z6GLo׀ʐ"CQe5"LĴpoV0s\m=)`h뫥l/jn##l=0TOo>{̙ =Q6v6 }9.h2nBСZؾGVB%>28#)@ө0}#ad_ݙ9<Vp0qFؿd [!g`~Td**Ԇy/ΥL~3eY=4pskOWW&zr0F=C XlD'\GDZ;ؽh}ݧ僌OĠ(E>!H5D(~GfNab1* G LØ?*׎u[q _{S  BN`hle۴1*q4>� ArfW?@e@oQR鑟<`1;mr% Oe`<ڍruXe}Jh?RF ;:FQOT9[S\p cA6S^crK/ޱ&]! 9`ˊ`0b:WjYǺ�ڎ>44r\,'L?>5`&!"ۅm63־`< QT_\$fx|XTdlHGy,; fV4@@ȃ�_KLd͖ b?v^#j"qԐMp8]KM'*SEKO"u 1%,SX4tMVRFY"R\쬏-Ü"UDj�1dzuMIF=dXWaiE&$ͮш5B;K06,X DXJOd>3rє,Ut�Nphj?(Ώ$9r!'(x,}3uӠ~vrȯuNCbHξ#yNwwW.ډa+[%&{Vaԓa)0$|GŸX7*FΪ R{'}JF W[U}0 fo'`"U!.0 7kkg-֟:@ >#Oʉf-mۏߕnXڕx=1e3YbZT/ۏ03-Ovqt)YH|a3-_fVst<IH;D ׉6X<pg6R#ԫ& chcHɮD&L:fa-)FcTb 2YĠOs kl-fc ɂ^^+:}䣥v'w81ŋkMJͣ$>N! *K:G`퐮4Y>ߢAdK2QCxhC@ܸŊKS ?A'pm -YL'yw!%]--L/-C!'~&|nUD,DPxl!Dk̷Z㺞Md{0 at\*F栅K7>'KT`0>SC>K?Ah}o0q<@gȍ#R[纒\<C@ȝsMıu%%4#;BZOMBS+NȲ9 `>Tym I:0|m0PMCP>VY"{a^Y&[mv{֮IjB7FFICk n9vwvk~&Y兑F]*8dĨᒉ)ADѯlH endstream endobj 19 0 obj <</ProcSet[/PDF/Text]/ColorSpace<</Cs1 21 0 R/Cs2 22 0 R>>/Font<</TT2 23 0 R/TT1 24 0 R/TT4 25 0 R/TT3 26 0 R>>>> endobj 21 0 obj [/ICCBased 27 0 R] endobj 24 0 obj <</LastChar 119/BaseFont/YPPHPH+Helvetica-Bold/Type/Font/Encoding/MacRomanEncoding/Subtype/TrueType/Widths[278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 722 0 722 722 0 611 0 0 278 0 0 611 0 722 0 0 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 0 556 278 889 611 611 611 0 389 556 333 611 0 778]/FirstChar 32/FontDescriptor 28 0 R>> endobj 23 0 obj <</LastChar 33/BaseFont/MYUQSS+Helvetica-Bold/Type/Font/Subtype/TrueType/Widths[278]/FirstChar 33/ToUnicode 29 0 R/FontDescriptor 30 0 R>> endobj 22 0 obj [/ICCBased 31 0 R] endobj 26 0 obj <</LastChar 222/BaseFont/PIPWRM+Helvetica/Type/Font/Encoding/MacRomanEncoding/Subtype/TrueType/Widths[278 0 0 0 0 0 0 0 333 333 0 0 278 333 278 0 556 0 0 556 0 556 0 0 0 556 0 0 0 0 0 0 0 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 0 0 611 0 0 0 0 0 0 556 556 500 556 556 278 556 556 222 0 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 0 0 0 0 0 0 0 0 500]/FirstChar 32/FontDescriptor 32 0 R>> endobj 25 0 obj <</LastChar 33/BaseFont/QVGROK+Helvetica/Type/Font/Subtype/TrueType/Widths[278]/FirstChar 33/ToUnicode 33 0 R/FontDescriptor 34 0 R>> endobj 31 0 obj <</Alternate/DeviceGray/Length 3317/N 1/Filter/FlateDecode>>stream xWTS[@ W)#̀tDJ 6bH Ć.łeEE]l+kłŊe-tQPł W5rp矿�,R�H2v2+s|frh�<W$e%&A )׿WBP^3_Pă\( �@�@�h܄tr)Cl.kd`H2qKlnAHjb++E)!@ @xHC|_* q �"?YT!/* qG05b(C%S _Kȱ8W3eBȓ=d gH!~.sRU+*N!6|I03yܘD!M fU*O$d9["'tA\!(R3raj4{@֗RrD(qB,C R`L2E2;˕E!H"J;A:P¿< ݀+Q.878ؐK r (2@"\-9W T|8g\"S{etrTRW0W!WڧNRZ%&8 GLHd>FIUGhb;aigӀ+Uu߉8!U (ZJޭj\fpJ$q&)-Vư\6EĻt`oU䋠 UzouIvw b}[aS9ح|NiU2}e=}h `oNR/DIws/yPeSfLIXɂ+W -2W( H(w%굤L|UҞ fj6()D{hQudT:lH ?W܍|y;<Vb#X3ւ`'f%ڍϾ>8}2S> Dõ~f>O9!!?1oS,Rם@Ut ݅Cg |amqtMwGG|ǧ!"MeB+?Uɔa#D2iDh44S/T5th ƕeU!0ѽ`B&(s^s:s`GK� aØrcC8Uźp5G$;#Nue!GQA$Q.`/�^(-rr L bz¯q!x�x <XEÉ PºC@EoxH`2T!)@jl@=h�!p3:mz0�^!A( 1@kqE$Dd$Fr @ʐHYlA}H3r9\Fn!Hyb6jZ(eh*: Et Ew ډvOA `Z1fcX8ea9 UbX-�qv87;D4il|1߁7x7> H$WR CO%M'UIuӰ^dc?Lry&y1y#y82yBQ\) "TPQvSQPz(o445444$;5j\x1,\MEfUD Rk ;ZZZZZIZ"Zkjz=Q[D{q[/h4#-EӖi'ihot:ΧϡWOu4utX:uJuu\u ֭mֽ;g穗WXo9^}~>_V 0;p|m z ɆN<* ; 􍼍ҍf12ƌ9b34aL4\1ym:4T`ZiǴ,,l!渹ytMGQ9b_-P d[---,ٖRu'-¬VY6Y>fa`1ČS h!['4r=wvv9vZٗAAơᵣcBCNNR]NwiΡӜk$?rK.Х+*rzٍ&qur/vaQq(QYj/mO}r^.^<kiF4{Mq> }Z}6emol�)`lo}r;i`̶1m[B!!߇tڄrCkCمFXYO2:<0|V,Q>^mTnԮ{&x4):6zy %ǩ ̊9>~K,e:.fqw%@'aeDi?'j&{&%LIٙ*uliit3"2Vdt5~ 晢̦,JVzV] 'LX1$I3&l>Y<))I;sykxOaU>A`QNpΊܕ}Pa_.Z/z9u~B f$_rЪpFeB5-piXY]R4In)lW8+Qt> %.%JF0ɛZfS6{k֖쩳[Y0g.{yy~)g(9?c~s<ͮ z ſ}۱hu>T+W1/->wk$gIRߥI]_| +qcU媗>W]y ubMڸM-[~p}gؚ=,6,z#Ma6[n{74:Vo%o-p[3sd{׎wZ\ ݥշ{K?Fްe񞪽`b}z@O?m8hpi,i8$<Քt9%?o?lsёGGxq'Ni}rkNu=}Lԙmcg>xC|/4痃.6] ryWBq5ε 񝗯]yc⍮ķZz^yWn={=]]G#ܿoEY^}Q}OxDdw7<u~ay&{f/~:8xUוox]ƻGCSޯs-b?XN endstream endobj 27 0 obj <</Alternate/DeviceRGB/Length 2612/N 3/Filter/FlateDecode>>stream xwTSϽ7" %z ;HQIP&vDF)VdTG"cE b PQDE݌k 5ޚYg}׺�PtX4X\XffGD=HƳ.d,P&s"7C$� E6<~&S2)212 "įl+ɘ&Y4Pޚ%ᣌ\%g|eTI�(L�0_&l2E�9r9h�xgIbטifSb1+MxL 0oE%YmhYh~S=zU&ϞAYl/�$ZU�m@O ��ޜl^ ' lsk.+7oʿ9V;?#I3eE妧KD d9i,UQ h<X.d 6'~khu_�}9PIo=�C#$n?z}[1 Ⱦhs2z \nLA"S dr%,߄lt 4.0,` 3p �H.Hi@A>� A1vjp�ԁzN6p\W p G@ K0ށiABZyCAP8C@&*CP=#t] 4}a �ٰ;GDxJ>�,_“@FXDBX$!k"EHqaYbVabJ0՘cVL6f3bձX'?v 6-V``[a;p~\2n5׌ &x*sb|! ߏƿ' Zk! $l$T4QOt"y\b)AI&NI$R$)TIj"]&=&!:dGrY@^O$ _%?P(&OJEBN9J@y@yCR nXZOD}J}/G3ɭk{%Oחw_.'_!JQ@SVF=IEbbbb5Q%O@%!BӥyҸM:e0G7ӓ e%e[(R0`3R46i^)*n*|"fLUo՝mO0j&jajj.ϧwϝ_4갺zj=U45nɚ4ǴhZ ZZ^0Tf%9->ݫ=cXgN].[7A\SwBOK/X/_Q>QG[ `Aaac#*Z;8cq>[&IIMST`ϴ kh&45ǢYYF֠9<|y+ =X_,,S-,Y)YXmĚk]c}džjcΦ浭-v};]N"&1=xtv(}'{'IߝY) Σ -rqr.d._xpUەZM׍vm=+KGǔ ^WWbj>:>>>v}/avO8 FV> 2 u/_$\BCv< 5 ]s.,4&yUx~xw-bEDCĻHGKwFGEGME{EEKX,YFZ ={$vrK .3\rϮ_Yq*©L_wד+]eD]cIIIOAu_䩔)3ѩiB%a+]3='/40CiU@ёL(sYfLH$%Y jgGeQn~5f5wugv5k֮\۹Nw]m mHFˍenQQ`hBBQ-[lllfjۗ"^bO%ܒY}WwvwXbY^Ю]WVa[q`id2JjGէ{׿m>PkAma꺿g_DHGGu;776ƱqoC{P38!9 <y}'ZZ։6i{L{ӝ-?|gKϑ9w~Bƅ:Wt>ҝˁ^r۽Ug9];}}_~imp㭎}]/}.{^=}^?z8hc' O*?f`ϳgC/Oϩ+FFGGόzˌㅿ)ѫ~wgbk?Jި9mdwi獵ޫ?cǑOO?w| x&mf endstream endobj 35 0 obj <</Type/Catalog/Pages 17 0 R>> endobj 28 0 obj <</Type/FontDescriptor/Descent -230/StemV 149/StemH 124/AvgWidth 479/FontBBox[-1018 -481 1436 1159]/CapHeight 720/MaxWidth 1500/FontFile2 36 0 R/Flags 32/XHeight 532/FontName/YPPHPH+Helvetica-Bold/Ascent 770/ItalicAngle 0>> endobj 36 0 obj <</Length1 11920/Length 7612/Filter/FlateDecode>>stream xz xU^Nu;B$@H$!0 83<\A|t <x<"3( DQ߹!~~7Uk{9kQ(F4ij뜇+ن9gQ[gy SsA=d :(XVz/z_BSms&9P,,H# { @Y\Զbh~tʶmڃ4{ Cڹ}?n�Bjt?RH(0䯨!ZI;@xA FZ<Sn9}/t(ˡRO.AJ@(C5-\5'P-@8,Ĥ>xoA- R o~ .O/NCBrκBaκu J\r\rZ|^qN$c ՟kN;[S`1J[:7"kg&{#wp}$:} ÅS?&/n!9(}@xz\T<$9(񷮓 6t'瀜,>ࣞ?(,r E,Bٙ/L+aWPM^;(TO d~A N=)c6yDKzY%Xa' λDbE|½5LJ9Hdq0>&܄\xǁoA@E|G_uw{=@ އ6~._gI|>TE"DR(QP >$Erp y2r^C<<($Ѓ"Sn6Grekil [[+ Xokɶە+Ԯ:Q(khn0ygl}WWk=mޕRUGV~oTt\(C˦5MKk2G[iず#8<WEُUF sk2i!sM&sM&sՈ5\IIeJ{i(݆L "8.I5 4X7K x"Z ڇȁpz[q"zI]?Ȃ6'Yo|OZtNT"=CVNC%<!A=pDp5;ЇL -˾9c  5h#ڇ^vxfc7h_:]^4>Ix'~tEC[="�ڎvrL4KQ%=^GWW`tp ^A)`vN0_+ڍi㹸/PTOd$:^FoU4G~�N *jVS5:~M�k{9%=-F_GPO"UX=8OL|7^{a|_—]%PCu|k~:D Zz>NO8vUSI)-NR8�ɍ@]hz N75t8 g<\ "+0܇Gt7RR)LZ NzKOm |I,aV1vf7͎egMl'{}{\{{WYv^± HVN4NG :H 7O"_`p(3KT~KM {i%\Ҁ_÷s9vcMF>2BՄUJϱ Ma\(oyZL"mPv[EU#xm6hSF=Xc+D)ɶ2{aᦩ hj9E·BnleRʼ]e)*%BHDj2o[ '=ʼGi<Ѯޚ eQv{cJEox=0;%yGB:nhv+ɵ57xF/J&yRM?o6\m^u[Im3*l0,`c?$d܃n6Q] 4G5 Rh-mچ~h )ɇLk @C))$-O'i  &s;&^hG{ꝓ䃫*>򲮉m!4:J[Pگ4[}j�agi\i$!/n" Kf5*Lp8+}HYЇÍ>xЇJ`gIDtPHND;�rH;qn"Ÿ{=@ `Q10N*^0‚ <~IU4LmvFyF :qF6)`zit9-3[ C41vި^u2xȣ+ġ "]}ޅaInwFBL[nOS8{ox3͖)3Q8N(G3 �c y;~Ex"`[$SgpɝPxQt.K y0?Mx�ۉ2+& W “1A)dBpOSno@r`['Sg;;p0#(87 7 SXp(~v<sɛ- [dHz'$o#t�γ $ym$Gh'Gg4b>B~=I{QWA:"H=%�=#ԭtoEݤnm5mEkdj.<σC9ġPAl(9x!@ G~r%/?ARΑj8fԀO(gZC%x2BmEA + <gʣi}h}k/7+yʵ*VD;|v,S,g84R)}pH4y_8YMa_ 2v`'i|L?,)ed<8agyh!Stm˨z; $Icp5P@[5 Aa7r\jjI?l0{9NSUzsJ%<TgHʥb$˺t+ٚJ A"TѬB HU pd 92߷Ԕ5Y3hOo&*2V=@.'5iXx9ؓj>٨�i`x;vLypyLYIǨߏ#)8Ǯbh0C;w z&`,"Ua^Vލ|t1[jaQ(,!M-JkT 1cwOz�Z?pv�9PT8hic]nf4q8G,4df9d㴸__g1i=q_8=^zQ H'03<8wAN^_Kq;m*AKČ:+ܼ;A@L2vfn?J%ꕉJr53v&k'@EEv@9;+Α 1JJ2>?Й3ozB?HbNwb27,eץXcOd%(5p)*G:i+Z%T Z.FR=%?[aE Zcaer?;[94C,"207>(�CyϢ1QT1-<Bfd QX-,w,7&He; xUʾWGA͠(1ØUSјo s ZBJ:丽TI`~:ŀ>izVLOC-vX~x gـ ~c) g@?Riq"Njsn:?u&AosY__ПIq]RÐVk\F+6L͘R&F{"i8I1mhS[-BvI5ṕhPVAP!1Xb� � Q,wNeg!{3^>h0G~lW%T\T(nu1lODba.Oke 5ܞ1Ӕzb;Ƒ5v;ZOq[cw5/3 a<fYh zDR@e1v Oa,GX KKM$L:6ʐ<FU jT:&;q\R66#;DC&HK, 6@#1@.OVdsjs 6z{*vCOG,PS~Tn.:qzر-M1*i@9a 8iEGGKetZ2DctN,^5U%w|f-&$dMʋMq)=JS�9\vAlDt)m0]2;uZesjzkTB[mnLKCk�LV6(*H84A k2〵js=ҧ8:z寘&կ%?V=ϸeU[\wB<|βX,akzD}CBRӿqJ0Qc=8c,!Ly1 ('h9F`W gh/ʊ0@69%<]{eU [ mTe"`ZoɎ|h4%vZN[4fMRudlz#UkVLܰpeGpw،|=2/@ہX1Jxz+ѩ9թRiK Ps^Q6$}JK W@<mB#Maʷ"sgKWZ Ͻ}\dgTSmm 8+lͥ/<rjz z \`�?`[Eyqb'r> VT嚉_{mcPehi64,̧OlmI\]ayL̜6+0:,,sy.9JmX:Ǹ*65; 8)! %D8[74 t=h -iKZb*v2x} $jPo, GU37 F)k+kȍ1bi7X8^K:oq[wC{J2!8Gpa}<=PQ2h^9 �  neZ#*MNr%rC�~o8 8 eaxg-; i0;@*ٙdRq%IGHv*7IWh:f+|=d6P"0wCaJCM7 L:L"mK6QNpӒ#,R9D6hVK`UYP;tN-mF:ݷ6YptulU~ҳoJ߆ᜐE;b<m{\<kR/Ԝto|ݾ=Ogܿ(U^(t=?N.rS aaLQBF^ë9qk;fRɠ^l;찓:b9kLz3){1EK.qO71wW}7nj[CNն~J!} 8£1 Uf 34qqnC %9 F8EۀI _Lj쮅/bHg)&\RֳG+_b_U_T\P&Mr<ZFn=[l`яbq{ c& :I=B* rj5|C/SQ6~M"*T<D%HmSE56k>"pENB|$Fo<tPޣQb tZlWBkk m:Y+蒮Go^;Y*9BM 1!\baYPA>Vc 4'Q.p>0b` VBz?!t; }'0olim t0gpϻZT"!^lM Tƫ\'VSXHLl:p!Yv=q2}ds~FEI"u#O4@=uWW5,drRWΚ_NmlK2%ɈbnfMkJ m*rQ)X]87;i829pbֆGjIc!-ѵscbף9Ѡ =Xji4W 1,`KŴIKo"dC m 5 Y)W;&1Z,l]Ћג@h!)N-݆_^ӳJ>>s GzϞ={I/>MҳS"rT $&#h NP% AW#[A( Cl/]ڊ=)eM͚}ⷓWN!ębg{ AF`aǜtx*<c&> Q٨4Jh=h+v#><f-Y?++mu ؐ"؟ NadQZ`>ĚncMu_gJ-Op7 m( v53JƮVW&'Km h5b Ixurr^ecy} _ kux N2™짓 ?($Ӛ`j |ZݹrDp'+r$Al7Gȴ9RPU1>̞%-S}yS | t4W32汩eyTmw?vSK"ZvN:IBffs&`M87(7'-/,${|08PdA0=AoǖְW'ы^icWNG&ԃ0=SU!ѐgηvb!sLjY$# 6~@n ؀OOKHWai_Mϙ=-.q>5ƱlFDa[PZvp[OD>z|H�h�0·ʅ ұ=ɧ|T?'H'w/Me1%7hː*(aq8E@=(vRC˦ 4>o&'\_:բ:zj:M6= CsćnHh_վl{%n]p�<8�_;b 64�` �^�o�|�QZ� @h ]<K9<fTxTY6 _:|TY6o'(>QQQ٣sF#Ɨ~FbTcTyݣ Gooo{F;G*;,}j_N |4 endstream endobj 30 0 obj <</Type/FontDescriptor/Descent -230/StemV 149/StemH 124/AvgWidth 479/FontBBox[-1018 -481 1436 1159]/CapHeight 720/MaxWidth 1500/FontFile2 37 0 R/Flags 4/XHeight 532/FontName/MYUQSS+Helvetica-Bold/Ascent 770/ItalicAngle 0>> endobj 29 0 obj <</Length 207/Filter/FlateDecode>>stream x]j0D= gc():�EAk࿯zAz3gHJ` X gux%mU&*a[@mWF$\h '} kwD:rċAO>S/[F8<*Dc!'it4&U$j~O=?c endstream endobj 37 0 obj <</Length1 5464/Length 2785/Filter/FlateDecode>>stream xX pT@cwy^ 1 a1$Ap&Y 4T`1b+Ќ-`oNFhUfTj}N(MiU V8Lfss~woD`�uK+(kw&E$3[.VtՑ-Rvվvx|dok[~Hr3$tI⨤/}M˰?5u.wDHRdK^_v*fwG1@ `^*UBh>2?%o9,iʝbnkYx1|HR6$= eqhVFm&>"ngT+JHdeBkqp:vX[6J-6+X >ps>'ű,THܒ\NbtYX%t9gt9Mz./ Lz ΑxP/|@z8_:X\"r*H? =ٰ<U`=8Ƥ'8$wl2'nLF5 @{̑i )rg9GZTGWLaI sI,uLRf%fi Hv&hu$;JvC(㳇yNYq<c`2:!Zr_g`>p 3nIHIut ן,j.jMq\;ͭ& s9ߜcvo2g-,YZX,EpBMLv~*t+phV` eis?r Ɛb[hC1鬣ۃWnFW7=аb_D_ZHfzeZ5>'d8U"^qW3wžEjkP|J<P׎ȵ5\>63]XZS\ @ xĝ`*H#&0FtdN\t#0l]؇VP`_ю Gd6x>8(fl?n:IăuwP Q8fvA>BӿgEB m0,s`+@ p%mqknwQQ,^{G޲-T;O~#Y'^&#oJ{P"G G n'6a+v~<9 sNaak`qN |P LexӸ/rn=0!w*m.曠�J^P]6vBJhO Xp>.¥s\ ^|?ƿW5Iqݔo#Ÿ~nO�)N$,=b)Tm ݣo{i]n|@ blJ={9xb/8 4˦8밞cޏ><D(x T rn)R]q=|5ߨ .a av lvq)>."ϘM{MML.N&,2 LnIfZA\`�A; l5s=| ^ (w^?[q~J땬jA~^n˩LvM ۍ7LJ8!-uƍMcMsnR&(~J + !M&SMfR䊫"DTJ=n٧1"qI}*AY45FG}>[W0$/_THak0/W"|Zi ǻ|V>f9A[y-JJ6px8G!@=mc[mqC^pPB,GZvnK+ GUF35ĴäU74-%p c 쉻H<&\UfU*quXSBޠ Xa(wmCHTx*,q6$7%0ip3 I^VLMn$a.mMQ "J3Oh+.Mt-k=0map1kF\ R|(:S9zhe-&WY`N-ar=?]Hj)ml&]0Ξ[ztWZC|$G}K~zwABVz))n7 #U 9*GF*2$9"` Z`Qd7 ΥyyhG4êHKT䮦ʩ ozD:m⁺6@7IxJ0iyj'fך"9CFW j:l a DZƒPYA/o z67'qYf0<gT M"p a.eef<@`:1\9獊ao}?a^M o%  GpͨM"m1\1\?k3ܘM F0|$`8H%I, <{:vKGPڔ/O/7(:Q QQޜD:(o?Rr_^n}`8TS_ }y4CMvz_vƈLlGȰX9KcFҚKJkR/ByR֦MH˥+<xL|py}Fy?V?0aeCMitl {*״;\[ dÅ endstream endobj 32 0 obj <</Type/FontDescriptor/Descent -230/StemV 98/StemH 85/AvgWidth -441/FontBBox[-951 -481 1445 1122]/CapHeight 717/MaxWidth 1500/FontFile2 38 0 R/Flags 32/XHeight 523/FontName/PIPWRM+Helvetica/Ascent 770/ItalicAngle 0>> endobj 38 0 obj <</Length1 19824/Length 13313/Filter/FlateDecode>>stream x|wxE̼knnK/@!$hN@X!JQA �Y . kŲ"˖EWw!B<>ޜ9o9s99NBԌ4dم{fŒq3xaB_"1'Ϝ2##tO~7N71q]$x s'xC䗧=9}3z?x͘9|j@2{,֙'u]~o# GHB"HKJ7b,=>I"(w>">|U?iG(Bj ;TuO;֎bCxzh@O�ݥ`�9f{mJv̷=Qlh%ކF?x!A`tw,ڍf51r\+8Y /y:v_y%y= ĩ=Q%nt:O;|ݎ\7wFtwb|~ІvΏE~o7+.b3܃9p.:oo8qW{{"4`hцv|HN/D6Dk o0ZCyapp+ !$` NԊjQ)Ў_8P⽨ IJȋ\;~G>C"+/@y12m:ZK\񾃉Cb^X2$"EVp;Zle⪊\OdžݭkoͥNwm 63NM*OK8l&WN T TNPSyϷLzʄƎHqZg&UN T78=n TG+o?96@S20 7kefwӇͦ/] xh+/ghr@_kdxkZ}+8X1qǑ;"\3rYȋP@i.ȝF:iFߘÔTVԂx 4mBg4w6L,jGЛh=ڏp dkps!1(GK:A)-CP1<u yC#~b$%p\d@ K+8ȜlD6TۊFѯП/AUmȅwn_2-έ@ o֡g-=߅ux=HJqCU÷ݍV 1:fs3 VҖLBM]5ЦٸzJF:2'7=n5WIv<>"7Fu';2x q .cیx;>LW GL%'[Tf=[[/G|PD/,{0"CϔN4Z;B?Vo It _a@߃6`ŵoœT>W|G#艕p2 }8Tf�3i*sX#kfh5; .�6Ws#fn%>k7_,VC@s\ǣ 8 k"^" bd6m݌h{G!htxd3ɖ#7z ZESp(H仜j1NV)s,C0J Tƶ@MMkVo\9Ǖĕ+WJ3}_+v<zhZ;r\~T.k J[cUV55[@ʌtj8bHE܊[WT:�7uк _а:xGFV'zH=10?Qʌo%ci@Eu׶7l%qVU>¥Xʍ[ >x,YZ_׊vUqԔV71'N*UƂpѰC6hH{.3mKdBmq"m/ 8[�J  $�-ɤ"jB >9ӯ0V.\khHTn촊 Ctz][:|q]G[DOҎ֕V<zNAhu-HIS�OECj |HWL؎Ccw.mG2wTզVH~(eUTW||O\52A9VgׁmX87<'>nWu=rPV.Nɔ Z\lUC/Rz4)xT[Ws9p>/]Vg [Z\E[oǨXׁvD/"oC^~UOe TF%\]oj[ K$"?I%5I¥P*>; IeY±zC%od $H'I7I \I%\pM%<PɁP$\S$<'I$!P[$<& PPd /IxOpOp}wMohs=9[эvEu| "O3rR { y {�F"FF=+ o{B`[ڭp~VO6(p(+ jg@^TtAh >fW³c@&RJ8Oc*x@fo.huJxx%n<EZ�ur ̮zR( 1=ąFdx1 ّ9n8 $_UQ!GQĵY@O>*@7C?]lm1DJ:N"K8?ο_�ipFMܣ(+'TkT/YxMfBbRvVdhG4Ec)ݴtbimֿؖˡ\Ŭvv<O �9StD֏iGI@k]^ 4m4S ju(֘6;Hg7[>..MK|㽎*.lL^ZLC#dVu VE,ۏ~"})}ǥ?^X<]nő߯A>P+Lj bjQf;(H URv{5ya4uV6~:b-蘒#\C>-3iYGKu#y?1 hE!RND=i$[`Jd[ {<T0ئsJ863>NǾe1!; dAڲ (k#wlXcP(fĩ~Z9*xW'-Ν` ,u~̺M`\hV̺U9?s CsHvNw2xF^ȩ #r!1DSUm`#ĮtEbq&~N ~_8Uh H MVKo$iԲ&j}O˪y~M_J(.܂|=vHK} 6rmn3ب1oI ss3 !<PLSLS@̤\qpB~ƶ!\od>IYy7F}3aWݷB1g]_u:b $K +B .&xDˈv"B) $݂ҕRI? 7$?rɥH|˕,,BWa?P(P�[~Y:_l7e-7Mj qb?OZ^5߿c뙇fmxO3W]s/6̫ s{7Zr-t拣 /)VWGޢZ# 2Ik0 $( UiWCsmIJn^(r܍|T8 ZQ^|]ņitPB _a b<09s AlNHD;TOWJEJ�Yb`f'E۶m>ܰ4k r)t܌!SOaUE?})Eiv^}Czԛ (w~A0weڹ4.bFn}cCQ% p8_u<mTjÈJS4ȏ:/^4pY6YN '*Ĩ3 %'DO` h5B :|ӨM7dZ C1!g`O(d:_ r +AI]ez<z}CZLxG[ ;p֧|<GQ!57bfݤܭlW+#1 HHj̰>R41 pJ1 %sXE0Gq}L"P2pbl%~JiWkWki|VeYU2K2:*ꋳdm{ʞ_i8OvT�iƱ p3̬m/ѧ$de|3J?.ȳF %%l@hf~_H=q$kE<aqNM 8R`b;&m`wQh 6'ڃ|Hisi0z٦рeG[<;4brrq? =ȠEW<cFkgM_*}_ >hK*mq ݽ@+Fwfq_#8xxa?s+pY|o7mVxcgrH.G)rvoZB�]͇t7rYƐ6 ,\1rA\qŘҦEIHD fjq$Rz~0"+HFz<^Y<#^S>7s±E GpuZ:tm$I]إ'm5~W; &h.o0\QI"cá jv׽,^G[As8ԉZ $ * &e;J-~6*7 IPHogps}iYe9|wCëg^?<!1ehXR˪,*DR%ZM?(ZF "FێU7HV`^![V*vo҃[جk똴k3]=Aܱ6|mWG=(PqFkv7+Ux.Qo@_7ɹxiE-tn1]WX+:ex)a-+]/Ě-ne$YvYN1 fw2c5� 6)2cO)f&*إq=I #PqCi5!GjWک C#6cUnM.Rx\Hu~ M1@>@]=aOrN7?\i1R/9{_3L?Ր{/ޒIWCk9vwڀxwgAd)E!D)9+*dW5MT& PJqHTHy�gɵgYX|;J?*,(ZxtP2`c$+;8{N:?ffFTKVv~j!pYPY*A0+4xA:ޠ 9  ,L}013 'K{Gt~Ȕ~=u3a~C&XHl!X# &/v0;Xq1إp` DNG0wBAHa<lr]xV2Tx/gnkI6!{``KA+L@bqymfnNYsNR͞Հg5X_l=AdK:ԋo|%uV6ʉaD!` aZRP'TɥkCσF+ 3bΈ]ITu{='j%CSIv(HHT)4di"BpFIL60(G4(1k0ķdDvU^7엋vN؛* Iα_n{=as 좓˹D2m= neU:XF;qNIWcWC+ ̻e?(׵'AD֭T<DVոBe f nRyzcjm)ȮRwԛ*Z\̂|) OƓ^!ңW_G}!s&תXr�NW'{'1ނE\.!qxl9*Qyf.rЈ+Υp.v\x8ù;s!DhB?=aȐCԈ ~rtΓzi߉}[/ f-WwC;8= ^-l(NKo_sc=A ˟jX^h`kLuFB+N$:*EԬda$Lf˿tzPĜ!Px dk Y|.f#}v:po~Ԑ·~2Ct!vTfyԸyp;G&8"$NNÁ#�%p̄OAX1#i0ޘSxG(hNFeyɺ&LN庴ҴRHOcRoשBIA!NE>'x(\AùH9:\ks%fH0\h- :?հ_Β+kңkQ#'PH@ e|q$Td̓g;oĤI֎sTCz qqF ?q7hω�ڑb/400<^=2=Hp  /h-LNT#*a%ˀ(L4* z�O!K?Ґj# H^>%ik׌g9! YabB4㚹bisė n>u[7g|dlw`/(-DP@-KQ%ڴ 6j$3Jmd%úlLYYi&흦&JOIF8rA}̲nOd!01@1!!Pk%[HދD" (}Fq44Ұ݆34pP3,D!\plt:9ʙhGQ(S8$:W ELTɼp;/&q!ׄ+380p3_~Grn?ߺyt;oZzO_laH->hZ_mrwzMMe<>~z/;+d~/~e_+ ӣ rU.ҠⳗA._G�xyYI玵\;Iϩ?IWJJc+tGoX,&EPnmU>1 2X'27s^LZ-^ڟ]mڶ}cfV_;-mVIL1U<a÷abx>w)l#e40 ( ~p(TX<!oրTPGq1%�¨D @ -wRNXD fV30,`u_]QYbX=B,`xdlxUつakrJq 9͜Ψu)Bj%Y,V fny^أJS)E9JU"$}#.ZjŌ ^!�T jA. {YIU/S57 Ñͺ^HlcyfHM{�K2P8cX^P %/cJp8Ԫt"uf9yX.ʞm8tA s,<T( L:na&-EI 3*pz"xGx6I{I%#ؽ:q/{6(QmBxpy>h^<re1;.mM"-�dBat [6޲F+P! 4cg1Kc]kbV]L|ڲrΠa/]I_}+JJծp^nbN( jRn]F2%JHInjР8N*nvg;_U*LB4uW3.20ހj8��IӉ(# '�G qqA<>[|&XRJFďn $"o}'a͘)އ?}4ȃWP<hUPhكo̝1>g8nkV?rg5͵}jz!բ(|ǎl\;3xƕ5Omw :-55] T͗b5~bsF|æ wV=hf,sI<CVLasd2qr[?p=@"Nr*KfJ o a` aaFgĨ( z,́n@ƞ o-A&?UNT;T.KRkIvKsm<eak;cY;xm [L cAㆈNp:VvA8蟽KcvS熉Zn`/dj2Fbv�KXʢ Ƈ(X"~%$$"8!O |em^€kg>hoW=; m+ ]mȽ4L ѼXnZ;J䂢$uHt*.Ә *{ol~ `7R(T6$NBHC@wU] YiOwk/ھcx>){ҕo>w^:)HWP3<�⢻:`c$3$)ĨTĜƯ1+>~dP֟6;DΟN)wۢ ];]` AKRٕjA 'Ü#)P=C.{qy@^Dj2 'kK mcy/eQgұ:L !rǭ !2kCX 8pD^itn]\jZYA}eٟX=,[XʓgX[Ĥ탢7ܣ-۴_5g؂[;UEol]#N̳ K,4\ ͭz*ip!rΓXn'-ޠV`HzD{dٯ,NX$ t7:qeZځ *Ûa}:XwEMbuU|_ϕkkvAG*a.x]-bbEXXޑvة՞T&ÔQ]ip+2LdZ23#[ k.{V rG1Հoa`遈ãҧu'B$z֏jMНag7]s:rh`8R\X )z0HT7&/GL?ki}|;b 6-zQ#⹟R\w߉[ӥsly@rl:pڑ �48S~qe!{K@ԦXX:*X06抢QCAZ*6GhAM>ztQ*Ř.rʓ̑Dܡ,iz3{r| C?Jm*A CA fI% @o[ǚV2yAӖz]ŨNXOpo 0+?- ˹Y<H� YBdH1,aa�ɠ*T!<JSDE*X<[^ X)T 2` ̃+�li �BTa6#�=(ڼuQ_l^|Z;>VI?۷IiA/v7!QD$8j`exS [ {ʖJQIVѪ&0H:T:֠muk睮 cTFQX"Q;1ApknT oOΡu2wi%dzְ^>3G瞧!Gtml֦[ST5Br!kv#Gg|my1`g讻1Ci9gRMm*C�JU8\8#ٛGbJ�D5D(j)``]d=rg/Ee8NaOz5YSoCeK`$cX&q .qn]<#~~I[6A6n&$S6֎-u͆ p&l $+8 &ua$#F %䄢)%�KQ%/f: IL <~ yƥq5pc'jFAhVw;$"\z-6 IR%kIHQ&')ӕ!g[eq"bC ,`6&Eߥm(<~< >@^:r2RޗCs6/]Ҷ76߱_?R*̆;=Q],F.VC}ha,Vc;].>"<v,Z?Klr$kn?yM{eǯ 5qB^HģxIItz߇+\N>w'~̽xz^x񘝭6>R_fVï0p^N=5 3!M!SͲZQG Bp+ES v\ $vQaFw5֖ѵOC;{:nZ0 ̎o2/yHw#EMMM|$%.WS#SF'L -P/,6 J72qlV V͜aʌ$Z$dM3^sܜZDY,f}#!!qha]_δgST&bhs BiLg8gFG 5яT( pi/)ُZVq(PCѻuLDƉYRrbpaÁȸ<,`Gw o`Ůyd-s>9=\VF;Q>Ͽ9-CxQnL?9^^3OnXUJ|w>F~y Qp &Sy\qY,Z U0-NȬ5'1^0,|خ(E'xi.~A^l+cP>ucwwoȜ‹G?7Zz]�xrj:A͝_1ݢ;zΘ(F)c>qZ%5JlM TF*Gie߽[dCwm�@>1a #("G/W@)A[ċkD{S}Ro{bJ�2d]r| @)42S n'ED51dpؕi '+0�r3 `C 3�+`Ã7ox %QpeZL%q oO⋮_?¡lC�nnZ!| Fo[?�r. � ae=844vlb aػPRc_lq5Gݏ*quryM8+<RMSUMI@TXRkI53QKPGXFf2UvA[�1= I�L�`Jef7zC6P 9� 7�*2݀>3RTY^؍>R Uf˷& iݢ6tM.�zg͚^9) ÷ν'm٣sTzD vzsUh~ Eʧq0Rd<&#ۋ%Dw{8hH{Hwt/`x~F�,N;c?[e^aichP 3L1զMM捖]hEWglGs;:o[g3[-˘ժ$N Nj/^bԀ^ym=+qtE�B,3 VØ(ິ;h&BɞEp1 E/.`Ѓ˷6o E=Y,W+yج)cҟ_&soOa?@gӆņm>|0QIeEdNXa~Sa/d{~a1݅?m:kPL6P fM8+p~mG?bn�)zDm*|wSаn3]ae8'aA�?aF0oy>QB$3}�/>K #>umOT*Q?S[41 {m?FQգ?@qx3^XCBC56fIsN'_!\h6PP PP#|@v0D Ph> M@ځ�}t {d��5Z hP;.}d��5Z hP{gׇ G{=x|v>߃_[z=x|e_݃Cpzk{{N7?[~D~d~T~t???/ۉmrSz==z{3zQwggg7aT7>UL%'~ endstream endobj 34 0 obj <</Type/FontDescriptor/Descent -230/StemV 98/StemH 85/AvgWidth -441/FontBBox[-951 -481 1445 1122]/CapHeight 717/MaxWidth 1500/FontFile2 39 0 R/Flags 4/XHeight 523/FontName/QVGROK+Helvetica/Ascent 770/ItalicAngle 0>> endobj 33 0 obj <</Length 207/Filter/FlateDecode>>stream x]j0D= gc():�EAk࿯zAz3gHJ` X gux%mU&*a[@mWF$\h '} kwD:rċAO>S/[F8<*Dc!'it4&U$j~O=?c endstream endobj 39 0 obj <</Length1 5056/Length 2707/Filter/FlateDecode>>stream xX{pTݐP�IX^6A@(,ݐ�  I6&1 Tp;,HU*8*}X" 7P12:*h}(w&+a*?ssws{g(T2J5Hw#dnsoB"h C?-iIkmp$mv䔶ےv1HGx[m]ۆƧ`Dq=S%quv B ^42QV6E<k>9)akҒ/x:#m8K[`QC\7jP^ZR2I1݃(Hl;m@݆ g{m\Л.)(1k{XyI;rc)m({ZHa#HTu*aP7j UHLbdW>-/S>.7PN3ayR\+OnRNJ!rթl >ޤXBJW܊1C e+ʌnzG`)h4zY$.e6B]٨'Aپgr*WS4sn.,lwFuអOQ)*( {=;82c`HSl'!Z9l`O)d-'Cpca~h6Kp_uثH\@up'9ZH:۰֫{9e͚U[؊ Kr21t\1]tg=BQ_II }k(jXcMzT]75qZԯwh~hp+jX<ހ|Vk[ju3wdd<ZZj6Yc}`wZU/lkVu518IL)*c+M%|.S`Oϫ08o ݴ^H7"o{7dgDџiJ[iMG)mh; )4hzIfKi9Ch' GqGW:eS)-tyw6rR=D~z>cwcfk1b:i5lbYtwsLR1F . ?25nf=l-x;cVy7ࡈTZ ӳ/}.8LG|μ7S-fg^_ĜN2*Y=gB\ ?n> ҭRB!?`K<o47ߠhmN}D5yXQbl~ 3A>}.!LJapH8-,\Y<w lVg/p:ȍbZC̶aQ`՞E|&9,fl:[-a=NWBiB0Q$4 MBbbX,.WGP^/$Y'MH5C<&=.%WY\yBbmm-auXg^NP3&ڃ"jawn*4W4St;v^DU|K<HND1#+4 hx =SUrs0~\vV،1iMDQi@ z~X2nk8"9)z]""Lo2ӛdSV4Uɯ[~_ 9K_dXXn7g_YX Um@_VcLY)?8;֩2 ,U򌀞z1 ? (+mׁgh- /5YHH¼}'n9v\OU$ҽ anEvmTѭ5!crg'ܡiOkwA.- &rS}0ͱ~ 7f_6l>nIk\:7?d3�6[h�;ߢ3)<< 1Lx*u{F貧&aDZNgJ!?SSk> ylă|S{Ega?,=uSkk)lS1�u5&Kk Jelg`V~knDov?ƇQV G5jF{E񚖸Za3IK" xeKPh6ACcH5$M+T̯6?OCXl߁> !<7;0ObįMwƠ8%mѥ )7Xm!4wn X!u; gxF 7ZhgX ϼB  óGpE �sgsG0< {Sr>z-}W0Á Ws3cz5gxa 7@B+0xT /I!p=0/ 7| /p^ ˁv+OFppT RHG0CR {t]r?W]D9ޔl g|@E;M(tn"L/j4ΠrtH;@+%'Г 9,wVOi|W* i|#ú([/$r .-vF{ڛ#KFy/$s⎋d endstream endobj 40 0 obj (Untitled) endobj 41 0 obj (Mac OS X 10.9.5 Quartz PDFContext) endobj 42 0 obj (Ruben Verborgh) endobj 43 0 obj () endobj 44 0 obj (Pages) endobj 45 0 obj (D:20150609150023Z00'00') endobj 46 0 obj () endobj 47 0 obj [()] endobj 20 0 obj <</Parent 17 0 R/Contents[14 0 R 15 0 R]/Type/Page/Resources<</XObject<</Xi0 1 0 R>>/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]>>/MediaBox[0 0 595 842]/Rotate 0>> endobj xref 0 48 0000000000 65535 f 0000000015 00000 n 0000001017 00000 n 0000268801 00000 n 0000268889 00000 n 0000269497 00000 n 0000270113 00000 n 0000270594 00000 n 0000270783 00000 n 0000270963 00000 n 0000271160 00000 n 0000293954 00000 n 0000319537 00000 n 0000341208 00000 n 0000341505 00000 n 0000341582 00000 n 0000341685 00000 n 0000341785 00000 n 0000341867 00000 n 0000346091 00000 n 0000382293 00000 n 0000346221 00000 n 0000346808 00000 n 0000346653 00000 n 0000346256 00000 n 0000347501 00000 n 0000346843 00000 n 0000351062 00000 n 0000353814 00000 n 0000361988 00000 n 0000361749 00000 n 0000347651 00000 n 0000365130 00000 n 0000378992 00000 n 0000378760 00000 n 0000353767 00000 n 0000354054 00000 n 0000362263 00000 n 0000365363 00000 n 0000379267 00000 n 0000382056 00000 n 0000382083 00000 n 0000382135 00000 n 0000382168 00000 n 0000382187 00000 n 0000382211 00000 n 0000382253 00000 n 0000382272 00000 n trailer <</Root 35 0 R/ID [<75a11385d43f3799844de61eb2d22008><0aabe0d4926f56482c328dc2015852f7>]/Info 13 0 R/Size 48>> %iText-5.3.4 startxref 382474 %%EOF 13 0 obj <</AAPL:Keywords[()]/Author(Ruben Verborgh)/CreationDate(D:20150609150023Z)/Creator(Pages)/Keywords()/ModDate(D:20160112214124+01'00')/Producer(Mac OS X 10.9.5 Quartz PDFContext; modified using iText 5.3.4 2000-2012 1T3XT BVBA \(AGPL-version\))/Subject()/Title(Untitled)>> endobj 35 0 obj <</Metadata 48 0 R/Pages 17 0 R/Type/Catalog>> endobj 48 0 obj <</Length 3866/Subtype/XML/Type/Metadata>>stream <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:format>application/pdf</dc:format> <dc:creator> <rdf:Seq> <rdf:li>Ruben Verborgh</rdf:li> </rdf:Seq> </dc:creator> <dc:description> <rdf:Alt> <rdf:li xml:lang="x-default"/> </rdf:Alt> </dc:description> <dc:title> <rdf:Alt> <rdf:li xml:lang="x-default">Untitled</rdf:li> </rdf:Alt> </dc:title> </rdf:Description> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/"> <xmp:CreateDate>2015-06-09T15:00:23Z</xmp:CreateDate> <xmp:CreatorTool>Pages</xmp:CreatorTool> <xmp:ModifyDate>2016-01-12T21:41:24+01:00</xmp:ModifyDate> <xmp:MetadataDate>2016-01-12T21:41:24+01:00</xmp:MetadataDate> </rdf:Description> <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> <pdf:Keywords/> <pdf:Producer>Mac OS X 10.9.5 Quartz PDFContext; modified using iText® 5.3.4 ©2000-2012 1T3XT BVBA (AGPL-version)</pdf:Producer> </rdf:Description> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"> <xmpMM:DocumentID>uuid:7630f5dc-e966-6643-95bc-fcb09986b27b</xmpMM:DocumentID> <xmpMM:InstanceID>uuid:ebb481cd-2050-964d-84b1-70d686e33dec</xmpMM:InstanceID> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?> endstream endobj xref 0 1 0000000000 65535 f 13 1 0000383599 00000 n 35 1 0000383890 00000 n 48 1 0000383953 00000 n trailer <</Size 49/Root 35 0 R/Info 13 0 R/ID[<75A11385D43F3799844DE61EB2D22008><D72F900C80B04A0A8D2EB342FAF13E5E>]/Prev 382474>> startxref 387896 %%EOF �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/002/test.txt����������������������������������������������������������000644 �000765 �000024 �00000000006 13341726377 020231� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������test2 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/003/test.txt����������������������������������������������������������000644 �000765 �000024 �00000000006 13341726377 020232� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������test3 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/data2/000/000/001/test.txt����������������������������������������������������������000644 �000765 �000024 �00000000020 13341726377 020224� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������钱唐湖春行 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/�����������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 016725� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/T/������������������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 015374� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/T/Fix/��������������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 016122� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/T/Fix/test.pm�������������������������������������������������������������������000644 �000765 �000024 �00000000161 13341726377 017435� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package T::Fix::test; use Moo; sub fix { my ($self, $data) = @_; $data->{test} = 'ok'; $data; } 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/T/Fix/Condition/����������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020050� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/T/Fix/Condition/is_42.pm��������������������������������������������������������000644 �000765 �000024 �00000000403 13341726377 021323� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package T::Fix::Condition::is_42; use Catmandu::Sane; use Moo; use namespace::clean; use Catmandu::Fix::Has; has path => (fix_arg => 1); with 'Catmandu::Fix::Condition::SimpleAllTest'; sub emit_test { my ($self, $var) = @_; "${var} == 42"; } 1; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/Serializer/������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 021036� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/Importer/��������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 020526� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/Fix/�������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 017453� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/Fix/undef_error.pm�����������������������������������������������������000644 �000765 �000024 �00000000112 13341726377 022315� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Fix::undef_error; use Moo; sub fix { undef; } 1; ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/Importer/Values.pm�����������������������������������������������������000644 �000765 �000024 �00000000525 13341726377 022325� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Importer::Values; use Catmandu::Sane; use Moo; use namespace::clean; with 'Catmandu::Importer'; has values => (is => 'ro', default => sub {''}); sub generator { my ($self) = @_; sub { state $values = [split /;/, $self->values]; return @$values ? {value => shift(@$values)} : undef; }; } 1; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/lib/Catmandu/Serializer/dumper.pm���������������������������������������������������000644 �000765 �000024 �00000000246 13341726377 022672� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������package Catmandu::Serializer::dumper; use Catmandu::Sane; use Data::Dumper; use Moo; sub serialize { Dumper($_[1]); } sub deserialize { eval($_[1]); } 1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-include-glob/fix-1.fix����������������������������������������������������������000644 �000765 �000024 �00000000017 13341726377 021205� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������set(fix-1, ok) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-include-glob/fix-2.fix����������������������������������������������������������000644 �000765 �000024 �00000000017 13341726377 021206� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������set(fix-2, ok) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/t/fix-include-glob/fix-3.fix����������������������������������������������������������000644 �000765 �000024 �00000000017 13341726377 021207� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������set(fix-3, ok) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/bin/catmandu��������������������������������������������������������������������������000755 �000765 �000024 �00000020445 13341726377 016457� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!perl use Catmandu; use Catmandu::CLI; use Cwd (); Catmandu->default_load_path(Cwd::getcwd); Catmandu::CLI->run // exit(2); =head1 NAME catmandu - LibreCat command line tools =head1 SYNOPSIS catmandu [-D|-D2|-D3] [-I path] [-L path] [COMMAND] [-?hqv] [long options...] [ARGS] catmandu --version catmandu help # convert catmandu convert JSON to YAML < file.json catmandu convert YAML to JSON < file.yaml catmandu convert YAML < file.yaml # 'to JSON' is implicit catmandu convert MARC < records.mrc catmandu convert MARC --fix 'marc_map(245,title)' < records.mrc catmandu convert MARC --fix myfixes.txt < records.mrc catmandu convert OAI --url https://biblio.ugent.be/oai catmandu convert SRU --base http://www.unicat.be/sru --query dna # import catmandu import JSON to MongoDB --database_name mydb < records.json catmandu import MARC to MongoDB --database_name mydb < records.mrc catmandu import MARC to ElasticSearch --index_name mydb < records.mrc catmandu import MARC to ElasticSearch --index_name mydb --fix 'marc_map("245a","title")' < records.mrc # export catmandu export MongoDB --database_name mydb --bag data to JSON catmandu export MongoDB --database_name mydb --bag data to JSON --fix 'retain("_id")' catmandu export Solr --url http://localhost:8983/solr to JSON catmandu export ElasticSearch --index_name mydb to JSON # copy catmandu copy MongoDB --database_name mydb to ElasticSearch --index_name mydb # show the contents of catmandu.yml catmandu config # count items in a store catmandu count test1 # delete items from store catmandu delete test1 -q 'title:"My Rabbit"' # run a fix script $ catmandu run myfixes.fix # or, create an executable fix script $ cat myfixes.fix #!/usr/local/bin/catmandu run do importer(OAI,url:"http://biblio.ugent.be/oai") retain(_id) end $ chmod 755 myfixes.fix $ ./myfixes.fix # configuration $ cat catmandu.yml --- store: test1: package: MongoDB options: database_name: mydb catmandu import JSON to test1 < records.json # show installed commands $ catmandu info $ catmandu info --namespace XML =head1 COMMANDS =head2 help COMMAND Documentation about command line options. =head2 config Display the contents of the catmandu.yml files in your project. =head2 convert IMPORTER [OPTIONS] [[--fix FIX]] to EXPORTER [OPTIONS] Convert data from one format to another format with help of L<Catmandu::Importer>s and L<Catmandu::Exporter>s. All options given on the command line will be send to the Importer or Exporter as initialization parameters. E.g. catmandu convert OAI --url BASEURL --metadataPrefx PREFIX \ to \ CSV --header 1 --sep_char '|' Look at the documentation of all the importers and exporters to see which options are available. All importers accept one or more --fix options with the name of a fix file or file command. catmandu convert JSON --fix fixes.txt catmandu convert JSON --fix 'remove_field(abc)' The JSON exporter is implicit and is optional. catmandu convert YAML to JSON catmandu convert YAML # shorter =head2 copy STORE [OPTIONS] [-q QUERY] [--limit LIMIT] [[--fix FIX]] to STORE [OPTIONS] Copy items from one L<Catmandu::Store> to another. All options given on the command line will be send to the Stores as initialization parameters. Optionally a QUERY and LIMIT can be provided to selectively export items from the Store. Optionally a FIX can be provided to be executed on all the items before they are stored. =head2 count STORE [OPTIONS] Count the number of items in a L<Catmandu::Store>. All options given on the command line will be send to the store as initialization parameters. E.g. catmandu count MongoDB --database_name mydb --bag data =head2 delete STORE [OPTIONS] [-q QUERY] Delete items from a L<Catmandu::Store>. All options given on the command line will be send to the store as initialization parameters. Optionally a QUERY can be provided to select the items to delete. E.g. catmandu delete MongoDB --database_name mydb --bag data -q "title:Delete me" =head2 export STORE [OPTIONS] [-q QUERY] [--limit LIMIT] [[--fix FIX]] to EXPORTER [OPTIONS] Export items from a L<Catmandu::Store> using a L<Catmandu::Exporter>. All options given on the command line will be send to the Store or Exporter as initialization parameters. Optionally a QUERY and LIMIT can be provided to selectively export items from the Store. Optionally a FIX can be provided to be executed on all the items before they are exporter by the exporter. E.g. catmandu export MongoDB --database_name mydb --bag data -q "title:Perl" =head2 import IMPORTER [OPTIONS] [[--fix FIX]] to STORE [OPTIONS] Import items from a L<Catmandu::Importer> to a L<Catmandu::Store>. All options given on the command line will be send to the Importer or Store as initialization parameters. Optionally a FIX can be provided to be executed on all the items before they are stored into the Store. catmandu import JSON to MongoDB --database_name mydb < records.json =head2 info [OPTIONS] List installed Catmandu modules (importers, exporters, stores, and fixes). =head2 run [FIX] Execute a fix script or run an interactive Fix shell. =head1 OPTIONS =over 4 =item -v Verbose output. This includes progress of operations. =item -h =item -? =item --lib-path PATH =item -I Specifies Perl library include paths, like perl's -I option. This option is repeatable. =item --load-path PATH =item -L PATH Search upwards from this path for configuration files and accompanying lib directories. This option is repeatable. =item --var [NAME]=[VALUE] Catmandu such as convert, import and export accept command line variables that can be read by any fix script provided. For instance, if provenance information need to be added to the output, then this can be provided via the command line: $ catmandu convert MARC --fix myfixes.txt --var source=Springer --var date=2016 < data.mrc with myfixes.txt a file like: add_field(source,{{source}}) add_field(data,{{date}}) ...(other fixes)... =item --debug [LEVEL] =item -D[LEVEL] Set the debugging level for Catmandu. LEVEL is one of: 1 - WARN messages 2 - INFO messages 3 - DEBUG messages Requires an installation of L<Log::Log4perl> and L<Log::Any::Adapter::Log4perl>. By default an internal log4perl configuration file is used that sends all debug messages to stderr. Optionally in the catmandu.yml the path to a log4perl configuration file can be set. E.g. catmandu.yml: log4perl: /etc/log4perl.conf or log4perl: " log4perl.category.Catmandu=$level,$appender log4perl.appender.STDOUT=Log::Log4perl::Appender::Screen log4perl.appender.STDOUT.stderr=0 log4perl.appender.STDOUT.utf8=1 log4perl.appender.STDOUT.layout=PatternLayout log4perl.appender.STDOUT.layout.ConversionPattern=%d [%P] - %p %l %M time=%r : %m%n log4perl.appender.STDERR=Log::Log4perl::Appender::Screen log4perl.appender.STDERR.stderr=0 log4perl.appender.STDERR.utf8=1 log4perl.appender.STDERR.layout=PatternLayout log4perl.appender.STDERR.layout.ConversionPattern=%d [%P] - %l : %m%n " See also L<Catmandu::Logger> to enable logging for your own Catmandu packages. =back =head1 DATA OPTIONS =over 4 =item --fix EXPRESSION =item --fix FILE When exporting or storing apply a fix EXPRESSION or all the fixes in FILE on each item. This option is repeatable. =item --start NUM When exporting or storing data skip the first NUM items. =item --total NUM When exporting of storing data process only a total NUM of items. =item --replace When storing data first delete all the items in the Store or Bag. =item --query QUERY =item --cql-query QUERY | -q QUERY When a Store is searchable execute and return the results. Using the --cql-query or -q option the CQL query language can be used (if supported). =item --sort SORT =item --sru-sortkeys SORT Set the sort order for the results returned from a searchable Store. --sru-sortkeys is only available if the Store supports CQL. =item --limit NUM Limit the number of results returned from the searchable results to NUM. =item --count Report the number of items processed. =item --version Return the installed version of Catmandu. =back =head1 SEE ALSO L<Catmandu::Importer> L<Catmandu::Exporter> L<Catmandu::Store> L<Catmandu::MARC> L<Catmandu::OAI> L<Catmandu::MongoDB> L<Catmandu::Solr> L<Catmandu::ElasticSearch> =cut ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/docker/apt.txt������������������������������������������������������������������������000644 �000765 �000024 �00000001400 13341726377 016747� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Catmandu dependencies as Debian packages # This list is used to build Docker images. See also # https://salsa.debian.org/perl-team/modules/packages/libcatmandu-perl libany-uri-escape-perl libasa-perl libcgi-expand-perl libclone-perl libconfig-onion-perl libcpanel-json-xs-perl libdata-compare-perl libdata-util-perl libdata-uuid-perl libhash-merge-simple-perl libio-handle-util-perl liblist-moreutils-perl liblog-any-perl libmime-types-perl libmodule-info-perl libmoo-perl libmoox-aliases-perl libnamespace-clean-perl libparser-mgc-perl libpath-iterator-rule-perl libpath-tiny-perl libsub-exporter-perl libtext-csv-perl libtext-hogan-perl libthrowable-perl libtry-tiny-byclass-perl liburi-perl liburi-template-perl libwww-perl libyaml-libyaml-perl build-essential ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/misc/vim/�����������������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 015706� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/misc/vim/syntax/����������������������������������������������������������������������000755 �000765 �000024 �00000000000 13341726377 017234� 5����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/misc/vim/syntax/catmandu-fix.vim������������������������������������������������������000644 �000765 �000024 �00000001344 13341726377 022333� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������if exists("b:current_syntax") finish endif syntax match fixComment "\v#.*$" syntax keyword fixKeyword select reject syntax keyword fixKeyword if else elsif unless bind do doset end and or syntax keyword fixKeyword and or && || syntax match fix /[a-z][_0-9a-zA-Z]*\s*(/me=e-1,he=e-1 syntax region fixDoubleQuotedString start=/\v"/ skip=/\v\\./ end=/\v"/ syntax region fixSingleQuotedString start=/\v'/ skip=/\v\\./ end=/\v'/ syntax region fixIfBlock start="if" end="end" fold transparent highlight default link fixComment Comment highlight default link fixKeyword Keyword highlight default link fix Function highlight link fixDoubleQuotedString String highlight link fixSingleQuotedString String let b:current_syntax = "catmandu-fix" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/benchmark/util_vs_data_util.pl��������������������������������������������������������000755 �000765 �000024 �00000003304 13341726377 022165� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl BEGIN { use strict; use warnings; use FindBin; use File::Spec (); use Benchmark qw(:all); use Data::Util (); use lib File::Spec->catdir($FindBin::Bin, '..', 'lib'); use Catmandu::Util (); } my @names = qw( is_invocant is_scalar_ref is_array_ref is_hash_ref is_code_ref is_regex_ref is_glob_ref is_value is_string is_number is_integer ); my @catmandu_util_subs = ( \&Catmandu::Util::is_invocant, \&Catmandu::Util::is_scalar_ref, \&Catmandu::Util::is_array_ref, \&Catmandu::Util::is_hash_ref, \&Catmandu::Util::is_code_ref, \&Catmandu::Util::is_regex_ref, \&Catmandu::Util::is_glob_ref, \&Catmandu::Util::is_value, \&Catmandu::Util::is_string, \&Catmandu::Util::is_number, \&Catmandu::Util::is_integer, ); my @data_util_subs = ( \&Data::Util::is_invocant, \&Data::Util::is_scalar_ref, \&Data::Util::is_array_ref, \&Data::Util::is_hash_ref, \&Data::Util::is_code_ref, \&Data::Util::is_regex_ref, \&Data::Util::is_glob_ref, \&Data::Util::is_value, \&Data::Util::is_string, \&Data::Util::is_number, \&Data::Util::is_integer, ); my $str = "a string"; my $regex = qr//; my @data = ( 'Benchmark', \$str, [], {}, sub {}, $regex, \*STDIN, "", $str, 1.1, 1, ); for (my $i = 0; $i < @names; $i++) { my $name = $names[$i]; my $catmandu_util_sub = $catmandu_util_subs[$i]; my $data_util_sub = $data_util_subs[$i]; cmpthese(1000000, { "Catmandu::Util::$name" => sub { $catmandu_util_sub->($_) for @data }, "Data::Util::$name" => sub { $data_util_sub->($_) for @data }, }); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/benchmark/data.json�������������������������������������������������������������������000644 �000765 �000024 �00001100404 13341726377 017716� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������{"keyword":["STATES","HIGGS","LHC"],"source":{"record":"VR 1.0\nPT J\nAU Khachatryan, V\n Sirunyan, AM\n Tumasyan, A\n Adam, W\n Bergauer, T\n Dragicevic, M\n Ero, J\n Friedl, M\n Fruhwirth, R\n Ghete, VM\n Hartl, C\n Hormann, N\n Hrubec, J\n Jeitler, M\n Kiesenhofer, W\n Knunz, V\n Krammer, M\n Kratschmer, I\n Liko, D\n Mikulec, I\n Rabady, D\n Rahbaran, B\n Rohringer, H\n Shofbeck, R\n Strauss, J\n Treberer-Treberspurg, W\n Waltenberger, W\n Wulz, CE\n Mossolov, V\n Shumeiko, N\n SuarezGonzalez, J\n Alderweireldt, S\n Bansal, S\n Cornelis, T\n DeWolf, EA\n Janssen, X\n Knutsson, A\n Lauwers, J\n Luyckx, S\n Ochesanu, S\n Rougny, R\n De Klundert, MV\n Van Haevermaet, H\n Van Mechelen, P\n Van Remortel, N\n Van Spilbeeck, A\n Blekman, F\n Blyweert, S\n D'Hondt, J\n Daci, N\n Heracleous, N\n Keaveney, J\n Lowette, S\n Maes, M\n Olbrechts, A\n Python, Q\n Strom, D\n Tavernier, S\n Van Doninck, W\n Van Mulders, P\n Van Onsem, GP\n Villella, I\n Caillol, C\n Clerbaux, B\n De Lentdecker, G\n Dobur, D\n Favart, L\n Gay, APR\n Grebenyuk, A\n Leonard, A\n Mohammadi, A\n Pernie, L\n Randle-Conde, A\n Reis, T\n Seva, T\n Thomas, L\n van derVelde, C\n van Laer, P\n Wang, J\n Zenoni, F\n Adler, V\n Beernaert, K\n Benucci, L\n Cimmino, A\n Costantini, S\n Crucy, S\n Dildick, S\n Fagot, A\n Garcia, G\n Mccartin, J\n Rios, AAO\n Poyraz, D\n Ryckbosch, D\n SalvaDiblen, S\n Sigamani, M\n Strobbe, N\n Thyssen, F\n Tytgat, M\n Yazgan, E\n Zaganidis, N\n Basegmez, S\n Beluffi, C\n Bruno, G\n Castello, R\n Caudron, A\n Ceard, L\n Da Silveira, GG\n Delaere, C\n du Pree, T\n Favart, D\n Forthomme, L\n Giammanco, A\n Hollar, J\n Jafari, A\n Jez, P\n Komm, M\n Lemaitre, V\n Nuttens, C\n Perrini, L\n Pin, A\n Piotrzkowski, K\n Popov, A\n Quertenmont, L\n Selvaggi, M\n Marono, MV\n Garcia, JMV\n Beliy, N\n Caebergs, T\n Daubie, E\n Hammad, GH\n Alda, WL\n Alves, GA\n Brito, L\n Martins, MC\n Martins, TD\n Molina, J\n Herrera, CM\n Pol, ME\n Teles, PR\n Carvalho, W\n Chinellato, J\n Custodio, A\n Da Costa, EM\n Damiao, DD\n Martins, CD\n De Souza, SF\n Malbouisson, H\n Figueiredo, DM\n Mundim, L\n Nogima, H\n Da Silva, WLP\n Santaolalla, J\n Santoro, A\n Sznajder, A\n Manganote, EJT\n Pereira, AV\n Bernardes, CA\n Dogra, S\n Tomei, TRFP\n Gregores, EM\n Mercadante, PG\n Novaes, SF\n Padula, SS\n Aleksandrov, A\n Genchev, V\n Hadjiiska, R\n Iaydjiev, P\n Marinov, A\n Piperov, S\n Rodozov, M\n Stoykova, S\n Sultanov, G\n Vutova, M\n Dimitrov, A\n Glushkov, I\n Litov, L\n Pavlov, B\n Petkov, P\n Bian, JG\n Chen, GM\n Chen, HS\n Chen, M\n Cheng, T\n Du, R\n Jiang, CH\n Plestina, R\n Romeo, F\n Tao, J\n Wang, Z\n Asawatangtrakuldee, C\n Ban, Y\n Liu, S\n Mao, Y\n Qian, SJ\n Wang, D\n Xu, Z\n Zhang, L\n Zou, W\n Avila, C\n Cabrera, A\n Sierra, LFC\n Florez, C\n Gomez, JP\n Moreno, BG\n Sanabria, JC\n Godinovic, N\n Lelas, D\n Polic, D\n Puljak, I\n Antunovic, Z\n Kovac, M\n Brigljevic, V\n Kadija, K\n Luetic, J\n Mekterovic, D\n Sudic, L\n Attikis, A\n Mavromanolakis, G\n Mousa, J\n Nicolaou, C\n Ptochos, F\n Razis, PA\n Rykaczewski, H\n Bodlak, M\n Finger, M\n Finger, M\n Assran, Y\n Kamel, AE\n Mahmoud, MA\n Radi, A\n Kadastik, M\n Murumaa, M\n Raidal, M\n Tiko, A\n Eerola, P\n Voutilainen, M\n Harkonen, J\n Karimaki, V\n Kinnunen, R\n Kortelainen, MJ\n Lampen, T\n Lassila-Perini, K\n Lehti, S\n Linden, T\n Luukka, P\n Maenpaa, T\n Peltola, T\n Tuominen, E\n Tuominiemi, J\n Tuovinen, E\n Wendland, L\n Talvitie, J\n Tuuva, T\n Besancon, M\n Couderc, F\n Dejardin, M\n Denegri, D\n Fabbro, B\n Faure, JL\n Favaro, C\n Ferri, F\n Ganjour, S\n Givernaud, A\n Gras, P\n de Monchenault, GH\n Jarry, P\n Locci, E\n Malcles, J\n Rander, J\n Rosowsky, A\n Titov, M\n Baffioni, S\n Beaudette, F\n Busson, P\n Chapon, E\n Charlot, C\n Dahms, T\n Dalchenko, M\n Dobrzynski, L\n Filipovic, N\n Florent, A\n de Cassagnac, RG\n Mastrolorenzo, L\n Mine, P\n Naranjo, IN\n Nguyen, M\n Ochando, C\n Ortona, G\n Paganini, P\n Regnard, S\n Salerno, R\n Sauvan, JB\n Sirois, Y\n Veelken, C\n Yilmaz, Y\n Zabi, A\n Agram, JL\n Andrea, J\n Aubin, A\n Bloch, D\n Brom, JM\n Chabert, EC\n Collard, C\n Conte, E\n Fontaine, JC\n Gele, D\n Goerlach, U\n Goetzmann, C\n Le Bihan, AC\n Skovpen, K\n Van Hove, P\n Gadrat, S\n Beauceron, S\n Beaupere, N\n Bernet, C\n Boudoul, G\n Bouvier, E\n Brochet, S\n Montoya, AC\n Chasserat, J\n Chierici, R\n Contardo, D\n Courbon, B\n Depasse, P\n El Mamouni, H\n Fan, J\n Fay, J\n Gascon, S\n Gouzevitch, M\n Ille, B\n Kurca, T\n Lethuillier, M\n Mirabito, L\n Pequegnot, AL\n Perries, S\n Alvarez, JDR\n Sabes, D\n Sgandurra, L\n Sordini, V\n Donckt, MV\n Verdier, P\n Viret, S\n Xiao, H\n Tsamalaidze, Z\n Autermann, C\n Beranek, S\n Bontenackels, M\n Edelhoff, M\n Feld, L\n Heister, A\n Klein, K\n Lipinski, M\n Ostapchuk, A\n Preuten, M\n Raupach, F\n Sammet, J\n Schael, S\n Schulte, JF\n Weber, H\n Wittmer, B\n Zhukov, V\n Ata, M\n Brodski, M\n Dietz-Laursonn, E\n Duchardt, D\n Erdmann, M\n Fischer, R\n Guth, A\n Hebbeker, T\n Heidemann, C\n Hoepfner, K\n Klingebiel, D\n Knutzen, S\n Kreuzer, P\n Merschmeyer, M\n Meyer, A\n Millet, P\n Olschewski, M\n Padeken, K\n Papacz, P\n Reithler, H\n Schmitz, SA\n Sonnenschein, L\n Teyssier, D\n Thur, S\n Weber, M\n Cherepanov, V\n Erdogan, Y\n Flugge, G\n Geenen, H\n Geisler, M\n Ahmad, WH\n Hoehle, F\n Kargoll, B\n Kress, T\n Kuessel, Y\n Kunsken, A\n Lingemann, J\n Nowack, A\n Nugent, IM\n Pooth, O\n Stahl, A\n Martin, MA\n Asin, I\n Bartosik, N\n Behr, J\n Behrens, U\n Bell, AJ\n Bethani, A\n Borras, K\n Burgmeier, A\n Cakir, A\n Calligaris, L\n Campbell, A\n Choudhury, S\n Costanza, F\n Pardos, CD\n Dolinska, G\n Dooling, S\n Dorland, T\n Eckerlin, G\n Eckstein, D\n Eichhorn, T\n Flucke, G\n Garcia, JG\n Geiser, A\n Gizhko, A\n Gunnellini, P\n Hauk, J\n Hempel, M\n Jung, H\n Kalogeropoulos, A\n Karacheban, O\n Kasemann, M\n Katsas, P\n Kieseler, J\n Kleinwort, C\n Korol, I\n Krucker, D\n Lange, W\n Leonard, J\n Lipka, K\n Lobanov, A\n Lohmann, W\n Lutz, B\n Mankel, R\n Marfin, I\n Melzer-Pellmann, IA\n Meyer, AB\n Mittag, G\n Mnich, J\n Mussgiller, A\n Naumann-Emme, S\n Nayak, A\n Ntomari, E\n Perrey, H\n Pitzl, D\n Placakyte, R\n Raspereza, A\n Cipriano, PMR\n Roland, B\n Ron, E\n Sahin, MO\n Salfeld-Nebgen, J\n Saxena, P\n Schoerner-Sadenius, T\n Schoerder, M\n Seitz, C\n Spannagel, S\n Trevino, ADRV\n Walsh, R\n Wissing, C\n Blobel, V\n Vignali, MC\n Draeger, AR\n Erfle, J\n Garutti, E\n Goebel, K\n Gorner, M\n Haller, J\n Hoffmann, M\n Hoing, RS\n Junkes, A\n Kirschenmann, H\n Klanner, R\n Kogler, R\n Lapsien, T\n Lenz, T\n Marchesini, I\n Marconi, D\n Ott, J\n Peiffer, T\n Perieanu, A\n Pietsch, N\n Poehlsen, J\n Poehlsen, T\n Rathjens, D\n Sander, C\n Schettler, H\n Schleper, P\n Schlieckau, E\n Schmidt, A\n Seidel, M\n Sola, V\n Stadie, H\n Steinbruck, G\n Troendle, D\n Usai, E\n Vanelderen, L\n Vanhoefer, A\n Barth, C\n Baus, C\n Berger, J\n Boser, C\n Butz, E\n Chwalek, T\n De Boer, W\n Descroix, A\n Dierlamm, A\n Feindt, M\n Frensch, F\n Giffels, M\n Gilbert, A\n Hartmann, F\n Hauth, T\n Husemann, U\n Katkov, I\n Kornmayer, A\n Pardo, PL\n Mozer, MU\n Muller, T\n Muller, T\n Nurnberg, A\n Quast, G\n Rabbertz, K\n Rocker, S\n Simonis, HJ\n Stober, FM\n Ulrich, R\n Wagner-Kuhr, J\n Wayand, S\n Weiler, T\n Wolf, R\n Anagnostou, G\n Daskalakis, G\n Geralis, T\n Giakoumopoulou, VA\n Kyriakis, A\n Loukas, D\n Markou, A\n Markou, C\n Psallidas, A\n Topsis-Giotis, I\n Agapitos, A\n Kesisoglou, S\n Panagiotou, A\n Saoulidou, N\n Stiliaris, E\n Aslanoglou, X\n Evangelou, I\n Flouris, G\n Foudas, C\n Kokkas, P\n Manthos, N\n Papadopoulos, I\n Paradas, E\n Strologas, J\n Bencze, G\n Hajdu, C\n Hidas, P\n Horvath, D\n Sikler, F\n Veszpremi, V\n Vesztergombi, G\n Zsigmond, AJ\n Beni, N\n Czellar, S\n Karancsi, J\n Molnar, J\n Palinkas, J\n Szillasi, Z\n Makovec, A\n Raics, P\n Trocsanyi, ZL\n Ujvari, B\n Swain, SK\n Beri, SB\n Bhatnagar, V\n Gupta, R\n Bhawandeep, U\n Kalsi, AK\n Kaur, M\n Kumar, R\n Mittal, M\n Nishu, N\n Singh, JB\n Kumar, A\n Kumar, A\n Ahuja, S\n Bhardwaj, A\n Choudhary, BC\n Kumar, A\n Malhotra, S\n Naimuddin, M\n Ranjan, K\n Sharma, V\n Banerjee, S\n Bhattacharya, S\n Chatterjee, K\n Dutta, S\n Gomber, B\n Jain, S\n Jain, S\n Khurana, R\n Modak, A\n Mukherjee, S\n Roy, D\n Sarkar, S\n Sharan, M\n Abdulsalam, A\n Dutta, D\n Kumar, V\n Mohanty, AK\n Pant, LM\n Shukla, P\n Topkar, A\n Aziz, T\n Banerjee, S\n Bhowmik, S\n Chatterjee, RM\n Dewanjee, RK\n Dugad, S\n Ganguly, S\n Ghosh, S\n Guchait, M\n Gurtu, A\n Kole, G\n Kumar, S\n Maity, M\n Majumder, G\n Mazumdar, K\n Mohanty, GB\n Parida, B\n Sudhakar, K\n Wickramage, N\n Sharma, S\n Bakhshiansohi, H\n Behnamian, H\n Etesami, SM\n Fahim, A\n Goldouzian, R\n Khakzad, M\n Najafabadi, MM\n Naseri, M\n Mehdiabadi, SP\n Hosseinabadi, FR\n Safarzadeh, B\n Zeinali, M\n Felcini, M\n Grunewald, M\n Abbrescia, M\n Calabria, C\n Chhibra, SS\n Colaleo, A\n Creanza, D\n Cristella, L\n De Filippis, N\n De Palma, M\n Fiore, L\n Iaselli, G\n Maggi, G\n Maggi, M\n My, S\n Nuzzo, S\n Pompili, A\n Pugliese, G\n Radogna, R\n Selvaggi, G\n Sharma, A\n Silvestris, L\n Venditti, R\n Verwilligen, P\n Abbiendi, G\n Benvenuti, AC\n Bonacorsi, D\n Braibant-Giacomelli, S\n Brigliadori, L\n Campanini, R\n Capiluppi, P\n Castro, BA\n Cavallo, FR\n Codispoti, G\n Cuffiani, M\n Dallavalle, GM\n Fabbri, F\n Fanfani, A\n Fasanella, D\n Giacomelli, P\n Grandi, C\n Guiducci, L\n Marcellini, S\n Masetti, G\n Montanari, A\n Navarria, FL\n Perrotta, A\n Rossi, AM\n Rovelli, T\n Siroli, GP\n Tosi, N\n Travaglini, R\n Albergo, S\n Cappello, G\n Chiorboli, M\n Costa, S\n Giordano, F\n Potenza, R\n Tricomi, A\n Tuve, C\n Barbagli, G\n Ciulli, V\n Civinini, C\n D'Alessandro, R\n Focardi, E\n Gallo, E\n Gonzi, S\n Gori, V\n Lenzi, P\n Meschini, M\n Paoletti, S\n Sguazzoni, G\n Tropiano, A\n Benussi, L\n Bianco, S\n Fabbri, F\n Piccolo, D\n Ferretti, R\n Ferro, F\n Lo Vetere, M\n Robutti, E\n Tosi, S\n Dinardo, ME\n Fiorendi, S\n Gennai, S\n Gerosa, R\n Ghezzi, A\n Govoni, P\n Lucchini, MT\n Malvezzi, S\n Manzoni, RA\n Martelli, A\n Marzocchi, B\n Menasce, D\n Moroni, L\n Paganoni, M\n Pedrini, D\n Ragazzi, S\n Redaelli, N\n de Fatis, TT\n Buontempo, S\n Cavallo, N\n Di Guida, S\n Fabozzi, F\n Iorio, AOM\n Lista, L\n Meola, S\n Merola, M\n Paolucci, P\n Azzi, P\n Bacchetta, N\n Bisello, D\n Branca, A\n Carlin, R\n ChecchiA, P\n Dall'Osso, M\n Dorigo, T\n Dosselli, U\n Gasparini, F\n Gasparini, U\n Gozzelino, A\n Kanishchev, K\n Lacaprara, S\n Margoni, M\n Meneguzzo, AT\n Pazzini, J\n Pozzobon, N\n Ronchese, P\n Simonetto, F\n Torassa, E\n Tosi, M\n Zotto, P\n Zucchetta, A\n Zumerle, G\n Gabusi, M\n Ratti, SP\n Re, V\n Riccardi, C\n Salvini, P\n Vitulo, P\n Biasini, M\n Bilei, GM\n Ciangottini, D\n Fano, L\n Lariccia, P\n Mantovani, G\n Menichelli, M\n Saha, A\n Santocchia, A\n Spiezia, A\n Androsov, K\n Azzurri, P\n Bagliesi, G\n Bernardini, J\n Boccali, T\n Broccolo, G\n Castaldi, R\n Ciocci, MA\n Dell'Orso, R\n Donato, S\n Fedi, G\n Fiori, F\n Foa, L\n Giassi, A\n Grippo, MT\n Ligabue, F\n Lomtadze, T\n Martini, L\n Messineo, A\n Moon, CS\n Palla, F\n Rizzi, A\n Savoy-Navarro, A\n Serban, AT\n Spagnolo, P\n Squillacioti, P\n Tenchini, R\n Tonelli, G\n Venturi, A\n Verdini, PG\n Vernieri, C\n Barone, L\n Cavallari, F\n D'imperio, G\n Del Re, D\n Diemoz, M\n Jorda, C\n Longo, E\n Margaroli, F\n Meridiani, P\n Micheli, F\n Organtini, G\n Paramatti, R\n Rahatlou, S\n Rovelli, C\n Santanastasio, F\n Soffi, L\n Traczyk, P\n Amapane, N\n Arcidiacono, R\n Argiro, S\n Arneodo, M\n Bellan, R\n Biino, C\n Cartiglia, N\n Casasso, S\n Costa, M\n Covarelli, R\n Degano, A\n Demaria, N\n Finco, L\n Mariotti, C\n Maselli, S\n Migliore, E\n Monaco, V\n Musich, M\n Obertino, MM\n Pacher, L\n Pastrone, N\n Pelliccioni, M\n Angioni, GLP\n Potenza, A\n Romero, A\n Ruspa, M\n Sacchi, R\n Solano, A\n Staiano, A\n Tamponi, U\n Belforte, S\n Candelise, V\n Casarsa, M\n Cossutti, F\n Della Ricca, G\n Gobbo, B\n La Licata, C\n Marone, M\n Schizzi, A\n Umer, T\n Zanetti, A\n Chang, S\n Kropivnitskaya, A\n Nam, SK\n Kim, DH\n Kim, GN\n Kim, MS\n Kong, DJ\n Lee, S\n Oh, YD\n Park, H\n Sakharov, A\n Son, DC\n Kim, TJ\n Ryu, MS\n Kim, JY\n Moon, DH\n Song, S\n Choi, S\n Gyun, D\n Hong, B\n Jo, M\n Kim, H\n Kim, Y\n Lee, B\n Lee, KS\n Park, SK\n Roh, Y\n Yoo, HD\n Choi, M\n Kim, JH\n Park, IC\n Ryu, G\n Choi, Y\n Choi, YK\n Goh, J\n Kim, D\n Kwon, E\n Lee, J\n Yu, I\n Juodagalvis, A\n Komaragiri, JR\n Ali, MABM\n Linares, EC\n Castilla-Valdez, H\n De La Cruz-Burelo, E\n Heredia-de La Cruz, I\n Hernandez-Almada, A\n Lopez-Fernandez, R\n Sanchez-Hernandez, A\n Moreno, SC\n Valencia, FV\n Pedraza, I\n Ibarguen, HAS\n Pineda, AM\n Krofcheck, D\n Butler, PH\n Reucroft, S\n Ahmad, A\n Ahmad, M\n Hassan, Q\n Hoorani, HR\n Khan, WA\n Khurshid, T\n Shoaib, M\n Bialkowska, H\n Bluj, M\n Boimska, B\n Frueboes, T\n Gorski, M\n Kazana, M\n Nawrocki, K\n Romanowska-Rybinska, K\n Szleper, M\n Zalewski, P\n Brona, G\n Bunkowski, K\n Cwiok, M\n Dominik, W\n Doroba, K\n Kalinowski, A\n Konecki, M\n Krolikowski, J\n Misiura, M\n Olszewski, M\n Bargassa, P\n Silva, CBDE\n Faccioli, P\n Parracho, PGF\n Gallinaro, M\n Iglesias, LL\n Nguyen, F\n Antunes, JR\n Seixas, J\n Varela, J\n Vischia, P\n Afanasiev, S\n Bunin, P\n Gavrilenko, M\n Golutvin, I\n Gorbunov, I\n Kamenev, A\n Karjavin, V\n Konoplyanikov, V\n Lanev, A\n Malakhov, A\n Matveev, V\n Moisenz, P\n Palichik, V\n Perelygin, V\n Shmatov, S\n Skatchkov, N\n Smirnov, V\n Zarubin, A\n Golovtsov, V\n Ivanov, Y\n Kim, V\n Kuznetsova, E\n Levchenko, P\n Murzin, V\n Oreshkin, V\n Smirnov, I\n Sulimov, V\n Uvarov, L\n Vavilov, S\n Vorobyev, A\n Vorobyev, A\n Andreev, Y\n Dermenev, A\n Gninenko, S\n Golubev, N\n Kirsanov, M\n Krasnikov, N\n Pashenkov, A\n Tlisov, D\n Toropin, A\n Epshteyn, V\n Gavrilov, V\n Lychkovskaya, N\n Popov, V\n Pozdnyakov, I\n Safronov, G\n Semenov, S\n Spiridonov, A\n Stolin, V\n Vlasov, E\n Zhokin, A\n Andreev, V\n Azarkin, M\n Dremin, I\n Kirakosyan, M\n Leonidov, A\n Mesyats, G\n Rusakov, SV\n Vinogradov, A\n Belyaev, A\n Boos, E\n Dubinin, M\n Dudko, L\n Ershov, A\n Gribushin, A\n Klyukhin, V\n Kodolova, O\n Lokhtin, I\n Obraztsov, S\n Petrushanko, S\n Savrin, V\n Snigirev, A\n Azhgirey, I\n Bayshev, I\n Bitioukov, S\n Kachanov, V\n Kalinin, A\n Konstantinov, D\n Krychkine, V\n Petrov, V\n Ryutin, R\n Sobol, A\n Tourtchanovitch, L\n Troshin, S\n Tyurin, N\n Uzunian, A\n Volkov, A\n Adzic, P\n Ekmedzic, M\n Milosevic, J\n Rekovic, V\n Maestre, JA\n Battilana, C\n Calvo, E\n Cerrada, M\n Llatas, MC\n Colino, N\n De La Cruz, B\n Peris, AD\n Vazquez, DD\n Del Valle, AE\n Bedoya, CF\n Ramos, JPF\n Flix, J\n Fouz, MC\n Garcia-Abia, P\n Lopez, OG\n Lopez, SG\n Hernandez, JM\n Josa, MI\n De Martino, EN\n Yzquierdo, APC\n Pelayo, JP\n Olmeda, AQ\n Redondo, I\n Romero, L\n Soares, MS\n Albajar, C\n de Troconiz, JF\n Missiroli, M\n Moran, D\n Brun, H\n Cuevas, J\n Menendez, JF\n Folgueras, S\n Caballero, IG\n Cifuentes, JAB\n Cabrillo, IJ\n Calderon, A\n Campderros, JD\n Fernandez, M\n Gomez, G\n Graziano, A\n Virto, AL\n Marco, J\n Marco, R\n Rivero, CM\n Matorras, F\n Sanchez, FJM\n Gomez, JP\n Rodrigo, T\n Rodriguez-Marrero, AY\n Ruiz-Jimeno, A\n Scodellaro, L\n Vila, I\n Cortabitarte, RV\n Abbaneo, D\n Auffray, E\n Auzinger, G\n Bachtis, M\n Baillon, P\n Ball, AH\n Barney, D\n Benaglia, A\n Bendavid, J\n Benhabib, L\n Benitez, JF\n Bloch, P\n Bocci, A\n Bonato, A\n Bondu, O\n Botta, C\n Breuker, H\n Camporesi, T\n Cerminara, G\n Colafranceschi, S\n D'Alfonso, M\n d'Enterria, D\n Dabrowski, A\n David, A\n De Guio, F\n De Roeck, A\n De Visscher, S\n Di Marco, E\n Dobson, M\n Dordevic, M\n Dorney, B\n Dupont-Sagorin, N\n Elliott-Peisert, A\n Franzoni, G\n Funk, W\n Gigi, D\n Gill, K\n Giordano, D\n Girone, M\n Glege, F\n Guida, R\n Gundacker, S\n Guthoff, M\n Hammer, J\n Hansen, M\n Harris, P\n Hegeman, J\n Innocente, V\n Janot, P\n Kousouris, K\n Krajczar, K\n Lecoq, P\n Lourenco, C\n Magini, N\n Malgeri, L\n Mannelli, M\n Marrouche, J\n Masetti, L\n Meijers, F\n Mersi, S\n Meschi, E\n Moortgat, F\n Morovic, S\n Mulders, M\n Orsini, L\n Pape, L\n Perez, E\n Petrilli, A\n Petrucciani, G\n Pfeiffer, A\n Pimia, M\n Piparo, D\n Plagge, M\n Racz, A\n Rolandi, G\n Rovere, M\n Sakulin, H\n Schafer, C\n Schwick, C\n Sharma, A\n Siegrist, P\n Silva, P\n Simon, M\n Sphicas, P\n Spiga, D\n Steggemann, J\n Stieger, B\n Stoye, M\n Takahashi, Y\n Treille, D\n Tsirou, A\n Veres, GI\n Wardle, N\n Wohri, HK\n Wollny, H\n Zeuner, WD\n Bertl, W\n Deiters, K\n Erdmann, W\n Horisberger, R\n Ingram, Q\n Kaestli, HC\n Kotlinski, D\n Langenegger, U\n Renker, D\n Rohe, T\n Bachmair, F\n Bani, L\n Bianchini, L\n Buchmann, MA\n Casal, B\n Chanon, N\n Dissertori, G\n Dittmar, M\n Donega, M\n Dunser, M\n Eller, P\n Grab, C\n Hits, D\n Hoss, J\n Lustermann, W\n Mangano, B\n Marini, AC\n Marionneau, M\n del Arbol, PMR\n Masciovecchio, M\n Meister, D\n Mohr, N\n Musella, P\n Nageli, C\n Nessi-Tedaldi, F\n Pandolfi, F\n Pauss, F\n Perrozzi, L\n Peruzzi, M\n Quittnat, M\n Rebane, L\n Rossini, M\n Starodumov, A\n Takahashi, M\n Theofilatos, K\n Wallny, R\n Weber, HA\n Amsler, C\n Canelli, MF\n Chiochia, V\n De Cosa, A\n Hinzmann, A\n Hreus, T\n Kilminster, B\n Lange, C\n Ngadiuba, J\n Pinna, D\n Robmann, P\n Ronga, FJ\n Taroni, S\n Verzetti, M\n Yang, Y\n Cardaci, M\n Chen, KH\n Ferro, C\n Kuo, CM\n Lin, W\n Lu, YJ\n Volpe, R\n Yu, SS\n Chang, P\n Chang, YH\n Chao, Y\n Chen, KF\n Chen, PH\n Dietz, C\n Grundler, U\n Hou, WS\n Liu, YF\n Lu, RS\n Moya, MM\n Petrakou, E\n Tzeng, YM\n Wilken, R\n Asavapibhop, B\n Singh, G\n Srimanobhas, N\n Suwonjandee, N\n Adiguzel, A\n Bakirci, MN\n Cerci, S\n Dozen, C\n Dumanoglu, I\n Eskut, E\n Girgis, S\n Gokbulut, G\n Guler, Y\n Gurpinar, E\n Hos, I\n Kangal, EE\n Topaksu, AK\n Onengut, G\n Ozdemir, K\n Ozturk, S\n Polatoz, A\n Cerci, DS\n Tali, B\n Topakli, H\n Vergili, M\n Zorbilmez, C\n Akin, IV\n Bilin, B\n Bilmis, S\n Gamsizkan, H\n Isildak, B\n Karapinar, G\n Ocalan, K\n Sekmen, S\n Surat, UE\n Yalvac, M\n Zeyrek, M\n Albayrak, EA\n Gulmez, E\n Kaya, M\n Kaya, O\n Yetkin, T\n Cankocak, K\n Vardarli, FI\n Levchuk, L\n Sorokin, P\n Brooke, JJ\n Clement, E\n Cussans, D\n Flacher, H\n Goldstein, J\n Grimes, M\n Heath, GP\n Heath, HF\n Jacob, J\n Kreczko, L\n Lucas, C\n Meng, Z\n Newbold, DM\n Paramesvaran, S\n Poll, A\n Sakuma, T\n El Nasr-Storey, SS\n Senkin, S\n Smith, VJ\n Bell, KW\n Belyaev, A\n Brew, C\n Brown, RM\n Cockerill, DJA\n Coughlan, JA\n Harder, K\n Harper, S\n Olaiya, E\n Petyt, D\n Shepherd-Themistocleous, CH\n Thea, A\n Tomalin, IR\n Williams, T\n Womersley, WJ\n Worm, SD\n Baber, M\n Bainbridge, R\n Buchmuller, O\n Burton, D\n Colling, D\n Cripps, N\n Dauncey, P\n Davies, G\n Della Negra, M\n Dunne, P\n Elwood, A\n Ferguson, W\n Fulcher, J\n Futyan, D\n Hall, G\n Iles, G\n Jarvis, M\n Karapostoli, G\n Kenzie, M\n Lane, R\n Lucas, R\n Lyons, L\n Magnan, AM\n Malik, S\n Mathias, B\n Nash, J\n Nikitenko, A\n Pela, J\n Pesaresi, M\n Petridis, K\n Raymond, DM\n Rogerson, S\n Rose, A\n Seez, C\n Sharp, P\n Tapper, A\n Acosta, MV\n Virdee, T\n Zenz, SC\n Cole, JE\n Hobson, PR\n Khan, A\n Kyberd, P\n Leggat, D\n Leslie, D\n Reid, ID\n Symonds, P\n Teodorescu, L\n Turner, M\n Dittmann, J\n Hatakeyama, K\n Kasmi, A\n Liu, H\n Pastika, N\n Scarborough, T\n Wu, Z\n Charaf, O\n Cooper, SI\n Henderson, C\n Rumerio, P\n Avetisyan, A\n Bose, T\n Fantasia, C\n Lawson, P\n Richardson, C\n Rohlf, J\n John, JS\n Sulak, L\n Alimena, J\n Berry, E\n Bhattacharya, S\n Christopher, G\n Cutts, D\n Demiragli, Z\n Dhingra, N\n Ferapontov, A\n Garabedian, A\n Heintz, U\n Kukartsev, G\n Laird, E\n Landsberg, G\n Luk, M\n Narain, M\n Segala, M\n Sinthuprasith, T\n Speer, T\n Swanson, J\n Breedon, R\n Breto, G\n Sanchez, MCD\n Chauhan, S\n Chertok, M\n Conway, J\n Conway, R\n Cox, PT\n Erbacher, R\n Gardner, M\n Ko, W\n Lander, R\n Mulhearn, M\n Pellett, D\n Pilot, J\n Ricci-Tam, F\n Shalhout, S\n Smith, J\n Squires, M\n Stolp, D\n Tripathi, M\n Wilbur, S\n Yohay, R\n Cousins, R\n Everaerts, P\n Farrell, C\n Hauser, J\n Ignatenko, M\n Rakness, G\n Takasugi, E\n Valuev, V\n Weber, M\n Burt, K\n Clare, R\n Ellison, J\n Gary, JW\n Hanson, G\n Heilman, J\n Rikova, MI\n Jandir, P\n Kennedy, E\n Lacroix, F\n Long, OR\n Luthra, A\n Malberti, M\n Negrete, MO\n Shrinivas, A\n Sumowidagdo, S\n Wimpenny, S\n Branson, JG\n Cerati, GB\n Cittolin, S\n D'Agnolo, RT\n Holzner, A\n Kelley, R\n Klein, D\n Letts, J\n Macneill, I\n Olivito, D\n Padhi, S\n Palmer, C\n Pieri, M\n Sani, M\n Sharma, V\n Simon, S\n Tadel, M\n Tu, Y\n Vartak, A\n Welke, C\n Wurthwein, F\n Yagil, A\n Della Porta, GZ\n Barge, D\n Bradmiller-Feld, J\n Campagnari, C\n Danielson, T\n Dishaw, A\n Dutta, V\n Flowers, K\n Sevilla, MF\n Geffert, P\n George, C\n Golf, F\n Gouskos, L\n Incandela, J\n Justus, C\n Mccoll, N\n Mullin, SD\n Richman, J\n Stuart, D\n To, W\n West, C\n Yoo, J\n Apresyan, A\n Bornheim, A\n Bunn, J\n Chen, Y\n Duarte, J\n Mott, A\n Newman, HB\n Pena, C\n Pierini, M\n Spiropulu, M\n Vlimant, JR\n Wilkinson, R\n Xie, S\n Zhu, RY\n Azzolini, V\n Calamba, A\n Carlson, B\n Ferguson, T\n Iiyama, Y\n Paulini, M\n Russ, J\n Vogel, H\n Vorobiev, I\n Cumalat, JP\n Ford, WT\n Gaz, A\n Krohn, M\n Lopez, EL\n Nauenberg, U\n Smith, JG\n Stenson, K\n Wagner, SR\n Alexander, J\n Chatterjee, A\n Chaves, J\n Chu, J\n Dittmer, S\n Eggert, N\n Mirman, N\n Kaufman, GN\n Patterson, JR\n Ryd, A\n Salvati, E\n Skinnari, L\n Sun, W\n Teo, WD\n Thom, J\n Thompson, J\n Tucker, J\n Weng, Y\n Winstrom, L\n Wittich, P\n Winn, D\n Abdullin, S\n Albrow, M\n Anderson, J\n Apollinari, G\n Bauerdick, LAT\n Beretvas, A\n Berryhill, J\n Bhat, PC\n Bolla, G\n Burkett, K\n Butler, JN\n Cheung, HWK\n Chlebana, F\n Cihangir, S\n Elvira, VD\n Fisk, I\n Freeman, J\n Gottschalk, E\n Gray, L\n Green, D\n Grunendahl, S\n Gutsche, O\n Hanlon, J\n Hare, D\n Harris, RM\n Hirschauer, J\n Hooberman, B\n Jindariani, S\n Johnson, M\n Joshi, U\n Klima, B\n Kreis, B\n Kwan, S\n Linacre, J\n Lincoln, D\n Lipton, R\n Liu, T\n Lykken, J\n Maeshima, K\n Marraffino, JM\n Outschoorn, VIM\n Maruyama, S\n Mason, D\n McBride, P\n Merkel, P\n Mishra, K\n Mrenna, S\n Nahn, S\n Newman-Holmes, C\n O'Dell, V\n Prokofyev, O\n Sexton-Kennedy, E\n Soha, A\n Spalding, WJ\n Spiegel, L\n Taylor, L\n Tkaczyk, S\n Tran, NV\n Uplegger, L\n Vaandering, EW\n Vidal, R\n Whitbeck, A\n Whitmore, J\n Yang, F\n Acosta, D\n Avery, P\n Bortignon, P\n Bourilkov, D\n Carver, M\n Curry, D\n Das, S\n De Gruttola, M\n Di Giovanni, GP\n Field, RD\n Fisher, M\n Furic, IK\n Hugon, J\n Konigsberg, J\n Korytov, A\n Kypreos, T\n Low, JF\n Matchev, K\n Mei, H\n Milenovic, P\n Mitselmakher, G\n Muniz, L\n Rinkevicius, A\n Shchutska, L\n Snowball, M\n Sperka, D\n Yelton, J\n Zakaria, M\n Hewamanage, S\n Linn, S\n Markowitz, P\n Martinez, G\n Rodriguez, JL\n Adams, JR\n Adams, T\n Askew, A\n Bochenek, J\n Diamond, B\n Haas, J\n Hagopian, S\n Hagopian, V\n Johnson, KF\n Prosper, H\n Veeraraghavan, V\n Weinberg, M\n Baarmand, MM\n Hohlmann, M\n Kalakhety, H\n Yumiceva, F\n Adams, MR\n Apanasevich, L\n Berry, D\n Betts, RR\n Bucinskaite, I\n Cavanaugh, R\n Evdokimov, O\n Gauthier, L\n Gerber, CE\n Hofman, DJ\n Kurt, P\n O'Brien, C\n Gonzalez, IDS\n Silkworth, C\n Turner, P\n Varelas, N\n Bilki, B\n Clarida, W\n Dilsiz, K\n Haytmyradov, M\n Merlo, JP\n Mermerkaya, H\n Mestvirishvili, A\n Moeller, A\n Nachtman, J\n Ogul, H\n Onel, Y\n Ozok, F\n Penzo, A\n Rahmat, R\n Sen, S\n Tan, P\n Tiras, E\n Wetzel, J\n Yi, K\n Anderson, I\n Barnett, BA\n Blumenfeld, B\n Bolognesi, S\n Fehling, D\n Gritsan, AV\n Maksimovic, P\n Martin, C\n Swartz, M\n Xiao, M\n Baringer, P\n Bean, A\n Benelli, G\n Bruner, C\n Gray, J\n Kenny, RP\n Majumder, D\n Malek, M\n Murray, M\n Noonan, D\n Sanders, S\n Sekaric, J\n Stringer, R\n Wang, Q\n Wood, JS\n Chakaberia, I\n Ivanov, A\n Kaadze, K\n Khalil, S\n Makouski, M\n Maravin, Y\n Saini, LK\n Skhirtladze, N\n Svintradze, I\n Gronberg, J\n Lange, D\n Rebassoo, F\n Wright, D\n Baden, A\n Belloni, A\n Calvert, B\n Eno, SC\n Gomez, JA\n Hadley, NJ\n Jabeen, S\n Kellogg, RG\n Kolberg, T\n Lu, Y\n Mignerey, AC\n Pedro, K\n Skuja, A\n Tonjes, MB\n Tonwar, SC\n Apyan, A\n Barbieri, R\n Bierwagen, K\n Busza, W\n Cali, IA\n Di Matteo, L\n Ceballos, GG\n Goncharov, M\n Gulhan, D\n Klute, M\n Lai, YS\n Lee, YJ\n Levin, A\n Luckey, PD\n Paus, C\n Ralph, D\n Roland, C\n Roland, G\n Stephans, GSF\n Sumorok, K\n Velicanu, D\n Veverka, J\n Wyslouch, B\n Yang, M\n Zanetti, M\n Zhukova, V\n Dahmes, B\n Gude, A\n Kao, SC\n Klapoetke, K\n Kubota, Y\n Mans, J\n Nourbakhsh, S\n Rusack, R\n Singovsky, A\n Tambe, N\n Turkewitz, J\n Acosta, JG\n Oliveros, S\n Avdeeva, E\n Bloom, K\n Bose, S\n Claes, DR\n Dominguez, A\n Suarez, RG\n Keller, J\n Knowlton, D\n Kravchenko, I\n Lazo-Flores, J\n Meier, F\n Ratnikov, F\n Snow, GR\n Zvada, M\n Alverson, G\n Barberis, E\n Baumgartel, D\n Chasco, M\n Massironi, A\n Morse, DM\n Nash, D\n Orimoto, T\n Trocino, D\n Wang, RJ\n Wood, D\n Zhang, J\n Hahn, KA\n Kubik, A\n Mucia, N\n Odell, N\n Pollack, B\n Pozdnyakov, A\n Schmitt, M\n Stoynev, S\n Sung, K\n Velasco, M\n Won, S\n Brinkerhoff, A\n Chan, KM\n Drozdetskiy, A\n Hildreth, M\n Jessop, C\n Karmgard, DJ\n Kellams, N\n Lannon, K\n Lynch, S\n Marinelli, N\n Musienko, Y\n Pearson, T\n Planer, M\n Ruchti, R\n Smith, G\n Valls, N\n Wayne, M\n Wolf, M\n Woodard, A\n Antonelli, L\n Brinson, J\n Bylsma, B\n Durkin, LS\n Flowers, S\n Hart, A\n Hill, C\n Hughes, R\n Kotov, K\n Ling, TY\n Luo, W\n Puigh, D\n Rodenburg, M\n Winer, BL\n Wolfe, H\n Wulsin, HW\n Driga, O\n Elmer, P\n Hardenbrook, J\n Hebda, P\n Koay, SA\n Lujan, P\n Marlow, D\n Medvedeva, T\n Mooney, M\n Olsen, J\n Piroue, P\n Quan, X\n Saka, H\n Stickland, D\n Tully, C\n Werner, JS\n Zuranski, A\n Brownson, E\n Malik, S\n Mendez, H\n Vargas, JER\n Barnes, VE\n Benedetti, D\n Bortoletto, D\n De Mattia, M\n Gutay, L\n Hu, Z\n Jha, MK\n Jones, M\n Jung, K\n Kress, M\n Leonardo, N\n Miller, DH\n Neumeister, N\n Primavera, F\n Radburn-Smith, BC\n Shi, X\n Shipsey, I\n Silvers, D\n Svyatkovskiy, A\n Wang, F\n Xie, W\n Xu, L\n Zablocki, J\n Parashar, N\n Stupak, J\n Adair, A\n Akgun, B\n Ecklund, KM\n Geurts, FJM\n Li, W\n Michlin, B\n Padley, BP\n Redjimi, R\n Roberts, J\n Zabel, J\n Betchart, B\n Bodek, A\n de Barbaro, P\n Demina, R\n Eshaq, Y\n Ferbel, T\n Galanti, M\n Garcia-Bellido, A\n Goldenzweig, P\n Han, J\n Harel, A\n Hindrichs, O\n Khukhunaishvili, A\n Korjenevski, S\n Petrillo, G\n Vishnevskiy, D\n Ciesielski, R\n Demortier, L\n Goulianos, K\n Mesropian, C\n Arora, S\n Barker, A\n Chou, JP\n Contreras-Campana, C\n Contreras-Campana, E\n Duggan, D\n Ferencek, D\n Gershtein, Y\n Gray, R\n Halkiadakis, E\n Hidas, D\n Kaplan, S\n Lath, A\n Panwalkar, S\n Park, M\n Patel, R\n Salur, S\n Schnetzer, S\n Sheffield, D\n Somalwar, S\n Stone, R\n Thomas, S\n Thomassen, P\n Walker, M\n Rose, K\n Spanier, S\n York, A\n Bouhali, O\n Hernandez, AC\n Eusebi, R\n Flanagan, W\n Gilmore, J\n Kamon, T\n Khotilovich, V\n Krutelyov, V\n Montalvo, R\n Osipenkov, I\n Pakhotin, Y\n Perloff, A\n Roe, J\n Rose, A\n Safonov, A\n Suarez, I\n Tatarinov, A\n Ulmer, KA\n Akchurin, N\n Cowden, C\n Damgov, J\n Dragoiu, C\n Dudero, PR\n Faulkner, J\n Kovitanggoon, K\n Kunori, S\n Lee, SW\n Libeiro, T\n Volobouev, I\n Appelt, E\n Delannoy, AG\n Greene, S\n Gurrola, A\n Johns, W\n Maguire, C\n Mao, Y\n Melo, A\n Sharma, M\n Sheldon, P\n Snook, B\n Tuo, S\n Velkovska, J\n Arenton, MW\n Boutle, S\n Cox, B\n Francis, B\n Goodell, J\n Hirosky, R\n Ledovskoy, A\n Li, H\n Lin, C\n Neu, C\n Wolfe, E\n Wood, J\n Clarke, C\n Harr, R\n Karchin, PE\n Don, CKK\n Lamichhane, P\n Sturdy, J\n Belknap, DA\n Carlsmith, D\n Cepeda, M\n Dasu, S\n Dodd, L\n Duric, S\n Friis, E\n Hall-Wilton, R\n Herndon, M\n Herve, A\n Klabbers, P\n Lanaro, A\n Lazaridis, C\n Levine, A\n Loveless, R\n Mohapatra, A\n Ojalvo, I\n Perry, T\n Pierro, GA\n Polese, G\n Ross, I\n Sarangi, T\n Savin, A\n Smith, WH\n Taylor, D\n Vuosalo, C\n Woods, N\nAF Khachatryan, V.\n Sirunyan, A. M.\n Tumasyan, A.\n Adam, W.\n Bergauer, T.\n Dragicevic, M.\n Eroe, J.\n Friedl, M.\n Fruehwirth, R.\n Ghete, V. M.\n Hartl, C.\n Hoermann, N.\n Hrubec, J.\n Jeitler, M.\n Kiesenhofer, W.\n Knuenz, V.\n Krammer, M.\n Kraetschmer, I.\n Liko, D.\n Mikulec, I.\n Rabady, D.\n Rahbaran, B.\n Rohringer, H.\n Schoefbeck, R.\n Strauss, J.\n Treberer-Treberspurg, W.\n Waltenberger, W.\n Wulz, C. -E.\n Mossolov, V.\n Shumeiko, N.\n SuarezGonzalez, J.\n Alderweireldt, S.\n Bansal, S.\n Cornelis, T.\n DeWolf, E. A.\n Janssen, X.\n Knutsson, A.\n Lauwers, J.\n Luyckx, S.\n Ochesanu, S.\n Rougny, R.\n De Klundert, M. Van\n Van Haevermaet, H.\n Van Mechelen, P.\n Van Remortel, N.\n Van Spilbeeck, A.\n Blekman, F.\n Blyweert, S.\n D'Hondt, J.\n Daci, N.\n Heracleous, N.\n Keaveney, J.\n Lowette, S.\n Maes, M.\n Olbrechts, A.\n Python, Q.\n Strom, D.\n Tavernier, S.\n Van Doninck, W.\n Van Mulders, P.\n Van Onsem, G. P.\n Villella, I.\n Caillol, C.\n Clerbaux, B.\n De Lentdecker, G.\n Dobur, D.\n Favart, L.\n Gay, A. P. R.\n Grebenyuk, A.\n Leonard, A.\n Mohammadi, A.\n Pernie, L.\n Randle-Conde, A.\n Reis, T.\n Seva, T.\n Thomas, L.\n van der Velde, C.\n van Laer, P.\n Wang, J.\n Zenoni, F.\n Adler, V.\n Beernaert, K.\n Benucci, L.\n Cimmino, A.\n Costantini, S.\n Crucy, S.\n Dildick, S.\n Fagot, A.\n Garcia, G.\n Mccartin, J.\n Rios, A. A. Ocampo\n Poyraz, D.\n Ryckbosch, D.\n SalvaDiblen, S.\n Sigamani, M.\n Strobbe, N.\n Thyssen, F.\n Tytgat, M.\n Yazgan, E.\n Zaganidis, N.\n Basegmez, S.\n Beluffi, C.\n Bruno, G.\n Castello, R.\n Caudron, A.\n Ceard, L.\n Da Silveira, G. G.\n Delaere, C.\n du Pree, T.\n Favart, D.\n Forthomme, L.\n Giammanco, A.\n Hollar, J.\n Jafari, A.\n Jez, P.\n Komm, M.\n Lemaitre, V.\n Nuttens, C.\n Perrini, L.\n Pin, A.\n Piotrzkowski, K.\n Popov, A.\n Quertenmont, L.\n Selvaggi, M.\n Marono, M. Vidal\n Garcia, J. M. Vizan\n Beliy, N.\n Caebergs, T.\n Daubie, E.\n Hammad, G. H.\n Alda, W. L., Jr.\n Alves, G. A.\n Brito, L.\n Correa Martins, M., Jr.\n Dos Reis Martins, T.\n Molina, J.\n Mora Herrera, C.\n Pol, M. E.\n Rebello Teles, P.\n Carvalho, W.\n Chinellato, J.\n Custodio, A.\n Da Costa, E. M.\n De Jesus Damiao, D.\n De Oliveira Martins, C.\n Fonseca De Souza, S.\n Malbouisson, H.\n Matos Figueiredo, D.\n Mundim, L.\n Nogima, H.\n Prado Da Silva, W. L.\n Santaolalla, J.\n Santoro, A.\n Sznajder, A.\n Tonelli Manganote, E. J.\n Vilela Pereira, A.\n Bernardes, C. A.\n Dogra, S.\n Fernandez Perez Tomei, T. R.\n Gregores, E. M.\n Mercadante, P. G.\n Novaes, S. F.\n Padula, Sandra S.\n Aleksandrov, A.\n Genchev, V.\n Hadjiiska, R.\n Iaydjiev, P.\n Marinov, A.\n Piperov, S.\n Rodozov, M.\n Stoykova, S.\n Sultanov, G.\n Vutova, M.\n Dimitrov, A.\n Glushkov, I.\n Litov, L.\n Pavlov, B.\n Petkov, P.\n Bian, J. G.\n Chen, G. M.\n Chen, H. S.\n Chen, M.\n Cheng, T.\n Du, R.\n Jiang, C. H.\n Plestina, R.\n Romeo, F.\n Tao, J.\n Wang, Z.\n Asawatangtrakuldee, C.\n Ban, Y.\n Liu, S.\n Mao, Y.\n Qian, S. J.\n Wang, D.\n Xu, Z.\n Zhang, L.\n Zou, W.\n Avila, C.\n Cabrera, A.\n Chaparro Sierra, L. F.\n Florez, C.\n Gomez, J. P.\n Gomez Moreno, B.\n Sanabria, J. C.\n Godinovic, N.\n Lelas, D.\n Polic, D.\n Puljak, I.\n Antunovic, Z.\n Kovac, M.\n Brigljevic, V.\n Kadija, K.\n Luetic, J.\n Mekterovic, D.\n Sudic, L.\n Attikis, A.\n Mavromanolakis, G.\n Mousa, J.\n Nicolaou, C.\n Ptochos, F.\n Razis, P. A.\n Rykaczewski, H.\n Bodlak, M.\n Finger, M.\n Finger, M., Jr.\n Assran, Y.\n Kamel, A. Ellithi\n Mahmoud, M. A.\n Radi, A.\n Kadastik, M.\n Murumaa, M.\n Raidal, M.\n Tiko, A.\n Eerola, P.\n Voutilainen, M.\n Harkonen, J.\n Karimaki, V.\n Kinnunen, R.\n Kortelainen, M. J.\n Lampen, T.\n Lassila-Perini, K.\n Lehti, S.\n Linden, T.\n Luukka, P.\n Maenpaa, T.\n Peltola, T.\n Tuominen, E.\n Tuominiemi, J.\n Tuovinen, E.\n Wendland, L.\n Talvitie, J.\n Tuuva, T.\n Besancon, M.\n Couderc, F.\n Dejardin, M.\n Denegri, D.\n Fabbro, B.\n Faure, J. L.\n Favaro, C.\n Ferri, F.\n Ganjour, S.\n Givernaud, A.\n Gras, P.\n de Monchenault, G. Hamel\n Jarry, P.\n Locci, E.\n Malcles, J.\n Rander, J.\n Rosowsky, A.\n Titov, M.\n Baffioni, S.\n Beaudette, F.\n Busson, P.\n Chapon, E.\n Charlot, C.\n Dahms, T.\n Dalchenko, M.\n Dobrzynski, L.\n Filipovic, N.\n Florent, A.\n de Cassagnac, R. Granier\n Mastrolorenzo, L.\n Mine, P.\n Naranjo, I. N.\n Nguyen, M.\n Ochando, C.\n Ortona, G.\n Paganini, P.\n Regnard, S.\n Salerno, R.\n Sauvan, J. B.\n Sirois, Y.\n Veelken, C.\n Yilmaz, Y.\n Zabi, A.\n Agram, J. -L.\n Andrea, J.\n Aubin, A.\n Bloch, D.\n Brom, J. -M.\n Chabert, E. C.\n Collard, C.\n Conte, E.\n Fontaine, J. -C.\n Gele, D.\n Goerlach, U.\n Goetzmann, C.\n Le Bihan, A. -C.\n Skovpen, K.\n Van Hove, P.\n Gadrat, S.\n Beauceron, S.\n Beaupere, N.\n Bernet, C.\n Boudoul, G.\n Bouvier, E.\n Brochet, S.\n Montoya, A. Carrillo\n Chasserat, J.\n Chierici, R.\n Contardo, D.\n Courbon, B.\n Depasse, P.\n El Mamouni, H.\n Fan, J.\n Fay, J.\n Gascon, S.\n Gouzevitch, M.\n Ille, B.\n Kurca, T.\n Lethuillier, M.\n Mirabito, L.\n Pequegnot, A. L.\n Perries, S.\n Alvarez, J. D. Ruiz\n Sabes, D.\n Sgandurra, L.\n Sordini, V.\n Donckt, M. Vander\n Verdier, P.\n Viret, S.\n Xiao, H.\n Tsamalaidze, Z.\n Autermann, C.\n Beranek, S.\n Bontenackels, M.\n Edelhoff, M.\n Feld, L.\n Heister, A.\n Klein, K.\n Lipinski, M.\n Ostapchuk, A.\n Preuten, M.\n Raupach, F.\n Sammet, J.\n Schael, S.\n Schulte, J. F.\n Weber, H.\n Wittmer, B.\n Zhukov, V.\n Ata, M.\n Brodski, M.\n Dietz-Laursonn, E.\n Duchardt, D.\n Erdmann, M.\n Fischer, R.\n Gueth, A.\n Hebbeker, T.\n Heidemann, C.\n Hoepfner, K.\n Klingebiel, D.\n Knutzen, S.\n Kreuzer, P.\n Merschmeyer, M.\n Meyer, A.\n Millet, P.\n Olschewski, M.\n Padeken, K.\n Papacz, P.\n Reithler, H.\n Schmitz, S. A.\n Sonnenschein, L.\n Teyssier, D.\n Thuer, S.\n Weber, M.\n Cherepanov, V.\n Erdogan, Y.\n Fluegge, G.\n Geenen, H.\n Geisler, M.\n Haj Ahmad, W.\n Hoehle, F.\n Kargoll, B.\n Kress, T.\n Kuessel, Y.\n Kuensken, A.\n Lingemann, J.\n Nowack, A.\n Nugent, I. M.\n Pooth, O.\n Stahl, A.\n Martin, M. Aldaya\n Asin, I.\n Bartosik, N.\n Behr, J.\n Behrens, U.\n Bell, A. J.\n Bethani, A.\n Borras, K.\n Burgmeier, A.\n Cakir, A.\n Calligaris, L.\n Campbell, A.\n Choudhury, S.\n Costanza, F.\n Pardos, C. Diez\n Dolinska, G.\n Dooling, S.\n Dorland, T.\n Eckerlin, G.\n Eckstein, D.\n Eichhorn, T.\n Flucke, G.\n Garcia, J. Garay\n Geiser, A.\n Gizhko, A.\n Gunnellini, P.\n Hauk, J.\n Hempel, M.\n Jung, H.\n Kalogeropoulos, A.\n Karacheban, O.\n Kasemann, M.\n Katsas, P.\n Kieseler, J.\n Kleinwort, C.\n Korol, I.\n Kruecker, D.\n Lange, W.\n Leonard, J.\n Lipka, K.\n Lobanov, A.\n Lohmann, W.\n Lutz, B.\n Mankel, R.\n Marfin, I.\n Melzer-Pellmann, I. -A.\n Meyer, A. B.\n Mittag, G.\n Mnich, J.\n Mussgiller, A.\n Naumann-Emme, S.\n Nayak, A.\n Ntomari, E.\n Perrey, H.\n Pitzl, D.\n Placakyte, R.\n Raspereza, A.\n Cipriano, P. M. Ribeiro\n Roland, B.\n Ron, E.\n Sahin, M. Oe.\n Salfeld-Nebgen, J.\n Saxena, P.\n Schoerner-Sadenius, T.\n Schoerder, M.\n Seitz, C.\n Spannagel, S.\n Trevino, A. D. R. Vargas\n Walsh, R.\n Wissing, C.\n Blobel, V.\n Vignali, M. Centis\n Draeger, A. R.\n Erfle, J.\n Garutti, E.\n Goebel, K.\n Goerner, M.\n Haller, J.\n Hoffmann, M.\n Hoeing, R. S.\n Junkes, A.\n Kirschenmann, H.\n Klanner, R.\n Kogler, R.\n Lapsien, T.\n Lenz, T.\n Marchesini, I.\n Marconi, D.\n Ott, J.\n Peiffer, T.\n Perieanu, A.\n Pietsch, N.\n Poehlsen, J.\n Poehlsen, T.\n Rathjens, D.\n Sander, C.\n Schettler, H.\n Schleper, P.\n Schlieckau, E.\n Schmidt, A.\n Seidel, M.\n Sola, V.\n Stadie, H.\n Steinbrueck, G.\n Troendle, D.\n Usai, E.\n Vanelderen, L.\n Vanhoefer, A.\n Barth, C.\n Baus, C.\n Berger, J.\n Boeser, C.\n Butz, E.\n Chwalek, T.\n De Boer, W.\n Descroix, A.\n Dierlamm, A.\n Feindt, M.\n Frensch, F.\n Giffels, M.\n Gilbert, A.\n Hartmann, F.\n Hauth, T.\n Husemann, U.\n Katkov, I.\n Kornmayer, A.\n Pardo, P. Lobelle\n Mozer, M. U.\n Mueller, T.\n Mueller, Th.\n Nuernberg, A.\n Quast, G.\n Rabbertz, K.\n Roecker, S.\n Simonis, H. J.\n Stober, F. M.\n Ulrich, R.\n Wagner-Kuhr, J.\n Wayand, S.\n Weiler, T.\n Wolf, R.\n Anagnostou, G.\n Daskalakis, G.\n Geralis, T.\n Giakoumopoulou, V. A.\n Kyriakis, A.\n Loukas, D.\n Markou, A.\n Markou, C.\n Psallidas, A.\n Topsis-Giotis, I.\n Agapitos, A.\n Kesisoglou, S.\n Panagiotou, A.\n Saoulidou, N.\n Stiliaris, E.\n Aslanoglou, X.\n Evangelou, I.\n Flouris, G.\n Foudas, C.\n Kokkas, P.\n Manthos, N.\n Papadopoulos, I.\n Paradas, E.\n Strologas, J.\n Bencze, G.\n Hajdu, C.\n Hidas, P.\n Horvath, D.\n Sikler, F.\n Veszpremi, V.\n Vesztergombi, G.\n Zsigmond, A. J.\n Beni, N.\n Czellar, S.\n Karancsi, J.\n Molnar, J.\n Palinkas, J.\n Szillasi, Z.\n Makovec, A.\n Raics, P.\n Trocsanyi, Z. L.\n Ujvari, B.\n Swain, S. K.\n Beri, S. B.\n Bhatnagar, V.\n Gupta, R.\n Bhawandeep, U.\n Kalsi, A. K.\n Kaur, M.\n Kumar, R.\n Mittal, M.\n Nishu, N.\n Singh, J. B.\n Kumar, Ashok\n Kumar, Arun\n Ahuja, S.\n Bhardwaj, A.\n Choudhary, B. C.\n Kumar, A.\n Malhotra, S.\n Naimuddin, M.\n Ranjan, K.\n Sharma, V.\n Banerjee, S.\n Bhattacharya, S.\n Chatterjee, K.\n Dutta, S.\n Gomber, B.\n Jain, Sa.\n Jain, Sh.\n Khurana, R.\n Modak, A.\n Mukherjee, S.\n Roy, D.\n Sarkar, S.\n Sharan, M.\n Abdulsalam, A.\n Dutta, D.\n Kumar, V.\n Mohanty, A. K.\n Pant, L. M.\n Shukla, P.\n Topkar, A.\n Aziz, T.\n Banerjee, S.\n Bhowmik, S.\n Chatterjee, R. M.\n Dewanjee, R. K.\n Dugad, S.\n Ganguly, S.\n Ghosh, S.\n Guchait, M.\n Gurtu, A.\n Kole, G.\n Kumar, S.\n Maity, M.\n Majumder, G.\n Mazumdar, K.\n Mohanty, G. B.\n Parida, B.\n Sudhakar, K.\n Wickramage, N.\n Sharma, S.\n Bakhshiansohi, H.\n Behnamian, H.\n Etesami, S. M.\n Fahim, A.\n Goldouzian, R.\n Khakzad, M.\n Najafabadi, M. Mohammadi\n Naseri, M.\n Mehdiabadi, S. Paktinat\n Hosseinabadi, F. Rezaei\n Safarzadeh, B.\n Zeinali, M.\n Felcini, M.\n Grunewald, M.\n Abbrescia, M.\n Calabria, C.\n Chhibra, S. S.\n Colaleo, A.\n Creanza, D.\n Cristella, L.\n De Filippis, N.\n De Palma, M.\n Fiore, L.\n Iaselli, G.\n Maggi, G.\n Maggi, M.\n My, S.\n Nuzzo, S.\n Pompili, A.\n Pugliese, G.\n Radogna, R.\n Selvaggi, G.\n Sharma, A.\n Silvestris, L.\n Venditti, R.\n Verwilligen, P.\n Abbiendi, G.\n Benvenuti, A. C.\n Bonacorsi, D.\n Braibant-Giacomelli, S.\n Brigliadori, L.\n Campanini, R.\n Capiluppi, P.\n Castro, B. A.\n Cavallo, F. R.\n Codispoti, G.\n Cuffiani, M.\n Dallavalle, G. M.\n Fabbri, F.\n Fanfani, A.\n Fasanella, D.\n Giacomelli, P.\n Grandi, C.\n Guiducci, L.\n Marcellini, S.\n Masetti, G.\n Montanari, A.\n Navarria, F. L.\n Perrotta, A.\n Rossi, A. M.\n Rovelli, T.\n Siroli, G. P.\n Tosi, N.\n Travaglini, R.\n Albergo, S.\n Cappello, G.\n Chiorboli, M.\n Costa, S.\n Giordano, F.\n Potenza, R.\n Tricomi, A.\n Tuve, C.\n Barbagli, G.\n Ciulli, V.\n Civinini, C.\n D'Alessandro, R.\n Focardi, E.\n Gallo, E.\n Gonzi, S.\n Gori, V.\n Lenzi, P.\n Meschini, M.\n Paoletti, S.\n Sguazzoni, G.\n Tropiano, A.\n Benussi, L.\n Bianco, S.\n Fabbri, F.\n Piccolo, D.\n Ferretti, R.\n Ferro, F.\n Lo Vetere, M.\n Robutti, E.\n Tosi, S.\n Dinardo, M. E.\n Fiorendi, S.\n Gennai, S.\n Gerosa, R.\n Ghezzi, A.\n Govoni, P.\n Lucchini, M. T.\n Malvezzi, S.\n Manzoni, R. A.\n Martelli, A.\n Marzocchi, B.\n Menasce, D.\n Moroni, L.\n Paganoni, M.\n Pedrini, D.\n Ragazzi, S.\n Redaelli, N.\n de Fatis, T. Tabarelli\n Buontempo, S.\n Cavallo, N.\n Di Guida, S.\n Fabozzi, F.\n Iorio, A. O. M.\n Lista, L.\n Meola, S.\n Merola, M.\n Paolucci, P.\n Azzi, P.\n Bacchetta, N.\n Bisello, D.\n Branca, A.\n Carlin, R.\n ChecchiA, P.\n Dall'Osso, M.\n Dorigo, T.\n Dosselli, U.\n Gasparini, F.\n Gasparini, U.\n Gozzelino, A.\n Kanishchev, K.\n Lacaprara, S.\n Margoni, M.\n Meneguzzo, A. T.\n Pazzini, J.\n Pozzobon, N.\n Ronchese, P.\n Simonetto, F.\n Torassa, E.\n Tosi, M.\n Zotto, P.\n Zucchetta, A.\n Zumerle, G.\n Gabusi, M.\n Ratti, S. P.\n Re, V.\n Riccardi, C.\n Salvini, P.\n Vitulo, P.\n Biasini, M.\n Bilei, G. M.\n Ciangottini, D.\n Fano, L.\n Lariccia, P.\n Mantovani, G.\n Menichelli, M.\n Saha, A.\n Santocchia, A.\n Spiezia, A.\n Androsov, K.\n Azzurri, P.\n Bagliesi, G.\n Bernardini, J.\n Boccali, T.\n Broccolo, G.\n Castaldi, R.\n Ciocci, M. A.\n Dell'Orso, R.\n Donato, S.\n Fedi, G.\n Fiori, F.\n Foa, L.\n Giassi, A.\n Grippo, M. T.\n Ligabue, F.\n Lomtadze, T.\n Martini, L.\n Messineo, A.\n Moon, C. S.\n Palla, F.\n Rizzi, A.\n Savoy-Navarro, A.\n Serban, A. T.\n Spagnolo, P.\n Squillacioti, P.\n Tenchini, R.\n Tonelli, G.\n Venturi, A.\n Verdini, P. G.\n Vernieri, C.\n Barone, L.\n Cavallari, F.\n D'imperio, G.\n Del Re, D.\n Diemoz, M.\n Jorda, C.\n Longo, E.\n Margaroli, F.\n Meridiani, P.\n Micheli, F.\n Organtini, G.\n Paramatti, R.\n Rahatlou, S.\n Rovelli, C.\n Santanastasio, F.\n Soffi, L.\n Traczyk, P.\n Amapane, N.\n Arcidiacono, R.\n Argiro, S.\n Arneodo, M.\n Bellan, R.\n Biino, C.\n Cartiglia, N.\n Casasso, S.\n Costa, M.\n Covarelli, R.\n Degano, A.\n Demaria, N.\n Finco, L.\n Mariotti, C.\n Maselli, S.\n Migliore, E.\n Monaco, V.\n Musich, M.\n Obertino, M. M.\n Pacher, L.\n Pastrone, N.\n Pelliccioni, M.\n Angioni, G. L. Pinna\n Potenza, A.\n Romero, A.\n Ruspa, M.\n Sacchi, R.\n Solano, A.\n Staiano, A.\n Tamponi, U.\n Belforte, S.\n Candelise, V.\n Casarsa, M.\n Cossutti, F.\n Della Ricca, G.\n Gobbo, B.\n La Licata, C.\n Marone, M.\n Schizzi, A.\n Umer, T.\n Zanetti, A.\n Chang, S.\n Kropivnitskaya, A.\n Nam, S. K.\n Kim, D. H.\n Kim, G. N.\n Kim, M. S.\n Kong, D. J.\n Lee, S.\n Oh, Y. D.\n Park, H.\n Sakharov, A.\n Son, D. C.\n Kim, T. J.\n Ryu, M. S.\n Kim, J. Y.\n Moon, D. H.\n Song, S.\n Choi, S.\n Gyun, D.\n Hong, B.\n Jo, M.\n Kim, H.\n Kim, Y.\n Lee, B.\n Lee, K. S.\n Park, S. K.\n Roh, Y.\n Yoo, H. D.\n Choi, M.\n Kim, J. H.\n Park, I. C.\n Ryu, G.\n Choi, Y.\n Choi, Y. K.\n Goh, J.\n Kim, D.\n Kwon, E.\n Lee, J.\n Yu, I.\n Juodagalvis, A.\n Komaragiri, J. R.\n Ali, M. A. B. Md\n Linares, E. Casimiro\n Castilla-Valdez, H.\n De La Cruz-Burelo, E.\n Heredia-de La Cruz, I.\n Hernandez-Almada, A.\n Lopez-Fernandez, R.\n Sanchez-Hernandez, A.\n Moreno, S. Carrillo\n Valencia, F. Vazquez\n Pedraza, I.\n Ibarguen, H. A. Salazar\n Pineda, A. Morelos\n Krofcheck, D.\n Butler, P. H.\n Reucroft, S.\n Ahmad, A.\n Ahmad, M.\n Hassan, Q.\n Hoorani, H. R.\n Khan, W. A.\n Khurshid, T.\n Shoaib, M.\n Bialkowska, H.\n Bluj, M.\n Boimska, B.\n Frueboes, T.\n Gorski, M.\n Kazana, M.\n Nawrocki, K.\n Romanowska-Rybinska, K.\n Szleper, M.\n Zalewski, P.\n Brona, G.\n Bunkowski, K.\n Cwiok, M.\n Dominik, W.\n Doroba, K.\n Kalinowski, A.\n Konecki, M.\n Krolikowski, J.\n Misiura, M.\n Olszewski, M.\n Bargassa, P.\n Beirao Da Cruz E Silva, C.\n Faccioli, P.\n Ferreira Parracho, P. G.\n Gallinaro, M.\n Lloret Iglesias, L.\n Nguyen, F.\n Rodrigues Antunes, J.\n Seixas, J.\n Varela, J.\n Vischia, P.\n Afanasiev, S.\n Bunin, P.\n Gavrilenko, M.\n Golutvin, I.\n Gorbunov, I.\n Kamenev, A.\n Karjavin, V.\n Konoplyanikov, V.\n Lanev, A.\n Malakhov, A.\n Matveev, V.\n Moisenz, P.\n Palichik, V.\n Perelygin, V.\n Shmatov, S.\n Skatchkov, N.\n Smirnov, V.\n Zarubin, A.\n Golovtsov, V.\n Ivanov, Y.\n Kim, V.\n Kuznetsova, E.\n Levchenko, P.\n Murzin, V.\n Oreshkin, V.\n Smirnov, I.\n Sulimov, V.\n Uvarov, L.\n Vavilov, S.\n Vorobyev, A.\n Vorobyev, An.\n Andreev, Yu.\n Dermenev, A.\n Gninenko, S.\n Golubev, N.\n Kirsanov, M.\n Krasnikov, N.\n Pashenkov, A.\n Tlisov, D.\n Toropin, A.\n Epshteyn, V.\n Gavrilov, V.\n Lychkovskaya, N.\n Popov, V.\n Pozdnyakov, I.\n Safronov, G.\n Semenov, S.\n Spiridonov, A.\n Stolin, V.\n Vlasov, E.\n Zhokin, A.\n Andreev, V.\n Azarkin, M.\n Dremin, I.\n Kirakosyan, M.\n Leonidov, A.\n Mesyats, G.\n Rusakov, S. V.\n Vinogradov, A.\n Belyaev, A.\n Boos, E.\n Dubinin, M.\n Dudko, L.\n Ershov, A.\n Gribushin, A.\n Klyukhin, V.\n Kodolova, O.\n Lokhtin, I.\n Obraztsov, S.\n Petrushanko, S.\n Savrin, V.\n Snigirev, A.\n Azhgirey, I.\n Bayshev, I.\n Bitioukov, S.\n Kachanov, V.\n Kalinin, A.\n Konstantinov, D.\n Krychkine, V.\n Petrov, V.\n Ryutin, R.\n Sobol, A.\n Tourtchanovitch, L.\n Troshin, S.\n Tyurin, N.\n Uzunian, A.\n Volkov, A.\n Adzic, P.\n Ekmedzic, M.\n Milosevic, J.\n Rekovic, V.\n Alcaraz Maestre, J.\n Battilana, C.\n Calvo, E.\n Cerrada, M.\n Chamizo Llatas, M.\n Colino, N.\n De La Cruz, B.\n Delgado Peris, A.\n Dominguez Vazquez, D.\n Escalante Del Valle, A.\n Fernandez Bedoya, C.\n Fernandez Ramos, J. P.\n Flix, J.\n Fouz, M. C.\n Garcia-Abia, P.\n Gonzalez Lopez, O.\n Goy Lopez, S.\n Hernandez, J. M.\n Josa, M. I.\n Navarro De Martino, E.\n Perez-Calero Yzquierdo, A.\n Puerta Pelayo, J.\n Quintario Olmeda, A.\n Redondo, I.\n Romero, L.\n Soares, M. S.\n Albajar, C.\n de Troconiz, J. F.\n Missiroli, M.\n Moran, D.\n Brun, H.\n Cuevas, J.\n Fernandez Menendez, J.\n Folgueras, S.\n Gonzalez Caballero, I.\n Brochero Cifuentes, J. A.\n Cabrillo, I. J.\n Calderon, A.\n Duarte Campderros, J.\n Fernandez, M.\n Gomez, G.\n Graziano, A.\n Lopez Virto, A.\n Marco, J.\n Marco, R.\n Martinez Rivero, C.\n Matorras, F.\n Munoz Sanchez, F. J.\n Piedra Gomez, J.\n Rodrigo, T.\n Rodriguez-Marrero, A. Y.\n Ruiz-Jimeno, A.\n Scodellaro, L.\n Vila, I.\n Vilar Cortabitarte, R.\n Abbaneo, D.\n Auffray, E.\n Auzinger, G.\n Bachtis, M.\n Baillon, P.\n Ball, A. H.\n Barney, D.\n Benaglia, A.\n Bendavid, J.\n Benhabib, L.\n Benitez, J. F.\n Bloch, P.\n Bocci, A.\n Bonato, A.\n Bondu, O.\n Botta, C.\n Breuker, H.\n Camporesi, T.\n Cerminara, G.\n Colafranceschi, S.\n D'Alfonso, M.\n d'Enterria, D.\n Dabrowski, A.\n David, A.\n De Guio, F.\n De Roeck, A.\n De Visscher, S.\n Di Marco, E.\n Dobson, M.\n Dordevic, M.\n Dorney, B.\n Dupont-Sagorin, N.\n Elliott-Peisert, A.\n Franzoni, G.\n Funk, W.\n Gigi, D.\n Gill, K.\n Giordano, D.\n Girone, M.\n Glege, F.\n Guida, R.\n Gundacker, S.\n Guthoff, M.\n Hammer, J.\n Hansen, M.\n Harris, P.\n Hegeman, J.\n Innocente, V.\n Janot, P.\n Kousouris, K.\n Krajczar, K.\n Lecoq, P.\n Lourenco, C.\n Magini, N.\n Malgeri, L.\n Mannelli, M.\n Marrouche, J.\n Masetti, L.\n Meijers, F.\n Mersi, S.\n Meschi, E.\n Moortgat, F.\n Morovic, S.\n Mulders, M.\n Orsini, L.\n Pape, L.\n Perez, E.\n Petrilli, A.\n Petrucciani, G.\n Pfeiffer, A.\n Pimiae, M.\n Piparo, D.\n Plagge, M.\n Racz, A.\n Rolandi, G.\n Rovere, M.\n Sakulin, H.\n Schaefer, C.\n Schwick, C.\n Sharma, A.\n Siegrist, P.\n Silva, P.\n Simon, M.\n Sphicas, P.\n Spiga, D.\n Steggemann, J.\n Stieger, B.\n Stoye, M.\n Takahashi, Y.\n Treille, D.\n Tsirou, A.\n Veres, G. I.\n Wardle, N.\n Woehri, H. K.\n Wollny, H.\n Zeuner, W. D.\n Bertl, W.\n Deiters, K.\n Erdmann, W.\n Horisberger, R.\n Ingram, Q.\n Kaestli, H. C.\n Kotlinski, D.\n Langenegger, U.\n Renker, D.\n Rohe, T.\n Bachmair, F.\n Baeni, L.\n Bianchini, L.\n Buchmann, M. A.\n Casal, B.\n Chanon, N.\n Dissertori, G.\n Dittmar, M.\n Donega, M.\n Duenser, M.\n Eller, P.\n Grab, C.\n Hits, D.\n Hoss, J.\n Lustermann, W.\n Mangano, B.\n Marini, A. C.\n Marionneau, M.\n del Arbol, P. Martinez Ruiz\n Masciovecchio, M.\n Meister, D.\n Mohr, N.\n Musella, P.\n Naegeli, C.\n Nessi-Tedaldi, F.\n Pandolfi, F.\n Pauss, F.\n Perrozzi, L.\n Peruzzi, M.\n Quittnat, M.\n Rebane, L.\n Rossini, M.\n Starodumov, A.\n Takahashi, M.\n Theofilatos, K.\n Wallny, R.\n Weber, H. A.\n Amsler, C.\n Canelli, M. F.\n Chiochia, V.\n De Cosa, A.\n Hinzmann, A.\n Hreus, T.\n Kilminster, B.\n Lange, C.\n Ngadiuba, J.\n Pinna, D.\n Robmann, P.\n Ronga, F. J.\n Taroni, S.\n Verzetti, M.\n Yang, Y.\n Cardaci, M.\n Chen, K. H.\n Ferro, C.\n Kuo, C. M.\n Lin, W.\n Lu, Y. J.\n Volpe, R.\n Yu, S. S.\n Chang, P.\n Chang, Y. H.\n Chao, Y.\n Chen, K. F.\n Chen, P. H.\n Dietz, C.\n Grundler, U.\n Hou, W. -S.\n Liu, Y. F.\n Lu, R. -S.\n Moya, M. Minano\n Petrakou, E.\n Tzeng, Y. M.\n Wilken, R.\n Asavapibhop, B.\n Singh, G.\n Srimanobhas, N.\n Suwonjandee, N.\n Adiguzel, A.\n Bakirci, M. N.\n Cerci, S.\n Dozen, C.\n Dumanoglu, I.\n Eskut, E.\n Girgis, S.\n Gokbulut, G.\n Guler, Y.\n Gurpinar, E.\n Hos, I.\n Kangal, E. E.\n Topaksu, A. Kayis\n Onengut, G.\n Ozdemir, K.\n Ozturk, S.\n Polatoz, A.\n Cerci, D. Sunar\n Tali, B.\n Topakli, H.\n Vergili, M.\n Zorbilmez, C.\n Akin, I. V.\n Bilin, B.\n Bilmis, S.\n Gamsizkan, H.\n Isildak, B.\n Karapinar, G.\n Ocalan, K.\n Sekmen, S.\n Surat, U. E.\n Yalvac, M.\n Zeyrek, M.\n Albayrak, E. A.\n Gulmez, E.\n Kaya, M.\n Kaya, O.\n Yetkin, T.\n Cankocak, K.\n Vardarli, F. I.\n Levchuk, L.\n Sorokin, P.\n Brooke, J. J.\n Clement, E.\n Cussans, D.\n Flacher, H.\n Goldstein, J.\n Grimes, M.\n Heath, G. P.\n Heath, H. F.\n Jacob, J.\n Kreczko, L.\n Lucas, C.\n Meng, Z.\n Newbold, D. M.\n Paramesvaran, S.\n Poll, A.\n Sakuma, T.\n El Nasr-Storey, S. Seif\n Senkin, S.\n Smith, V. J.\n Bell, K. W.\n Belyaev, A.\n Brew, C.\n Brown, R. M.\n Cockerill, D. J. A.\n Coughlan, J. A.\n Harder, K.\n Harper, S.\n Olaiya, E.\n Petyt, D.\n Shepherd-Themistocleous, C. H.\n Thea, A.\n Tomalin, I. R.\n Williams, T.\n Womersley, W. J.\n Worm, S. D.\n Baber, M.\n Bainbridge, R.\n Buchmuller, O.\n Burton, D.\n Colling, D.\n Cripps, N.\n Dauncey, P.\n Davies, G.\n Della Negra, M.\n Dunne, P.\n Elwood, A.\n Ferguson, W.\n Fulcher, J.\n Futyan, D.\n Hall, G.\n Iles, G.\n Jarvis, M.\n Karapostoli, G.\n Kenzie, M.\n Lane, R.\n Lucas, R.\n Lyons, L.\n Magnan, A. -M.\n Malik, S.\n Mathias, B.\n Nash, J.\n Nikitenko, A.\n Pela, J.\n Pesaresi, M.\n Petridis, K.\n Raymond, D. M.\n Rogerson, S.\n Rose, A.\n Seez, C.\n Sharp, P.\n Tapper, A.\n Acosta, M. Vazquez\n Virdee, T.\n Zenz, S. C.\n Cole, J. E.\n Hobson, P. R.\n Khan, A.\n Kyberd, P.\n Leggat, D.\n Leslie, D.\n Reid, I. D.\n Symonds, P.\n Teodorescu, L.\n Turner, M.\n Dittmann, J.\n Hatakeyama, K.\n Kasmi, A.\n Liu, H.\n Pastika, N.\n Scarborough, T.\n Wu, Z.\n Charaf, O.\n Cooper, S. I.\n Henderson, C.\n Rumerio, P.\n Avetisyan, A.\n Bose, T.\n Fantasia, C.\n Lawson, P.\n Richardson, C.\n Rohlf, J.\n John, J. St.\n Sulak, L.\n Alimena, J.\n Berry, E.\n Bhattacharya, S.\n Christopher, G.\n Cutts, D.\n Demiragli, Z.\n Dhingra, N.\n Ferapontov, A.\n Garabedian, A.\n Heintz, U.\n Kukartsev, G.\n Laird, E.\n Landsberg, G.\n Luk, M.\n Narain, M.\n Segala, M.\n Sinthuprasith, T.\n Speer, T.\n Swanson, J.\n Breedon, R.\n Breto, G.\n Sanchez, M. Calderon De La Barca\n Chauhan, S.\n Chertok, M.\n Conway, J.\n Conway, R.\n Cox, P. T.\n Erbacher, R.\n Gardner, M.\n Ko, W.\n Lander, R.\n Mulhearn, M.\n Pellett, D.\n Pilot, J.\n Ricci-Tam, F.\n Shalhout, S.\n Smith, J.\n Squires, M.\n Stolp, D.\n Tripathi, M.\n Wilbur, S.\n Yohay, R.\n Cousins, R.\n Everaerts, P.\n Farrell, C.\n Hauser, J.\n Ignatenko, M.\n Rakness, G.\n Takasugi, E.\n Valuev, V.\n Weber, M.\n Burt, K.\n Clare, R.\n Ellison, J.\n Gary, J. W.\n Hanson, G.\n Heilman, J.\n Rikova, M. Ivova\n Jandir, P.\n Kennedy, E.\n Lacroix, F.\n Long, O. R.\n Luthra, A.\n Malberti, M.\n Negrete, M. Olmedo\n Shrinivas, A.\n Sumowidagdo, S.\n Wimpenny, S.\n Branson, J. G.\n Cerati, G. B.\n Cittolin, S.\n D'Agnolo, R. T.\n Holzner, A.\n Kelley, R.\n Klein, D.\n Letts, J.\n Macneill, I.\n Olivito, D.\n Padhi, S.\n Palmer, C.\n Pieri, M.\n Sani, M.\n Sharma, V.\n Simon, S.\n Tadel, M.\n Tu, Y.\n Vartak, A.\n Welke, C.\n Wuerthwein, F.\n Yagil, A.\n Della Porta, G. Zevi\n Barge, D.\n Bradmiller-Feld, J.\n Campagnari, C.\n Danielson, T.\n Dishaw, A.\n Dutta, V.\n Flowers, K.\n Sevilla, M. Franco\n Geffert, P.\n George, C.\n Golf, F.\n Gouskos, L.\n Incandela, J.\n Justus, C.\n Mccoll, N.\n Mullin, S. D.\n Richman, J.\n Stuart, D.\n To, W.\n West, C.\n Yoo, J.\n Apresyan, A.\n Bornheim, A.\n Bunn, J.\n Chen, Y.\n Duarte, J.\n Mott, A.\n Newman, H. B.\n Pena, C.\n Pierini, M.\n Spiropulu, M.\n Vlimant, J. R.\n Wilkinson, R.\n Xie, S.\n Zhu, R. Y.\n Azzolini, V.\n Calamba, A.\n Carlson, B.\n Ferguson, T.\n Iiyama, Y.\n Paulini, M.\n Russ, J.\n Vogel, H.\n Vorobiev, I.\n Cumalat, J. P.\n Ford, W. T.\n Gaz, A.\n Krohn, M.\n Lopez, E. Luiggi\n Nauenberg, U.\n Smith, J. G.\n Stenson, K.\n Wagner, S. R.\n Alexander, J.\n Chatterjee, A.\n Chaves, J.\n Chu, J.\n Dittmer, S.\n Eggert, N.\n Mirman, N.\n Kaufman, G. Nicolas\n Patterson, J. R.\n Ryd, A.\n Salvati, E.\n Skinnari, L.\n Sun, W.\n Teo, W. D.\n Thom, J.\n Thompson, J.\n Tucker, J.\n Weng, Y.\n Winstrom, L.\n Wittich, P.\n Winn, D.\n Abdullin, S.\n Albrow, M.\n Anderson, J.\n Apollinari, G.\n Bauerdick, L. A. T.\n Beretvas, A.\n Berryhill, J.\n Bhat, P. C.\n Bolla, G.\n Burkett, K.\n Butler, J. N.\n Cheung, H. W. K.\n Chlebana, F.\n Cihangir, S.\n Elvira, V. D.\n Fisk, I.\n Freeman, J.\n Gottschalk, E.\n Gray, L.\n Green, D.\n Gruenendahl, S.\n Gutsche, O.\n Hanlon, J.\n Hare, D.\n Harris, R. M.\n Hirschauer, J.\n Hooberman, B.\n Jindariani, S.\n Johnson, M.\n Joshi, U.\n Klima, B.\n Kreis, B.\n Kwan, S.\n Linacre, J.\n Lincoln, D.\n Lipton, R.\n Liu, T.\n Lykken, J.\n Maeshima, K.\n Marraffino, J. M.\n Outschoorn, V. I. Martinez\n Maruyama, S.\n Mason, D.\n McBride, P.\n Merkel, P.\n Mishra, K.\n Mrenna, S.\n Nahn, S.\n Newman-Holmes, C.\n O'Dell, V.\n Prokofyev, O.\n Sexton-Kennedy, E.\n Soha, A.\n Spalding, W. J.\n Spiegel, L.\n Taylor, L.\n Tkaczyk, S.\n Tran, N. V.\n Uplegger, L.\n Vaandering, E. W.\n Vidal, R.\n Whitbeck, A.\n Whitmore, J.\n Yang, F.\n Acosta, D.\n Avery, P.\n Bortignon, P.\n Bourilkov, D.\n Carver, M.\n Curry, D.\n Das, S.\n De Gruttola, M.\n Di Giovanni, G. P.\n Field, R. D.\n Fisher, M.\n Furic, I. K.\n Hugon, J.\n Konigsberg, J.\n Korytov, A.\n Kypreos, T.\n Low, J. F.\n Matchev, K.\n Mei, H.\n Milenovic, P.\n Mitselmakher, G.\n Muniz, L.\n Rinkevicius, A.\n Shchutska, L.\n Snowball, M.\n Sperka, D.\n Yelton, J.\n Zakaria, M.\n Hewamanage, S.\n Linn, S.\n Markowitz, P.\n Martinez, G.\n Rodriguez, J. L.\n Adams, J. R.\n Adams, T.\n Askew, A.\n Bochenek, J.\n Diamond, B.\n Haas, J.\n Hagopian, S.\n Hagopian, V.\n Johnson, K. F.\n Prosper, H.\n Veeraraghavan, V.\n Weinberg, M.\n Baarmand, M. M.\n Hohlmann, M.\n Kalakhety, H.\n Yumiceva, F.\n Adams, M. R.\n Apanasevich, L.\n Berry, D.\n Betts, R. R.\n Bucinskaite, I.\n Cavanaugh, R.\n Evdokimov, O.\n Gauthier, L.\n Gerber, C. E.\n Hofman, D. J.\n Kurt, P.\n O'Brien, C.\n Gonzalez, I. D. Sandoval\n Silkworth, C.\n Turner, P.\n Varelas, N.\n Bilki, B.\n Clarida, W.\n Dilsiz, K.\n Haytmyradov, M.\n Merlo, J. -P.\n Mermerkaya, H.\n Mestvirishvili, A.\n Moeller, A.\n Nachtman, J.\n Ogul, H.\n Onel, Y.\n Ozok, F.\n Penzo, A.\n Rahmat, R.\n Sen, S.\n Tan, P.\n Tiras, E.\n Wetzel, J.\n Yi, K.\n Anderson, I.\n Barnett, B. A.\n Blumenfeld, B.\n Bolognesi, S.\n Fehling, D.\n Gritsan, A. V.\n Maksimovic, P.\n Martin, C.\n Swartz, M.\n Xiao, M.\n Baringer, P.\n Bean, A.\n Benelli, G.\n Bruner, C.\n Gray, J.\n Kenny, R. P.\n Majumder, D.\n Malek, M.\n Murray, M.\n Noonan, D.\n Sanders, S.\n Sekaric, J.\n Stringer, R.\n Wang, Q.\n Wood, J. S.\n Chakaberia, I.\n Ivanov, A.\n Kaadze, K.\n Khalil, S.\n Makouski, M.\n Maravin, Y.\n Saini, L. K.\n Skhirtladze, N.\n Svintradze, I.\n Gronberg, J.\n Lange, D.\n Rebassoo, F.\n Wright, D.\n Baden, A.\n Belloni, A.\n Calvert, B.\n Eno, S. C.\n Gomez, J. A.\n Hadley, N. J.\n Jabeen, S.\n Kellogg, R. G.\n Kolberg, T.\n Lu, Y.\n Mignerey, A. C.\n Pedro, K.\n Skuja, A.\n Tonjes, M. B.\n Tonwar, S. C.\n Apyan, A.\n Barbieri, R.\n Bierwagen, K.\n Busza, W.\n Cali, I. A.\n Di Matteo, L.\n Ceballos, G. Gomez\n Goncharov, M.\n Gulhan, D.\n Klute, M.\n Lai, Y. S.\n Lee, Y. -J.\n Levin, A.\n Luckey, P. D.\n Paus, C.\n Ralph, D.\n Roland, C.\n Roland, G.\n Stephans, G. S. F.\n Sumorok, K.\n Velicanu, D.\n Veverka, J.\n Wyslouch, B.\n Yang, M.\n Zanetti, M.\n Zhukova, V.\n Dahmes, B.\n Gude, A.\n Kao, S. C.\n Klapoetke, K.\n Kubota, Y.\n Mans, J.\n Nourbakhsh, S.\n Rusack, R.\n Singovsky, A.\n Tambe, N.\n Turkewitz, J.\n Acosta, J. G.\n Oliveros, S.\n Avdeeva, E.\n Bloom, K.\n Bose, S.\n Claes, D. R.\n Dominguez, A.\n Suarez, R. Gonzalez\n Keller, J.\n Knowlton, D.\n Kravchenko, I.\n Lazo-Flores, J.\n Meier, F.\n Ratnikov, F.\n Snow, G. R.\n Zvada, M.\n Alverson, G.\n Barberis, E.\n Baumgartel, D.\n Chasco, M.\n Massironi, A.\n Morse, D. M.\n Nash, D.\n Orimoto, T.\n Trocino, D.\n Wang, R. -J.\n Wood, D.\n Zhang, J.\n Hahn, K. A.\n Kubik, A.\n Mucia, N.\n Odell, N.\n Pollack, B.\n Pozdnyakov, A.\n Schmitt, M.\n Stoynev, S.\n Sung, K.\n Velasco, M.\n Won, S.\n Brinkerhoff, A.\n Chan, K. M.\n Drozdetskiy, A.\n Hildreth, M.\n Jessop, C.\n Karmgard, D. J.\n Kellams, N.\n Lannon, K.\n Lynch, S.\n Marinelli, N.\n Musienko, Y.\n Pearson, T.\n Planer, M.\n Ruchti, R.\n Smith, G.\n Valls, N.\n Wayne, M.\n Wolf, M.\n Woodard, A.\n Antonelli, L.\n Brinson, J.\n Bylsma, B.\n Durkin, L. S.\n Flowers, S.\n Hart, A.\n Hill, C.\n Hughes, R.\n Kotov, K.\n Ling, T. Y.\n Luo, W.\n Puigh, D.\n Rodenburg, M.\n Winer, B. L.\n Wolfe, H.\n Wulsin, H. W.\n Driga, O.\n Elmer, P.\n Hardenbrook, J.\n Hebda, P.\n Koay, S. A.\n Lujan, P.\n Marlow, D.\n Medvedeva, T.\n Mooney, M.\n Olsen, J.\n Piroue, P.\n Quan, X.\n Saka, H.\n Stickland, D.\n Tully, C.\n Werner, J. S.\n Zuranski, A.\n Brownson, E.\n Malik, S.\n Mendez, H.\n Vargas, J. E. Ramirez\n Barnes, V. E.\n Benedetti, D.\n Bortoletto, D.\n De Mattia, M.\n Gutay, L.\n Hu, Z.\n Jha, M. K.\n Jones, M.\n Jung, K.\n Kress, M.\n Leonardo, N.\n Miller, D. H.\n Neumeister, N.\n Primavera, F.\n Radburn-Smith, B. C.\n Shi, X.\n Shipsey, I.\n Silvers, D.\n Svyatkovskiy, A.\n Wang, F.\n Xie, W.\n Xu, L.\n Zablocki, J.\n Parashar, N.\n Stupak, J.\n Adair, A.\n Akgun, B.\n Ecklund, K. M.\n Geurts, F. J. M.\n Li, W.\n Michlin, B.\n Padley, B. P.\n Redjimi, R.\n Roberts, J.\n Zabel, J.\n Betchart, B.\n Bodek, A.\n de Barbaro, P.\n Demina, R.\n Eshaq, Y.\n Ferbel, T.\n Galanti, M.\n Garcia-Bellido, A.\n Goldenzweig, P.\n Han, J.\n Harel, A.\n Hindrichs, O.\n Khukhunaishvili, A.\n Korjenevski, S.\n Petrillo, G.\n Vishnevskiy, D.\n Ciesielski, R.\n Demortier, L.\n Goulianos, K.\n Mesropian, C.\n Arora, S.\n Barker, A.\n Chou, J. P.\n Contreras-Campana, C.\n Contreras-Campana, E.\n Duggan, D.\n Ferencek, D.\n Gershtein, Y.\n Gray, R.\n Halkiadakis, E.\n Hidas, D.\n Kaplan, S.\n Lath, A.\n Panwalkar, S.\n Park, M.\n Patel, R.\n Salur, S.\n Schnetzer, S.\n Sheffield, D.\n Somalwar, S.\n Stone, R.\n Thomas, S.\n Thomassen, P.\n Walker, M.\n Rose, K.\n Spanier, S.\n York, A.\n Bouhali, O.\n Hernandez, A. Castaneda\n Eusebi, R.\n Flanagan, W.\n Gilmore, J.\n Kamon, T.\n Khotilovich, V.\n Krutelyov, V.\n Montalvo, R.\n Osipenkov, I.\n Pakhotin, Y.\n Perloff, A.\n Roe, J.\n Rose, A.\n Safonov, A.\n Suarez, I.\n Tatarinov, A.\n Ulmer, K. A.\n Akchurin, N.\n Cowden, C.\n Damgov, J.\n Dragoiu, C.\n Dudero, P. R.\n Faulkner, J.\n Kovitanggoon, K.\n Kunori, S.\n Lee, S. W.\n Libeiro, T.\n Volobouev, I.\n Appelt, E.\n Delannoy, A. G.\n Greene, S.\n Gurrola, A.\n Johns, W.\n Maguire, C.\n Mao, Y.\n Melo, A.\n Sharma, M.\n Sheldon, P.\n Snook, B.\n Tuo, S.\n Velkovska, J.\n Arenton, M. W.\n Boutle, S.\n Cox, B.\n Francis, B.\n Goodell, J.\n Hirosky, R.\n Ledovskoy, A.\n Li, H.\n Lin, C.\n Neu, C.\n Wolfe, E.\n Wood, J.\n Clarke, C.\n Harr, R.\n Karchin, P. E.\n Don, C. Kottachchi Kankanamge\n Lamichhane, P.\n Sturdy, J.\n Belknap, D. A.\n Carlsmith, D.\n Cepeda, M.\n Dasu, S.\n Dodd, L.\n Duric, S.\n Friis, E.\n Hall-Wilton, R.\n Herndon, M.\n Herve, A.\n Klabbers, P.\n Lanaro, A.\n Lazaridis, C.\n Levine, A.\n Loveless, R.\n Mohapatra, A.\n Ojalvo, I.\n Perry, T.\n Pierro, G. A.\n Polese, G.\n Ross, I.\n Sarangi, T.\n Savin, A.\n Smith, W. H.\n Taylor, D.\n Vuosalo, C.\n Woods, N.\nCA CMS Collaboration\nTI Searches for supersymmetry based on events with b jets and four W bosons\n in pp collisions at 8 TeV\nSO PHYSICS LETTERS B\nLA English\nDT Article\nDE CMS; Physics; Supersymmetry\nID MINIMAL SUPERGRAVITY; NATURALNESS; SQUARK; PARTICLE; SCALARS; MASSES;\n STATES; HIGGS; LHC\nAB Five mutually exclusive searches for supersymmetry are presented based on events in which b jets and four W bosons are produced in proton-proton collisions at root s = 8TeV. The data, corresponding to an integrated luminosity of 19.5 fb(-1), were collected with the CMS experiment at the CERN LHC in 2012. The five studies differ in the leptonic signature from the W boson decays, and correspond to all-hadronic, single-lepton, opposite-sign dilepton, same-sign dilepton, and >= 3 lepton final states. The results of the five studies are combined to yield 95% confidence level limits for the gluino and bottom-squark masses in the context of gluino and bottom-squark pair production, respectively. In the limit when the lightest supersymmetric particle is light, gluino and bottom squark masses are excluded below 1280 and 570 GeV, respectively. (C) 2015 CERN for the benefit of the CMS Collaboration. Published by Elsevier B.V.\nC1 [Khachatryan, V.; Sirunyan, A. M.; Tumasyan, A.] Yerevan Phys Inst, Yerevan 375036, Armenia.\n [CMS Collaboration] CERN, CH-1211 Geneva 23, Switzerland.\n [Adam, W.; Bergauer, T.; Dragicevic, M.; Eroe, J.; Friedl, M.; Fruehwirth, R.; Ghete, V. M.; Hartl, C.; Hoermann, N.; Hrubec, J.; Jeitler, M.; Kiesenhofer, W.; Knuenz, V.; Krammer, M.; Kraetschmer, I.; Liko, D.; Mikulec, I.; Rabady, D.; Rahbaran, B.; Rohringer, H.; Schoefbeck, R.; Strauss, J.; Treberer-Treberspurg, W.; Waltenberger, W.; Wulz, C. -E.] OeAW, Inst Hochenergiephys, Vienna, Austria.\n [Mossolov, V.; Shumeiko, N.; SuarezGonzalez, J.] Natl Ctr Particle & High Energy Phys, Minsk, Byelarus.\n [Alderweireldt, S.; Bansal, S.; Cornelis, T.; DeWolf, E. A.; Janssen, X.; Knutsson, A.; Lauwers, J.; Luyckx, S.; Ochesanu, S.; Rougny, R.; De Klundert, M. Van; Van Haevermaet, H.; Van Mechelen"},"page":{"count":"24","first":"5","last":"28"},"_id":"6060822","status":"public","file":[{"kind":"fullText","content_type":"application/pdf; charset=binary","_id":"6587903","access":"open","url":"https://biblio.ugent.be/publication/6060822/file/6587903.pdf","name":"wos2.pdf","size":"1342501"}],"date_created":"2015-06-15 10:56:30","issn":["0370-2693"],"author":[{"name":"V Khachatryan","name_last_first":"Khachatryan, V","first_name":"V","last_name":"Khachatryan"},{"name":"AM Sirunyan","name_last_first":"Sirunyan, AM","first_name":"AM","last_name":"Sirunyan"},{"name":"A Tumasyan","name_last_first":"Tumasyan, A","first_name":"A","last_name":"Tumasyan"},{"name":"W Adam","name_last_first":"Adam, W","first_name":"W","last_name":"Adam"},{"name":"T Bergauer","name_last_first":"Bergauer, T","first_name":"T","last_name":"Bergauer"},{"name":"M Dragicevic","name_last_first":"Dragicevic, M","first_name":"M","last_name":"Dragicevic"},{"name":"J Ero","name_last_first":"Ero, J","first_name":"J","last_name":"Ero"},{"name":"M Friedl","name_last_first":"Friedl, M","first_name":"M","last_name":"Friedl"},{"name":"R Fruhwirth","name_last_first":"Fruhwirth, R","first_name":"R","last_name":"Fruhwirth"},{"name":"VM Ghete","name_last_first":"Ghete, VM","first_name":"VM","last_name":"Ghete"},{"name":"C Hartl","name_last_first":"Hartl, C","first_name":"C","last_name":"Hartl"},{"name":"N Hormann","name_last_first":"Hormann, N","first_name":"N","last_name":"Hormann"},{"name":"J Hrubec","name_last_first":"Hrubec, J","first_name":"J","last_name":"Hrubec"},{"name":"M Jeitler","name_last_first":"Jeitler, M","first_name":"M","last_name":"Jeitler"},{"name":"W Kiesenhofer","name_last_first":"Kiesenhofer, W","first_name":"W","last_name":"Kiesenhofer"},{"name":"V Knunz","name_last_first":"Knunz, V","first_name":"V","last_name":"Knunz"},{"name":"M Krammer","name_last_first":"Krammer, M","first_name":"M","last_name":"Krammer"},{"name":"I Kratschmer","name_last_first":"Kratschmer, I","first_name":"I","last_name":"Kratschmer"},{"name":"D Liko","name_last_first":"Liko, D","first_name":"D","last_name":"Liko"},{"name":"I Mikulec","name_last_first":"Mikulec, I","first_name":"I","last_name":"Mikulec"},{"name":"D Rabady","name_last_first":"Rabady, D","first_name":"D","last_name":"Rabady"},{"name":"B Rahbaran","name_last_first":"Rahbaran, B","first_name":"B","last_name":"Rahbaran"},{"name":"H Rohringer","name_last_first":"Rohringer, H","first_name":"H","last_name":"Rohringer"},{"name":"R Shofbeck","name_last_first":"Shofbeck, R","first_name":"R","last_name":"Shofbeck"},{"name":"J Strauss","name_last_first":"Strauss, J","first_name":"J","last_name":"Strauss"},{"name":"W Treberer-Treberspurg","name_last_first":"Treberer-Treberspurg, W","first_name":"W","last_name":"Treberer-Treberspurg"},{"name":"W Waltenberger","name_last_first":"Waltenberger, W","first_name":"W","last_name":"Waltenberger"},{"name":"CE Wulz","name_last_first":"Wulz, CE","first_name":"CE","last_name":"Wulz"},{"name":"V Mossolov","name_last_first":"Mossolov, V","first_name":"V","last_name":"Mossolov"},{"name":"N Shumeiko","name_last_first":"Shumeiko, N","first_name":"N","last_name":"Shumeiko"},{"name":"J SuarezGonzalez","name_last_first":"SuarezGonzalez, J","first_name":"J","last_name":"SuarezGonzalez"},{"name":"S Alderweireldt","name_last_first":"Alderweireldt, S","first_name":"S","last_name":"Alderweireldt"},{"name":"S Bansal","name_last_first":"Bansal, S","first_name":"S","last_name":"Bansal"},{"name":"T Cornelis","name_last_first":"Cornelis, T","first_name":"T","last_name":"Cornelis"},{"name":"EA DeWolf","name_last_first":"DeWolf, EA","first_name":"EA","last_name":"DeWolf"},{"name":"X Janssen","name_last_first":"Janssen, X","first_name":"X","last_name":"Janssen"},{"name":"A Knutsson","name_last_first":"Knutsson, A","first_name":"A","last_name":"Knutsson"},{"name":"J Lauwers","name_last_first":"Lauwers, J","first_name":"J","last_name":"Lauwers"},{"name":"S Luyckx","name_last_first":"Luyckx, S","first_name":"S","last_name":"Luyckx"},{"name":"S Ochesanu","name_last_first":"Ochesanu, S","first_name":"S","last_name":"Ochesanu"},{"name":"R Rougny","name_last_first":"Rougny, R","first_name":"R","last_name":"Rougny"},{"name":"MV De Klundert","name_last_first":"De Klundert, MV","first_name":"MV","last_name":"De Klundert"},{"name":"H Van Haevermaet","name_last_first":"Van Haevermaet, H","first_name":"H","last_name":"Van Haevermaet"},{"name":"P Van Mechelen","name_last_first":"Van Mechelen, P","first_name":"P","last_name":"Van Mechelen"},{"name":"N Van Remortel","name_last_first":"Van Remortel, N","first_name":"N","last_name":"Van Remortel"},{"name":"A Van Spilbeeck","name_last_first":"Van Spilbeeck, A","first_name":"A","last_name":"Van Spilbeeck"},{"name":"F Blekman","name_last_first":"Blekman, F","first_name":"F","last_name":"Blekman"},{"name":"S Blyweert","name_last_first":"Blyweert, S","first_name":"S","last_name":"Blyweert"},{"name":"J D'Hondt","name_last_first":"D'Hondt, J","first_name":"J","last_name":"D'Hondt"},{"name":"N Daci","name_last_first":"Daci, N","first_name":"N","last_name":"Daci"},{"name":"N Heracleous","name_last_first":"Heracleous, N","first_name":"N","last_name":"Heracleous"},{"name":"J Keaveney","name_last_first":"Keaveney, J","first_name":"J","last_name":"Keaveney"},{"name":"S Lowette","name_last_first":"Lowette, S","first_name":"S","last_name":"Lowette"},{"name":"M Maes","name_last_first":"Maes, M","first_name":"M","last_name":"Maes"},{"name":"A Olbrechts","name_last_first":"Olbrechts, A","first_name":"A","last_name":"Olbrechts"},{"name":"Q Python","name_last_first":"Python, Q","first_name":"Q","last_name":"Python"},{"name":"D Strom","name_last_first":"Strom, D","first_name":"D","last_name":"Strom"},{"name":"S Tavernier","name_last_first":"Tavernier, S","first_name":"S","last_name":"Tavernier"},{"name":"W Van Doninck","name_last_first":"Van Doninck, W","first_name":"W","last_name":"Van Doninck"},{"name":"P Van Mulders","name_last_first":"Van Mulders, P","first_name":"P","last_name":"Van Mulders"},{"name":"GP Van Onsem","name_last_first":"Van Onsem, GP","first_name":"GP","last_name":"Van Onsem"},{"name":"I Villella","name_last_first":"Villella, I","first_name":"I","last_name":"Villella"},{"name":"C Caillol","name_last_first":"Caillol, C","first_name":"C","last_name":"Caillol"},{"name":"B Clerbaux","name_last_first":"Clerbaux, B","first_name":"B","last_name":"Clerbaux"},{"name":"G De Lentdecker","name_last_first":"De Lentdecker, G","first_name":"G","last_name":"De Lentdecker"},{"name":"D Dobur","name_last_first":"Dobur, D","first_name":"D","last_name":"Dobur"},{"name":"L Favart","name_last_first":"Favart, L","first_name":"L","last_name":"Favart"},{"name":"APR Gay","name_last_first":"Gay, APR","first_name":"APR","last_name":"Gay"},{"name":"A Grebenyuk","name_last_first":"Grebenyuk, A","first_name":"A","last_name":"Grebenyuk"},{"name":"A Leonard","name_last_first":"Leonard, A","first_name":"A","last_name":"Leonard"},{"name":"A Mohammadi","name_last_first":"Mohammadi, A","first_name":"A","last_name":"Mohammadi"},{"name":"L Pernie","name_last_first":"Pernie, L","first_name":"L","last_name":"Pernie"},{"name":"A Randle-Conde","name_last_first":"Randle-Conde, A","first_name":"A","last_name":"Randle-Conde"},{"name":"T Reis","name_last_first":"Reis, T","first_name":"T","last_name":"Reis"},{"name":"T Seva","name_last_first":"Seva, T","first_name":"T","last_name":"Seva"},{"name":"L Thomas","name_last_first":"Thomas, L","first_name":"L","last_name":"Thomas"},{"name":"C van derVelde","name_last_first":"van derVelde, C","first_name":"C","last_name":"van derVelde"},{"name":"P van Laer","name_last_first":"van Laer, P","first_name":"P","last_name":"van Laer"},{"name":"J Wang","name_last_first":"Wang, J","first_name":"J","last_name":"Wang"},{"name":"F Zenoni","name_last_first":"Zenoni, F","first_name":"F","last_name":"Zenoni"},{"_id":"3139CFF8-F0EE-11E1-A9DE-61C894A0A6B4","name":"Volker Adler","ugent_id":["802000922546","977737211565"],"name_last_first":"Adler, Volker","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Volker","last_name":"Adler"},{"_id":"019056E6-F0EE-11E1-A9DE-61C894A0A6B4","name":"Kelly Beernaert","ugent_id":["000060030468","802001058851","973238680052"],"name_last_first":"Beernaert, Kelly","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Kelly","last_name":"Beernaert"},{"_id":"2ED13546-F59C-11E1-8C35-769E10BDE39D","name":"Leonardo Benucci","ugent_id":["802001282557","974990079417"],"name_last_first":"Benucci, Leonardo","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Leonardo","last_name":"Benucci"},{"_id":"321F4A10-F0EE-11E1-A9DE-61C894A0A6B4","name":"Anna Cimmino","ugent_id":["802000986608","975497290090"],"name_last_first":"Cimmino, Anna","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Anna","last_name":"Cimmino"},{"_id":"FBFE550C-F0ED-11E1-A9DE-61C894A0A6B4","name":"Silvia Costantini","ugent_id":["802000507567","972056314821"],"name_last_first":"Costantini, Silvia","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Silvia","last_name":"Costantini"},{"_id":"811B4C3C-0C13-11E2-AA3C-3DCD10BDE39D","name":"Shannon Rebecca Crucy","ugent_id":["802001320246","975670264332"],"name_last_first":"Crucy, Shannon Rebecca","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Shannon Rebecca","last_name":"Crucy"},{"_id":"062752CC-F0EE-11E1-A9DE-61C894A0A6B4","name":"Sven Dildick","ugent_id":["000070138474","802000886372"],"name_last_first":"Dildick, Sven","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Sven","last_name":"Dildick"},{"_id":"FFE130EA-2865-11E2-B3C5-477D10BDE39D","name":"Alexis Fagot","ugent_id":["000120926765","802001352881"],"name_last_first":"Fagot, Alexis","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Alexis","last_name":"Fagot"},{"_id":"3138F18C-F0EE-11E1-A9DE-61C894A0A6B4","name":"Guillaume Garcia","ugent_id":["000100977101","802000928408","977546406202"],"name_last_first":"Garcia, Guillaume","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Guillaume","last_name":"Garcia"},{"_id":"26836CEA-F0EE-11E1-A9DE-61C894A0A6B4","name":"Joseph McCartin","ugent_id":["000091455640","802000727536","975921438657"],"name_last_first":"McCartin, Joseph","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Joseph","last_name":"McCartin"},{"_id":"3B43956A-F0EE-11E1-A9DE-61C894A0A6B4","name":"Alberto Andres Ocampo Rios","ugent_id":["802001118566","975683125219"],"name_last_first":"Ocampo Rios, Alberto Andres","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Alberto Andres","last_name":"Ocampo Rios"},{"_id":"9826C2DE-102D-11E3-ABFB-408B10BDE39D","name":"Deniz Poyraz","ugent_id":["000121121472","802001612963"],"name_last_first":"Poyraz, Deniz","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Deniz","last_name":"Poyraz"},{"_id":"F3F9D35E-F0ED-11E1-A9DE-61C894A0A6B4","name":"Dirk Ryckbosch","ugent_id":["801000434537"],"name_last_first":"Ryckbosch, Dirk","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Dirk","last_name":"Ryckbosch"},{"_id":"434937EE-F59C-11E1-8C35-769E10BDE39D","name":"Michael Sigamani","ugent_id":["802001276291"],"name_last_first":"Sigamani, Michael","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Michael","last_name":"Sigamani"},{"_id":"017D907E-F0EE-11E1-A9DE-61C894A0A6B4","name":"Nadja Strobbe","ugent_id":["000060002378","802001124024","973369458583"],"name_last_first":"Strobbe, Nadja","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Nadja","last_name":"Strobbe"},{"_id":"F9DF0546-F0ED-11E1-A9DE-61C894A0A6B4","name":"Filip Thyssen","ugent_id":["002002262680","802000302756","978324789570"],"name_last_first":"Thyssen, Filip","affiliation":[{"ugent_id":"UGent","path":[{"ugent_id":"UGent"}]}],"first_name":"Filip","last_name":"Thyssen"},{"_id":"F4E76394-F0ED-11E1-A9DE-61C894A0A6B4","name":"Michael Tytgat","ugent_id":["801001016032"],"name_last_first":"Tytgat, Michael","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Michael","last_name":"Tytgat"},{"_id":"3B9ABA66-F0EE-11E1-A9DE-61C894A0A6B4","name":"Efe Yazgan","ugent_id":["802001114930"],"name_last_first":"Yazgan, Efe","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Efe","last_name":"Yazgan"},{"_id":"FBF0E5B6-F0ED-11E1-A9DE-61C894A0A6B4","name":"Nikolaos Zaganidis","ugent_id":["802000504032"],"name_last_first":"Zaganidis, Nikolaos","affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"first_name":"Nikolaos","last_name":"Zaganidis"},{"name":"S Basegmez","name_last_first":"Basegmez, S","first_name":"S","last_name":"Basegmez"},{"name":"C Beluffi","name_last_first":"Beluffi, C","first_name":"C","last_name":"Beluffi"},{"name":"G Bruno","name_last_first":"Bruno, G","first_name":"G","last_name":"Bruno"},{"name":"R Castello","name_last_first":"Castello, R","first_name":"R","last_name":"Castello"},{"name":"A Caudron","name_last_first":"Caudron, A","first_name":"A","last_name":"Caudron"},{"name":"L Ceard","name_last_first":"Ceard, L","first_name":"L","last_name":"Ceard"},{"name":"GG Da Silveira","name_last_first":"Da Silveira, GG","first_name":"GG","last_name":"Da Silveira"},{"name":"C Delaere","name_last_first":"Delaere, C","first_name":"C","last_name":"Delaere"},{"name":"T du Pree","name_last_first":"du Pree, T","first_name":"T","last_name":"du Pree"},{"name":"D Favart","name_last_first":"Favart, D","first_name":"D","last_name":"Favart"},{"name":"L Forthomme","name_last_first":"Forthomme, L","first_name":"L","last_name":"Forthomme"},{"name":"A Giammanco","name_last_first":"Giammanco, A","first_name":"A","last_name":"Giammanco"},{"name":"J Hollar","name_last_first":"Hollar, J","first_name":"J","last_name":"Hollar"},{"name":"A Jafari","name_last_first":"Jafari, A","first_name":"A","last_name":"Jafari"},{"name":"P Jez","name_last_first":"Jez, P","first_name":"P","last_name":"Jez"},{"name":"M Komm","name_last_first":"Komm, M","first_name":"M","last_name":"Komm"},{"name":"V Lemaitre","name_last_first":"Lemaitre, V","first_name":"V","last_name":"Lemaitre"},{"name":"C Nuttens","name_last_first":"Nuttens, C","first_name":"C","last_name":"Nuttens"},{"name":"L Perrini","name_last_first":"Perrini, L","first_name":"L","last_name":"Perrini"},{"name":"A Pin","name_last_first":"Pin, A","first_name":"A","last_name":"Pin"},{"name":"K Piotrzkowski","name_last_first":"Piotrzkowski, K","first_name":"K","last_name":"Piotrzkowski"},{"name":"A Popov","name_last_first":"Popov, A","first_name":"A","last_name":"Popov"},{"name":"L Quertenmont","name_last_first":"Quertenmont, L","first_name":"L","last_name":"Quertenmont"},{"name":"M Selvaggi","name_last_first":"Selvaggi, M","first_name":"M","last_name":"Selvaggi"},{"name":"MV Marono","name_last_first":"Marono, MV","first_name":"MV","last_name":"Marono"},{"name":"JMV Garcia","name_last_first":"Garcia, JMV","first_name":"JMV","last_name":"Garcia"},{"name":"N Beliy","name_last_first":"Beliy, N","first_name":"N","last_name":"Beliy"},{"name":"T Caebergs","name_last_first":"Caebergs, T","first_name":"T","last_name":"Caebergs"},{"name":"E Daubie","name_last_first":"Daubie, E","first_name":"E","last_name":"Daubie"},{"name":"GH Hammad","name_last_first":"Hammad, GH","first_name":"GH","last_name":"Hammad"},{"name":"WL Alda","name_last_first":"Alda, WL","first_name":"WL","last_name":"Alda"},{"name":"GA Alves","name_last_first":"Alves, GA","first_name":"GA","last_name":"Alves"},{"name":"L Brito","name_last_first":"Brito, L","first_name":"L","last_name":"Brito"},{"name":"MC Martins","name_last_first":"Martins, MC","first_name":"MC","last_name":"Martins"},{"name":"TD Martins","name_last_first":"Martins, TD","first_name":"TD","last_name":"Martins"},{"name":"J Molina","name_last_first":"Molina, J","first_name":"J","last_name":"Molina"},{"name":"CM Herrera","name_last_first":"Herrera, CM","first_name":"CM","last_name":"Herrera"},{"name":"ME Pol","name_last_first":"Pol, ME","first_name":"ME","last_name":"Pol"},{"name":"PR Teles","name_last_first":"Teles, PR","first_name":"PR","last_name":"Teles"},{"name":"W Carvalho","name_last_first":"Carvalho, W","first_name":"W","last_name":"Carvalho"},{"name":"J Chinellato","name_last_first":"Chinellato, J","first_name":"J","last_name":"Chinellato"},{"name":"A Custodio","name_last_first":"Custodio, A","first_name":"A","last_name":"Custodio"},{"name":"EM Da Costa","name_last_first":"Da Costa, EM","first_name":"EM","last_name":"Da Costa"},{"name":"DD Damiao","name_last_first":"Damiao, DD","first_name":"DD","last_name":"Damiao"},{"name":"CD Martins","name_last_first":"Martins, CD","first_name":"CD","last_name":"Martins"},{"name":"SF De Souza","name_last_first":"De Souza, SF","first_name":"SF","last_name":"De Souza"},{"name":"H Malbouisson","name_last_first":"Malbouisson, H","first_name":"H","last_name":"Malbouisson"},{"name":"DM Figueiredo","name_last_first":"Figueiredo, DM","first_name":"DM","last_name":"Figueiredo"},{"name":"L Mundim","name_last_first":"Mundim, L","first_name":"L","last_name":"Mundim"},{"name":"H Nogima","name_last_first":"Nogima, H","first_name":"H","last_name":"Nogima"},{"name":"WLP Da Silva","name_last_first":"Da Silva, WLP","first_name":"WLP","last_name":"Da Silva"},{"name":"J Santaolalla","name_last_first":"Santaolalla, J","first_name":"J","last_name":"Santaolalla"},{"name":"A Santoro","name_last_first":"Santoro, A","first_name":"A","last_name":"Santoro"},{"name":"A Sznajder","name_last_first":"Sznajder, A","first_name":"A","last_name":"Sznajder"},{"name":"EJT Manganote","name_last_first":"Manganote, EJT","first_name":"EJT","last_name":"Manganote"},{"name":"AV Pereira","name_last_first":"Pereira, AV","first_name":"AV","last_name":"Pereira"},{"name":"CA Bernardes","name_last_first":"Bernardes, CA","first_name":"CA","last_name":"Bernardes"},{"name":"S Dogra","name_last_first":"Dogra, S","first_name":"S","last_name":"Dogra"},{"name":"TRFP Tomei","name_last_first":"Tomei, TRFP","first_name":"TRFP","last_name":"Tomei"},{"name":"EM Gregores","name_last_first":"Gregores, EM","first_name":"EM","last_name":"Gregores"},{"name":"PG Mercadante","name_last_first":"Mercadante, PG","first_name":"PG","last_name":"Mercadante"},{"name":"SF Novaes","name_last_first":"Novaes, SF","first_name":"SF","last_name":"Novaes"},{"name":"SS Padula","name_last_first":"Padula, SS","first_name":"SS","last_name":"Padula"},{"name":"A Aleksandrov","name_last_first":"Aleksandrov, A","first_name":"A","last_name":"Aleksandrov"},{"name":"V Genchev","name_last_first":"Genchev, V","first_name":"V","last_name":"Genchev"},{"name":"R Hadjiiska","name_last_first":"Hadjiiska, R","first_name":"R","last_name":"Hadjiiska"},{"name":"P Iaydjiev","name_last_first":"Iaydjiev, P","first_name":"P","last_name":"Iaydjiev"},{"name":"A Marinov","name_last_first":"Marinov, A","first_name":"A","last_name":"Marinov"},{"name":"S Piperov","name_last_first":"Piperov, S","first_name":"S","last_name":"Piperov"},{"name":"M Rodozov","name_last_first":"Rodozov, M","first_name":"M","last_name":"Rodozov"},{"name":"S Stoykova","name_last_first":"Stoykova, S","first_name":"S","last_name":"Stoykova"},{"name":"G Sultanov","name_last_first":"Sultanov, G","first_name":"G","last_name":"Sultanov"},{"name":"M Vutova","name_last_first":"Vutova, M","first_name":"M","last_name":"Vutova"},{"name":"A Dimitrov","name_last_first":"Dimitrov, A","first_name":"A","last_name":"Dimitrov"},{"name":"I Glushkov","name_last_first":"Glushkov, I","first_name":"I","last_name":"Glushkov"},{"name":"L Litov","name_last_first":"Litov, L","first_name":"L","last_name":"Litov"},{"name":"B Pavlov","name_last_first":"Pavlov, B","first_name":"B","last_name":"Pavlov"},{"name":"P Petkov","name_last_first":"Petkov, P","first_name":"P","last_name":"Petkov"},{"name":"JG Bian","name_last_first":"Bian, JG","first_name":"JG","last_name":"Bian"},{"name":"GM Chen","name_last_first":"Chen, GM","first_name":"GM","last_name":"Chen"},{"name":"HS Chen","name_last_first":"Chen, HS","first_name":"HS","last_name":"Chen"},{"name":"M Chen","name_last_first":"Chen, M","first_name":"M","last_name":"Chen"},{"name":"T Cheng","name_last_first":"Cheng, T","first_name":"T","last_name":"Cheng"},{"name":"R Du","name_last_first":"Du, R","first_name":"R","last_name":"Du"},{"name":"CH Jiang","name_last_first":"Jiang, CH","first_name":"CH","last_name":"Jiang"},{"name":"R Plestina","name_last_first":"Plestina, R","first_name":"R","last_name":"Plestina"},{"name":"F Romeo","name_last_first":"Romeo, F","first_name":"F","last_name":"Romeo"},{"name":"J Tao","name_last_first":"Tao, J","first_name":"J","last_name":"Tao"},{"name":"Z Wang","name_last_first":"Wang, Z","first_name":"Z","last_name":"Wang"},{"name":"C Asawatangtrakuldee","name_last_first":"Asawatangtrakuldee, C","first_name":"C","last_name":"Asawatangtrakuldee"},{"name":"Y Ban","name_last_first":"Ban, Y","first_name":"Y","last_name":"Ban"},{"name":"S Liu","name_last_first":"Liu, S","first_name":"S","last_name":"Liu"},{"name":"Y Mao","name_last_first":"Mao, Y","first_name":"Y","last_name":"Mao"},{"name":"SJ Qian","name_last_first":"Qian, SJ","first_name":"SJ","last_name":"Qian"},{"name":"D Wang","name_last_first":"Wang, D","first_name":"D","last_name":"Wang"},{"name":"Z Xu","name_last_first":"Xu, Z","first_name":"Z","last_name":"Xu"},{"name":"L Zhang","name_last_first":"Zhang, L","first_name":"L","last_name":"Zhang"},{"name":"W Zou","name_last_first":"Zou, W","first_name":"W","last_name":"Zou"},{"name":"C Avila","name_last_first":"Avila, C","first_name":"C","last_name":"Avila"},{"name":"A Cabrera","name_last_first":"Cabrera, A","first_name":"A","last_name":"Cabrera"},{"name":"LFC Sierra","name_last_first":"Sierra, LFC","first_name":"LFC","last_name":"Sierra"},{"name":"C Florez","name_last_first":"Florez, C","first_name":"C","last_name":"Florez"},{"name":"JP Gomez","name_last_first":"Gomez, JP","first_name":"JP","last_name":"Gomez"},{"name":"BG Moreno","name_last_first":"Moreno, BG","first_name":"BG","last_name":"Moreno"},{"name":"JC Sanabria","name_last_first":"Sanabria, JC","first_name":"JC","last_name":"Sanabria"},{"name":"N Godinovic","name_last_first":"Godinovic, N","first_name":"N","last_name":"Godinovic"},{"name":"D Lelas","name_last_first":"Lelas, D","first_name":"D","last_name":"Lelas"},{"name":"D Polic","name_last_first":"Polic, D","first_name":"D","last_name":"Polic"},{"name":"I Puljak","name_last_first":"Puljak, I","first_name":"I","last_name":"Puljak"},{"name":"Z Antunovic","name_last_first":"Antunovic, Z","first_name":"Z","last_name":"Antunovic"},{"name":"M Kovac","name_last_first":"Kovac, M","first_name":"M","last_name":"Kovac"},{"name":"V Brigljevic","name_last_first":"Brigljevic, V","first_name":"V","last_name":"Brigljevic"},{"name":"K Kadija","name_last_first":"Kadija, K","first_name":"K","last_name":"Kadija"},{"name":"J Luetic","name_last_first":"Luetic, J","first_name":"J","last_name":"Luetic"},{"name":"D Mekterovic","name_last_first":"Mekterovic, D","first_name":"D","last_name":"Mekterovic"},{"name":"L Sudic","name_last_first":"Sudic, L","first_name":"L","last_name":"Sudic"},{"name":"A Attikis","name_last_first":"Attikis, A","first_name":"A","last_name":"Attikis"},{"name":"G Mavromanolakis","name_last_first":"Mavromanolakis, G","first_name":"G","last_name":"Mavromanolakis"},{"name":"J Mousa","name_last_first":"Mousa, J","first_name":"J","last_name":"Mousa"},{"name":"C Nicolaou","name_last_first":"Nicolaou, C","first_name":"C","last_name":"Nicolaou"},{"name":"F Ptochos","name_last_first":"Ptochos, F","first_name":"F","last_name":"Ptochos"},{"name":"PA Razis","name_last_first":"Razis, PA","first_name":"PA","last_name":"Razis"},{"name":"H Rykaczewski","name_last_first":"Rykaczewski, H","first_name":"H","last_name":"Rykaczewski"},{"name":"M Bodlak","name_last_first":"Bodlak, M","first_name":"M","last_name":"Bodlak"},{"name":"M Finger","name_last_first":"Finger, M","first_name":"M","last_name":"Finger"},{"name":"M Finger","name_last_first":"Finger, M","first_name":"M","last_name":"Finger"},{"name":"Y Assran","name_last_first":"Assran, Y","first_name":"Y","last_name":"Assran"},{"name":"AE Kamel","name_last_first":"Kamel, AE","first_name":"AE","last_name":"Kamel"},{"name":"MA Mahmoud","name_last_first":"Mahmoud, MA","first_name":"MA","last_name":"Mahmoud"},{"name":"A Radi","name_last_first":"Radi, A","first_name":"A","last_name":"Radi"},{"name":"M Kadastik","name_last_first":"Kadastik, M","first_name":"M","last_name":"Kadastik"},{"name":"M Murumaa","name_last_first":"Murumaa, M","first_name":"M","last_name":"Murumaa"},{"name":"M Raidal","name_last_first":"Raidal, M","first_name":"M","last_name":"Raidal"},{"name":"A Tiko","name_last_first":"Tiko, A","first_name":"A","last_name":"Tiko"},{"name":"P Eerola","name_last_first":"Eerola, P","first_name":"P","last_name":"Eerola"},{"name":"M Voutilainen","name_last_first":"Voutilainen, M","first_name":"M","last_name":"Voutilainen"},{"name":"J Harkonen","name_last_first":"Harkonen, J","first_name":"J","last_name":"Harkonen"},{"name":"V Karimaki","name_last_first":"Karimaki, V","first_name":"V","last_name":"Karimaki"},{"name":"R Kinnunen","name_last_first":"Kinnunen, R","first_name":"R","last_name":"Kinnunen"},{"name":"MJ Kortelainen","name_last_first":"Kortelainen, MJ","first_name":"MJ","last_name":"Kortelainen"},{"name":"T Lampen","name_last_first":"Lampen, T","first_name":"T","last_name":"Lampen"},{"name":"K Lassila-Perini","name_last_first":"Lassila-Perini, K","first_name":"K","last_name":"Lassila-Perini"},{"name":"S Lehti","name_last_first":"Lehti, S","first_name":"S","last_name":"Lehti"},{"name":"T Linden","name_last_first":"Linden, T","first_name":"T","last_name":"Linden"},{"name":"P Luukka","name_last_first":"Luukka, P","first_name":"P","last_name":"Luukka"},{"name":"T Maenpaa","name_last_first":"Maenpaa, T","first_name":"T","last_name":"Maenpaa"},{"name":"T Peltola","name_last_first":"Peltola, T","first_name":"T","last_name":"Peltola"},{"name":"E Tuominen","name_last_first":"Tuominen, E","first_name":"E","last_name":"Tuominen"},{"name":"J Tuominiemi","name_last_first":"Tuominiemi, J","first_name":"J","last_name":"Tuominiemi"},{"name":"E Tuovinen","name_last_first":"Tuovinen, E","first_name":"E","last_name":"Tuovinen"},{"name":"L Wendland","name_last_first":"Wendland, L","first_name":"L","last_name":"Wendland"},{"name":"J Talvitie","name_last_first":"Talvitie, J","first_name":"J","last_name":"Talvitie"},{"name":"T Tuuva","name_last_first":"Tuuva, T","first_name":"T","last_name":"Tuuva"},{"name":"M Besancon","name_last_first":"Besancon, M","first_name":"M","last_name":"Besancon"},{"name":"F Couderc","name_last_first":"Couderc, F","first_name":"F","last_name":"Couderc"},{"name":"M Dejardin","name_last_first":"Dejardin, M","first_name":"M","last_name":"Dejardin"},{"name":"D Denegri","name_last_first":"Denegri, D","first_name":"D","last_name":"Denegri"},{"name":"B Fabbro","name_last_first":"Fabbro, B","first_name":"B","last_name":"Fabbro"},{"name":"JL Faure","name_last_first":"Faure, JL","first_name":"JL","last_name":"Faure"},{"name":"C Favaro","name_last_first":"Favaro, C","first_name":"C","last_name":"Favaro"},{"name":"F Ferri","name_last_first":"Ferri, F","first_name":"F","last_name":"Ferri"},{"name":"S Ganjour","name_last_first":"Ganjour, S","first_name":"S","last_name":"Ganjour"},{"name":"A Givernaud","name_last_first":"Givernaud, A","first_name":"A","last_name":"Givernaud"},{"name":"P Gras","name_last_first":"Gras, P","first_name":"P","last_name":"Gras"},{"name":"GH de Monchenault","name_last_first":"de Monchenault, GH","first_name":"GH","last_name":"de Monchenault"},{"name":"P Jarry","name_last_first":"Jarry, P","first_name":"P","last_name":"Jarry"},{"name":"E Locci","name_last_first":"Locci, E","first_name":"E","last_name":"Locci"},{"name":"J Malcles","name_last_first":"Malcles, J","first_name":"J","last_name":"Malcles"},{"name":"J Rander","name_last_first":"Rander, J","first_name":"J","last_name":"Rander"},{"name":"A Rosowsky","name_last_first":"Rosowsky, A","first_name":"A","last_name":"Rosowsky"},{"name":"M Titov","name_last_first":"Titov, M","first_name":"M","last_name":"Titov"},{"name":"S Baffioni","name_last_first":"Baffioni, S","first_name":"S","last_name":"Baffioni"},{"name":"F Beaudette","name_last_first":"Beaudette, F","first_name":"F","last_name":"Beaudette"},{"name":"P Busson","name_last_first":"Busson, P","first_name":"P","last_name":"Busson"},{"name":"E Chapon","name_last_first":"Chapon, E","first_name":"E","last_name":"Chapon"},{"name":"C Charlot","name_last_first":"Charlot, C","first_name":"C","last_name":"Charlot"},{"name":"T Dahms","name_last_first":"Dahms, T","first_name":"T","last_name":"Dahms"},{"name":"M Dalchenko","name_last_first":"Dalchenko, M","first_name":"M","last_name":"Dalchenko"},{"name":"L Dobrzynski","name_last_first":"Dobrzynski, L","first_name":"L","last_name":"Dobrzynski"},{"name":"N Filipovic","name_last_first":"Filipovic, N","first_name":"N","last_name":"Filipovic"},{"name":"A Florent","name_last_first":"Florent, A","first_name":"A","last_name":"Florent"},{"name":"RG de Cassagnac","name_last_first":"de Cassagnac, RG","first_name":"RG","last_name":"de Cassagnac"},{"name":"L Mastrolorenzo","name_last_first":"Mastrolorenzo, L","first_name":"L","last_name":"Mastrolorenzo"},{"name":"P Mine","name_last_first":"Mine, P","first_name":"P","last_name":"Mine"},{"name":"IN Naranjo","name_last_first":"Naranjo, IN","first_name":"IN","last_name":"Naranjo"},{"name":"M Nguyen","name_last_first":"Nguyen, M","first_name":"M","last_name":"Nguyen"},{"name":"C Ochando","name_last_first":"Ochando, C","first_name":"C","last_name":"Ochando"},{"name":"G Ortona","name_last_first":"Ortona, G","first_name":"G","last_name":"Ortona"},{"name":"P Paganini","name_last_first":"Paganini, P","first_name":"P","last_name":"Paganini"},{"name":"S Regnard","name_last_first":"Regnard, S","first_name":"S","last_name":"Regnard"},{"name":"R Salerno","name_last_first":"Salerno, R","first_name":"R","last_name":"Salerno"},{"name":"JB Sauvan","name_last_first":"Sauvan, JB","first_name":"JB","last_name":"Sauvan"},{"name":"Y Sirois","name_last_first":"Sirois, Y","first_name":"Y","last_name":"Sirois"},{"name":"C Veelken","name_last_first":"Veelken, C","first_name":"C","last_name":"Veelken"},{"name":"Y Yilmaz","name_last_first":"Yilmaz, Y","first_name":"Y","last_name":"Yilmaz"},{"name":"A Zabi","name_last_first":"Zabi, A","first_name":"A","last_name":"Zabi"},{"name":"JL Agram","name_last_first":"Agram, JL","first_name":"JL","last_name":"Agram"},{"name":"J Andrea","name_last_first":"Andrea, J","first_name":"J","last_name":"Andrea"},{"name":"A Aubin","name_last_first":"Aubin, A","first_name":"A","last_name":"Aubin"},{"name":"D Bloch","name_last_first":"Bloch, D","first_name":"D","last_name":"Bloch"},{"name":"JM Brom","name_last_first":"Brom, JM","first_name":"JM","last_name":"Brom"},{"name":"EC Chabert","name_last_first":"Chabert, EC","first_name":"EC","last_name":"Chabert"},{"name":"C Collard","name_last_first":"Collard, C","first_name":"C","last_name":"Collard"},{"name":"E Conte","name_last_first":"Conte, E","first_name":"E","last_name":"Conte"},{"name":"JC Fontaine","name_last_first":"Fontaine, JC","first_name":"JC","last_name":"Fontaine"},{"name":"D Gele","name_last_first":"Gele, D","first_name":"D","last_name":"Gele"},{"name":"U Goerlach","name_last_first":"Goerlach, U","first_name":"U","last_name":"Goerlach"},{"name":"C Goetzmann","name_last_first":"Goetzmann, C","first_name":"C","last_name":"Goetzmann"},{"name":"AC Le Bihan","name_last_first":"Le Bihan, AC","first_name":"AC","last_name":"Le Bihan"},{"name":"K Skovpen","name_last_first":"Skovpen, K","first_name":"K","last_name":"Skovpen"},{"name":"P Van Hove","name_last_first":"Van Hove, P","first_name":"P","last_name":"Van Hove"},{"name":"S Gadrat","name_last_first":"Gadrat, S","first_name":"S","last_name":"Gadrat"},{"name":"S Beauceron","name_last_first":"Beauceron, S","first_name":"S","last_name":"Beauceron"},{"name":"N Beaupere","name_last_first":"Beaupere, N","first_name":"N","last_name":"Beaupere"},{"name":"C Bernet","name_last_first":"Bernet, C","first_name":"C","last_name":"Bernet"},{"name":"G Boudoul","name_last_first":"Boudoul, G","first_name":"G","last_name":"Boudoul"},{"name":"E Bouvier","name_last_first":"Bouvier, E","first_name":"E","last_name":"Bouvier"},{"name":"S Brochet","name_last_first":"Brochet, S","first_name":"S","last_name":"Brochet"},{"name":"AC Montoya","name_last_first":"Montoya, AC","first_name":"AC","last_name":"Montoya"},{"name":"J Chasserat","name_last_first":"Chasserat, J","first_name":"J","last_name":"Chasserat"},{"name":"R Chierici","name_last_first":"Chierici, R","first_name":"R","last_name":"Chierici"},{"name":"D Contardo","name_last_first":"Contardo, D","first_name":"D","last_name":"Contardo"},{"name":"B Courbon","name_last_first":"Courbon, B","first_name":"B","last_name":"Courbon"},{"name":"P Depasse","name_last_first":"Depasse, P","first_name":"P","last_name":"Depasse"},{"name":"H El Mamouni","name_last_first":"El Mamouni, H","first_name":"H","last_name":"El Mamouni"},{"name":"J Fan","name_last_first":"Fan, J","first_name":"J","last_name":"Fan"},{"name":"J Fay","name_last_first":"Fay, J","first_name":"J","last_name":"Fay"},{"name":"S Gascon","name_last_first":"Gascon, S","first_name":"S","last_name":"Gascon"},{"name":"M Gouzevitch","name_last_first":"Gouzevitch, M","first_name":"M","last_name":"Gouzevitch"},{"name":"B Ille","name_last_first":"Ille, B","first_name":"B","last_name":"Ille"},{"name":"T Kurca","name_last_first":"Kurca, T","first_name":"T","last_name":"Kurca"},{"name":"M Lethuillier","name_last_first":"Lethuillier, M","first_name":"M","last_name":"Lethuillier"},{"name":"L Mirabito","name_last_first":"Mirabito, L","first_name":"L","last_name":"Mirabito"},{"name":"AL Pequegnot","name_last_first":"Pequegnot, AL","first_name":"AL","last_name":"Pequegnot"},{"name":"S Perries","name_last_first":"Perries, S","first_name":"S","last_name":"Perries"},{"name":"JDR Alvarez","name_last_first":"Alvarez, JDR","first_name":"JDR","last_name":"Alvarez"},{"name":"D Sabes","name_last_first":"Sabes, D","first_name":"D","last_name":"Sabes"},{"name":"L Sgandurra","name_last_first":"Sgandurra, L","first_name":"L","last_name":"Sgandurra"},{"name":"V Sordini","name_last_first":"Sordini, V","first_name":"V","last_name":"Sordini"},{"name":"MV Donckt","name_last_first":"Donckt, MV","first_name":"MV","last_name":"Donckt"},{"name":"P Verdier","name_last_first":"Verdier, P","first_name":"P","last_name":"Verdier"},{"name":"S Viret","name_last_first":"Viret, S","first_name":"S","last_name":"Viret"},{"name":"H Xiao","name_last_first":"Xiao, H","first_name":"H","last_name":"Xiao"},{"name":"Z Tsamalaidze","name_last_first":"Tsamalaidze, Z","first_name":"Z","last_name":"Tsamalaidze"},{"name":"C Autermann","name_last_first":"Autermann, C","first_name":"C","last_name":"Autermann"},{"name":"S Beranek","name_last_first":"Beranek, S","first_name":"S","last_name":"Beranek"},{"name":"M Bontenackels","name_last_first":"Bontenackels, M","first_name":"M","last_name":"Bontenackels"},{"name":"M Edelhoff","name_last_first":"Edelhoff, M","first_name":"M","last_name":"Edelhoff"},{"name":"L Feld","name_last_first":"Feld, L","first_name":"L","last_name":"Feld"},{"name":"A Heister","name_last_first":"Heister, A","first_name":"A","last_name":"Heister"},{"name":"K Klein","name_last_first":"Klein, K","first_name":"K","last_name":"Klein"},{"name":"M Lipinski","name_last_first":"Lipinski, M","first_name":"M","last_name":"Lipinski"},{"name":"A Ostapchuk","name_last_first":"Ostapchuk, A","first_name":"A","last_name":"Ostapchuk"},{"name":"M Preuten","name_last_first":"Preuten, M","first_name":"M","last_name":"Preuten"},{"name":"F Raupach","name_last_first":"Raupach, F","first_name":"F","last_name":"Raupach"},{"name":"J Sammet","name_last_first":"Sammet, J","first_name":"J","last_name":"Sammet"},{"name":"S Schael","name_last_first":"Schael, S","first_name":"S","last_name":"Schael"},{"name":"JF Schulte","name_last_first":"Schulte, JF","first_name":"JF","last_name":"Schulte"},{"name":"H Weber","name_last_first":"Weber, H","first_name":"H","last_name":"Weber"},{"name":"B Wittmer","name_last_first":"Wittmer, B","first_name":"B","last_name":"Wittmer"},{"name":"V Zhukov","name_last_first":"Zhukov, V","first_name":"V","last_name":"Zhukov"},{"name":"M Ata","name_last_first":"Ata, M","first_name":"M","last_name":"Ata"},{"name":"M Brodski","name_last_first":"Brodski, M","first_name":"M","last_name":"Brodski"},{"name":"E Dietz-Laursonn","name_last_first":"Dietz-Laursonn, E","first_name":"E","last_name":"Dietz-Laursonn"},{"name":"D Duchardt","name_last_first":"Duchardt, D","first_name":"D","last_name":"Duchardt"},{"name":"M Erdmann","name_last_first":"Erdmann, M","first_name":"M","last_name":"Erdmann"},{"name":"R Fischer","name_last_first":"Fischer, R","first_name":"R","last_name":"Fischer"},{"name":"A Guth","name_last_first":"Guth, A","first_name":"A","last_name":"Guth"},{"name":"T Hebbeker","name_last_first":"Hebbeker, T","first_name":"T","last_name":"Hebbeker"},{"name":"C Heidemann","name_last_first":"Heidemann, C","first_name":"C","last_name":"Heidemann"},{"name":"K Hoepfner","name_last_first":"Hoepfner, K","first_name":"K","last_name":"Hoepfner"},{"name":"D Klingebiel","name_last_first":"Klingebiel, D","first_name":"D","last_name":"Klingebiel"},{"name":"S Knutzen","name_last_first":"Knutzen, S","first_name":"S","last_name":"Knutzen"},{"name":"P Kreuzer","name_last_first":"Kreuzer, P","first_name":"P","last_name":"Kreuzer"},{"name":"M Merschmeyer","name_last_first":"Merschmeyer, M","first_name":"M","last_name":"Merschmeyer"},{"name":"A Meyer","name_last_first":"Meyer, A","first_name":"A","last_name":"Meyer"},{"name":"P Millet","name_last_first":"Millet, P","first_name":"P","last_name":"Millet"},{"name":"M Olschewski","name_last_first":"Olschewski, M","first_name":"M","last_name":"Olschewski"},{"name":"K Padeken","name_last_first":"Padeken, K","first_name":"K","last_name":"Padeken"},{"name":"P Papacz","name_last_first":"Papacz, P","first_name":"P","last_name":"Papacz"},{"name":"H Reithler","name_last_first":"Reithler, H","first_name":"H","last_name":"Reithler"},{"name":"SA Schmitz","name_last_first":"Schmitz, SA","first_name":"SA","last_name":"Schmitz"},{"name":"L Sonnenschein","name_last_first":"Sonnenschein, L","first_name":"L","last_name":"Sonnenschein"},{"name":"D Teyssier","name_last_first":"Teyssier, D","first_name":"D","last_name":"Teyssier"},{"name":"S Thur","name_last_first":"Thur, S","first_name":"S","last_name":"Thur"},{"name":"M Weber","name_last_first":"Weber, M","first_name":"M","last_name":"Weber"},{"name":"V Cherepanov","name_last_first":"Cherepanov, V","first_name":"V","last_name":"Cherepanov"},{"name":"Y Erdogan","name_last_first":"Erdogan, Y","first_name":"Y","last_name":"Erdogan"},{"name":"G Flugge","name_last_first":"Flugge, G","first_name":"G","last_name":"Flugge"},{"name":"H Geenen","name_last_first":"Geenen, H","first_name":"H","last_name":"Geenen"},{"name":"M Geisler","name_last_first":"Geisler, M","first_name":"M","last_name":"Geisler"},{"name":"WH Ahmad","name_last_first":"Ahmad, WH","first_name":"WH","last_name":"Ahmad"},{"name":"F Hoehle","name_last_first":"Hoehle, F","first_name":"F","last_name":"Hoehle"},{"name":"B Kargoll","name_last_first":"Kargoll, B","first_name":"B","last_name":"Kargoll"},{"name":"T Kress","name_last_first":"Kress, T","first_name":"T","last_name":"Kress"},{"name":"Y Kuessel","name_last_first":"Kuessel, Y","first_name":"Y","last_name":"Kuessel"},{"name":"A Kunsken","name_last_first":"Kunsken, A","first_name":"A","last_name":"Kunsken"},{"name":"J Lingemann","name_last_first":"Lingemann, J","first_name":"J","last_name":"Lingemann"},{"name":"A Nowack","name_last_first":"Nowack, A","first_name":"A","last_name":"Nowack"},{"name":"IM Nugent","name_last_first":"Nugent, IM","first_name":"IM","last_name":"Nugent"},{"name":"O Pooth","name_last_first":"Pooth, O","first_name":"O","last_name":"Pooth"},{"name":"A Stahl","name_last_first":"Stahl, A","first_name":"A","last_name":"Stahl"},{"name":"MA Martin","name_last_first":"Martin, MA","first_name":"MA","last_name":"Martin"},{"name":"I Asin","name_last_first":"Asin, I","first_name":"I","last_name":"Asin"},{"name":"N Bartosik","name_last_first":"Bartosik, N","first_name":"N","last_name":"Bartosik"},{"name":"J Behr","name_last_first":"Behr, J","first_name":"J","last_name":"Behr"},{"name":"U Behrens","name_last_first":"Behrens, U","first_name":"U","last_name":"Behrens"},{"name":"AJ Bell","name_last_first":"Bell, AJ","first_name":"AJ","last_name":"Bell"},{"name":"A Bethani","name_last_first":"Bethani, A","first_name":"A","last_name":"Bethani"},{"name":"K Borras","name_last_first":"Borras, K","first_name":"K","last_name":"Borras"},{"name":"A Burgmeier","name_last_first":"Burgmeier, A","first_name":"A","last_name":"Burgmeier"},{"name":"A Cakir","name_last_first":"Cakir, A","first_name":"A","last_name":"Cakir"},{"name":"L Calligaris","name_last_first":"Calligaris, L","first_name":"L","last_name":"Calligaris"},{"name":"A Campbell","name_last_first":"Campbell, A","first_name":"A","last_name":"Campbell"},{"name":"S Choudhury","name_last_first":"Choudhury, S","first_name":"S","last_name":"Choudhury"},{"name":"F Costanza","name_last_first":"Costanza, F","first_name":"F","last_name":"Costanza"},{"name":"CD Pardos","name_last_first":"Pardos, CD","first_name":"CD","last_name":"Pardos"},{"name":"G Dolinska","name_last_first":"Dolinska, G","first_name":"G","last_name":"Dolinska"},{"name":"S Dooling","name_last_first":"Dooling, S","first_name":"S","last_name":"Dooling"},{"name":"T Dorland","name_last_first":"Dorland, T","first_name":"T","last_name":"Dorland"},{"name":"G Eckerlin","name_last_first":"Eckerlin, G","first_name":"G","last_name":"Eckerlin"},{"name":"D Eckstein","name_last_first":"Eckstein, D","first_name":"D","last_name":"Eckstein"},{"name":"T Eichhorn","name_last_first":"Eichhorn, T","first_name":"T","last_name":"Eichhorn"},{"name":"G Flucke","name_last_first":"Flucke, G","first_name":"G","last_name":"Flucke"},{"name":"JG Garcia","name_last_first":"Garcia, JG","first_name":"JG","last_name":"Garcia"},{"name":"A Geiser","name_last_first":"Geiser, A","first_name":"A","last_name":"Geiser"},{"name":"A Gizhko","name_last_first":"Gizhko, A","first_name":"A","last_name":"Gizhko"},{"name":"P Gunnellini","name_last_first":"Gunnellini, P","first_name":"P","last_name":"Gunnellini"},{"name":"J Hauk","name_last_first":"Hauk, J","first_name":"J","last_name":"Hauk"},{"name":"M Hempel","name_last_first":"Hempel, M","first_name":"M","last_name":"Hempel"},{"name":"H Jung","name_last_first":"Jung, H","first_name":"H","last_name":"Jung"},{"name":"A Kalogeropoulos","name_last_first":"Kalogeropoulos, A","first_name":"A","last_name":"Kalogeropoulos"},{"name":"O Karacheban","name_last_first":"Karacheban, O","first_name":"O","last_name":"Karacheban"},{"name":"M Kasemann","name_last_first":"Kasemann, M","first_name":"M","last_name":"Kasemann"},{"name":"P Katsas","name_last_first":"Katsas, P","first_name":"P","last_name":"Katsas"},{"name":"J Kieseler","name_last_first":"Kieseler, J","first_name":"J","last_name":"Kieseler"},{"name":"C Kleinwort","name_last_first":"Kleinwort, C","first_name":"C","last_name":"Kleinwort"},{"name":"I Korol","name_last_first":"Korol, I","first_name":"I","last_name":"Korol"},{"name":"D Krucker","name_last_first":"Krucker, D","first_name":"D","last_name":"Krucker"},{"name":"W Lange","name_last_first":"Lange, W","first_name":"W","last_name":"Lange"},{"name":"J Leonard","name_last_first":"Leonard, J","first_name":"J","last_name":"Leonard"},{"name":"K Lipka","name_last_first":"Lipka, K","first_name":"K","last_name":"Lipka"},{"name":"A Lobanov","name_last_first":"Lobanov, A","first_name":"A","last_name":"Lobanov"},{"name":"W Lohmann","name_last_first":"Lohmann, W","first_name":"W","last_name":"Lohmann"},{"name":"B Lutz","name_last_first":"Lutz, B","first_name":"B","last_name":"Lutz"},{"name":"R Mankel","name_last_first":"Mankel, R","first_name":"R","last_name":"Mankel"},{"name":"I Marfin","name_last_first":"Marfin, I","first_name":"I","last_name":"Marfin"},{"name":"IA Melzer-Pellmann","name_last_first":"Melzer-Pellmann, IA","first_name":"IA","last_name":"Melzer-Pellmann"},{"name":"AB Meyer","name_last_first":"Meyer, AB","first_name":"AB","last_name":"Meyer"},{"name":"G Mittag","name_last_first":"Mittag, G","first_name":"G","last_name":"Mittag"},{"name":"J Mnich","name_last_first":"Mnich, J","first_name":"J","last_name":"Mnich"},{"name":"A Mussgiller","name_last_first":"Mussgiller, A","first_name":"A","last_name":"Mussgiller"},{"name":"S Naumann-Emme","name_last_first":"Naumann-Emme, S","first_name":"S","last_name":"Naumann-Emme"},{"name":"A Nayak","name_last_first":"Nayak, A","first_name":"A","last_name":"Nayak"},{"name":"E Ntomari","name_last_first":"Ntomari, E","first_name":"E","last_name":"Ntomari"},{"name":"H Perrey","name_last_first":"Perrey, H","first_name":"H","last_name":"Perrey"},{"name":"D Pitzl","name_last_first":"Pitzl, D","first_name":"D","last_name":"Pitzl"},{"name":"R Placakyte","name_last_first":"Placakyte, R","first_name":"R","last_name":"Placakyte"},{"name":"A Raspereza","name_last_first":"Raspereza, A","first_name":"A","last_name":"Raspereza"},{"name":"PMR Cipriano","name_last_first":"Cipriano, PMR","first_name":"PMR","last_name":"Cipriano"},{"name":"B Roland","name_last_first":"Roland, B","first_name":"B","last_name":"Roland"},{"name":"E Ron","name_last_first":"Ron, E","first_name":"E","last_name":"Ron"},{"name":"MO Sahin","name_last_first":"Sahin, MO","first_name":"MO","last_name":"Sahin"},{"name":"J Salfeld-Nebgen","name_last_first":"Salfeld-Nebgen, J","first_name":"J","last_name":"Salfeld-Nebgen"},{"name":"P Saxena","name_last_first":"Saxena, P","first_name":"P","last_name":"Saxena"},{"name":"T Schoerner-Sadenius","name_last_first":"Schoerner-Sadenius, T","first_name":"T","last_name":"Schoerner-Sadenius"},{"name":"M Schoerder","name_last_first":"Schoerder, M","first_name":"M","last_name":"Schoerder"},{"name":"C Seitz","name_last_first":"Seitz, C","first_name":"C","last_name":"Seitz"},{"name":"S Spannagel","name_last_first":"Spannagel, S","first_name":"S","last_name":"Spannagel"},{"name":"ADRV Trevino","name_last_first":"Trevino, ADRV","first_name":"ADRV","last_name":"Trevino"},{"name":"R Walsh","name_last_first":"Walsh, R","first_name":"R","last_name":"Walsh"},{"name":"C Wissing","name_last_first":"Wissing, C","first_name":"C","last_name":"Wissing"},{"name":"V Blobel","name_last_first":"Blobel, V","first_name":"V","last_name":"Blobel"},{"name":"MC Vignali","name_last_first":"Vignali, MC","first_name":"MC","last_name":"Vignali"},{"name":"AR Draeger","name_last_first":"Draeger, AR","first_name":"AR","last_name":"Draeger"},{"name":"J Erfle","name_last_first":"Erfle, J","first_name":"J","last_name":"Erfle"},{"name":"E Garutti","name_last_first":"Garutti, E","first_name":"E","last_name":"Garutti"},{"name":"K Goebel","name_last_first":"Goebel, K","first_name":"K","last_name":"Goebel"},{"name":"M Gorner","name_last_first":"Gorner, M","first_name":"M","last_name":"Gorner"},{"name":"J Haller","name_last_first":"Haller, J","first_name":"J","last_name":"Haller"},{"name":"M Hoffmann","name_last_first":"Hoffmann, M","first_name":"M","last_name":"Hoffmann"},{"name":"RS Hoing","name_last_first":"Hoing, RS","first_name":"RS","last_name":"Hoing"},{"name":"A Junkes","name_last_first":"Junkes, A","first_name":"A","last_name":"Junkes"},{"name":"H Kirschenmann","name_last_first":"Kirschenmann, H","first_name":"H","last_name":"Kirschenmann"},{"name":"R Klanner","name_last_first":"Klanner, R","first_name":"R","last_name":"Klanner"},{"name":"R Kogler","name_last_first":"Kogler, R","first_name":"R","last_name":"Kogler"},{"name":"T Lapsien","name_last_first":"Lapsien, T","first_name":"T","last_name":"Lapsien"},{"name":"T Lenz","name_last_first":"Lenz, T","first_name":"T","last_name":"Lenz"},{"name":"I Marchesini","name_last_first":"Marchesini, I","first_name":"I","last_name":"Marchesini"},{"name":"D Marconi","name_last_first":"Marconi, D","first_name":"D","last_name":"Marconi"},{"name":"J Ott","name_last_first":"Ott, J","first_name":"J","last_name":"Ott"},{"name":"T Peiffer","name_last_first":"Peiffer, T","first_name":"T","last_name":"Peiffer"},{"name":"A Perieanu","name_last_first":"Perieanu, A","first_name":"A","last_name":"Perieanu"},{"name":"N Pietsch","name_last_first":"Pietsch, N","first_name":"N","last_name":"Pietsch"},{"name":"J Poehlsen","name_last_first":"Poehlsen, J","first_name":"J","last_name":"Poehlsen"},{"name":"T Poehlsen","name_last_first":"Poehlsen, T","first_name":"T","last_name":"Poehlsen"},{"name":"D Rathjens","name_last_first":"Rathjens, D","first_name":"D","last_name":"Rathjens"},{"name":"C Sander","name_last_first":"Sander, C","first_name":"C","last_name":"Sander"},{"name":"H Schettler","name_last_first":"Schettler, H","first_name":"H","last_name":"Schettler"},{"name":"P Schleper","name_last_first":"Schleper, P","first_name":"P","last_name":"Schleper"},{"name":"E Schlieckau","name_last_first":"Schlieckau, E","first_name":"E","last_name":"Schlieckau"},{"name":"A Schmidt","name_last_first":"Schmidt, A","first_name":"A","last_name":"Schmidt"},{"name":"M Seidel","name_last_first":"Seidel, M","first_name":"M","last_name":"Seidel"},{"name":"V Sola","name_last_first":"Sola, V","first_name":"V","last_name":"Sola"},{"name":"H Stadie","name_last_first":"Stadie, H","first_name":"H","last_name":"Stadie"},{"name":"G Steinbruck","name_last_first":"Steinbruck, G","first_name":"G","last_name":"Steinbruck"},{"name":"D Troendle","name_last_first":"Troendle, D","first_name":"D","last_name":"Troendle"},{"name":"E Usai","name_last_first":"Usai, E","first_name":"E","last_name":"Usai"},{"name":"L Vanelderen","name_last_first":"Vanelderen, L","first_name":"L","last_name":"Vanelderen"},{"name":"A Vanhoefer","name_last_first":"Vanhoefer, A","first_name":"A","last_name":"Vanhoefer"},{"name":"C Barth","name_last_first":"Barth, C","first_name":"C","last_name":"Barth"},{"name":"C Baus","name_last_first":"Baus, C","first_name":"C","last_name":"Baus"},{"name":"J Berger","name_last_first":"Berger, J","first_name":"J","last_name":"Berger"},{"name":"C Boser","name_last_first":"Boser, C","first_name":"C","last_name":"Boser"},{"name":"E Butz","name_last_first":"Butz, E","first_name":"E","last_name":"Butz"},{"name":"T Chwalek","name_last_first":"Chwalek, T","first_name":"T","last_name":"Chwalek"},{"name":"W De Boer","name_last_first":"De Boer, W","first_name":"W","last_name":"De Boer"},{"name":"A Descroix","name_last_first":"Descroix, A","first_name":"A","last_name":"Descroix"},{"name":"A Dierlamm","name_last_first":"Dierlamm, A","first_name":"A","last_name":"Dierlamm"},{"name":"M Feindt","name_last_first":"Feindt, M","first_name":"M","last_name":"Feindt"},{"name":"F Frensch","name_last_first":"Frensch, F","first_name":"F","last_name":"Frensch"},{"name":"M Giffels","name_last_first":"Giffels, M","first_name":"M","last_name":"Giffels"},{"name":"A Gilbert","name_last_first":"Gilbert, A","first_name":"A","last_name":"Gilbert"},{"name":"F Hartmann","name_last_first":"Hartmann, F","first_name":"F","last_name":"Hartmann"},{"name":"T Hauth","name_last_first":"Hauth, T","first_name":"T","last_name":"Hauth"},{"name":"U Husemann","name_last_first":"Husemann, U","first_name":"U","last_name":"Husemann"},{"name":"I Katkov","name_last_first":"Katkov, I","first_name":"I","last_name":"Katkov"},{"name":"A Kornmayer","name_last_first":"Kornmayer, A","first_name":"A","last_name":"Kornmayer"},{"name":"PL Pardo","name_last_first":"Pardo, PL","first_name":"PL","last_name":"Pardo"},{"name":"MU Mozer","name_last_first":"Mozer, MU","first_name":"MU","last_name":"Mozer"},{"name":"T Muller","name_last_first":"Muller, T","first_name":"T","last_name":"Muller"},{"name":"T Muller","name_last_first":"Muller, T","first_name":"T","last_name":"Muller"},{"name":"A Nurnberg","name_last_first":"Nurnberg, A","first_name":"A","last_name":"Nurnberg"},{"name":"G Quast","name_last_first":"Quast, G","first_name":"G","last_name":"Quast"},{"name":"K Rabbertz","name_last_first":"Rabbertz, K","first_name":"K","last_name":"Rabbertz"},{"name":"S Rocker","name_last_first":"Rocker, S","first_name":"S","last_name":"Rocker"},{"name":"HJ Simonis","name_last_first":"Simonis, HJ","first_name":"HJ","last_name":"Simonis"},{"name":"FM Stober","name_last_first":"Stober, FM","first_name":"FM","last_name":"Stober"},{"name":"R Ulrich","name_last_first":"Ulrich, R","first_name":"R","last_name":"Ulrich"},{"name":"J Wagner-Kuhr","name_last_first":"Wagner-Kuhr, J","first_name":"J","last_name":"Wagner-Kuhr"},{"name":"S Wayand","name_last_first":"Wayand, S","first_name":"S","last_name":"Wayand"},{"name":"T Weiler","name_last_first":"Weiler, T","first_name":"T","last_name":"Weiler"},{"name":"R Wolf","name_last_first":"Wolf, R","first_name":"R","last_name":"Wolf"},{"name":"G Anagnostou","name_last_first":"Anagnostou, G","first_name":"G","last_name":"Anagnostou"},{"name":"G Daskalakis","name_last_first":"Daskalakis, G","first_name":"G","last_name":"Daskalakis"},{"name":"T Geralis","name_last_first":"Geralis, T","first_name":"T","last_name":"Geralis"},{"name":"VA Giakoumopoulou","name_last_first":"Giakoumopoulou, VA","first_name":"VA","last_name":"Giakoumopoulou"},{"name":"A Kyriakis","name_last_first":"Kyriakis, A","first_name":"A","last_name":"Kyriakis"},{"name":"D Loukas","name_last_first":"Loukas, D","first_name":"D","last_name":"Loukas"},{"name":"A Markou","name_last_first":"Markou, A","first_name":"A","last_name":"Markou"},{"name":"C Markou","name_last_first":"Markou, C","first_name":"C","last_name":"Markou"},{"name":"A Psallidas","name_last_first":"Psallidas, A","first_name":"A","last_name":"Psallidas"},{"name":"I Topsis-Giotis","name_last_first":"Topsis-Giotis, I","first_name":"I","last_name":"Topsis-Giotis"},{"name":"A Agapitos","name_last_first":"Agapitos, A","first_name":"A","last_name":"Agapitos"},{"name":"S Kesisoglou","name_last_first":"Kesisoglou, S","first_name":"S","last_name":"Kesisoglou"},{"name":"A Panagiotou","name_last_first":"Panagiotou, A","first_name":"A","last_name":"Panagiotou"},{"name":"N Saoulidou","name_last_first":"Saoulidou, N","first_name":"N","last_name":"Saoulidou"},{"name":"E Stiliaris","name_last_first":"Stiliaris, E","first_name":"E","last_name":"Stiliaris"},{"name":"X Aslanoglou","name_last_first":"Aslanoglou, X","first_name":"X","last_name":"Aslanoglou"},{"name":"I Evangelou","name_last_first":"Evangelou, I","first_name":"I","last_name":"Evangelou"},{"name":"G Flouris","name_last_first":"Flouris, G","first_name":"G","last_name":"Flouris"},{"name":"C Foudas","name_last_first":"Foudas, C","first_name":"C","last_name":"Foudas"},{"name":"P Kokkas","name_last_first":"Kokkas, P","first_name":"P","last_name":"Kokkas"},{"name":"N Manthos","name_last_first":"Manthos, N","first_name":"N","last_name":"Manthos"},{"name":"I Papadopoulos","name_last_first":"Papadopoulos, I","first_name":"I","last_name":"Papadopoulos"},{"name":"E Paradas","name_last_first":"Paradas, E","first_name":"E","last_name":"Paradas"},{"name":"J Strologas","name_last_first":"Strologas, J","first_name":"J","last_name":"Strologas"},{"name":"G Bencze","name_last_first":"Bencze, G","first_name":"G","last_name":"Bencze"},{"name":"C Hajdu","name_last_first":"Hajdu, C","first_name":"C","last_name":"Hajdu"},{"name":"P Hidas","name_last_first":"Hidas, P","first_name":"P","last_name":"Hidas"},{"name":"D Horvath","name_last_first":"Horvath, D","first_name":"D","last_name":"Horvath"},{"name":"F Sikler","name_last_first":"Sikler, F","first_name":"F","last_name":"Sikler"},{"name":"V Veszpremi","name_last_first":"Veszpremi, V","first_name":"V","last_name":"Veszpremi"},{"name":"G Vesztergombi","name_last_first":"Vesztergombi, G","first_name":"G","last_name":"Vesztergombi"},{"name":"AJ Zsigmond","name_last_first":"Zsigmond, AJ","first_name":"AJ","last_name":"Zsigmond"},{"name":"N Beni","name_last_first":"Beni, N","first_name":"N","last_name":"Beni"},{"name":"S Czellar","name_last_first":"Czellar, S","first_name":"S","last_name":"Czellar"},{"name":"J Karancsi","name_last_first":"Karancsi, J","first_name":"J","last_name":"Karancsi"},{"name":"J Molnar","name_last_first":"Molnar, J","first_name":"J","last_name":"Molnar"},{"name":"J Palinkas","name_last_first":"Palinkas, J","first_name":"J","last_name":"Palinkas"},{"name":"Z Szillasi","name_last_first":"Szillasi, Z","first_name":"Z","last_name":"Szillasi"},{"name":"A Makovec","name_last_first":"Makovec, A","first_name":"A","last_name":"Makovec"},{"name":"P Raics","name_last_first":"Raics, P","first_name":"P","last_name":"Raics"},{"name":"ZL Trocsanyi","name_last_first":"Trocsanyi, ZL","first_name":"ZL","last_name":"Trocsanyi"},{"name":"B Ujvari","name_last_first":"Ujvari, B","first_name":"B","last_name":"Ujvari"},{"name":"SK Swain","name_last_first":"Swain, SK","first_name":"SK","last_name":"Swain"},{"name":"SB Beri","name_last_first":"Beri, SB","first_name":"SB","last_name":"Beri"},{"name":"V Bhatnagar","name_last_first":"Bhatnagar, V","first_name":"V","last_name":"Bhatnagar"},{"name":"R Gupta","name_last_first":"Gupta, R","first_name":"R","last_name":"Gupta"},{"name":"U Bhawandeep","name_last_first":"Bhawandeep, U","first_name":"U","last_name":"Bhawandeep"},{"name":"AK Kalsi","name_last_first":"Kalsi, AK","first_name":"AK","last_name":"Kalsi"},{"name":"M Kaur","name_last_first":"Kaur, M","first_name":"M","last_name":"Kaur"},{"name":"R Kumar","name_last_first":"Kumar, R","first_name":"R","last_name":"Kumar"},{"name":"M Mittal","name_last_first":"Mittal, M","first_name":"M","last_name":"Mittal"},{"name":"N Nishu","name_last_first":"Nishu, N","first_name":"N","last_name":"Nishu"},{"name":"JB Singh","name_last_first":"Singh, JB","first_name":"JB","last_name":"Singh"},{"name":"A Kumar","name_last_first":"Kumar, A","first_name":"A","last_name":"Kumar"},{"name":"A Kumar","name_last_first":"Kumar, A","first_name":"A","last_name":"Kumar"},{"name":"S Ahuja","name_last_first":"Ahuja, S","first_name":"S","last_name":"Ahuja"},{"name":"A Bhardwaj","name_last_first":"Bhardwaj, A","first_name":"A","last_name":"Bhardwaj"},{"name":"BC Choudhary","name_last_first":"Choudhary, BC","first_name":"BC","last_name":"Choudhary"},{"name":"A Kumar","name_last_first":"Kumar, A","first_name":"A","last_name":"Kumar"},{"name":"S Malhotra","name_last_first":"Malhotra, S","first_name":"S","last_name":"Malhotra"},{"name":"M Naimuddin","name_last_first":"Naimuddin, M","first_name":"M","last_name":"Naimuddin"},{"name":"K Ranjan","name_last_first":"Ranjan, K","first_name":"K","last_name":"Ranjan"},{"name":"V Sharma","name_last_first":"Sharma, V","first_name":"V","last_name":"Sharma"},{"name":"S Banerjee","name_last_first":"Banerjee, S","first_name":"S","last_name":"Banerjee"},{"name":"S Bhattacharya","name_last_first":"Bhattacharya, S","first_name":"S","last_name":"Bhattacharya"},{"name":"K Chatterjee","name_last_first":"Chatterjee, K","first_name":"K","last_name":"Chatterjee"},{"name":"S Dutta","name_last_first":"Dutta, S","first_name":"S","last_name":"Dutta"},{"name":"B Gomber","name_last_first":"Gomber, B","first_name":"B","last_name":"Gomber"},{"name":"S Jain","name_last_first":"Jain, S","first_name":"S","last_name":"Jain"},{"name":"S Jain","name_last_first":"Jain, S","first_name":"S","last_name":"Jain"},{"name":"R Khurana","name_last_first":"Khurana, R","first_name":"R","last_name":"Khurana"},{"name":"A Modak","name_last_first":"Modak, A","first_name":"A","last_name":"Modak"},{"name":"S Mukherjee","name_last_first":"Mukherjee, S","first_name":"S","last_name":"Mukherjee"},{"name":"D Roy","name_last_first":"Roy, D","first_name":"D","last_name":"Roy"},{"name":"S Sarkar","name_last_first":"Sarkar, S","first_name":"S","last_name":"Sarkar"},{"name":"M Sharan","name_last_first":"Sharan, M","first_name":"M","last_name":"Sharan"},{"name":"A Abdulsalam","name_last_first":"Abdulsalam, A","first_name":"A","last_name":"Abdulsalam"},{"name":"D Dutta","name_last_first":"Dutta, D","first_name":"D","last_name":"Dutta"},{"name":"V Kumar","name_last_first":"Kumar, V","first_name":"V","last_name":"Kumar"},{"name":"AK Mohanty","name_last_first":"Mohanty, AK","first_name":"AK","last_name":"Mohanty"},{"name":"LM Pant","name_last_first":"Pant, LM","first_name":"LM","last_name":"Pant"},{"name":"P Shukla","name_last_first":"Shukla, P","first_name":"P","last_name":"Shukla"},{"name":"A Topkar","name_last_first":"Topkar, A","first_name":"A","last_name":"Topkar"},{"name":"T Aziz","name_last_first":"Aziz, T","first_name":"T","last_name":"Aziz"},{"name":"S Banerjee","name_last_first":"Banerjee, S","first_name":"S","last_name":"Banerjee"},{"name":"S Bhowmik","name_last_first":"Bhowmik, S","first_name":"S","last_name":"Bhowmik"},{"name":"RM Chatterjee","name_last_first":"Chatterjee, RM","first_name":"RM","last_name":"Chatterjee"},{"name":"RK Dewanjee","name_last_first":"Dewanjee, RK","first_name":"RK","last_name":"Dewanjee"},{"name":"S Dugad","name_last_first":"Dugad, S","first_name":"S","last_name":"Dugad"},{"name":"S Ganguly","name_last_first":"Ganguly, S","first_name":"S","last_name":"Ganguly"},{"name":"S Ghosh","name_last_first":"Ghosh, S","first_name":"S","last_name":"Ghosh"},{"name":"M Guchait","name_last_first":"Guchait, M","first_name":"M","last_name":"Guchait"},{"name":"A Gurtu","name_last_first":"Gurtu, A","first_name":"A","last_name":"Gurtu"},{"name":"G Kole","name_last_first":"Kole, G","first_name":"G","last_name":"Kole"},{"name":"S Kumar","name_last_first":"Kumar, S","first_name":"S","last_name":"Kumar"},{"name":"M Maity","name_last_first":"Maity, M","first_name":"M","last_name":"Maity"},{"name":"G Majumder","name_last_first":"Majumder, G","first_name":"G","last_name":"Majumder"},{"name":"K Mazumdar","name_last_first":"Mazumdar, K","first_name":"K","last_name":"Mazumdar"},{"name":"GB Mohanty","name_last_first":"Mohanty, GB","first_name":"GB","last_name":"Mohanty"},{"name":"B Parida","name_last_first":"Parida, B","first_name":"B","last_name":"Parida"},{"name":"K Sudhakar","name_last_first":"Sudhakar, K","first_name":"K","last_name":"Sudhakar"},{"name":"N Wickramage","name_last_first":"Wickramage, N","first_name":"N","last_name":"Wickramage"},{"name":"S Sharma","name_last_first":"Sharma, S","first_name":"S","last_name":"Sharma"},{"name":"H Bakhshiansohi","name_last_first":"Bakhshiansohi, H","first_name":"H","last_name":"Bakhshiansohi"},{"name":"H Behnamian","name_last_first":"Behnamian, H","first_name":"H","last_name":"Behnamian"},{"name":"SM Etesami","name_last_first":"Etesami, SM","first_name":"SM","last_name":"Etesami"},{"name":"A Fahim","name_last_first":"Fahim, A","first_name":"A","last_name":"Fahim"},{"name":"R Goldouzian","name_last_first":"Goldouzian, R","first_name":"R","last_name":"Goldouzian"},{"name":"M Khakzad","name_last_first":"Khakzad, M","first_name":"M","last_name":"Khakzad"},{"name":"MM Najafabadi","name_last_first":"Najafabadi, MM","first_name":"MM","last_name":"Najafabadi"},{"name":"M Naseri","name_last_first":"Naseri, M","first_name":"M","last_name":"Naseri"},{"name":"SP Mehdiabadi","name_last_first":"Mehdiabadi, SP","first_name":"SP","last_name":"Mehdiabadi"},{"name":"FR Hosseinabadi","name_last_first":"Hosseinabadi, FR","first_name":"FR","last_name":"Hosseinabadi"},{"name":"B Safarzadeh","name_last_first":"Safarzadeh, B","first_name":"B","last_name":"Safarzadeh"},{"name":"M Zeinali","name_last_first":"Zeinali, M","first_name":"M","last_name":"Zeinali"},{"name":"M Felcini","name_last_first":"Felcini, M","first_name":"M","last_name":"Felcini"},{"name":"M Grunewald","name_last_first":"Grunewald, M","first_name":"M","last_name":"Grunewald"},{"name":"M Abbrescia","name_last_first":"Abbrescia, M","first_name":"M","last_name":"Abbrescia"},{"name":"C Calabria","name_last_first":"Calabria, C","first_name":"C","last_name":"Calabria"},{"name":"SS Chhibra","name_last_first":"Chhibra, SS","first_name":"SS","last_name":"Chhibra"},{"name":"A Colaleo","name_last_first":"Colaleo, A","first_name":"A","last_name":"Colaleo"},{"name":"D Creanza","name_last_first":"Creanza, D","first_name":"D","last_name":"Creanza"},{"name":"L Cristella","name_last_first":"Cristella, L","first_name":"L","last_name":"Cristella"},{"name":"N De Filippis","name_last_first":"De Filippis, N","first_name":"N","last_name":"De Filippis"},{"name":"M De Palma","name_last_first":"De Palma, M","first_name":"M","last_name":"De Palma"},{"name":"L Fiore","name_last_first":"Fiore, L","first_name":"L","last_name":"Fiore"},{"name":"G Iaselli","name_last_first":"Iaselli, G","first_name":"G","last_name":"Iaselli"},{"name":"G Maggi","name_last_first":"Maggi, G","first_name":"G","last_name":"Maggi"},{"name":"M Maggi","name_last_first":"Maggi, M","first_name":"M","last_name":"Maggi"},{"name":"S My","name_last_first":"My, S","first_name":"S","last_name":"My"},{"name":"S Nuzzo","name_last_first":"Nuzzo, S","first_name":"S","last_name":"Nuzzo"},{"name":"A Pompili","name_last_first":"Pompili, A","first_name":"A","last_name":"Pompili"},{"name":"G Pugliese","name_last_first":"Pugliese, G","first_name":"G","last_name":"Pugliese"},{"name":"R Radogna","name_last_first":"Radogna, R","first_name":"R","last_name":"Radogna"},{"name":"G Selvaggi","name_last_first":"Selvaggi, G","first_name":"G","last_name":"Selvaggi"},{"name":"A Sharma","name_last_first":"Sharma, A","first_name":"A","last_name":"Sharma"},{"name":"L Silvestris","name_last_first":"Silvestris, L","first_name":"L","last_name":"Silvestris"},{"name":"R Venditti","name_last_first":"Venditti, R","first_name":"R","last_name":"Venditti"},{"name":"P Verwilligen","name_last_first":"Verwilligen, P","first_name":"P","last_name":"Verwilligen"},{"name":"G Abbiendi","name_last_first":"Abbiendi, G","first_name":"G","last_name":"Abbiendi"},{"name":"AC Benvenuti","name_last_first":"Benvenuti, AC","first_name":"AC","last_name":"Benvenuti"},{"name":"D Bonacorsi","name_last_first":"Bonacorsi, D","first_name":"D","last_name":"Bonacorsi"},{"name":"S Braibant-Giacomelli","name_last_first":"Braibant-Giacomelli, S","first_name":"S","last_name":"Braibant-Giacomelli"},{"name":"L Brigliadori","name_last_first":"Brigliadori, L","first_name":"L","last_name":"Brigliadori"},{"name":"R Campanini","name_last_first":"Campanini, R","first_name":"R","last_name":"Campanini"},{"name":"P Capiluppi","name_last_first":"Capiluppi, P","first_name":"P","last_name":"Capiluppi"},{"name":"BA Castro","name_last_first":"Castro, BA","first_name":"BA","last_name":"Castro"},{"name":"FR Cavallo","name_last_first":"Cavallo, FR","first_name":"FR","last_name":"Cavallo"},{"name":"G Codispoti","name_last_first":"Codispoti, G","first_name":"G","last_name":"Codispoti"},{"name":"M Cuffiani","name_last_first":"Cuffiani, M","first_name":"M","last_name":"Cuffiani"},{"name":"GM Dallavalle","name_last_first":"Dallavalle, GM","first_name":"GM","last_name":"Dallavalle"},{"name":"F Fabbri","name_last_first":"Fabbri, F","first_name":"F","last_name":"Fabbri"},{"name":"A Fanfani","name_last_first":"Fanfani, A","first_name":"A","last_name":"Fanfani"},{"name":"D Fasanella","name_last_first":"Fasanella, D","first_name":"D","last_name":"Fasanella"},{"name":"P Giacomelli","name_last_first":"Giacomelli, P","first_name":"P","last_name":"Giacomelli"},{"name":"C Grandi","name_last_first":"Grandi, C","first_name":"C","last_name":"Grandi"},{"name":"L Guiducci","name_last_first":"Guiducci, L","first_name":"L","last_name":"Guiducci"},{"name":"S Marcellini","name_last_first":"Marcellini, S","first_name":"S","last_name":"Marcellini"},{"name":"G Masetti","name_last_first":"Masetti, G","first_name":"G","last_name":"Masetti"},{"name":"A Montanari","name_last_first":"Montanari, A","first_name":"A","last_name":"Montanari"},{"name":"FL Navarria","name_last_first":"Navarria, FL","first_name":"FL","last_name":"Navarria"},{"name":"A Perrotta","name_last_first":"Perrotta, A","first_name":"A","last_name":"Perrotta"},{"name":"AM Rossi","name_last_first":"Rossi, AM","first_name":"AM","last_name":"Rossi"},{"name":"T Rovelli","name_last_first":"Rovelli, T","first_name":"T","last_name":"Rovelli"},{"name":"GP Siroli","name_last_first":"Siroli, GP","first_name":"GP","last_name":"Siroli"},{"name":"N Tosi","name_last_first":"Tosi, N","first_name":"N","last_name":"Tosi"},{"name":"R Travaglini","name_last_first":"Travaglini, R","first_name":"R","last_name":"Travaglini"},{"name":"S Albergo","name_last_first":"Albergo, S","first_name":"S","last_name":"Albergo"},{"name":"G Cappello","name_last_first":"Cappello, G","first_name":"G","last_name":"Cappello"},{"name":"M Chiorboli","name_last_first":"Chiorboli, M","first_name":"M","last_name":"Chiorboli"},{"name":"S Costa","name_last_first":"Costa, S","first_name":"S","last_name":"Costa"},{"name":"F Giordano","name_last_first":"Giordano, F","first_name":"F","last_name":"Giordano"},{"name":"R Potenza","name_last_first":"Potenza, R","first_name":"R","last_name":"Potenza"},{"name":"A Tricomi","name_last_first":"Tricomi, A","first_name":"A","last_name":"Tricomi"},{"name":"C Tuve","name_last_first":"Tuve, C","first_name":"C","last_name":"Tuve"},{"name":"G Barbagli","name_last_first":"Barbagli, G","first_name":"G","last_name":"Barbagli"},{"name":"V Ciulli","name_last_first":"Ciulli, V","first_name":"V","last_name":"Ciulli"},{"name":"C Civinini","name_last_first":"Civinini, C","first_name":"C","last_name":"Civinini"},{"name":"R D'Alessandro","name_last_first":"D'Alessandro, R","first_name":"R","last_name":"D'Alessandro"},{"name":"E Focardi","name_last_first":"Focardi, E","first_name":"E","last_name":"Focardi"},{"name":"E Gallo","name_last_first":"Gallo, E","first_name":"E","last_name":"Gallo"},{"name":"S Gonzi","name_last_first":"Gonzi, S","first_name":"S","last_name":"Gonzi"},{"name":"V Gori","name_last_first":"Gori, V","first_name":"V","last_name":"Gori"},{"name":"P Lenzi","name_last_first":"Lenzi, P","first_name":"P","last_name":"Lenzi"},{"name":"M Meschini","name_last_first":"Meschini, M","first_name":"M","last_name":"Meschini"},{"name":"S Paoletti","name_last_first":"Paoletti, S","first_name":"S","last_name":"Paoletti"},{"name":"G Sguazzoni","name_last_first":"Sguazzoni, G","first_name":"G","last_name":"Sguazzoni"},{"name":"A Tropiano","name_last_first":"Tropiano, A","first_name":"A","last_name":"Tropiano"},{"name":"L Benussi","name_last_first":"Benussi, L","first_name":"L","last_name":"Benussi"},{"name":"S Bianco","name_last_first":"Bianco, S","first_name":"S","last_name":"Bianco"},{"name":"F Fabbri","name_last_first":"Fabbri, F","first_name":"F","last_name":"Fabbri"},{"name":"D Piccolo","name_last_first":"Piccolo, D","first_name":"D","last_name":"Piccolo"},{"name":"R Ferretti","name_last_first":"Ferretti, R","first_name":"R","last_name":"Ferretti"},{"name":"F Ferro","name_last_first":"Ferro, F","first_name":"F","last_name":"Ferro"},{"name":"M Lo Vetere","name_last_first":"Lo Vetere, M","first_name":"M","last_name":"Lo Vetere"},{"name":"E Robutti","name_last_first":"Robutti, E","first_name":"E","last_name":"Robutti"},{"name":"S Tosi","name_last_first":"Tosi, S","first_name":"S","last_name":"Tosi"},{"name":"ME Dinardo","name_last_first":"Dinardo, ME","first_name":"ME","last_name":"Dinardo"},{"name":"S Fiorendi","name_last_first":"Fiorendi, S","first_name":"S","last_name":"Fiorendi"},{"name":"S Gennai","name_last_first":"Gennai, S","first_name":"S","last_name":"Gennai"},{"name":"R Gerosa","name_last_first":"Gerosa, R","first_name":"R","last_name":"Gerosa"},{"name":"A Ghezzi","name_last_first":"Ghezzi, A","first_name":"A","last_name":"Ghezzi"},{"name":"P Govoni","name_last_first":"Govoni, P","first_name":"P","last_name":"Govoni"},{"name":"MT Lucchini","name_last_first":"Lucchini, MT","first_name":"MT","last_name":"Lucchini"},{"name":"S Malvezzi","name_last_first":"Malvezzi, S","first_name":"S","last_name":"Malvezzi"},{"name":"RA Manzoni","name_last_first":"Manzoni, RA","first_name":"RA","last_name":"Manzoni"},{"name":"A Martelli","name_last_first":"Martelli, A","first_name":"A","last_name":"Martelli"},{"name":"B Marzocchi","name_last_first":"Marzocchi, B","first_name":"B","last_name":"Marzocchi"},{"name":"D Menasce","name_last_first":"Menasce, D","first_name":"D","last_name":"Menasce"},{"name":"L Moroni","name_last_first":"Moroni, L","first_name":"L","last_name":"Moroni"},{"name":"M Paganoni","name_last_first":"Paganoni, M","first_name":"M","last_name":"Paganoni"},{"name":"D Pedrini","name_last_first":"Pedrini, D","first_name":"D","last_name":"Pedrini"},{"name":"S Ragazzi","name_last_first":"Ragazzi, S","first_name":"S","last_name":"Ragazzi"},{"name":"N Redaelli","name_last_first":"Redaelli, N","first_name":"N","last_name":"Redaelli"},{"name":"TT de Fatis","name_last_first":"de Fatis, TT","first_name":"TT","last_name":"de Fatis"},{"name":"S Buontempo","name_last_first":"Buontempo, S","first_name":"S","last_name":"Buontempo"},{"name":"N Cavallo","name_last_first":"Cavallo, N","first_name":"N","last_name":"Cavallo"},{"name":"S Di Guida","name_last_first":"Di Guida, S","first_name":"S","last_name":"Di Guida"},{"name":"F Fabozzi","name_last_first":"Fabozzi, F","first_name":"F","last_name":"Fabozzi"},{"name":"AOM Iorio","name_last_first":"Iorio, AOM","first_name":"AOM","last_name":"Iorio"},{"name":"L Lista","name_last_first":"Lista, L","first_name":"L","last_name":"Lista"},{"name":"S Meola","name_last_first":"Meola, S","first_name":"S","last_name":"Meola"},{"name":"M Merola","name_last_first":"Merola, M","first_name":"M","last_name":"Merola"},{"name":"P Paolucci","name_last_first":"Paolucci, P","first_name":"P","last_name":"Paolucci"},{"name":"P Azzi","name_last_first":"Azzi, P","first_name":"P","last_name":"Azzi"},{"name":"N Bacchetta","name_last_first":"Bacchetta, N","first_name":"N","last_name":"Bacchetta"},{"name":"D Bisello","name_last_first":"Bisello, D","first_name":"D","last_name":"Bisello"},{"name":"A Branca","name_last_first":"Branca, A","first_name":"A","last_name":"Branca"},{"name":"R Carlin","name_last_first":"Carlin, R","first_name":"R","last_name":"Carlin"},{"name":"P ChecchiA","name_last_first":"ChecchiA, P","first_name":"P","last_name":"ChecchiA"},{"name":"M Dall'Osso","name_last_first":"Dall'Osso, M","first_name":"M","last_name":"Dall'Osso"},{"name":"T Dorigo","name_last_first":"Dorigo, T","first_name":"T","last_name":"Dorigo"},{"name":"U Dosselli","name_last_first":"Dosselli, U","first_name":"U","last_name":"Dosselli"},{"name":"F Gasparini","name_last_first":"Gasparini, F","first_name":"F","last_name":"Gasparini"},{"name":"U Gasparini","name_last_first":"Gasparini, U","first_name":"U","last_name":"Gasparini"},{"name":"A Gozzelino","name_last_first":"Gozzelino, A","first_name":"A","last_name":"Gozzelino"},{"name":"K Kanishchev","name_last_first":"Kanishchev, K","first_name":"K","last_name":"Kanishchev"},{"name":"S Lacaprara","name_last_first":"Lacaprara, S","first_name":"S","last_name":"Lacaprara"},{"name":"M Margoni","name_last_first":"Margoni, M","first_name":"M","last_name":"Margoni"},{"name":"AT Meneguzzo","name_last_first":"Meneguzzo, AT","first_name":"AT","last_name":"Meneguzzo"},{"name":"J Pazzini","name_last_first":"Pazzini, J","first_name":"J","last_name":"Pazzini"},{"name":"N Pozzobon","name_last_first":"Pozzobon, N","first_name":"N","last_name":"Pozzobon"},{"name":"P Ronchese","name_last_first":"Ronchese, P","first_name":"P","last_name":"Ronchese"},{"name":"F Simonetto","name_last_first":"Simonetto, F","first_name":"F","last_name":"Simonetto"},{"name":"E Torassa","name_last_first":"Torassa, E","first_name":"E","last_name":"Torassa"},{"name":"M Tosi","name_last_first":"Tosi, M","first_name":"M","last_name":"Tosi"},{"name":"P Zotto","name_last_first":"Zotto, P","first_name":"P","last_name":"Zotto"},{"name":"A Zucchetta","name_last_first":"Zucchetta, A","first_name":"A","last_name":"Zucchetta"},{"name":"G Zumerle","name_last_first":"Zumerle, G","first_name":"G","last_name":"Zumerle"},{"name":"M Gabusi","name_last_first":"Gabusi, M","first_name":"M","last_name":"Gabusi"},{"name":"SP Ratti","name_last_first":"Ratti, SP","first_name":"SP","last_name":"Ratti"},{"name":"V Re","name_last_first":"Re, V","first_name":"V","last_name":"Re"},{"name":"C Riccardi","name_last_first":"Riccardi, C","first_name":"C","last_name":"Riccardi"},{"name":"P Salvini","name_last_first":"Salvini, P","first_name":"P","last_name":"Salvini"},{"name":"P Vitulo","name_last_first":"Vitulo, P","first_name":"P","last_name":"Vitulo"},{"name":"M Biasini","name_last_first":"Biasini, M","first_name":"M","last_name":"Biasini"},{"name":"GM Bilei","name_last_first":"Bilei, GM","first_name":"GM","last_name":"Bilei"},{"name":"D Ciangottini","name_last_first":"Ciangottini, D","first_name":"D","last_name":"Ciangottini"},{"name":"L Fano","name_last_first":"Fano, L","first_name":"L","last_name":"Fano"},{"name":"P Lariccia","name_last_first":"Lariccia, P","first_name":"P","last_name":"Lariccia"},{"name":"G Mantovani","name_last_first":"Mantovani, G","first_name":"G","last_name":"Mantovani"},{"name":"M Menichelli","name_last_first":"Menichelli, M","first_name":"M","last_name":"Menichelli"},{"name":"A Saha","name_last_first":"Saha, A","first_name":"A","last_name":"Saha"},{"name":"A Santocchia","name_last_first":"Santocchia, A","first_name":"A","last_name":"Santocchia"},{"name":"A Spiezia","name_last_first":"Spiezia, A","first_name":"A","last_name":"Spiezia"},{"name":"K Androsov","name_last_first":"Androsov, K","first_name":"K","last_name":"Androsov"},{"name":"P Azzurri","name_last_first":"Azzurri, P","first_name":"P","last_name":"Azzurri"},{"name":"G Bagliesi","name_last_first":"Bagliesi, G","first_name":"G","last_name":"Bagliesi"},{"name":"J Bernardini","name_last_first":"Bernardini, J","first_name":"J","last_name":"Bernardini"},{"name":"T Boccali","name_last_first":"Boccali, T","first_name":"T","last_name":"Boccali"},{"name":"G Broccolo","name_last_first":"Broccolo, G","first_name":"G","last_name":"Broccolo"},{"name":"R Castaldi","name_last_first":"Castaldi, R","first_name":"R","last_name":"Castaldi"},{"name":"MA Ciocci","name_last_first":"Ciocci, MA","first_name":"MA","last_name":"Ciocci"},{"name":"R Dell'Orso","name_last_first":"Dell'Orso, R","first_name":"R","last_name":"Dell'Orso"},{"name":"S Donato","name_last_first":"Donato, S","first_name":"S","last_name":"Donato"},{"name":"G Fedi","name_last_first":"Fedi, G","first_name":"G","last_name":"Fedi"},{"name":"F Fiori","name_last_first":"Fiori, F","first_name":"F","last_name":"Fiori"},{"name":"L Foa","name_last_first":"Foa, L","first_name":"L","last_name":"Foa"},{"name":"A Giassi","name_last_first":"Giassi, A","first_name":"A","last_name":"Giassi"},{"name":"MT Grippo","name_last_first":"Grippo, MT","first_name":"MT","last_name":"Grippo"},{"name":"F Ligabue","name_last_first":"Ligabue, F","first_name":"F","last_name":"Ligabue"},{"name":"T Lomtadze","name_last_first":"Lomtadze, T","first_name":"T","last_name":"Lomtadze"},{"name":"L Martini","name_last_first":"Martini, L","first_name":"L","last_name":"Martini"},{"name":"A Messineo","name_last_first":"Messineo, A","first_name":"A","last_name":"Messineo"},{"name":"CS Moon","name_last_first":"Moon, CS","first_name":"CS","last_name":"Moon"},{"name":"F Palla","name_last_first":"Palla, F","first_name":"F","last_name":"Palla"},{"name":"A Rizzi","name_last_first":"Rizzi, A","first_name":"A","last_name":"Rizzi"},{"name":"A Savoy-Navarro","name_last_first":"Savoy-Navarro, A","first_name":"A","last_name":"Savoy-Navarro"},{"name":"AT Serban","name_last_first":"Serban, AT","first_name":"AT","last_name":"Serban"},{"name":"P Spagnolo","name_last_first":"Spagnolo, P","first_name":"P","last_name":"Spagnolo"},{"name":"P Squillacioti","name_last_first":"Squillacioti, P","first_name":"P","last_name":"Squillacioti"},{"name":"R Tenchini","name_last_first":"Tenchini, R","first_name":"R","last_name":"Tenchini"},{"name":"G Tonelli","name_last_first":"Tonelli, G","first_name":"G","last_name":"Tonelli"},{"name":"A Venturi","name_last_first":"Venturi, A","first_name":"A","last_name":"Venturi"},{"name":"PG Verdini","name_last_first":"Verdini, PG","first_name":"PG","last_name":"Verdini"},{"name":"C Vernieri","name_last_first":"Vernieri, C","first_name":"C","last_name":"Vernieri"},{"name":"L Barone","name_last_first":"Barone, L","first_name":"L","last_name":"Barone"},{"name":"F Cavallari","name_last_first":"Cavallari, F","first_name":"F","last_name":"Cavallari"},{"name":"G D'imperio","name_last_first":"D'imperio, G","first_name":"G","last_name":"D'imperio"},{"name":"D Del Re","name_last_first":"Del Re, D","first_name":"D","last_name":"Del Re"},{"name":"M Diemoz","name_last_first":"Diemoz, M","first_name":"M","last_name":"Diemoz"},{"name":"C Jorda","name_last_first":"Jorda, C","first_name":"C","last_name":"Jorda"},{"name":"E Longo","name_last_first":"Longo, E","first_name":"E","last_name":"Longo"},{"name":"F Margaroli","name_last_first":"Margaroli, F","first_name":"F","last_name":"Margaroli"},{"name":"P Meridiani","name_last_first":"Meridiani, P","first_name":"P","last_name":"Meridiani"},{"name":"F Micheli","name_last_first":"Micheli, F","first_name":"F","last_name":"Micheli"},{"name":"G Organtini","name_last_first":"Organtini, G","first_name":"G","last_name":"Organtini"},{"name":"R Paramatti","name_last_first":"Paramatti, R","first_name":"R","last_name":"Paramatti"},{"name":"S Rahatlou","name_last_first":"Rahatlou, S","first_name":"S","last_name":"Rahatlou"},{"name":"C Rovelli","name_last_first":"Rovelli, C","first_name":"C","last_name":"Rovelli"},{"name":"F Santanastasio","name_last_first":"Santanastasio, F","first_name":"F","last_name":"Santanastasio"},{"name":"L Soffi","name_last_first":"Soffi, L","first_name":"L","last_name":"Soffi"},{"name":"P Traczyk","name_last_first":"Traczyk, P","first_name":"P","last_name":"Traczyk"},{"name":"N Amapane","name_last_first":"Amapane, N","first_name":"N","last_name":"Amapane"},{"name":"R Arcidiacono","name_last_first":"Arcidiacono, R","first_name":"R","last_name":"Arcidiacono"},{"name":"S Argiro","name_last_first":"Argiro, S","first_name":"S","last_name":"Argiro"},{"name":"M Arneodo","name_last_first":"Arneodo, M","first_name":"M","last_name":"Arneodo"},{"name":"R Bellan","name_last_first":"Bellan, R","first_name":"R","last_name":"Bellan"},{"name":"C Biino","name_last_first":"Biino, C","first_name":"C","last_name":"Biino"},{"name":"N Cartiglia","name_last_first":"Cartiglia, N","first_name":"N","last_name":"Cartiglia"},{"name":"S Casasso","name_last_first":"Casasso, S","first_name":"S","last_name":"Casasso"},{"name":"M Costa","name_last_first":"Costa, M","first_name":"M","last_name":"Costa"},{"name":"R Covarelli","name_last_first":"Covarelli, R","first_name":"R","last_name":"Covarelli"},{"name":"A Degano","name_last_first":"Degano, A","first_name":"A","last_name":"Degano"},{"name":"N Demaria","name_last_first":"Demaria, N","first_name":"N","last_name":"Demaria"},{"name":"L Finco","name_last_first":"Finco, L","first_name":"L","last_name":"Finco"},{"name":"C Mariotti","name_last_first":"Mariotti, C","first_name":"C","last_name":"Mariotti"},{"name":"S Maselli","name_last_first":"Maselli, S","first_name":"S","last_name":"Maselli"},{"name":"E Migliore","name_last_first":"Migliore, E","first_name":"E","last_name":"Migliore"},{"name":"V Monaco","name_last_first":"Monaco, V","first_name":"V","last_name":"Monaco"},{"name":"M Musich","name_last_first":"Musich, M","first_name":"M","last_name":"Musich"},{"name":"MM Obertino","name_last_first":"Obertino, MM","first_name":"MM","last_name":"Obertino"},{"name":"L Pacher","name_last_first":"Pacher, L","first_name":"L","last_name":"Pacher"},{"name":"N Pastrone","name_last_first":"Pastrone, N","first_name":"N","last_name":"Pastrone"},{"name":"M Pelliccioni","name_last_first":"Pelliccioni, M","first_name":"M","last_name":"Pelliccioni"},{"name":"GLP Angioni","name_last_first":"Angioni, GLP","first_name":"GLP","last_name":"Angioni"},{"name":"A Potenza","name_last_first":"Potenza, A","first_name":"A","last_name":"Potenza"},{"name":"A Romero","name_last_first":"Romero, A","first_name":"A","last_name":"Romero"},{"name":"M Ruspa","name_last_first":"Ruspa, M","first_name":"M","last_name":"Ruspa"},{"name":"R Sacchi","name_last_first":"Sacchi, R","first_name":"R","last_name":"Sacchi"},{"name":"A Solano","name_last_first":"Solano, A","first_name":"A","last_name":"Solano"},{"name":"A Staiano","name_last_first":"Staiano, A","first_name":"A","last_name":"Staiano"},{"name":"U Tamponi","name_last_first":"Tamponi, U","first_name":"U","last_name":"Tamponi"},{"name":"S Belforte","name_last_first":"Belforte, S","first_name":"S","last_name":"Belforte"},{"name":"V Candelise","name_last_first":"Candelise, V","first_name":"V","last_name":"Candelise"},{"name":"M Casarsa","name_last_first":"Casarsa, M","first_name":"M","last_name":"Casarsa"},{"name":"F Cossutti","name_last_first":"Cossutti, F","first_name":"F","last_name":"Cossutti"},{"name":"G Della Ricca","name_last_first":"Della Ricca, G","first_name":"G","last_name":"Della Ricca"},{"name":"B Gobbo","name_last_first":"Gobbo, B","first_name":"B","last_name":"Gobbo"},{"name":"C La Licata","name_last_first":"La Licata, C","first_name":"C","last_name":"La Licata"},{"name":"M Marone","name_last_first":"Marone, M","first_name":"M","last_name":"Marone"},{"name":"A Schizzi","name_last_first":"Schizzi, A","first_name":"A","last_name":"Schizzi"},{"name":"T Umer","name_last_first":"Umer, T","first_name":"T","last_name":"Umer"},{"name":"A Zanetti","name_last_first":"Zanetti, A","first_name":"A","last_name":"Zanetti"},{"name":"S Chang","name_last_first":"Chang, S","first_name":"S","last_name":"Chang"},{"name":"A Kropivnitskaya","name_last_first":"Kropivnitskaya, A","first_name":"A","last_name":"Kropivnitskaya"},{"name":"SK Nam","name_last_first":"Nam, SK","first_name":"SK","last_name":"Nam"},{"name":"DH Kim","name_last_first":"Kim, DH","first_name":"DH","last_name":"Kim"},{"name":"GN Kim","name_last_first":"Kim, GN","first_name":"GN","last_name":"Kim"},{"name":"MS Kim","name_last_first":"Kim, MS","first_name":"MS","last_name":"Kim"},{"name":"DJ Kong","name_last_first":"Kong, DJ","first_name":"DJ","last_name":"Kong"},{"name":"S Lee","name_last_first":"Lee, S","first_name":"S","last_name":"Lee"},{"name":"YD Oh","name_last_first":"Oh, YD","first_name":"YD","last_name":"Oh"},{"name":"H Park","name_last_first":"Park, H","first_name":"H","last_name":"Park"},{"name":"A Sakharov","name_last_first":"Sakharov, A","first_name":"A","last_name":"Sakharov"},{"name":"DC Son","name_last_first":"Son, DC","first_name":"DC","last_name":"Son"},{"name":"TJ Kim","name_last_first":"Kim, TJ","first_name":"TJ","last_name":"Kim"},{"name":"MS Ryu","name_last_first":"Ryu, MS","first_name":"MS","last_name":"Ryu"},{"name":"JY Kim","name_last_first":"Kim, JY","first_name":"JY","last_name":"Kim"},{"name":"DH Moon","name_last_first":"Moon, DH","first_name":"DH","last_name":"Moon"},{"name":"S Song","name_last_first":"Song, S","first_name":"S","last_name":"Song"},{"name":"S Choi","name_last_first":"Choi, S","first_name":"S","last_name":"Choi"},{"name":"D Gyun","name_last_first":"Gyun, D","first_name":"D","last_name":"Gyun"},{"name":"B Hong","name_last_first":"Hong, B","first_name":"B","last_name":"Hong"},{"name":"M Jo","name_last_first":"Jo, M","first_name":"M","last_name":"Jo"},{"name":"H Kim","name_last_first":"Kim, H","first_name":"H","last_name":"Kim"},{"name":"Y Kim","name_last_first":"Kim, Y","first_name":"Y","last_name":"Kim"},{"name":"B Lee","name_last_first":"Lee, B","first_name":"B","last_name":"Lee"},{"name":"KS Lee","name_last_first":"Lee, KS","first_name":"KS","last_name":"Lee"},{"name":"SK Park","name_last_first":"Park, SK","first_name":"SK","last_name":"Park"},{"name":"Y Roh","name_last_first":"Roh, Y","first_name":"Y","last_name":"Roh"},{"name":"HD Yoo","name_last_first":"Yoo, HD","first_name":"HD","last_name":"Yoo"},{"name":"M Choi","name_last_first":"Choi, M","first_name":"M","last_name":"Choi"},{"name":"JH Kim","name_last_first":"Kim, JH","first_name":"JH","last_name":"Kim"},{"name":"IC Park","name_last_first":"Park, IC","first_name":"IC","last_name":"Park"},{"name":"G Ryu","name_last_first":"Ryu, G","first_name":"G","last_name":"Ryu"},{"name":"Y Choi","name_last_first":"Choi, Y","first_name":"Y","last_name":"Choi"},{"name":"YK Choi","name_last_first":"Choi, YK","first_name":"YK","last_name":"Choi"},{"name":"J Goh","name_last_first":"Goh, J","first_name":"J","last_name":"Goh"},{"name":"D Kim","name_last_first":"Kim, D","first_name":"D","last_name":"Kim"},{"name":"E Kwon","name_last_first":"Kwon, E","first_name":"E","last_name":"Kwon"},{"name":"J Lee","name_last_first":"Lee, J","first_name":"J","last_name":"Lee"},{"name":"I Yu","name_last_first":"Yu, I","first_name":"I","last_name":"Yu"},{"name":"A Juodagalvis","name_last_first":"Juodagalvis, A","first_name":"A","last_name":"Juodagalvis"},{"name":"JR Komaragiri","name_last_first":"Komaragiri, JR","first_name":"JR","last_name":"Komaragiri"},{"name":"MABM Ali","name_last_first":"Ali, MABM","first_name":"MABM","last_name":"Ali"},{"name":"EC Linares","name_last_first":"Linares, EC","first_name":"EC","last_name":"Linares"},{"name":"H Castilla-Valdez","name_last_first":"Castilla-Valdez, H","first_name":"H","last_name":"Castilla-Valdez"},{"name":"E De La Cruz-Burelo","name_last_first":"De La Cruz-Burelo, E","first_name":"E","last_name":"De La Cruz-Burelo"},{"name":"I Heredia-de La Cruz","name_last_first":"Heredia-de La Cruz, I","first_name":"I","last_name":"Heredia-de La Cruz"},{"name":"A Hernandez-Almada","name_last_first":"Hernandez-Almada, A","first_name":"A","last_name":"Hernandez-Almada"},{"name":"R Lopez-Fernandez","name_last_first":"Lopez-Fernandez, R","first_name":"R","last_name":"Lopez-Fernandez"},{"name":"A Sanchez-Hernandez","name_last_first":"Sanchez-Hernandez, A","first_name":"A","last_name":"Sanchez-Hernandez"},{"name":"SC Moreno","name_last_first":"Moreno, SC","first_name":"SC","last_name":"Moreno"},{"name":"FV Valencia","name_last_first":"Valencia, FV","first_name":"FV","last_name":"Valencia"},{"name":"I Pedraza","name_last_first":"Pedraza, I","first_name":"I","last_name":"Pedraza"},{"name":"HAS Ibarguen","name_last_first":"Ibarguen, HAS","first_name":"HAS","last_name":"Ibarguen"},{"name":"AM Pineda","name_last_first":"Pineda, AM","first_name":"AM","last_name":"Pineda"},{"name":"D Krofcheck","name_last_first":"Krofcheck, D","first_name":"D","last_name":"Krofcheck"},{"name":"PH Butler","name_last_first":"Butler, PH","first_name":"PH","last_name":"Butler"},{"name":"S Reucroft","name_last_first":"Reucroft, S","first_name":"S","last_name":"Reucroft"},{"name":"A Ahmad","name_last_first":"Ahmad, A","first_name":"A","last_name":"Ahmad"},{"name":"M Ahmad","name_last_first":"Ahmad, M","first_name":"M","last_name":"Ahmad"},{"name":"Q Hassan","name_last_first":"Hassan, Q","first_name":"Q","last_name":"Hassan"},{"name":"HR Hoorani","name_last_first":"Hoorani, HR","first_name":"HR","last_name":"Hoorani"},{"name":"WA Khan","name_last_first":"Khan, WA","first_name":"WA","last_name":"Khan"},{"name":"T Khurshid","name_last_first":"Khurshid, T","first_name":"T","last_name":"Khurshid"},{"name":"M Shoaib","name_last_first":"Shoaib, M","first_name":"M","last_name":"Shoaib"},{"name":"H Bialkowska","name_last_first":"Bialkowska, H","first_name":"H","last_name":"Bialkowska"},{"name":"M Bluj","name_last_first":"Bluj, M","first_name":"M","last_name":"Bluj"},{"name":"B Boimska","name_last_first":"Boimska, B","first_name":"B","last_name":"Boimska"},{"name":"T Frueboes","name_last_first":"Frueboes, T","first_name":"T","last_name":"Frueboes"},{"name":"M Gorski","name_last_first":"Gorski, M","first_name":"M","last_name":"Gorski"},{"name":"M Kazana","name_last_first":"Kazana, M","first_name":"M","last_name":"Kazana"},{"name":"K Nawrocki","name_last_first":"Nawrocki, K","first_name":"K","last_name":"Nawrocki"},{"name":"K Romanowska-Rybinska","name_last_first":"Romanowska-Rybinska, K","first_name":"K","last_name":"Romanowska-Rybinska"},{"name":"M Szleper","name_last_first":"Szleper, M","first_name":"M","last_name":"Szleper"},{"name":"P Zalewski","name_last_first":"Zalewski, P","first_name":"P","last_name":"Zalewski"},{"name":"G Brona","name_last_first":"Brona, G","first_name":"G","last_name":"Brona"},{"name":"K Bunkowski","name_last_first":"Bunkowski, K","first_name":"K","last_name":"Bunkowski"},{"name":"M Cwiok","name_last_first":"Cwiok, M","first_name":"M","last_name":"Cwiok"},{"name":"W Dominik","name_last_first":"Dominik, W","first_name":"W","last_name":"Dominik"},{"name":"K Doroba","name_last_first":"Doroba, K","first_name":"K","last_name":"Doroba"},{"name":"A Kalinowski","name_last_first":"Kalinowski, A","first_name":"A","last_name":"Kalinowski"},{"name":"M Konecki","name_last_first":"Konecki, M","first_name":"M","last_name":"Konecki"},{"name":"J Krolikowski","name_last_first":"Krolikowski, J","first_name":"J","last_name":"Krolikowski"},{"name":"M Misiura","name_last_first":"Misiura, M","first_name":"M","last_name":"Misiura"},{"name":"M Olszewski","name_last_first":"Olszewski, M","first_name":"M","last_name":"Olszewski"},{"name":"P Bargassa","name_last_first":"Bargassa, P","first_name":"P","last_name":"Bargassa"},{"name":"CBDE Silva","name_last_first":"Silva, CBDE","first_name":"CBDE","last_name":"Silva"},{"name":"P Faccioli","name_last_first":"Faccioli, P","first_name":"P","last_name":"Faccioli"},{"name":"PGF Parracho","name_last_first":"Parracho, PGF","first_name":"PGF","last_name":"Parracho"},{"name":"M Gallinaro","name_last_first":"Gallinaro, M","first_name":"M","last_name":"Gallinaro"},{"name":"LL Iglesias","name_last_first":"Iglesias, LL","first_name":"LL","last_name":"Iglesias"},{"name":"F Nguyen","name_last_first":"Nguyen, F","first_name":"F","last_name":"Nguyen"},{"name":"JR Antunes","name_last_first":"Antunes, JR","first_name":"JR","last_name":"Antunes"},{"name":"J Seixas","name_last_first":"Seixas, J","first_name":"J","last_name":"Seixas"},{"name":"J Varela","name_last_first":"Varela, J","first_name":"J","last_name":"Varela"},{"name":"P Vischia","name_last_first":"Vischia, P","first_name":"P","last_name":"Vischia"},{"name":"S Afanasiev","name_last_first":"Afanasiev, S","first_name":"S","last_name":"Afanasiev"},{"name":"P Bunin","name_last_first":"Bunin, P","first_name":"P","last_name":"Bunin"},{"name":"M Gavrilenko","name_last_first":"Gavrilenko, M","first_name":"M","last_name":"Gavrilenko"},{"name":"I Golutvin","name_last_first":"Golutvin, I","first_name":"I","last_name":"Golutvin"},{"name":"I Gorbunov","name_last_first":"Gorbunov, I","first_name":"I","last_name":"Gorbunov"},{"name":"A Kamenev","name_last_first":"Kamenev, A","first_name":"A","last_name":"Kamenev"},{"name":"V Karjavin","name_last_first":"Karjavin, V","first_name":"V","last_name":"Karjavin"},{"name":"V Konoplyanikov","name_last_first":"Konoplyanikov, V","first_name":"V","last_name":"Konoplyanikov"},{"name":"A Lanev","name_last_first":"Lanev, A","first_name":"A","last_name":"Lanev"},{"name":"A Malakhov","name_last_first":"Malakhov, A","first_name":"A","last_name":"Malakhov"},{"name":"V Matveev","name_last_first":"Matveev, V","first_name":"V","last_name":"Matveev"},{"name":"P Moisenz","name_last_first":"Moisenz, P","first_name":"P","last_name":"Moisenz"},{"name":"V Palichik","name_last_first":"Palichik, V","first_name":"V","last_name":"Palichik"},{"name":"V Perelygin","name_last_first":"Perelygin, V","first_name":"V","last_name":"Perelygin"},{"name":"S Shmatov","name_last_first":"Shmatov, S","first_name":"S","last_name":"Shmatov"},{"name":"N Skatchkov","name_last_first":"Skatchkov, N","first_name":"N","last_name":"Skatchkov"},{"name":"V Smirnov","name_last_first":"Smirnov, V","first_name":"V","last_name":"Smirnov"},{"name":"A Zarubin","name_last_first":"Zarubin, A","first_name":"A","last_name":"Zarubin"},{"name":"V Golovtsov","name_last_first":"Golovtsov, V","first_name":"V","last_name":"Golovtsov"},{"name":"Y Ivanov","name_last_first":"Ivanov, Y","first_name":"Y","last_name":"Ivanov"},{"name":"V Kim","name_last_first":"Kim, V","first_name":"V","last_name":"Kim"},{"name":"E Kuznetsova","name_last_first":"Kuznetsova, E","first_name":"E","last_name":"Kuznetsova"},{"name":"P Levchenko","name_last_first":"Levchenko, P","first_name":"P","last_name":"Levchenko"},{"name":"V Murzin","name_last_first":"Murzin, V","first_name":"V","last_name":"Murzin"},{"name":"V Oreshkin","name_last_first":"Oreshkin, V","first_name":"V","last_name":"Oreshkin"},{"name":"I Smirnov","name_last_first":"Smirnov, I","first_name":"I","last_name":"Smirnov"},{"name":"V Sulimov","name_last_first":"Sulimov, V","first_name":"V","last_name":"Sulimov"},{"name":"L Uvarov","name_last_first":"Uvarov, L","first_name":"L","last_name":"Uvarov"},{"name":"S Vavilov","name_last_first":"Vavilov, S","first_name":"S","last_name":"Vavilov"},{"name":"A Vorobyev","name_last_first":"Vorobyev, A","first_name":"A","last_name":"Vorobyev"},{"name":"A Vorobyev","name_last_first":"Vorobyev, A","first_name":"A","last_name":"Vorobyev"},{"name":"Y Andreev","name_last_first":"Andreev, Y","first_name":"Y","last_name":"Andreev"},{"name":"A Dermenev","name_last_first":"Dermenev, A","first_name":"A","last_name":"Dermenev"},{"name":"S Gninenko","name_last_first":"Gninenko, S","first_name":"S","last_name":"Gninenko"},{"name":"N Golubev","name_last_first":"Golubev, N","first_name":"N","last_name":"Golubev"},{"name":"M Kirsanov","name_last_first":"Kirsanov, M","first_name":"M","last_name":"Kirsanov"},{"name":"N Krasnikov","name_last_first":"Krasnikov, N","first_name":"N","last_name":"Krasnikov"},{"name":"A Pashenkov","name_last_first":"Pashenkov, A","first_name":"A","last_name":"Pashenkov"},{"name":"D Tlisov","name_last_first":"Tlisov, D","first_name":"D","last_name":"Tlisov"},{"name":"A Toropin","name_last_first":"Toropin, A","first_name":"A","last_name":"Toropin"},{"name":"V Epshteyn","name_last_first":"Epshteyn, V","first_name":"V","last_name":"Epshteyn"},{"name":"V Gavrilov","name_last_first":"Gavrilov, V","first_name":"V","last_name":"Gavrilov"},{"name":"N Lychkovskaya","name_last_first":"Lychkovskaya, N","first_name":"N","last_name":"Lychkovskaya"},{"name":"V Popov","name_last_first":"Popov, V","first_name":"V","last_name":"Popov"},{"name":"I Pozdnyakov","name_last_first":"Pozdnyakov, I","first_name":"I","last_name":"Pozdnyakov"},{"name":"G Safronov","name_last_first":"Safronov, G","first_name":"G","last_name":"Safronov"},{"name":"S Semenov","name_last_first":"Semenov, S","first_name":"S","last_name":"Semenov"},{"name":"A Spiridonov","name_last_first":"Spiridonov, A","first_name":"A","last_name":"Spiridonov"},{"name":"V Stolin","name_last_first":"Stolin, V","first_name":"V","last_name":"Stolin"},{"name":"E Vlasov","name_last_first":"Vlasov, E","first_name":"E","last_name":"Vlasov"},{"name":"A Zhokin","name_last_first":"Zhokin, A","first_name":"A","last_name":"Zhokin"},{"name":"V Andreev","name_last_first":"Andreev, V","first_name":"V","last_name":"Andreev"},{"name":"M Azarkin","name_last_first":"Azarkin, M","first_name":"M","last_name":"Azarkin"},{"name":"I Dremin","name_last_first":"Dremin, I","first_name":"I","last_name":"Dremin"},{"name":"M Kirakosyan","name_last_first":"Kirakosyan, M","first_name":"M","last_name":"Kirakosyan"},{"name":"A Leonidov","name_last_first":"Leonidov, A","first_name":"A","last_name":"Leonidov"},{"name":"G Mesyats","name_last_first":"Mesyats, G","first_name":"G","last_name":"Mesyats"},{"name":"SV Rusakov","name_last_first":"Rusakov, SV","first_name":"SV","last_name":"Rusakov"},{"name":"A Vinogradov","name_last_first":"Vinogradov, A","first_name":"A","last_name":"Vinogradov"},{"name":"A Belyaev","name_last_first":"Belyaev, A","first_name":"A","last_name":"Belyaev"},{"name":"E Boos","name_last_first":"Boos, E","first_name":"E","last_name":"Boos"},{"name":"M Dubinin","name_last_first":"Dubinin, M","first_name":"M","last_name":"Dubinin"},{"name":"L Dudko","name_last_first":"Dudko, L","first_name":"L","last_name":"Dudko"},{"name":"A Ershov","name_last_first":"Ershov, A","first_name":"A","last_name":"Ershov"},{"name":"A Gribushin","name_last_first":"Gribushin, A","first_name":"A","last_name":"Gribushin"},{"name":"V Klyukhin","name_last_first":"Klyukhin, V","first_name":"V","last_name":"Klyukhin"},{"name":"O Kodolova","name_last_first":"Kodolova, O","first_name":"O","last_name":"Kodolova"},{"name":"I Lokhtin","name_last_first":"Lokhtin, I","first_name":"I","last_name":"Lokhtin"},{"name":"S Obraztsov","name_last_first":"Obraztsov, S","first_name":"S","last_name":"Obraztsov"},{"name":"S Petrushanko","name_last_first":"Petrushanko, S","first_name":"S","last_name":"Petrushanko"},{"name":"V Savrin","name_last_first":"Savrin, V","first_name":"V","last_name":"Savrin"},{"name":"A Snigirev","name_last_first":"Snigirev, A","first_name":"A","last_name":"Snigirev"},{"name":"I Azhgirey","name_last_first":"Azhgirey, I","first_name":"I","last_name":"Azhgirey"},{"name":"I Bayshev","name_last_first":"Bayshev, I","first_name":"I","last_name":"Bayshev"},{"name":"S Bitioukov","name_last_first":"Bitioukov, S","first_name":"S","last_name":"Bitioukov"},{"name":"V Kachanov","name_last_first":"Kachanov, V","first_name":"V","last_name":"Kachanov"},{"name":"A Kalinin","name_last_first":"Kalinin, A","first_name":"A","last_name":"Kalinin"},{"name":"D Konstantinov","name_last_first":"Konstantinov, D","first_name":"D","last_name":"Konstantinov"},{"name":"V Krychkine","name_last_first":"Krychkine, V","first_name":"V","last_name":"Krychkine"},{"name":"V Petrov","name_last_first":"Petrov, V","first_name":"V","last_name":"Petrov"},{"name":"R Ryutin","name_last_first":"Ryutin, R","first_name":"R","last_name":"Ryutin"},{"name":"A Sobol","name_last_first":"Sobol, A","first_name":"A","last_name":"Sobol"},{"name":"L Tourtchanovitch","name_last_first":"Tourtchanovitch, L","first_name":"L","last_name":"Tourtchanovitch"},{"name":"S Troshin","name_last_first":"Troshin, S","first_name":"S","last_name":"Troshin"},{"name":"N Tyurin","name_last_first":"Tyurin, N","first_name":"N","last_name":"Tyurin"},{"name":"A Uzunian","name_last_first":"Uzunian, A","first_name":"A","last_name":"Uzunian"},{"name":"A Volkov","name_last_first":"Volkov, A","first_name":"A","last_name":"Volkov"},{"name":"P Adzic","name_last_first":"Adzic, P","first_name":"P","last_name":"Adzic"},{"name":"M Ekmedzic","name_last_first":"Ekmedzic, M","first_name":"M","last_name":"Ekmedzic"},{"name":"J Milosevic","name_last_first":"Milosevic, J","first_name":"J","last_name":"Milosevic"},{"name":"V Rekovic","name_last_first":"Rekovic, V","first_name":"V","last_name":"Rekovic"},{"name":"JA Maestre","name_last_first":"Maestre, JA","first_name":"JA","last_name":"Maestre"},{"name":"C Battilana","name_last_first":"Battilana, C","first_name":"C","last_name":"Battilana"},{"name":"E Calvo","name_last_first":"Calvo, E","first_name":"E","last_name":"Calvo"},{"name":"M Cerrada","name_last_first":"Cerrada, M","first_name":"M","last_name":"Cerrada"},{"name":"MC Llatas","name_last_first":"Llatas, MC","first_name":"MC","last_name":"Llatas"},{"name":"N Colino","name_last_first":"Colino, N","first_name":"N","last_name":"Colino"},{"name":"B De La Cruz","name_last_first":"De La Cruz, B","first_name":"B","last_name":"De La Cruz"},{"name":"AD Peris","name_last_first":"Peris, AD","first_name":"AD","last_name":"Peris"},{"name":"DD Vazquez","name_last_first":"Vazquez, DD","first_name":"DD","last_name":"Vazquez"},{"name":"AE Del Valle","name_last_first":"Del Valle, AE","first_name":"AE","last_name":"Del Valle"},{"name":"CF Bedoya","name_last_first":"Bedoya, CF","first_name":"CF","last_name":"Bedoya"},{"name":"JPF Ramos","name_last_first":"Ramos, JPF","first_name":"JPF","last_name":"Ramos"},{"name":"J Flix","name_last_first":"Flix, J","first_name":"J","last_name":"Flix"},{"name":"MC Fouz","name_last_first":"Fouz, MC","first_name":"MC","last_name":"Fouz"},{"name":"P Garcia-Abia","name_last_first":"Garcia-Abia, P","first_name":"P","last_name":"Garcia-Abia"},{"name":"OG Lopez","name_last_first":"Lopez, OG","first_name":"OG","last_name":"Lopez"},{"name":"SG Lopez","name_last_first":"Lopez, SG","first_name":"SG","last_name":"Lopez"},{"name":"JM Hernandez","name_last_first":"Hernandez, JM","first_name":"JM","last_name":"Hernandez"},{"name":"MI Josa","name_last_first":"Josa, MI","first_name":"MI","last_name":"Josa"},{"name":"EN De Martino","name_last_first":"De Martino, EN","first_name":"EN","last_name":"De Martino"},{"name":"APC Yzquierdo","name_last_first":"Yzquierdo, APC","first_name":"APC","last_name":"Yzquierdo"},{"name":"JP Pelayo","name_last_first":"Pelayo, JP","first_name":"JP","last_name":"Pelayo"},{"name":"AQ Olmeda","name_last_first":"Olmeda, AQ","first_name":"AQ","last_name":"Olmeda"},{"name":"I Redondo","name_last_first":"Redondo, I","first_name":"I","last_name":"Redondo"},{"name":"L Romero","name_last_first":"Romero, L","first_name":"L","last_name":"Romero"},{"name":"MS Soares","name_last_first":"Soares, MS","first_name":"MS","last_name":"Soares"},{"name":"C Albajar","name_last_first":"Albajar, C","first_name":"C","last_name":"Albajar"},{"name":"JF de Troconiz","name_last_first":"de Troconiz, JF","first_name":"JF","last_name":"de Troconiz"},{"name":"M Missiroli","name_last_first":"Missiroli, M","first_name":"M","last_name":"Missiroli"},{"name":"D Moran","name_last_first":"Moran, D","first_name":"D","last_name":"Moran"},{"name":"H Brun","name_last_first":"Brun, H","first_name":"H","last_name":"Brun"},{"name":"J Cuevas","name_last_first":"Cuevas, J","first_name":"J","last_name":"Cuevas"},{"name":"JF Menendez","name_last_first":"Menendez, JF","first_name":"JF","last_name":"Menendez"},{"name":"S Folgueras","name_last_first":"Folgueras, S","first_name":"S","last_name":"Folgueras"},{"name":"IG Caballero","name_last_first":"Caballero, IG","first_name":"IG","last_name":"Caballero"},{"name":"JAB Cifuentes","name_last_first":"Cifuentes, JAB","first_name":"JAB","last_name":"Cifuentes"},{"name":"IJ Cabrillo","name_last_first":"Cabrillo, IJ","first_name":"IJ","last_name":"Cabrillo"},{"name":"A Calderon","name_last_first":"Calderon, A","first_name":"A","last_name":"Calderon"},{"name":"JD Campderros","name_last_first":"Campderros, JD","first_name":"JD","last_name":"Campderros"},{"name":"M Fernandez","name_last_first":"Fernandez, M","first_name":"M","last_name":"Fernandez"},{"name":"G Gomez","name_last_first":"Gomez, G","first_name":"G","last_name":"Gomez"},{"name":"A Graziano","name_last_first":"Graziano, A","first_name":"A","last_name":"Graziano"},{"name":"AL Virto","name_last_first":"Virto, AL","first_name":"AL","last_name":"Virto"},{"name":"J Marco","name_last_first":"Marco, J","first_name":"J","last_name":"Marco"},{"name":"R Marco","name_last_first":"Marco, R","first_name":"R","last_name":"Marco"},{"name":"CM Rivero","name_last_first":"Rivero, CM","first_name":"CM","last_name":"Rivero"},{"name":"F Matorras","name_last_first":"Matorras, F","first_name":"F","last_name":"Matorras"},{"name":"FJM Sanchez","name_last_first":"Sanchez, FJM","first_name":"FJM","last_name":"Sanchez"},{"name":"JP Gomez","name_last_first":"Gomez, JP","first_name":"JP","last_name":"Gomez"},{"name":"T Rodrigo","name_last_first":"Rodrigo, T","first_name":"T","last_name":"Rodrigo"},{"name":"AY Rodriguez-Marrero","name_last_first":"Rodriguez-Marrero, AY","first_name":"AY","last_name":"Rodriguez-Marrero"},{"name":"A Ruiz-Jimeno","name_last_first":"Ruiz-Jimeno, A","first_name":"A","last_name":"Ruiz-Jimeno"},{"name":"L Scodellaro","name_last_first":"Scodellaro, L","first_name":"L","last_name":"Scodellaro"},{"name":"I Vila","name_last_first":"Vila, I","first_name":"I","last_name":"Vila"},{"name":"RV Cortabitarte","name_last_first":"Cortabitarte, RV","first_name":"RV","last_name":"Cortabitarte"},{"name":"D Abbaneo","name_last_first":"Abbaneo, D","first_name":"D","last_name":"Abbaneo"},{"name":"E Auffray","name_last_first":"Auffray, E","first_name":"E","last_name":"Auffray"},{"name":"G Auzinger","name_last_first":"Auzinger, G","first_name":"G","last_name":"Auzinger"},{"name":"M Bachtis","name_last_first":"Bachtis, M","first_name":"M","last_name":"Bachtis"},{"name":"P Baillon","name_last_first":"Baillon, P","first_name":"P","last_name":"Baillon"},{"name":"AH Ball","name_last_first":"Ball, AH","first_name":"AH","last_name":"Ball"},{"name":"D Barney","name_last_first":"Barney, D","first_name":"D","last_name":"Barney"},{"name":"A Benaglia","name_last_first":"Benaglia, A","first_name":"A","last_name":"Benaglia"},{"name":"J Bendavid","name_last_first":"Bendavid, J","first_name":"J","last_name":"Bendavid"},{"name":"L Benhabib","name_last_first":"Benhabib, L","first_name":"L","last_name":"Benhabib"},{"name":"JF Benitez","name_last_first":"Benitez, JF","first_name":"JF","last_name":"Benitez"},{"name":"P Bloch","name_last_first":"Bloch, P","first_name":"P","last_name":"Bloch"},{"name":"A Bocci","name_last_first":"Bocci, A","first_name":"A","last_name":"Bocci"},{"name":"A Bonato","name_last_first":"Bonato, A","first_name":"A","last_name":"Bonato"},{"name":"O Bondu","name_last_first":"Bondu, O","first_name":"O","last_name":"Bondu"},{"name":"C Botta","name_last_first":"Botta, C","first_name":"C","last_name":"Botta"},{"name":"H Breuker","name_last_first":"Breuker, H","first_name":"H","last_name":"Breuker"},{"name":"T Camporesi","name_last_first":"Camporesi, T","first_name":"T","last_name":"Camporesi"},{"name":"G Cerminara","name_last_first":"Cerminara, G","first_name":"G","last_name":"Cerminara"},{"name":"S Colafranceschi","name_last_first":"Colafranceschi, S","first_name":"S","last_name":"Colafranceschi"},{"name":"M D'Alfonso","name_last_first":"D'Alfonso, M","first_name":"M","last_name":"D'Alfonso"},{"name":"D d'Enterria","name_last_first":"d'Enterria, D","first_name":"D","last_name":"d'Enterria"},{"name":"A Dabrowski","name_last_first":"Dabrowski, A","first_name":"A","last_name":"Dabrowski"},{"name":"A David","name_last_first":"David, A","first_name":"A","last_name":"David"},{"name":"F De Guio","name_last_first":"De Guio, F","first_name":"F","last_name":"De Guio"},{"name":"A De Roeck","name_last_first":"De Roeck, A","first_name":"A","last_name":"De Roeck"},{"name":"S De Visscher","name_last_first":"De Visscher, S","first_name":"S","last_name":"De Visscher"},{"name":"E Di Marco","name_last_first":"Di Marco, E","first_name":"E","last_name":"Di Marco"},{"name":"M Dobson","name_last_first":"Dobson, M","first_name":"M","last_name":"Dobson"},{"name":"M Dordevic","name_last_first":"Dordevic, M","first_name":"M","last_name":"Dordevic"},{"name":"B Dorney","name_last_first":"Dorney, B","first_name":"B","last_name":"Dorney"},{"name":"N Dupont-Sagorin","name_last_first":"Dupont-Sagorin, N","first_name":"N","last_name":"Dupont-Sagorin"},{"name":"A Elliott-Peisert","name_last_first":"Elliott-Peisert, A","first_name":"A","last_name":"Elliott-Peisert"},{"name":"G Franzoni","name_last_first":"Franzoni, G","first_name":"G","last_name":"Franzoni"},{"name":"W Funk","name_last_first":"Funk, W","first_name":"W","last_name":"Funk"},{"name":"D Gigi","name_last_first":"Gigi, D","first_name":"D","last_name":"Gigi"},{"name":"K Gill","name_last_first":"Gill, K","first_name":"K","last_name":"Gill"},{"name":"D Giordano","name_last_first":"Giordano, D","first_name":"D","last_name":"Giordano"},{"name":"M Girone","name_last_first":"Girone, M","first_name":"M","last_name":"Girone"},{"name":"F Glege","name_last_first":"Glege, F","first_name":"F","last_name":"Glege"},{"name":"R Guida","name_last_first":"Guida, R","first_name":"R","last_name":"Guida"},{"name":"S Gundacker","name_last_first":"Gundacker, S","first_name":"S","last_name":"Gundacker"},{"name":"M Guthoff","name_last_first":"Guthoff, M","first_name":"M","last_name":"Guthoff"},{"name":"J Hammer","name_last_first":"Hammer, J","first_name":"J","last_name":"Hammer"},{"name":"M Hansen","name_last_first":"Hansen, M","first_name":"M","last_name":"Hansen"},{"name":"P Harris","name_last_first":"Harris, P","first_name":"P","last_name":"Harris"},{"name":"J Hegeman","name_last_first":"Hegeman, J","first_name":"J","last_name":"Hegeman"},{"name":"V Innocente","name_last_first":"Innocente, V","first_name":"V","last_name":"Innocente"},{"name":"P Janot","name_last_first":"Janot, P","first_name":"P","last_name":"Janot"},{"name":"K Kousouris","name_last_first":"Kousouris, K","first_name":"K","last_name":"Kousouris"},{"name":"K Krajczar","name_last_first":"Krajczar, K","first_name":"K","last_name":"Krajczar"},{"name":"P Lecoq","name_last_first":"Lecoq, P","first_name":"P","last_name":"Lecoq"},{"name":"C Lourenco","name_last_first":"Lourenco, C","first_name":"C","last_name":"Lourenco"},{"name":"N Magini","name_last_first":"Magini, N","first_name":"N","last_name":"Magini"},{"name":"L Malgeri","name_last_first":"Malgeri, L","first_name":"L","last_name":"Malgeri"},{"name":"M Mannelli","name_last_first":"Mannelli, M","first_name":"M","last_name":"Mannelli"},{"name":"J Marrouche","name_last_first":"Marrouche, J","first_name":"J","last_name":"Marrouche"},{"name":"L Masetti","name_last_first":"Masetti, L","first_name":"L","last_name":"Masetti"},{"name":"F Meijers","name_last_first":"Meijers, F","first_name":"F","last_name":"Meijers"},{"name":"S Mersi","name_last_first":"Mersi, S","first_name":"S","last_name":"Mersi"},{"name":"E Meschi","name_last_first":"Meschi, E","first_name":"E","last_name":"Meschi"},{"name":"F Moortgat","name_last_first":"Moortgat, F","first_name":"F","last_name":"Moortgat"},{"name":"S Morovic","name_last_first":"Morovic, S","first_name":"S","last_name":"Morovic"},{"name":"M Mulders","name_last_first":"Mulders, M","first_name":"M","last_name":"Mulders"},{"name":"L Orsini","name_last_first":"Orsini, L","first_name":"L","last_name":"Orsini"},{"name":"L Pape","name_last_first":"Pape, L","first_name":"L","last_name":"Pape"},{"name":"E Perez","name_last_first":"Perez, E","first_name":"E","last_name":"Perez"},{"name":"A Petrilli","name_last_first":"Petrilli, A","first_name":"A","last_name":"Petrilli"},{"name":"G Petrucciani","name_last_first":"Petrucciani, G","first_name":"G","last_name":"Petrucciani"},{"name":"A Pfeiffer","name_last_first":"Pfeiffer, A","first_name":"A","last_name":"Pfeiffer"},{"name":"M Pimia","name_last_first":"Pimia, M","first_name":"M","last_name":"Pimia"},{"name":"D Piparo","name_last_first":"Piparo, D","first_name":"D","last_name":"Piparo"},{"name":"M Plagge","name_last_first":"Plagge, M","first_name":"M","last_name":"Plagge"},{"name":"A Racz","name_last_first":"Racz, A","first_name":"A","last_name":"Racz"},{"name":"G Rolandi","name_last_first":"Rolandi, G","first_name":"G","last_name":"Rolandi"},{"name":"M Rovere","name_last_first":"Rovere, M","first_name":"M","last_name":"Rovere"},{"name":"H Sakulin","name_last_first":"Sakulin, H","first_name":"H","last_name":"Sakulin"},{"name":"C Schafer","name_last_first":"Schafer, C","first_name":"C","last_name":"Schafer"},{"name":"C Schwick","name_last_first":"Schwick, C","first_name":"C","last_name":"Schwick"},{"name":"A Sharma","name_last_first":"Sharma, A","first_name":"A","last_name":"Sharma"},{"name":"P Siegrist","name_last_first":"Siegrist, P","first_name":"P","last_name":"Siegrist"},{"name":"P Silva","name_last_first":"Silva, P","first_name":"P","last_name":"Silva"},{"name":"M Simon","name_last_first":"Simon, M","first_name":"M","last_name":"Simon"},{"name":"P Sphicas","name_last_first":"Sphicas, P","first_name":"P","last_name":"Sphicas"},{"name":"D Spiga","name_last_first":"Spiga, D","first_name":"D","last_name":"Spiga"},{"name":"J Steggemann","name_last_first":"Steggemann, J","first_name":"J","last_name":"Steggemann"},{"name":"B Stieger","name_last_first":"Stieger, B","first_name":"B","last_name":"Stieger"},{"name":"M Stoye","name_last_first":"Stoye, M","first_name":"M","last_name":"Stoye"},{"name":"Y Takahashi","name_last_first":"Takahashi, Y","first_name":"Y","last_name":"Takahashi"},{"name":"D Treille","name_last_first":"Treille, D","first_name":"D","last_name":"Treille"},{"name":"A Tsirou","name_last_first":"Tsirou, A","first_name":"A","last_name":"Tsirou"},{"name":"GI Veres","name_last_first":"Veres, GI","first_name":"GI","last_name":"Veres"},{"name":"N Wardle","name_last_first":"Wardle, N","first_name":"N","last_name":"Wardle"},{"name":"HK Wohri","name_last_first":"Wohri, HK","first_name":"HK","last_name":"Wohri"},{"name":"H Wollny","name_last_first":"Wollny, H","first_name":"H","last_name":"Wollny"},{"name":"WD Zeuner","name_last_first":"Zeuner, WD","first_name":"WD","last_name":"Zeuner"},{"name":"W Bertl","name_last_first":"Bertl, W","first_name":"W","last_name":"Bertl"},{"name":"K Deiters","name_last_first":"Deiters, K","first_name":"K","last_name":"Deiters"},{"name":"W Erdmann","name_last_first":"Erdmann, W","first_name":"W","last_name":"Erdmann"},{"name":"R Horisberger","name_last_first":"Horisberger, R","first_name":"R","last_name":"Horisberger"},{"name":"Q Ingram","name_last_first":"Ingram, Q","first_name":"Q","last_name":"Ingram"},{"name":"HC Kaestli","name_last_first":"Kaestli, HC","first_name":"HC","last_name":"Kaestli"},{"name":"D Kotlinski","name_last_first":"Kotlinski, D","first_name":"D","last_name":"Kotlinski"},{"name":"U Langenegger","name_last_first":"Langenegger, U","first_name":"U","last_name":"Langenegger"},{"name":"D Renker","name_last_first":"Renker, D","first_name":"D","last_name":"Renker"},{"name":"T Rohe","name_last_first":"Rohe, T","first_name":"T","last_name":"Rohe"},{"name":"F Bachmair","name_last_first":"Bachmair, F","first_name":"F","last_name":"Bachmair"},{"name":"L Bani","name_last_first":"Bani, L","first_name":"L","last_name":"Bani"},{"name":"L Bianchini","name_last_first":"Bianchini, L","first_name":"L","last_name":"Bianchini"},{"name":"MA Buchmann","name_last_first":"Buchmann, MA","first_name":"MA","last_name":"Buchmann"},{"name":"B Casal","name_last_first":"Casal, B","first_name":"B","last_name":"Casal"},{"name":"N Chanon","name_last_first":"Chanon, N","first_name":"N","last_name":"Chanon"},{"name":"G Dissertori","name_last_first":"Dissertori, G","first_name":"G","last_name":"Dissertori"},{"name":"M Dittmar","name_last_first":"Dittmar, M","first_name":"M","last_name":"Dittmar"},{"name":"M Donega","name_last_first":"Donega, M","first_name":"M","last_name":"Donega"},{"name":"M Dunser","name_last_first":"Dunser, M","first_name":"M","last_name":"Dunser"},{"name":"P Eller","name_last_first":"Eller, P","first_name":"P","last_name":"Eller"},{"name":"C Grab","name_last_first":"Grab, C","first_name":"C","last_name":"Grab"},{"name":"D Hits","name_last_first":"Hits, D","first_name":"D","last_name":"Hits"},{"name":"J Hoss","name_last_first":"Hoss, J","first_name":"J","last_name":"Hoss"},{"name":"W Lustermann","name_last_first":"Lustermann, W","first_name":"W","last_name":"Lustermann"},{"name":"B Mangano","name_last_first":"Mangano, B","first_name":"B","last_name":"Mangano"},{"name":"AC Marini","name_last_first":"Marini, AC","first_name":"AC","last_name":"Marini"},{"name":"M Marionneau","name_last_first":"Marionneau, M","first_name":"M","last_name":"Marionneau"},{"name":"PMR del Arbol","name_last_first":"del Arbol, PMR","first_name":"PMR","last_name":"del Arbol"},{"name":"M Masciovecchio","name_last_first":"Masciovecchio, M","first_name":"M","last_name":"Masciovecchio"},{"name":"D Meister","name_last_first":"Meister, D","first_name":"D","last_name":"Meister"},{"name":"N Mohr","name_last_first":"Mohr, N","first_name":"N","last_name":"Mohr"},{"name":"P Musella","name_last_first":"Musella, P","first_name":"P","last_name":"Musella"},{"name":"C Nageli","name_last_first":"Nageli, C","first_name":"C","last_name":"Nageli"},{"name":"F Nessi-Tedaldi","name_last_first":"Nessi-Tedaldi, F","first_name":"F","last_name":"Nessi-Tedaldi"},{"name":"F Pandolfi","name_last_first":"Pandolfi, F","first_name":"F","last_name":"Pandolfi"},{"name":"F Pauss","name_last_first":"Pauss, F","first_name":"F","last_name":"Pauss"},{"name":"L Perrozzi","name_last_first":"Perrozzi, L","first_name":"L","last_name":"Perrozzi"},{"name":"M Peruzzi","name_last_first":"Peruzzi, M","first_name":"M","last_name":"Peruzzi"},{"name":"M Quittnat","name_last_first":"Quittnat, M","first_name":"M","last_name":"Quittnat"},{"name":"L Rebane","name_last_first":"Rebane, L","first_name":"L","last_name":"Rebane"},{"name":"M Rossini","name_last_first":"Rossini, M","first_name":"M","last_name":"Rossini"},{"name":"A Starodumov","name_last_first":"Starodumov, A","first_name":"A","last_name":"Starodumov"},{"name":"M Takahashi","name_last_first":"Takahashi, M","first_name":"M","last_name":"Takahashi"},{"name":"K Theofilatos","name_last_first":"Theofilatos, K","first_name":"K","last_name":"Theofilatos"},{"name":"R Wallny","name_last_first":"Wallny, R","first_name":"R","last_name":"Wallny"},{"name":"HA Weber","name_last_first":"Weber, HA","first_name":"HA","last_name":"Weber"},{"name":"C Amsler","name_last_first":"Amsler, C","first_name":"C","last_name":"Amsler"},{"name":"MF Canelli","name_last_first":"Canelli, MF","first_name":"MF","last_name":"Canelli"},{"name":"V Chiochia","name_last_first":"Chiochia, V","first_name":"V","last_name":"Chiochia"},{"name":"A De Cosa","name_last_first":"De Cosa, A","first_name":"A","last_name":"De Cosa"},{"name":"A Hinzmann","name_last_first":"Hinzmann, A","first_name":"A","last_name":"Hinzmann"},{"name":"T Hreus","name_last_first":"Hreus, T","first_name":"T","last_name":"Hreus"},{"name":"B Kilminster","name_last_first":"Kilminster, B","first_name":"B","last_name":"Kilminster"},{"name":"C Lange","name_last_first":"Lange, C","first_name":"C","last_name":"Lange"},{"name":"J Ngadiuba","name_last_first":"Ngadiuba, J","first_name":"J","last_name":"Ngadiuba"},{"name":"D Pinna","name_last_first":"Pinna, D","first_name":"D","last_name":"Pinna"},{"name":"P Robmann","name_last_first":"Robmann, P","first_name":"P","last_name":"Robmann"},{"name":"FJ Ronga","name_last_first":"Ronga, FJ","first_name":"FJ","last_name":"Ronga"},{"name":"S Taroni","name_last_first":"Taroni, S","first_name":"S","last_name":"Taroni"},{"name":"M Verzetti","name_last_first":"Verzetti, M","first_name":"M","last_name":"Verzetti"},{"name":"Y Yang","name_last_first":"Yang, Y","first_name":"Y","last_name":"Yang"},{"name":"M Cardaci","name_last_first":"Cardaci, M","first_name":"M","last_name":"Cardaci"},{"name":"KH Chen","name_last_first":"Chen, KH","first_name":"KH","last_name":"Chen"},{"name":"C Ferro","name_last_first":"Ferro, C","first_name":"C","last_name":"Ferro"},{"name":"CM Kuo","name_last_first":"Kuo, CM","first_name":"CM","last_name":"Kuo"},{"name":"W Lin","name_last_first":"Lin, W","first_name":"W","last_name":"Lin"},{"name":"YJ Lu","name_last_first":"Lu, YJ","first_name":"YJ","last_name":"Lu"},{"name":"R Volpe","name_last_first":"Volpe, R","first_name":"R","last_name":"Volpe"},{"name":"SS Yu","name_last_first":"Yu, SS","first_name":"SS","last_name":"Yu"},{"name":"P Chang","name_last_first":"Chang, P","first_name":"P","last_name":"Chang"},{"name":"YH Chang","name_last_first":"Chang, YH","first_name":"YH","last_name":"Chang"},{"name":"Y Chao","name_last_first":"Chao, Y","first_name":"Y","last_name":"Chao"},{"name":"KF Chen","name_last_first":"Chen, KF","first_name":"KF","last_name":"Chen"},{"name":"PH Chen","name_last_first":"Chen, PH","first_name":"PH","last_name":"Chen"},{"name":"C Dietz","name_last_first":"Dietz, C","first_name":"C","last_name":"Dietz"},{"name":"U Grundler","name_last_first":"Grundler, U","first_name":"U","last_name":"Grundler"},{"name":"WS Hou","name_last_first":"Hou, WS","first_name":"WS","last_name":"Hou"},{"name":"YF Liu","name_last_first":"Liu, YF","first_name":"YF","last_name":"Liu"},{"name":"RS Lu","name_last_first":"Lu, RS","first_name":"RS","last_name":"Lu"},{"name":"MM Moya","name_last_first":"Moya, MM","first_name":"MM","last_name":"Moya"},{"name":"E Petrakou","name_last_first":"Petrakou, E","first_name":"E","last_name":"Petrakou"},{"name":"YM Tzeng","name_last_first":"Tzeng, YM","first_name":"YM","last_name":"Tzeng"},{"name":"R Wilken","name_last_first":"Wilken, R","first_name":"R","last_name":"Wilken"},{"name":"B Asavapibhop","name_last_first":"Asavapibhop, B","first_name":"B","last_name":"Asavapibhop"},{"name":"G Singh","name_last_first":"Singh, G","first_name":"G","last_name":"Singh"},{"name":"N Srimanobhas","name_last_first":"Srimanobhas, N","first_name":"N","last_name":"Srimanobhas"},{"name":"N Suwonjandee","name_last_first":"Suwonjandee, N","first_name":"N","last_name":"Suwonjandee"},{"name":"A Adiguzel","name_last_first":"Adiguzel, A","first_name":"A","last_name":"Adiguzel"},{"name":"MN Bakirci","name_last_first":"Bakirci, MN","first_name":"MN","last_name":"Bakirci"},{"name":"S Cerci","name_last_first":"Cerci, S","first_name":"S","last_name":"Cerci"},{"name":"C Dozen","name_last_first":"Dozen, C","first_name":"C","last_name":"Dozen"},{"name":"I Dumanoglu","name_last_first":"Dumanoglu, I","first_name":"I","last_name":"Dumanoglu"},{"name":"E Eskut","name_last_first":"Eskut, E","first_name":"E","last_name":"Eskut"},{"name":"S Girgis","name_last_first":"Girgis, S","first_name":"S","last_name":"Girgis"},{"name":"G Gokbulut","name_last_first":"Gokbulut, G","first_name":"G","last_name":"Gokbulut"},{"name":"Y Guler","name_last_first":"Guler, Y","first_name":"Y","last_name":"Guler"},{"name":"E Gurpinar","name_last_first":"Gurpinar, E","first_name":"E","last_name":"Gurpinar"},{"name":"I Hos","name_last_first":"Hos, I","first_name":"I","last_name":"Hos"},{"name":"EE Kangal","name_last_first":"Kangal, EE","first_name":"EE","last_name":"Kangal"},{"name":"AK Topaksu","name_last_first":"Topaksu, AK","first_name":"AK","last_name":"Topaksu"},{"name":"G Onengut","name_last_first":"Onengut, G","first_name":"G","last_name":"Onengut"},{"name":"K Ozdemir","name_last_first":"Ozdemir, K","first_name":"K","last_name":"Ozdemir"},{"name":"S Ozturk","name_last_first":"Ozturk, S","first_name":"S","last_name":"Ozturk"},{"name":"A Polatoz","name_last_first":"Polatoz, A","first_name":"A","last_name":"Polatoz"},{"name":"DS Cerci","name_last_first":"Cerci, DS","first_name":"DS","last_name":"Cerci"},{"name":"B Tali","name_last_first":"Tali, B","first_name":"B","last_name":"Tali"},{"name":"H Topakli","name_last_first":"Topakli, H","first_name":"H","last_name":"Topakli"},{"name":"M Vergili","name_last_first":"Vergili, M","first_name":"M","last_name":"Vergili"},{"name":"C Zorbilmez","name_last_first":"Zorbilmez, C","first_name":"C","last_name":"Zorbilmez"},{"name":"IV Akin","name_last_first":"Akin, IV","first_name":"IV","last_name":"Akin"},{"name":"B Bilin","name_last_first":"Bilin, B","first_name":"B","last_name":"Bilin"},{"name":"S Bilmis","name_last_first":"Bilmis, S","first_name":"S","last_name":"Bilmis"},{"name":"H Gamsizkan","name_last_first":"Gamsizkan, H","first_name":"H","last_name":"Gamsizkan"},{"name":"B Isildak","name_last_first":"Isildak, B","first_name":"B","last_name":"Isildak"},{"name":"G Karapinar","name_last_first":"Karapinar, G","first_name":"G","last_name":"Karapinar"},{"name":"K Ocalan","name_last_first":"Ocalan, K","first_name":"K","last_name":"Ocalan"},{"name":"S Sekmen","name_last_first":"Sekmen, S","first_name":"S","last_name":"Sekmen"},{"name":"UE Surat","name_last_first":"Surat, UE","first_name":"UE","last_name":"Surat"},{"name":"M Yalvac","name_last_first":"Yalvac, M","first_name":"M","last_name":"Yalvac"},{"name":"M Zeyrek","name_last_first":"Zeyrek, M","first_name":"M","last_name":"Zeyrek"},{"name":"EA Albayrak","name_last_first":"Albayrak, EA","first_name":"EA","last_name":"Albayrak"},{"name":"E Gulmez","name_last_first":"Gulmez, E","first_name":"E","last_name":"Gulmez"},{"name":"M Kaya","name_last_first":"Kaya, M","first_name":"M","last_name":"Kaya"},{"name":"O Kaya","name_last_first":"Kaya, O","first_name":"O","last_name":"Kaya"},{"name":"T Yetkin","name_last_first":"Yetkin, T","first_name":"T","last_name":"Yetkin"},{"name":"K Cankocak","name_last_first":"Cankocak, K","first_name":"K","last_name":"Cankocak"},{"name":"FI Vardarli","name_last_first":"Vardarli, FI","first_name":"FI","last_name":"Vardarli"},{"name":"L Levchuk","name_last_first":"Levchuk, L","first_name":"L","last_name":"Levchuk"},{"name":"P Sorokin","name_last_first":"Sorokin, P","first_name":"P","last_name":"Sorokin"},{"name":"JJ Brooke","name_last_first":"Brooke, JJ","first_name":"JJ","last_name":"Brooke"},{"name":"E Clement","name_last_first":"Clement, E","first_name":"E","last_name":"Clement"},{"name":"D Cussans","name_last_first":"Cussans, D","first_name":"D","last_name":"Cussans"},{"name":"H Flacher","name_last_first":"Flacher, H","first_name":"H","last_name":"Flacher"},{"name":"J Goldstein","name_last_first":"Goldstein, J","first_name":"J","last_name":"Goldstein"},{"name":"M Grimes","name_last_first":"Grimes, M","first_name":"M","last_name":"Grimes"},{"name":"GP Heath","name_last_first":"Heath, GP","first_name":"GP","last_name":"Heath"},{"name":"HF Heath","name_last_first":"Heath, HF","first_name":"HF","last_name":"Heath"},{"name":"J Jacob","name_last_first":"Jacob, J","first_name":"J","last_name":"Jacob"},{"name":"L Kreczko","name_last_first":"Kreczko, L","first_name":"L","last_name":"Kreczko"},{"name":"C Lucas","name_last_first":"Lucas, C","first_name":"C","last_name":"Lucas"},{"name":"Z Meng","name_last_first":"Meng, Z","first_name":"Z","last_name":"Meng"},{"name":"DM Newbold","name_last_first":"Newbold, DM","first_name":"DM","last_name":"Newbold"},{"name":"S Paramesvaran","name_last_first":"Paramesvaran, S","first_name":"S","last_name":"Paramesvaran"},{"name":"A Poll","name_last_first":"Poll, A","first_name":"A","last_name":"Poll"},{"name":"T Sakuma","name_last_first":"Sakuma, T","first_name":"T","last_name":"Sakuma"},{"name":"SS El Nasr-Storey","name_last_first":"El Nasr-Storey, SS","first_name":"SS","last_name":"El Nasr-Storey"},{"name":"S Senkin","name_last_first":"Senkin, S","first_name":"S","last_name":"Senkin"},{"name":"VJ Smith","name_last_first":"Smith, VJ","first_name":"VJ","last_name":"Smith"},{"name":"KW Bell","name_last_first":"Bell, KW","first_name":"KW","last_name":"Bell"},{"name":"A Belyaev","name_last_first":"Belyaev, A","first_name":"A","last_name":"Belyaev"},{"name":"C Brew","name_last_first":"Brew, C","first_name":"C","last_name":"Brew"},{"name":"RM Brown","name_last_first":"Brown, RM","first_name":"RM","last_name":"Brown"},{"name":"DJA Cockerill","name_last_first":"Cockerill, DJA","first_name":"DJA","last_name":"Cockerill"},{"name":"JA Coughlan","name_last_first":"Coughlan, JA","first_name":"JA","last_name":"Coughlan"},{"name":"K Harder","name_last_first":"Harder, K","first_name":"K","last_name":"Harder"},{"name":"S Harper","name_last_first":"Harper, S","first_name":"S","last_name":"Harper"},{"name":"E Olaiya","name_last_first":"Olaiya, E","first_name":"E","last_name":"Olaiya"},{"name":"D Petyt","name_last_first":"Petyt, D","first_name":"D","last_name":"Petyt"},{"name":"CH Shepherd-Themistocleous","name_last_first":"Shepherd-Themistocleous, CH","first_name":"CH","last_name":"Shepherd-Themistocleous"},{"name":"A Thea","name_last_first":"Thea, A","first_name":"A","last_name":"Thea"},{"name":"IR Tomalin","name_last_first":"Tomalin, IR","first_name":"IR","last_name":"Tomalin"},{"name":"T Williams","name_last_first":"Williams, T","first_name":"T","last_name":"Williams"},{"name":"WJ Womersley","name_last_first":"Womersley, WJ","first_name":"WJ","last_name":"Womersley"},{"name":"SD Worm","name_last_first":"Worm, SD","first_name":"SD","last_name":"Worm"},{"name":"M Baber","name_last_first":"Baber, M","first_name":"M","last_name":"Baber"},{"name":"R Bainbridge","name_last_first":"Bainbridge, R","first_name":"R","last_name":"Bainbridge"},{"name":"O Buchmuller","name_last_first":"Buchmuller, O","first_name":"O","last_name":"Buchmuller"},{"name":"D Burton","name_last_first":"Burton, D","first_name":"D","last_name":"Burton"},{"name":"D Colling","name_last_first":"Colling, D","first_name":"D","last_name":"Colling"},{"name":"N Cripps","name_last_first":"Cripps, N","first_name":"N","last_name":"Cripps"},{"name":"P Dauncey","name_last_first":"Dauncey, P","first_name":"P","last_name":"Dauncey"},{"name":"G Davies","name_last_first":"Davies, G","first_name":"G","last_name":"Davies"},{"name":"M Della Negra","name_last_first":"Della Negra, M","first_name":"M","last_name":"Della Negra"},{"name":"P Dunne","name_last_first":"Dunne, P","first_name":"P","last_name":"Dunne"},{"name":"A Elwood","name_last_first":"Elwood, A","first_name":"A","last_name":"Elwood"},{"name":"W Ferguson","name_last_first":"Ferguson, W","first_name":"W","last_name":"Ferguson"},{"name":"J Fulcher","name_last_first":"Fulcher, J","first_name":"J","last_name":"Fulcher"},{"name":"D Futyan","name_last_first":"Futyan, D","first_name":"D","last_name":"Futyan"},{"name":"G Hall","name_last_first":"Hall, G","first_name":"G","last_name":"Hall"},{"name":"G Iles","name_last_first":"Iles, G","first_name":"G","last_name":"Iles"},{"name":"M Jarvis","name_last_first":"Jarvis, M","first_name":"M","last_name":"Jarvis"},{"name":"G Karapostoli","name_last_first":"Karapostoli, G","first_name":"G","last_name":"Karapostoli"},{"name":"M Kenzie","name_last_first":"Kenzie, M","first_name":"M","last_name":"Kenzie"},{"name":"R Lane","name_last_first":"Lane, R","first_name":"R","last_name":"Lane"},{"name":"R Lucas","name_last_first":"Lucas, R","first_name":"R","last_name":"Lucas"},{"name":"L Lyons","name_last_first":"Lyons, L","first_name":"L","last_name":"Lyons"},{"name":"AM Magnan","name_last_first":"Magnan, AM","first_name":"AM","last_name":"Magnan"},{"name":"S Malik","name_last_first":"Malik, S","first_name":"S","last_name":"Malik"},{"name":"B Mathias","name_last_first":"Mathias, B","first_name":"B","last_name":"Mathias"},{"name":"J Nash","name_last_first":"Nash, J","first_name":"J","last_name":"Nash"},{"name":"A Nikitenko","name_last_first":"Nikitenko, A","first_name":"A","last_name":"Nikitenko"},{"name":"J Pela","name_last_first":"Pela, J","first_name":"J","last_name":"Pela"},{"name":"M Pesaresi","name_last_first":"Pesaresi, M","first_name":"M","last_name":"Pesaresi"},{"name":"K Petridis","name_last_first":"Petridis, K","first_name":"K","last_name":"Petridis"},{"name":"DM Raymond","name_last_first":"Raymond, DM","first_name":"DM","last_name":"Raymond"},{"name":"S Rogerson","name_last_first":"Rogerson, S","first_name":"S","last_name":"Rogerson"},{"name":"A Rose","name_last_first":"Rose, A","first_name":"A","last_name":"Rose"},{"name":"C Seez","name_last_first":"Seez, C","first_name":"C","last_name":"Seez"},{"name":"P Sharp","name_last_first":"Sharp, P","first_name":"P","last_name":"Sharp"},{"name":"A Tapper","name_last_first":"Tapper, A","first_name":"A","last_name":"Tapper"},{"name":"MV Acosta","name_last_first":"Acosta, MV","first_name":"MV","last_name":"Acosta"},{"name":"T Virdee","name_last_first":"Virdee, T","first_name":"T","last_name":"Virdee"},{"name":"SC Zenz","name_last_first":"Zenz, SC","first_name":"SC","last_name":"Zenz"},{"name":"JE Cole","name_last_first":"Cole, JE","first_name":"JE","last_name":"Cole"},{"name":"PR Hobson","name_last_first":"Hobson, PR","first_name":"PR","last_name":"Hobson"},{"name":"A Khan","name_last_first":"Khan, A","first_name":"A","last_name":"Khan"},{"name":"P Kyberd","name_last_first":"Kyberd, P","first_name":"P","last_name":"Kyberd"},{"name":"D Leggat","name_last_first":"Leggat, D","first_name":"D","last_name":"Leggat"},{"name":"D Leslie","name_last_first":"Leslie, D","first_name":"D","last_name":"Leslie"},{"name":"ID Reid","name_last_first":"Reid, ID","first_name":"ID","last_name":"Reid"},{"name":"P Symonds","name_last_first":"Symonds, P","first_name":"P","last_name":"Symonds"},{"name":"L Teodorescu","name_last_first":"Teodorescu, L","first_name":"L","last_name":"Teodorescu"},{"name":"M Turner","name_last_first":"Turner, M","first_name":"M","last_name":"Turner"},{"name":"J Dittmann","name_last_first":"Dittmann, J","first_name":"J","last_name":"Dittmann"},{"name":"K Hatakeyama","name_last_first":"Hatakeyama, K","first_name":"K","last_name":"Hatakeyama"},{"name":"A Kasmi","name_last_first":"Kasmi, A","first_name":"A","last_name":"Kasmi"},{"name":"H Liu","name_last_first":"Liu, H","first_name":"H","last_name":"Liu"},{"name":"N Pastika","name_last_first":"Pastika, N","first_name":"N","last_name":"Pastika"},{"name":"T Scarborough","name_last_first":"Scarborough, T","first_name":"T","last_name":"Scarborough"},{"name":"Z Wu","name_last_first":"Wu, Z","first_name":"Z","last_name":"Wu"},{"name":"O Charaf","name_last_first":"Charaf, O","first_name":"O","last_name":"Charaf"},{"name":"SI Cooper","name_last_first":"Cooper, SI","first_name":"SI","last_name":"Cooper"},{"name":"C Henderson","name_last_first":"Henderson, C","first_name":"C","last_name":"Henderson"},{"name":"P Rumerio","name_last_first":"Rumerio, P","first_name":"P","last_name":"Rumerio"},{"name":"A Avetisyan","name_last_first":"Avetisyan, A","first_name":"A","last_name":"Avetisyan"},{"name":"T Bose","name_last_first":"Bose, T","first_name":"T","last_name":"Bose"},{"name":"C Fantasia","name_last_first":"Fantasia, C","first_name":"C","last_name":"Fantasia"},{"name":"P Lawson","name_last_first":"Lawson, P","first_name":"P","last_name":"Lawson"},{"name":"C Richardson","name_last_first":"Richardson, C","first_name":"C","last_name":"Richardson"},{"name":"J Rohlf","name_last_first":"Rohlf, J","first_name":"J","last_name":"Rohlf"},{"name":"JS John","name_last_first":"John, JS","first_name":"JS","last_name":"John"},{"name":"L Sulak","name_last_first":"Sulak, L","first_name":"L","last_name":"Sulak"},{"name":"J Alimena","name_last_first":"Alimena, J","first_name":"J","last_name":"Alimena"},{"name":"E Berry","name_last_first":"Berry, E","first_name":"E","last_name":"Berry"},{"name":"S Bhattacharya","name_last_first":"Bhattacharya, S","first_name":"S","last_name":"Bhattacharya"},{"name":"G Christopher","name_last_first":"Christopher, G","first_name":"G","last_name":"Christopher"},{"name":"D Cutts","name_last_first":"Cutts, D","first_name":"D","last_name":"Cutts"},{"name":"Z Demiragli","name_last_first":"Demiragli, Z","first_name":"Z","last_name":"Demiragli"},{"name":"N Dhingra","name_last_first":"Dhingra, N","first_name":"N","last_name":"Dhingra"},{"name":"A Ferapontov","name_last_first":"Ferapontov, A","first_name":"A","last_name":"Ferapontov"},{"name":"A Garabedian","name_last_first":"Garabedian, A","first_name":"A","last_name":"Garabedian"},{"name":"U Heintz","name_last_first":"Heintz, U","first_name":"U","last_name":"Heintz"},{"name":"G Kukartsev","name_last_first":"Kukartsev, G","first_name":"G","last_name":"Kukartsev"},{"name":"E Laird","name_last_first":"Laird, E","first_name":"E","last_name":"Laird"},{"name":"G Landsberg","name_last_first":"Landsberg, G","first_name":"G","last_name":"Landsberg"},{"name":"M Luk","name_last_first":"Luk, M","first_name":"M","last_name":"Luk"},{"name":"M Narain","name_last_first":"Narain, M","first_name":"M","last_name":"Narain"},{"name":"M Segala","name_last_first":"Segala, M","first_name":"M","last_name":"Segala"},{"name":"T Sinthuprasith","name_last_first":"Sinthuprasith, T","first_name":"T","last_name":"Sinthuprasith"},{"name":"T Speer","name_last_first":"Speer, T","first_name":"T","last_name":"Speer"},{"name":"J Swanson","name_last_first":"Swanson, J","first_name":"J","last_name":"Swanson"},{"name":"R Breedon","name_last_first":"Breedon, R","first_name":"R","last_name":"Breedon"},{"name":"G Breto","name_last_first":"Breto, G","first_name":"G","last_name":"Breto"},{"name":"MCD Sanchez","name_last_first":"Sanchez, MCD","first_name":"MCD","last_name":"Sanchez"},{"name":"S Chauhan","name_last_first":"Chauhan, S","first_name":"S","last_name":"Chauhan"},{"name":"M Chertok","name_last_first":"Chertok, M","first_name":"M","last_name":"Chertok"},{"name":"J Conway","name_last_first":"Conway, J","first_name":"J","last_name":"Conway"},{"name":"R Conway","name_last_first":"Conway, R","first_name":"R","last_name":"Conway"},{"name":"PT Cox","name_last_first":"Cox, PT","first_name":"PT","last_name":"Cox"},{"name":"R Erbacher","name_last_first":"Erbacher, R","first_name":"R","last_name":"Erbacher"},{"name":"M Gardner","name_last_first":"Gardner, M","first_name":"M","last_name":"Gardner"},{"name":"W Ko","name_last_first":"Ko, W","first_name":"W","last_name":"Ko"},{"name":"R Lander","name_last_first":"Lander, R","first_name":"R","last_name":"Lander"},{"name":"M Mulhearn","name_last_first":"Mulhearn, M","first_name":"M","last_name":"Mulhearn"},{"name":"D Pellett","name_last_first":"Pellett, D","first_name":"D","last_name":"Pellett"},{"name":"J Pilot","name_last_first":"Pilot, J","first_name":"J","last_name":"Pilot"},{"name":"F Ricci-Tam","name_last_first":"Ricci-Tam, F","first_name":"F","last_name":"Ricci-Tam"},{"name":"S Shalhout","name_last_first":"Shalhout, S","first_name":"S","last_name":"Shalhout"},{"name":"J Smith","name_last_first":"Smith, J","first_name":"J","last_name":"Smith"},{"name":"M Squires","name_last_first":"Squires, M","first_name":"M","last_name":"Squires"},{"name":"D Stolp","name_last_first":"Stolp, D","first_name":"D","last_name":"Stolp"},{"name":"M Tripathi","name_last_first":"Tripathi, M","first_name":"M","last_name":"Tripathi"},{"name":"S Wilbur","name_last_first":"Wilbur, S","first_name":"S","last_name":"Wilbur"},{"name":"R Yohay","name_last_first":"Yohay, R","first_name":"R","last_name":"Yohay"},{"name":"R Cousins","name_last_first":"Cousins, R","first_name":"R","last_name":"Cousins"},{"name":"P Everaerts","name_last_first":"Everaerts, P","first_name":"P","last_name":"Everaerts"},{"name":"C Farrell","name_last_first":"Farrell, C","first_name":"C","last_name":"Farrell"},{"name":"J Hauser","name_last_first":"Hauser, J","first_name":"J","last_name":"Hauser"},{"name":"M Ignatenko","name_last_first":"Ignatenko, M","first_name":"M","last_name":"Ignatenko"},{"name":"G Rakness","name_last_first":"Rakness, G","first_name":"G","last_name":"Rakness"},{"name":"E Takasugi","name_last_first":"Takasugi, E","first_name":"E","last_name":"Takasugi"},{"name":"V Valuev","name_last_first":"Valuev, V","first_name":"V","last_name":"Valuev"},{"name":"M Weber","name_last_first":"Weber, M","first_name":"M","last_name":"Weber"},{"name":"K Burt","name_last_first":"Burt, K","first_name":"K","last_name":"Burt"},{"name":"R Clare","name_last_first":"Clare, R","first_name":"R","last_name":"Clare"},{"name":"J Ellison","name_last_first":"Ellison, J","first_name":"J","last_name":"Ellison"},{"name":"JW Gary","name_last_first":"Gary, JW","first_name":"JW","last_name":"Gary"},{"name":"G Hanson","name_last_first":"Hanson, G","first_name":"G","last_name":"Hanson"},{"name":"J Heilman","name_last_first":"Heilman, J","first_name":"J","last_name":"Heilman"},{"name":"MI Rikova","name_last_first":"Rikova, MI","first_name":"MI","last_name":"Rikova"},{"name":"P Jandir","name_last_first":"Jandir, P","first_name":"P","last_name":"Jandir"},{"name":"E Kennedy","name_last_first":"Kennedy, E","first_name":"E","last_name":"Kennedy"},{"name":"F Lacroix","name_last_first":"Lacroix, F","first_name":"F","last_name":"Lacroix"},{"name":"OR Long","name_last_first":"Long, OR","first_name":"OR","last_name":"Long"},{"name":"A Luthra","name_last_first":"Luthra, A","first_name":"A","last_name":"Luthra"},{"name":"M Malberti","name_last_first":"Malberti, M","first_name":"M","last_name":"Malberti"},{"name":"MO Negrete","name_last_first":"Negrete, MO","first_name":"MO","last_name":"Negrete"},{"name":"A Shrinivas","name_last_first":"Shrinivas, A","first_name":"A","last_name":"Shrinivas"},{"name":"S Sumowidagdo","name_last_first":"Sumowidagdo, S","first_name":"S","last_name":"Sumowidagdo"},{"name":"S Wimpenny","name_last_first":"Wimpenny, S","first_name":"S","last_name":"Wimpenny"},{"name":"JG Branson","name_last_first":"Branson, JG","first_name":"JG","last_name":"Branson"},{"name":"GB Cerati","name_last_first":"Cerati, GB","first_name":"GB","last_name":"Cerati"},{"name":"S Cittolin","name_last_first":"Cittolin, S","first_name":"S","last_name":"Cittolin"},{"name":"RT D'Agnolo","name_last_first":"D'Agnolo, RT","first_name":"RT","last_name":"D'Agnolo"},{"name":"A Holzner","name_last_first":"Holzner, A","first_name":"A","last_name":"Holzner"},{"name":"R Kelley","name_last_first":"Kelley, R","first_name":"R","last_name":"Kelley"},{"name":"D Klein","name_last_first":"Klein, D","first_name":"D","last_name":"Klein"},{"name":"J Letts","name_last_first":"Letts, J","first_name":"J","last_name":"Letts"},{"name":"I Macneill","name_last_first":"Macneill, I","first_name":"I","last_name":"Macneill"},{"name":"D Olivito","name_last_first":"Olivito, D","first_name":"D","last_name":"Olivito"},{"name":"S Padhi","name_last_first":"Padhi, S","first_name":"S","last_name":"Padhi"},{"name":"C Palmer","name_last_first":"Palmer, C","first_name":"C","last_name":"Palmer"},{"name":"M Pieri","name_last_first":"Pieri, M","first_name":"M","last_name":"Pieri"},{"name":"M Sani","name_last_first":"Sani, M","first_name":"M","last_name":"Sani"},{"name":"V Sharma","name_last_first":"Sharma, V","first_name":"V","last_name":"Sharma"},{"name":"S Simon","name_last_first":"Simon, S","first_name":"S","last_name":"Simon"},{"name":"M Tadel","name_last_first":"Tadel, M","first_name":"M","last_name":"Tadel"},{"name":"Y Tu","name_last_first":"Tu, Y","first_name":"Y","last_name":"Tu"},{"name":"A Vartak","name_last_first":"Vartak, A","first_name":"A","last_name":"Vartak"},{"name":"C Welke","name_last_first":"Welke, C","first_name":"C","last_name":"Welke"},{"name":"F Wurthwein","name_last_first":"Wurthwein, F","first_name":"F","last_name":"Wurthwein"},{"name":"A Yagil","name_last_first":"Yagil, A","first_name":"A","last_name":"Yagil"},{"name":"GZ Della Porta","name_last_first":"Della Porta, GZ","first_name":"GZ","last_name":"Della Porta"},{"name":"D Barge","name_last_first":"Barge, D","first_name":"D","last_name":"Barge"},{"name":"J Bradmiller-Feld","name_last_first":"Bradmiller-Feld, J","first_name":"J","last_name":"Bradmiller-Feld"},{"name":"C Campagnari","name_last_first":"Campagnari, C","first_name":"C","last_name":"Campagnari"},{"name":"T Danielson","name_last_first":"Danielson, T","first_name":"T","last_name":"Danielson"},{"name":"A Dishaw","name_last_first":"Dishaw, A","first_name":"A","last_name":"Dishaw"},{"name":"V Dutta","name_last_first":"Dutta, V","first_name":"V","last_name":"Dutta"},{"name":"K Flowers","name_last_first":"Flowers, K","first_name":"K","last_name":"Flowers"},{"name":"MF Sevilla","name_last_first":"Sevilla, MF","first_name":"MF","last_name":"Sevilla"},{"name":"P Geffert","name_last_first":"Geffert, P","first_name":"P","last_name":"Geffert"},{"name":"C George","name_last_first":"George, C","first_name":"C","last_name":"George"},{"name":"F Golf","name_last_first":"Golf, F","first_name":"F","last_name":"Golf"},{"name":"L Gouskos","name_last_first":"Gouskos, L","first_name":"L","last_name":"Gouskos"},{"name":"J Incandela","name_last_first":"Incandela, J","first_name":"J","last_name":"Incandela"},{"name":"C Justus","name_last_first":"Justus, C","first_name":"C","last_name":"Justus"},{"name":"N Mccoll","name_last_first":"Mccoll, N","first_name":"N","last_name":"Mccoll"},{"name":"SD Mullin","name_last_first":"Mullin, SD","first_name":"SD","last_name":"Mullin"},{"name":"J Richman","name_last_first":"Richman, J","first_name":"J","last_name":"Richman"},{"name":"D Stuart","name_last_first":"Stuart, D","first_name":"D","last_name":"Stuart"},{"name":"W To","name_last_first":"To, W","first_name":"W","last_name":"To"},{"name":"C West","name_last_first":"West, C","first_name":"C","last_name":"West"},{"name":"J Yoo","name_last_first":"Yoo, J","first_name":"J","last_name":"Yoo"},{"name":"A Apresyan","name_last_first":"Apresyan, A","first_name":"A","last_name":"Apresyan"},{"name":"A Bornheim","name_last_first":"Bornheim, A","first_name":"A","last_name":"Bornheim"},{"name":"J Bunn","name_last_first":"Bunn, J","first_name":"J","last_name":"Bunn"},{"name":"Y Chen","name_last_first":"Chen, Y","first_name":"Y","last_name":"Chen"},{"name":"J Duarte","name_last_first":"Duarte, J","first_name":"J","last_name":"Duarte"},{"name":"A Mott","name_last_first":"Mott, A","first_name":"A","last_name":"Mott"},{"name":"HB Newman","name_last_first":"Newman, HB","first_name":"HB","last_name":"Newman"},{"name":"C Pena","name_last_first":"Pena, C","first_name":"C","last_name":"Pena"},{"name":"M Pierini","name_last_first":"Pierini, M","first_name":"M","last_name":"Pierini"},{"name":"M Spiropulu","name_last_first":"Spiropulu, M","first_name":"M","last_name":"Spiropulu"},{"name":"JR Vlimant","name_last_first":"Vlimant, JR","first_name":"JR","last_name":"Vlimant"},{"name":"R Wilkinson","name_last_first":"Wilkinson, R","first_name":"R","last_name":"Wilkinson"},{"name":"S Xie","name_last_first":"Xie, S","first_name":"S","last_name":"Xie"},{"name":"RY Zhu","name_last_first":"Zhu, RY","first_name":"RY","last_name":"Zhu"},{"name":"V Azzolini","name_last_first":"Azzolini, V","first_name":"V","last_name":"Azzolini"},{"name":"A Calamba","name_last_first":"Calamba, A","first_name":"A","last_name":"Calamba"},{"name":"B Carlson","name_last_first":"Carlson, B","first_name":"B","last_name":"Carlson"},{"name":"T Ferguson","name_last_first":"Ferguson, T","first_name":"T","last_name":"Ferguson"},{"name":"Y Iiyama","name_last_first":"Iiyama, Y","first_name":"Y","last_name":"Iiyama"},{"name":"M Paulini","name_last_first":"Paulini, M","first_name":"M","last_name":"Paulini"},{"name":"J Russ","name_last_first":"Russ, J","first_name":"J","last_name":"Russ"},{"name":"H Vogel","name_last_first":"Vogel, H","first_name":"H","last_name":"Vogel"},{"name":"I Vorobiev","name_last_first":"Vorobiev, I","first_name":"I","last_name":"Vorobiev"},{"name":"JP Cumalat","name_last_first":"Cumalat, JP","first_name":"JP","last_name":"Cumalat"},{"name":"WT Ford","name_last_first":"Ford, WT","first_name":"WT","last_name":"Ford"},{"name":"A Gaz","name_last_first":"Gaz, A","first_name":"A","last_name":"Gaz"},{"name":"M Krohn","name_last_first":"Krohn, M","first_name":"M","last_name":"Krohn"},{"name":"EL Lopez","name_last_first":"Lopez, EL","first_name":"EL","last_name":"Lopez"},{"name":"U Nauenberg","name_last_first":"Nauenberg, U","first_name":"U","last_name":"Nauenberg"},{"name":"JG Smith","name_last_first":"Smith, JG","first_name":"JG","last_name":"Smith"},{"name":"K Stenson","name_last_first":"Stenson, K","first_name":"K","last_name":"Stenson"},{"name":"SR Wagner","name_last_first":"Wagner, SR","first_name":"SR","last_name":"Wagner"},{"name":"J Alexander","name_last_first":"Alexander, J","first_name":"J","last_name":"Alexander"},{"name":"A Chatterjee","name_last_first":"Chatterjee, A","first_name":"A","last_name":"Chatterjee"},{"name":"J Chaves","name_last_first":"Chaves, J","first_name":"J","last_name":"Chaves"},{"name":"J Chu","name_last_first":"Chu, J","first_name":"J","last_name":"Chu"},{"name":"S Dittmer","name_last_first":"Dittmer, S","first_name":"S","last_name":"Dittmer"},{"name":"N Eggert","name_last_first":"Eggert, N","first_name":"N","last_name":"Eggert"},{"name":"N Mirman","name_last_first":"Mirman, N","first_name":"N","last_name":"Mirman"},{"name":"GN Kaufman","name_last_first":"Kaufman, GN","first_name":"GN","last_name":"Kaufman"},{"name":"JR Patterson","name_last_first":"Patterson, JR","first_name":"JR","last_name":"Patterson"},{"name":"A Ryd","name_last_first":"Ryd, A","first_name":"A","last_name":"Ryd"},{"name":"E Salvati","name_last_first":"Salvati, E","first_name":"E","last_name":"Salvati"},{"name":"L Skinnari","name_last_first":"Skinnari, L","first_name":"L","last_name":"Skinnari"},{"name":"W Sun","name_last_first":"Sun, W","first_name":"W","last_name":"Sun"},{"name":"WD Teo","name_last_first":"Teo, WD","first_name":"WD","last_name":"Teo"},{"name":"J Thom","name_last_first":"Thom, J","first_name":"J","last_name":"Thom"},{"name":"J Thompson","name_last_first":"Thompson, J","first_name":"J","last_name":"Thompson"},{"name":"J Tucker","name_last_first":"Tucker, J","first_name":"J","last_name":"Tucker"},{"name":"Y Weng","name_last_first":"Weng, Y","first_name":"Y","last_name":"Weng"},{"name":"L Winstrom","name_last_first":"Winstrom, L","first_name":"L","last_name":"Winstrom"},{"name":"P Wittich","name_last_first":"Wittich, P","first_name":"P","last_name":"Wittich"},{"name":"D Winn","name_last_first":"Winn, D","first_name":"D","last_name":"Winn"},{"name":"S Abdullin","name_last_first":"Abdullin, S","first_name":"S","last_name":"Abdullin"},{"name":"M Albrow","name_last_first":"Albrow, M","first_name":"M","last_name":"Albrow"},{"name":"J Anderson","name_last_first":"Anderson, J","first_name":"J","last_name":"Anderson"},{"name":"G Apollinari","name_last_first":"Apollinari, G","first_name":"G","last_name":"Apollinari"},{"name":"LAT Bauerdick","name_last_first":"Bauerdick, LAT","first_name":"LAT","last_name":"Bauerdick"},{"name":"A Beretvas","name_last_first":"Beretvas, A","first_name":"A","last_name":"Beretvas"},{"name":"J Berryhill","name_last_first":"Berryhill, J","first_name":"J","last_name":"Berryhill"},{"name":"PC Bhat","name_last_first":"Bhat, PC","first_name":"PC","last_name":"Bhat"},{"name":"G Bolla","name_last_first":"Bolla, G","first_name":"G","last_name":"Bolla"},{"name":"K Burkett","name_last_first":"Burkett, K","first_name":"K","last_name":"Burkett"},{"name":"JN Butler","name_last_first":"Butler, JN","first_name":"JN","last_name":"Butler"},{"name":"HWK Cheung","name_last_first":"Cheung, HWK","first_name":"HWK","last_name":"Cheung"},{"name":"F Chlebana","name_last_first":"Chlebana, F","first_name":"F","last_name":"Chlebana"},{"name":"S Cihangir","name_last_first":"Cihangir, S","first_name":"S","last_name":"Cihangir"},{"name":"VD Elvira","name_last_first":"Elvira, VD","first_name":"VD","last_name":"Elvira"},{"name":"I Fisk","name_last_first":"Fisk, I","first_name":"I","last_name":"Fisk"},{"name":"J Freeman","name_last_first":"Freeman, J","first_name":"J","last_name":"Freeman"},{"name":"E Gottschalk","name_last_first":"Gottschalk, E","first_name":"E","last_name":"Gottschalk"},{"name":"L Gray","name_last_first":"Gray, L","first_name":"L","last_name":"Gray"},{"name":"D Green","name_last_first":"Green, D","first_name":"D","last_name":"Green"},{"name":"S Grunendahl","name_last_first":"Grunendahl, S","first_name":"S","last_name":"Grunendahl"},{"name":"O Gutsche","name_last_first":"Gutsche, O","first_name":"O","last_name":"Gutsche"},{"name":"J Hanlon","name_last_first":"Hanlon, J","first_name":"J","last_name":"Hanlon"},{"name":"D Hare","name_last_first":"Hare, D","first_name":"D","last_name":"Hare"},{"name":"RM Harris","name_last_first":"Harris, RM","first_name":"RM","last_name":"Harris"},{"name":"J Hirschauer","name_last_first":"Hirschauer, J","first_name":"J","last_name":"Hirschauer"},{"name":"B Hooberman","name_last_first":"Hooberman, B","first_name":"B","last_name":"Hooberman"},{"name":"S Jindariani","name_last_first":"Jindariani, S","first_name":"S","last_name":"Jindariani"},{"name":"M Johnson","name_last_first":"Johnson, M","first_name":"M","last_name":"Johnson"},{"name":"U Joshi","name_last_first":"Joshi, U","first_name":"U","last_name":"Joshi"},{"name":"B Klima","name_last_first":"Klima, B","first_name":"B","last_name":"Klima"},{"name":"B Kreis","name_last_first":"Kreis, B","first_name":"B","last_name":"Kreis"},{"name":"S Kwan","name_last_first":"Kwan, S","first_name":"S","last_name":"Kwan"},{"name":"J Linacre","name_last_first":"Linacre, J","first_name":"J","last_name":"Linacre"},{"name":"D Lincoln","name_last_first":"Lincoln, D","first_name":"D","last_name":"Lincoln"},{"name":"R Lipton","name_last_first":"Lipton, R","first_name":"R","last_name":"Lipton"},{"name":"T Liu","name_last_first":"Liu, T","first_name":"T","last_name":"Liu"},{"name":"J Lykken","name_last_first":"Lykken, J","first_name":"J","last_name":"Lykken"},{"name":"K Maeshima","name_last_first":"Maeshima, K","first_name":"K","last_name":"Maeshima"},{"name":"JM Marraffino","name_last_first":"Marraffino, JM","first_name":"JM","last_name":"Marraffino"},{"name":"VIM Outschoorn","name_last_first":"Outschoorn, VIM","first_name":"VIM","last_name":"Outschoorn"},{"name":"S Maruyama","name_last_first":"Maruyama, S","first_name":"S","last_name":"Maruyama"},{"name":"D Mason","name_last_first":"Mason, D","first_name":"D","last_name":"Mason"},{"name":"P McBride","name_last_first":"McBride, P","first_name":"P","last_name":"McBride"},{"name":"P Merkel","name_last_first":"Merkel, P","first_name":"P","last_name":"Merkel"},{"name":"K Mishra","name_last_first":"Mishra, K","first_name":"K","last_name":"Mishra"},{"name":"S Mrenna","name_last_first":"Mrenna, S","first_name":"S","last_name":"Mrenna"},{"name":"S Nahn","name_last_first":"Nahn, S","first_name":"S","last_name":"Nahn"},{"name":"C Newman-Holmes","name_last_first":"Newman-Holmes, C","first_name":"C","last_name":"Newman-Holmes"},{"name":"V O'Dell","name_last_first":"O'Dell, V","first_name":"V","last_name":"O'Dell"},{"name":"O Prokofyev","name_last_first":"Prokofyev, O","first_name":"O","last_name":"Prokofyev"},{"name":"E Sexton-Kennedy","name_last_first":"Sexton-Kennedy, E","first_name":"E","last_name":"Sexton-Kennedy"},{"name":"A Soha","name_last_first":"Soha, A","first_name":"A","last_name":"Soha"},{"name":"WJ Spalding","name_last_first":"Spalding, WJ","first_name":"WJ","last_name":"Spalding"},{"name":"L Spiegel","name_last_first":"Spiegel, L","first_name":"L","last_name":"Spiegel"},{"name":"L Taylor","name_last_first":"Taylor, L","first_name":"L","last_name":"Taylor"},{"name":"S Tkaczyk","name_last_first":"Tkaczyk, S","first_name":"S","last_name":"Tkaczyk"},{"name":"NV Tran","name_last_first":"Tran, NV","first_name":"NV","last_name":"Tran"},{"name":"L Uplegger","name_last_first":"Uplegger, L","first_name":"L","last_name":"Uplegger"},{"name":"EW Vaandering","name_last_first":"Vaandering, EW","first_name":"EW","last_name":"Vaandering"},{"name":"R Vidal","name_last_first":"Vidal, R","first_name":"R","last_name":"Vidal"},{"name":"A Whitbeck","name_last_first":"Whitbeck, A","first_name":"A","last_name":"Whitbeck"},{"name":"J Whitmore","name_last_first":"Whitmore, J","first_name":"J","last_name":"Whitmore"},{"name":"F Yang","name_last_first":"Yang, F","first_name":"F","last_name":"Yang"},{"name":"D Acosta","name_last_first":"Acosta, D","first_name":"D","last_name":"Acosta"},{"name":"P Avery","name_last_first":"Avery, P","first_name":"P","last_name":"Avery"},{"name":"P Bortignon","name_last_first":"Bortignon, P","first_name":"P","last_name":"Bortignon"},{"name":"D Bourilkov","name_last_first":"Bourilkov, D","first_name":"D","last_name":"Bourilkov"},{"name":"M Carver","name_last_first":"Carver, M","first_name":"M","last_name":"Carver"},{"name":"D Curry","name_last_first":"Curry, D","first_name":"D","last_name":"Curry"},{"name":"S Das","name_last_first":"Das, S","first_name":"S","last_name":"Das"},{"name":"M De Gruttola","name_last_first":"De Gruttola, M","first_name":"M","last_name":"De Gruttola"},{"name":"GP Di Giovanni","name_last_first":"Di Giovanni, GP","first_name":"GP","last_name":"Di Giovanni"},{"name":"RD Field","name_last_first":"Field, RD","first_name":"RD","last_name":"Field"},{"name":"M Fisher","name_last_first":"Fisher, M","first_name":"M","last_name":"Fisher"},{"name":"IK Furic","name_last_first":"Furic, IK","first_name":"IK","last_name":"Furic"},{"name":"J Hugon","name_last_first":"Hugon, J","first_name":"J","last_name":"Hugon"},{"name":"J Konigsberg","name_last_first":"Konigsberg, J","first_name":"J","last_name":"Konigsberg"},{"name":"A Korytov","name_last_first":"Korytov, A","first_name":"A","last_name":"Korytov"},{"name":"T Kypreos","name_last_first":"Kypreos, T","first_name":"T","last_name":"Kypreos"},{"name":"JF Low","name_last_first":"Low, JF","first_name":"JF","last_name":"Low"},{"name":"K Matchev","name_last_first":"Matchev, K","first_name":"K","last_name":"Matchev"},{"name":"H Mei","name_last_first":"Mei, H","first_name":"H","last_name":"Mei"},{"name":"P Milenovic","name_last_first":"Milenovic, P","first_name":"P","last_name":"Milenovic"},{"name":"G Mitselmakher","name_last_first":"Mitselmakher, G","first_name":"G","last_name":"Mitselmakher"},{"name":"L Muniz","name_last_first":"Muniz, L","first_name":"L","last_name":"Muniz"},{"name":"A Rinkevicius","name_last_first":"Rinkevicius, A","first_name":"A","last_name":"Rinkevicius"},{"name":"L Shchutska","name_last_first":"Shchutska, L","first_name":"L","last_name":"Shchutska"},{"name":"M Snowball","name_last_first":"Snowball, M","first_name":"M","last_name":"Snowball"},{"name":"D Sperka","name_last_first":"Sperka, D","first_name":"D","last_name":"Sperka"},{"name":"J Yelton","name_last_first":"Yelton, J","first_name":"J","last_name":"Yelton"},{"name":"M Zakaria","name_last_first":"Zakaria, M","first_name":"M","last_name":"Zakaria"},{"name":"S Hewamanage","name_last_first":"Hewamanage, S","first_name":"S","last_name":"Hewamanage"},{"name":"S Linn","name_last_first":"Linn, S","first_name":"S","last_name":"Linn"},{"name":"P Markowitz","name_last_first":"Markowitz, P","first_name":"P","last_name":"Markowitz"},{"name":"G Martinez","name_last_first":"Martinez, G","first_name":"G","last_name":"Martinez"},{"name":"JL Rodriguez","name_last_first":"Rodriguez, JL","first_name":"JL","last_name":"Rodriguez"},{"name":"JR Adams","name_last_first":"Adams, JR","first_name":"JR","last_name":"Adams"},{"name":"T Adams","name_last_first":"Adams, T","first_name":"T","last_name":"Adams"},{"name":"A Askew","name_last_first":"Askew, A","first_name":"A","last_name":"Askew"},{"name":"J Bochenek","name_last_first":"Bochenek, J","first_name":"J","last_name":"Bochenek"},{"name":"B Diamond","name_last_first":"Diamond, B","first_name":"B","last_name":"Diamond"},{"name":"J Haas","name_last_first":"Haas, J","first_name":"J","last_name":"Haas"},{"name":"S Hagopian","name_last_first":"Hagopian, S","first_name":"S","last_name":"Hagopian"},{"name":"V Hagopian","name_last_first":"Hagopian, V","first_name":"V","last_name":"Hagopian"},{"name":"KF Johnson","name_last_first":"Johnson, KF","first_name":"KF","last_name":"Johnson"},{"name":"H Prosper","name_last_first":"Prosper, H","first_name":"H","last_name":"Prosper"},{"name":"V Veeraraghavan","name_last_first":"Veeraraghavan, V","first_name":"V","last_name":"Veeraraghavan"},{"name":"M Weinberg","name_last_first":"Weinberg, M","first_name":"M","last_name":"Weinberg"},{"name":"MM Baarmand","name_last_first":"Baarmand, MM","first_name":"MM","last_name":"Baarmand"},{"name":"M Hohlmann","name_last_first":"Hohlmann, M","first_name":"M","last_name":"Hohlmann"},{"name":"H Kalakhety","name_last_first":"Kalakhety, H","first_name":"H","last_name":"Kalakhety"},{"name":"F Yumiceva","name_last_first":"Yumiceva, F","first_name":"F","last_name":"Yumiceva"},{"name":"MR Adams","name_last_first":"Adams, MR","first_name":"MR","last_name":"Adams"},{"name":"L Apanasevich","name_last_first":"Apanasevich, L","first_name":"L","last_name":"Apanasevich"},{"name":"D Berry","name_last_first":"Berry, D","first_name":"D","last_name":"Berry"},{"name":"RR Betts","name_last_first":"Betts, RR","first_name":"RR","last_name":"Betts"},{"name":"I Bucinskaite","name_last_first":"Bucinskaite, I","first_name":"I","last_name":"Bucinskaite"},{"name":"R Cavanaugh","name_last_first":"Cavanaugh, R","first_name":"R","last_name":"Cavanaugh"},{"name":"O Evdokimov","name_last_first":"Evdokimov, O","first_name":"O","last_name":"Evdokimov"},{"name":"L Gauthier","name_last_first":"Gauthier, L","first_name":"L","last_name":"Gauthier"},{"name":"CE Gerber","name_last_first":"Gerber, CE","first_name":"CE","last_name":"Gerber"},{"name":"DJ Hofman","name_last_first":"Hofman, DJ","first_name":"DJ","last_name":"Hofman"},{"name":"P Kurt","name_last_first":"Kurt, P","first_name":"P","last_name":"Kurt"},{"name":"C O'Brien","name_last_first":"O'Brien, C","first_name":"C","last_name":"O'Brien"},{"name":"IDS Gonzalez","name_last_first":"Gonzalez, IDS","first_name":"IDS","last_name":"Gonzalez"},{"name":"C Silkworth","name_last_first":"Silkworth, C","first_name":"C","last_name":"Silkworth"},{"name":"P Turner","name_last_first":"Turner, P","first_name":"P","last_name":"Turner"},{"name":"N Varelas","name_last_first":"Varelas, N","first_name":"N","last_name":"Varelas"},{"name":"B Bilki","name_last_first":"Bilki, B","first_name":"B","last_name":"Bilki"},{"name":"W Clarida","name_last_first":"Clarida, W","first_name":"W","last_name":"Clarida"},{"name":"K Dilsiz","name_last_first":"Dilsiz, K","first_name":"K","last_name":"Dilsiz"},{"name":"M Haytmyradov","name_last_first":"Haytmyradov, M","first_name":"M","last_name":"Haytmyradov"},{"name":"JP Merlo","name_last_first":"Merlo, JP","first_name":"JP","last_name":"Merlo"},{"name":"H Mermerkaya","name_last_first":"Mermerkaya, H","first_name":"H","last_name":"Mermerkaya"},{"name":"A Mestvirishvili","name_last_first":"Mestvirishvili, A","first_name":"A","last_name":"Mestvirishvili"},{"name":"A Moeller","name_last_first":"Moeller, A","first_name":"A","last_name":"Moeller"},{"name":"J Nachtman","name_last_first":"Nachtman, J","first_name":"J","last_name":"Nachtman"},{"name":"H Ogul","name_last_first":"Ogul, H","first_name":"H","last_name":"Ogul"},{"name":"Y Onel","name_last_first":"Onel, Y","first_name":"Y","last_name":"Onel"},{"name":"F Ozok","name_last_first":"Ozok, F","first_name":"F","last_name":"Ozok"},{"name":"A Penzo","name_last_first":"Penzo, A","first_name":"A","last_name":"Penzo"},{"name":"R Rahmat","name_last_first":"Rahmat, R","first_name":"R","last_name":"Rahmat"},{"name":"S Sen","name_last_first":"Sen, S","first_name":"S","last_name":"Sen"},{"name":"P Tan","name_last_first":"Tan, P","first_name":"P","last_name":"Tan"},{"name":"E Tiras","name_last_first":"Tiras, E","first_name":"E","last_name":"Tiras"},{"name":"J Wetzel","name_last_first":"Wetzel, J","first_name":"J","last_name":"Wetzel"},{"name":"K Yi","name_last_first":"Yi, K","first_name":"K","last_name":"Yi"},{"name":"I Anderson","name_last_first":"Anderson, I","first_name":"I","last_name":"Anderson"},{"name":"BA Barnett","name_last_first":"Barnett, BA","first_name":"BA","last_name":"Barnett"},{"name":"B Blumenfeld","name_last_first":"Blumenfeld, B","first_name":"B","last_name":"Blumenfeld"},{"name":"S Bolognesi","name_last_first":"Bolognesi, S","first_name":"S","last_name":"Bolognesi"},{"name":"D Fehling","name_last_first":"Fehling, D","first_name":"D","last_name":"Fehling"},{"name":"AV Gritsan","name_last_first":"Gritsan, AV","first_name":"AV","last_name":"Gritsan"},{"name":"P Maksimovic","name_last_first":"Maksimovic, P","first_name":"P","last_name":"Maksimovic"},{"name":"C Martin","name_last_first":"Martin, C","first_name":"C","last_name":"Martin"},{"name":"M Swartz","name_last_first":"Swartz, M","first_name":"M","last_name":"Swartz"},{"name":"M Xiao","name_last_first":"Xiao, M","first_name":"M","last_name":"Xiao"},{"name":"P Baringer","name_last_first":"Baringer, P","first_name":"P","last_name":"Baringer"},{"name":"A Bean","name_last_first":"Bean, A","first_name":"A","last_name":"Bean"},{"name":"G Benelli","name_last_first":"Benelli, G","first_name":"G","last_name":"Benelli"},{"name":"C Bruner","name_last_first":"Bruner, C","first_name":"C","last_name":"Bruner"},{"name":"J Gray","name_last_first":"Gray, J","first_name":"J","last_name":"Gray"},{"name":"RP Kenny","name_last_first":"Kenny, RP","first_name":"RP","last_name":"Kenny"},{"name":"D Majumder","name_last_first":"Majumder, D","first_name":"D","last_name":"Majumder"},{"name":"M Malek","name_last_first":"Malek, M","first_name":"M","last_name":"Malek"},{"name":"M Murray","name_last_first":"Murray, M","first_name":"M","last_name":"Murray"},{"name":"D Noonan","name_last_first":"Noonan, D","first_name":"D","last_name":"Noonan"},{"name":"S Sanders","name_last_first":"Sanders, S","first_name":"S","last_name":"Sanders"},{"name":"J Sekaric","name_last_first":"Sekaric, J","first_name":"J","last_name":"Sekaric"},{"name":"R Stringer","name_last_first":"Stringer, R","first_name":"R","last_name":"Stringer"},{"name":"Q Wang","name_last_first":"Wang, Q","first_name":"Q","last_name":"Wang"},{"name":"JS Wood","name_last_first":"Wood, JS","first_name":"JS","last_name":"Wood"},{"name":"I Chakaberia","name_last_first":"Chakaberia, I","first_name":"I","last_name":"Chakaberia"},{"name":"A Ivanov","name_last_first":"Ivanov, A","first_name":"A","last_name":"Ivanov"},{"name":"K Kaadze","name_last_first":"Kaadze, K","first_name":"K","last_name":"Kaadze"},{"name":"S Khalil","name_last_first":"Khalil, S","first_name":"S","last_name":"Khalil"},{"name":"M Makouski","name_last_first":"Makouski, M","first_name":"M","last_name":"Makouski"},{"name":"Y Maravin","name_last_first":"Maravin, Y","first_name":"Y","last_name":"Maravin"},{"name":"LK Saini","name_last_first":"Saini, LK","first_name":"LK","last_name":"Saini"},{"name":"N Skhirtladze","name_last_first":"Skhirtladze, N","first_name":"N","last_name":"Skhirtladze"},{"name":"I Svintradze","name_last_first":"Svintradze, I","first_name":"I","last_name":"Svintradze"},{"name":"J Gronberg","name_last_first":"Gronberg, J","first_name":"J","last_name":"Gronberg"},{"name":"D Lange","name_last_first":"Lange, D","first_name":"D","last_name":"Lange"},{"name":"F Rebassoo","name_last_first":"Rebassoo, F","first_name":"F","last_name":"Rebassoo"},{"name":"D Wright","name_last_first":"Wright, D","first_name":"D","last_name":"Wright"},{"name":"A Baden","name_last_first":"Baden, A","first_name":"A","last_name":"Baden"},{"name":"A Belloni","name_last_first":"Belloni, A","first_name":"A","last_name":"Belloni"},{"name":"B Calvert","name_last_first":"Calvert, B","first_name":"B","last_name":"Calvert"},{"name":"SC Eno","name_last_first":"Eno, SC","first_name":"SC","last_name":"Eno"},{"name":"JA Gomez","name_last_first":"Gomez, JA","first_name":"JA","last_name":"Gomez"},{"name":"NJ Hadley","name_last_first":"Hadley, NJ","first_name":"NJ","last_name":"Hadley"},{"name":"S Jabeen","name_last_first":"Jabeen, S","first_name":"S","last_name":"Jabeen"},{"name":"RG Kellogg","name_last_first":"Kellogg, RG","first_name":"RG","last_name":"Kellogg"},{"name":"T Kolberg","name_last_first":"Kolberg, T","first_name":"T","last_name":"Kolberg"},{"name":"Y Lu","name_last_first":"Lu, Y","first_name":"Y","last_name":"Lu"},{"name":"AC Mignerey","name_last_first":"Mignerey, AC","first_name":"AC","last_name":"Mignerey"},{"name":"K Pedro","name_last_first":"Pedro, K","first_name":"K","last_name":"Pedro"},{"name":"A Skuja","name_last_first":"Skuja, A","first_name":"A","last_name":"Skuja"},{"name":"MB Tonjes","name_last_first":"Tonjes, MB","first_name":"MB","last_name":"Tonjes"},{"name":"SC Tonwar","name_last_first":"Tonwar, SC","first_name":"SC","last_name":"Tonwar"},{"name":"A Apyan","name_last_first":"Apyan, A","first_name":"A","last_name":"Apyan"},{"name":"R Barbieri","name_last_first":"Barbieri, R","first_name":"R","last_name":"Barbieri"},{"name":"K Bierwagen","name_last_first":"Bierwagen, K","first_name":"K","last_name":"Bierwagen"},{"name":"W Busza","name_last_first":"Busza, W","first_name":"W","last_name":"Busza"},{"name":"IA Cali","name_last_first":"Cali, IA","first_name":"IA","last_name":"Cali"},{"name":"L Di Matteo","name_last_first":"Di Matteo, L","first_name":"L","last_name":"Di Matteo"},{"name":"GG Ceballos","name_last_first":"Ceballos, GG","first_name":"GG","last_name":"Ceballos"},{"name":"M Goncharov","name_last_first":"Goncharov, M","first_name":"M","last_name":"Goncharov"},{"name":"D Gulhan","name_last_first":"Gulhan, D","first_name":"D","last_name":"Gulhan"},{"name":"M Klute","name_last_first":"Klute, M","first_name":"M","last_name":"Klute"},{"name":"YS Lai","name_last_first":"Lai, YS","first_name":"YS","last_name":"Lai"},{"name":"YJ Lee","name_last_first":"Lee, YJ","first_name":"YJ","last_name":"Lee"},{"name":"A Levin","name_last_first":"Levin, A","first_name":"A","last_name":"Levin"},{"name":"PD Luckey","name_last_first":"Luckey, PD","first_name":"PD","last_name":"Luckey"},{"name":"C Paus","name_last_first":"Paus, C","first_name":"C","last_name":"Paus"},{"name":"D Ralph","name_last_first":"Ralph, D","first_name":"D","last_name":"Ralph"},{"name":"C Roland","name_last_first":"Roland, C","first_name":"C","last_name":"Roland"},{"name":"G Roland","name_last_first":"Roland, G","first_name":"G","last_name":"Roland"},{"name":"GSF Stephans","name_last_first":"Stephans, GSF","first_name":"GSF","last_name":"Stephans"},{"name":"K Sumorok","name_last_first":"Sumorok, K","first_name":"K","last_name":"Sumorok"},{"name":"D Velicanu","name_last_first":"Velicanu, D","first_name":"D","last_name":"Velicanu"},{"name":"J Veverka","name_last_first":"Veverka, J","first_name":"J","last_name":"Veverka"},{"name":"B Wyslouch","name_last_first":"Wyslouch, B","first_name":"B","last_name":"Wyslouch"},{"name":"M Yang","name_last_first":"Yang, M","first_name":"M","last_name":"Yang"},{"name":"M Zanetti","name_last_first":"Zanetti, M","first_name":"M","last_name":"Zanetti"},{"name":"V Zhukova","name_last_first":"Zhukova, V","first_name":"V","last_name":"Zhukova"},{"name":"B Dahmes","name_last_first":"Dahmes, B","first_name":"B","last_name":"Dahmes"},{"name":"A Gude","name_last_first":"Gude, A","first_name":"A","last_name":"Gude"},{"name":"SC Kao","name_last_first":"Kao, SC","first_name":"SC","last_name":"Kao"},{"name":"K Klapoetke","name_last_first":"Klapoetke, K","first_name":"K","last_name":"Klapoetke"},{"name":"Y Kubota","name_last_first":"Kubota, Y","first_name":"Y","last_name":"Kubota"},{"name":"J Mans","name_last_first":"Mans, J","first_name":"J","last_name":"Mans"},{"name":"S Nourbakhsh","name_last_first":"Nourbakhsh, S","first_name":"S","last_name":"Nourbakhsh"},{"name":"R Rusack","name_last_first":"Rusack, R","first_name":"R","last_name":"Rusack"},{"name":"A Singovsky","name_last_first":"Singovsky, A","first_name":"A","last_name":"Singovsky"},{"name":"N Tambe","name_last_first":"Tambe, N","first_name":"N","last_name":"Tambe"},{"name":"J Turkewitz","name_last_first":"Turkewitz, J","first_name":"J","last_name":"Turkewitz"},{"name":"JG Acosta","name_last_first":"Acosta, JG","first_name":"JG","last_name":"Acosta"},{"name":"S Oliveros","name_last_first":"Oliveros, S","first_name":"S","last_name":"Oliveros"},{"name":"E Avdeeva","name_last_first":"Avdeeva, E","first_name":"E","last_name":"Avdeeva"},{"name":"K Bloom","name_last_first":"Bloom, K","first_name":"K","last_name":"Bloom"},{"name":"S Bose","name_last_first":"Bose, S","first_name":"S","last_name":"Bose"},{"name":"DR Claes","name_last_first":"Claes, DR","first_name":"DR","last_name":"Claes"},{"name":"A Dominguez","name_last_first":"Dominguez, A","first_name":"A","last_name":"Dominguez"},{"name":"RG Suarez","name_last_first":"Suarez, RG","first_name":"RG","last_name":"Suarez"},{"name":"J Keller","name_last_first":"Keller, J","first_name":"J","last_name":"Keller"},{"name":"D Knowlton","name_last_first":"Knowlton, D","first_name":"D","last_name":"Knowlton"},{"name":"I Kravchenko","name_last_first":"Kravchenko, I","first_name":"I","last_name":"Kravchenko"},{"name":"J Lazo-Flores","name_last_first":"Lazo-Flores, J","first_name":"J","last_name":"Lazo-Flores"},{"name":"F Meier","name_last_first":"Meier, F","first_name":"F","last_name":"Meier"},{"name":"F Ratnikov","name_last_first":"Ratnikov, F","first_name":"F","last_name":"Ratnikov"},{"name":"GR Snow","name_last_first":"Snow, GR","first_name":"GR","last_name":"Snow"},{"name":"M Zvada","name_last_first":"Zvada, M","first_name":"M","last_name":"Zvada"},{"name":"G Alverson","name_last_first":"Alverson, G","first_name":"G","last_name":"Alverson"},{"name":"E Barberis","name_last_first":"Barberis, E","first_name":"E","last_name":"Barberis"},{"name":"D Baumgartel","name_last_first":"Baumgartel, D","first_name":"D","last_name":"Baumgartel"},{"name":"M Chasco","name_last_first":"Chasco, M","first_name":"M","last_name":"Chasco"},{"name":"A Massironi","name_last_first":"Massironi, A","first_name":"A","last_name":"Massironi"},{"name":"DM Morse","name_last_first":"Morse, DM","first_name":"DM","last_name":"Morse"},{"name":"D Nash","name_last_first":"Nash, D","first_name":"D","last_name":"Nash"},{"name":"T Orimoto","name_last_first":"Orimoto, T","first_name":"T","last_name":"Orimoto"},{"name":"D Trocino","name_last_first":"Trocino, D","first_name":"D","last_name":"Trocino"},{"name":"RJ Wang","name_last_first":"Wang, RJ","first_name":"RJ","last_name":"Wang"},{"name":"D Wood","name_last_first":"Wood, D","first_name":"D","last_name":"Wood"},{"name":"J Zhang","name_last_first":"Zhang, J","first_name":"J","last_name":"Zhang"},{"name":"KA Hahn","name_last_first":"Hahn, KA","first_name":"KA","last_name":"Hahn"},{"name":"A Kubik","name_last_first":"Kubik, A","first_name":"A","last_name":"Kubik"},{"name":"N Mucia","name_last_first":"Mucia, N","first_name":"N","last_name":"Mucia"},{"name":"N Odell","name_last_first":"Odell, N","first_name":"N","last_name":"Odell"},{"name":"B Pollack","name_last_first":"Pollack, B","first_name":"B","last_name":"Pollack"},{"name":"A Pozdnyakov","name_last_first":"Pozdnyakov, A","first_name":"A","last_name":"Pozdnyakov"},{"name":"M Schmitt","name_last_first":"Schmitt, M","first_name":"M","last_name":"Schmitt"},{"name":"S Stoynev","name_last_first":"Stoynev, S","first_name":"S","last_name":"Stoynev"},{"name":"K Sung","name_last_first":"Sung, K","first_name":"K","last_name":"Sung"},{"name":"M Velasco","name_last_first":"Velasco, M","first_name":"M","last_name":"Velasco"},{"name":"S Won","name_last_first":"Won, S","first_name":"S","last_name":"Won"},{"name":"A Brinkerhoff","name_last_first":"Brinkerhoff, A","first_name":"A","last_name":"Brinkerhoff"},{"name":"KM Chan","name_last_first":"Chan, KM","first_name":"KM","last_name":"Chan"},{"name":"A Drozdetskiy","name_last_first":"Drozdetskiy, A","first_name":"A","last_name":"Drozdetskiy"},{"name":"M Hildreth","name_last_first":"Hildreth, M","first_name":"M","last_name":"Hildreth"},{"name":"C Jessop","name_last_first":"Jessop, C","first_name":"C","last_name":"Jessop"},{"name":"DJ Karmgard","name_last_first":"Karmgard, DJ","first_name":"DJ","last_name":"Karmgard"},{"name":"N Kellams","name_last_first":"Kellams, N","first_name":"N","last_name":"Kellams"},{"name":"K Lannon","name_last_first":"Lannon, K","first_name":"K","last_name":"Lannon"},{"name":"S Lynch","name_last_first":"Lynch, S","first_name":"S","last_name":"Lynch"},{"name":"N Marinelli","name_last_first":"Marinelli, N","first_name":"N","last_name":"Marinelli"},{"name":"Y Musienko","name_last_first":"Musienko, Y","first_name":"Y","last_name":"Musienko"},{"name":"T Pearson","name_last_first":"Pearson, T","first_name":"T","last_name":"Pearson"},{"name":"M Planer","name_last_first":"Planer, M","first_name":"M","last_name":"Planer"},{"name":"R Ruchti","name_last_first":"Ruchti, R","first_name":"R","last_name":"Ruchti"},{"name":"G Smith","name_last_first":"Smith, G","first_name":"G","last_name":"Smith"},{"name":"N Valls","name_last_first":"Valls, N","first_name":"N","last_name":"Valls"},{"name":"M Wayne","name_last_first":"Wayne, M","first_name":"M","last_name":"Wayne"},{"name":"M Wolf","name_last_first":"Wolf, M","first_name":"M","last_name":"Wolf"},{"name":"A Woodard","name_last_first":"Woodard, A","first_name":"A","last_name":"Woodard"},{"name":"L Antonelli","name_last_first":"Antonelli, L","first_name":"L","last_name":"Antonelli"},{"name":"J Brinson","name_last_first":"Brinson, J","first_name":"J","last_name":"Brinson"},{"name":"B Bylsma","name_last_first":"Bylsma, B","first_name":"B","last_name":"Bylsma"},{"name":"LS Durkin","name_last_first":"Durkin, LS","first_name":"LS","last_name":"Durkin"},{"name":"S Flowers","name_last_first":"Flowers, S","first_name":"S","last_name":"Flowers"},{"name":"A Hart","name_last_first":"Hart, A","first_name":"A","last_name":"Hart"},{"name":"C Hill","name_last_first":"Hill, C","first_name":"C","last_name":"Hill"},{"name":"R Hughes","name_last_first":"Hughes, R","first_name":"R","last_name":"Hughes"},{"name":"K Kotov","name_last_first":"Kotov, K","first_name":"K","last_name":"Kotov"},{"name":"TY Ling","name_last_first":"Ling, TY","first_name":"TY","last_name":"Ling"},{"name":"W Luo","name_last_first":"Luo, W","first_name":"W","last_name":"Luo"},{"name":"D Puigh","name_last_first":"Puigh, D","first_name":"D","last_name":"Puigh"},{"name":"M Rodenburg","name_last_first":"Rodenburg, M","first_name":"M","last_name":"Rodenburg"},{"name":"BL Winer","name_last_first":"Winer, BL","first_name":"BL","last_name":"Winer"},{"name":"H Wolfe","name_last_first":"Wolfe, H","first_name":"H","last_name":"Wolfe"},{"name":"HW Wulsin","name_last_first":"Wulsin, HW","first_name":"HW","last_name":"Wulsin"},{"name":"O Driga","name_last_first":"Driga, O","first_name":"O","last_name":"Driga"},{"name":"P Elmer","name_last_first":"Elmer, P","first_name":"P","last_name":"Elmer"},{"name":"J Hardenbrook","name_last_first":"Hardenbrook, J","first_name":"J","last_name":"Hardenbrook"},{"name":"P Hebda","name_last_first":"Hebda, P","first_name":"P","last_name":"Hebda"},{"name":"SA Koay","name_last_first":"Koay, SA","first_name":"SA","last_name":"Koay"},{"name":"P Lujan","name_last_first":"Lujan, P","first_name":"P","last_name":"Lujan"},{"name":"D Marlow","name_last_first":"Marlow, D","first_name":"D","last_name":"Marlow"},{"name":"T Medvedeva","name_last_first":"Medvedeva, T","first_name":"T","last_name":"Medvedeva"},{"name":"M Mooney","name_last_first":"Mooney, M","first_name":"M","last_name":"Mooney"},{"name":"J Olsen","name_last_first":"Olsen, J","first_name":"J","last_name":"Olsen"},{"name":"P Piroue","name_last_first":"Piroue, P","first_name":"P","last_name":"Piroue"},{"name":"X Quan","name_last_first":"Quan, X","first_name":"X","last_name":"Quan"},{"name":"H Saka","name_last_first":"Saka, H","first_name":"H","last_name":"Saka"},{"name":"D Stickland","name_last_first":"Stickland, D","first_name":"D","last_name":"Stickland"},{"name":"C Tully","name_last_first":"Tully, C","first_name":"C","last_name":"Tully"},{"name":"JS Werner","name_last_first":"Werner, JS","first_name":"JS","last_name":"Werner"},{"name":"A Zuranski","name_last_first":"Zuranski, A","first_name":"A","last_name":"Zuranski"},{"name":"E Brownson","name_last_first":"Brownson, E","first_name":"E","last_name":"Brownson"},{"name":"S Malik","name_last_first":"Malik, S","first_name":"S","last_name":"Malik"},{"name":"H Mendez","name_last_first":"Mendez, H","first_name":"H","last_name":"Mendez"},{"name":"JER Vargas","name_last_first":"Vargas, JER","first_name":"JER","last_name":"Vargas"},{"name":"VE Barnes","name_last_first":"Barnes, VE","first_name":"VE","last_name":"Barnes"},{"name":"D Benedetti","name_last_first":"Benedetti, D","first_name":"D","last_name":"Benedetti"},{"name":"D Bortoletto","name_last_first":"Bortoletto, D","first_name":"D","last_name":"Bortoletto"},{"name":"M De Mattia","name_last_first":"De Mattia, M","first_name":"M","last_name":"De Mattia"},{"name":"L Gutay","name_last_first":"Gutay, L","first_name":"L","last_name":"Gutay"},{"name":"Z Hu","name_last_first":"Hu, Z","first_name":"Z","last_name":"Hu"},{"name":"MK Jha","name_last_first":"Jha, MK","first_name":"MK","last_name":"Jha"},{"name":"M Jones","name_last_first":"Jones, M","first_name":"M","last_name":"Jones"},{"name":"K Jung","name_last_first":"Jung, K","first_name":"K","last_name":"Jung"},{"name":"M Kress","name_last_first":"Kress, M","first_name":"M","last_name":"Kress"},{"name":"N Leonardo","name_last_first":"Leonardo, N","first_name":"N","last_name":"Leonardo"},{"name":"DH Miller","name_last_first":"Miller, DH","first_name":"DH","last_name":"Miller"},{"name":"N Neumeister","name_last_first":"Neumeister, N","first_name":"N","last_name":"Neumeister"},{"name":"F Primavera","name_last_first":"Primavera, F","first_name":"F","last_name":"Primavera"},{"name":"BC Radburn-Smith","name_last_first":"Radburn-Smith, BC","first_name":"BC","last_name":"Radburn-Smith"},{"name":"X Shi","name_last_first":"Shi, X","first_name":"X","last_name":"Shi"},{"name":"I Shipsey","name_last_first":"Shipsey, I","first_name":"I","last_name":"Shipsey"},{"name":"D Silvers","name_last_first":"Silvers, D","first_name":"D","last_name":"Silvers"},{"name":"A Svyatkovskiy","name_last_first":"Svyatkovskiy, A","first_name":"A","last_name":"Svyatkovskiy"},{"name":"F Wang","name_last_first":"Wang, F","first_name":"F","last_name":"Wang"},{"name":"W Xie","name_last_first":"Xie, W","first_name":"W","last_name":"Xie"},{"name":"L Xu","name_last_first":"Xu, L","first_name":"L","last_name":"Xu"},{"name":"J Zablocki","name_last_first":"Zablocki, J","first_name":"J","last_name":"Zablocki"},{"name":"N Parashar","name_last_first":"Parashar, N","first_name":"N","last_name":"Parashar"},{"name":"J Stupak","name_last_first":"Stupak, J","first_name":"J","last_name":"Stupak"},{"name":"A Adair","name_last_first":"Adair, A","first_name":"A","last_name":"Adair"},{"name":"B Akgun","name_last_first":"Akgun, B","first_name":"B","last_name":"Akgun"},{"name":"KM Ecklund","name_last_first":"Ecklund, KM","first_name":"KM","last_name":"Ecklund"},{"name":"FJM Geurts","name_last_first":"Geurts, FJM","first_name":"FJM","last_name":"Geurts"},{"name":"W Li","name_last_first":"Li, W","first_name":"W","last_name":"Li"},{"name":"B Michlin","name_last_first":"Michlin, B","first_name":"B","last_name":"Michlin"},{"name":"BP Padley","name_last_first":"Padley, BP","first_name":"BP","last_name":"Padley"},{"name":"R Redjimi","name_last_first":"Redjimi, R","first_name":"R","last_name":"Redjimi"},{"name":"J Roberts","name_last_first":"Roberts, J","first_name":"J","last_name":"Roberts"},{"name":"J Zabel","name_last_first":"Zabel, J","first_name":"J","last_name":"Zabel"},{"name":"B Betchart","name_last_first":"Betchart, B","first_name":"B","last_name":"Betchart"},{"name":"A Bodek","name_last_first":"Bodek, A","first_name":"A","last_name":"Bodek"},{"name":"P de Barbaro","name_last_first":"de Barbaro, P","first_name":"P","last_name":"de Barbaro"},{"name":"R Demina","name_last_first":"Demina, R","first_name":"R","last_name":"Demina"},{"name":"Y Eshaq","name_last_first":"Eshaq, Y","first_name":"Y","last_name":"Eshaq"},{"name":"T Ferbel","name_last_first":"Ferbel, T","first_name":"T","last_name":"Ferbel"},{"name":"M Galanti","name_last_first":"Galanti, M","first_name":"M","last_name":"Galanti"},{"name":"A Garcia-Bellido","name_last_first":"Garcia-Bellido, A","first_name":"A","last_name":"Garcia-Bellido"},{"name":"P Goldenzweig","name_last_first":"Goldenzweig, P","first_name":"P","last_name":"Goldenzweig"},{"name":"J Han","name_last_first":"Han, J","first_name":"J","last_name":"Han"},{"name":"A Harel","name_last_first":"Harel, A","first_name":"A","last_name":"Harel"},{"name":"O Hindrichs","name_last_first":"Hindrichs, O","first_name":"O","last_name":"Hindrichs"},{"name":"A Khukhunaishvili","name_last_first":"Khukhunaishvili, A","first_name":"A","last_name":"Khukhunaishvili"},{"name":"S Korjenevski","name_last_first":"Korjenevski, S","first_name":"S","last_name":"Korjenevski"},{"name":"G Petrillo","name_last_first":"Petrillo, G","first_name":"G","last_name":"Petrillo"},{"name":"D Vishnevskiy","name_last_first":"Vishnevskiy, D","first_name":"D","last_name":"Vishnevskiy"},{"name":"R Ciesielski","name_last_first":"Ciesielski, R","first_name":"R","last_name":"Ciesielski"},{"name":"L Demortier","name_last_first":"Demortier, L","first_name":"L","last_name":"Demortier"},{"name":"K Goulianos","name_last_first":"Goulianos, K","first_name":"K","last_name":"Goulianos"},{"name":"C Mesropian","name_last_first":"Mesropian, C","first_name":"C","last_name":"Mesropian"},{"name":"S Arora","name_last_first":"Arora, S","first_name":"S","last_name":"Arora"},{"name":"A Barker","name_last_first":"Barker, A","first_name":"A","last_name":"Barker"},{"name":"JP Chou","name_last_first":"Chou, JP","first_name":"JP","last_name":"Chou"},{"name":"C Contreras-Campana","name_last_first":"Contreras-Campana, C","first_name":"C","last_name":"Contreras-Campana"},{"name":"E Contreras-Campana","name_last_first":"Contreras-Campana, E","first_name":"E","last_name":"Contreras-Campana"},{"name":"D Duggan","name_last_first":"Duggan, D","first_name":"D","last_name":"Duggan"},{"name":"D Ferencek","name_last_first":"Ferencek, D","first_name":"D","last_name":"Ferencek"},{"name":"Y Gershtein","name_last_first":"Gershtein, Y","first_name":"Y","last_name":"Gershtein"},{"name":"R Gray","name_last_first":"Gray, R","first_name":"R","last_name":"Gray"},{"name":"E Halkiadakis","name_last_first":"Halkiadakis, E","first_name":"E","last_name":"Halkiadakis"},{"name":"D Hidas","name_last_first":"Hidas, D","first_name":"D","last_name":"Hidas"},{"name":"S Kaplan","name_last_first":"Kaplan, S","first_name":"S","last_name":"Kaplan"},{"name":"A Lath","name_last_first":"Lath, A","first_name":"A","last_name":"Lath"},{"name":"S Panwalkar","name_last_first":"Panwalkar, S","first_name":"S","last_name":"Panwalkar"},{"name":"M Park","name_last_first":"Park, M","first_name":"M","last_name":"Park"},{"name":"R Patel","name_last_first":"Patel, R","first_name":"R","last_name":"Patel"},{"name":"S Salur","name_last_first":"Salur, S","first_name":"S","last_name":"Salur"},{"name":"S Schnetzer","name_last_first":"Schnetzer, S","first_name":"S","last_name":"Schnetzer"},{"name":"D Sheffield","name_last_first":"Sheffield, D","first_name":"D","last_name":"Sheffield"},{"name":"S Somalwar","name_last_first":"Somalwar, S","first_name":"S","last_name":"Somalwar"},{"name":"R Stone","name_last_first":"Stone, R","first_name":"R","last_name":"Stone"},{"name":"S Thomas","name_last_first":"Thomas, S","first_name":"S","last_name":"Thomas"},{"name":"P Thomassen","name_last_first":"Thomassen, P","first_name":"P","last_name":"Thomassen"},{"name":"M Walker","name_last_first":"Walker, M","first_name":"M","last_name":"Walker"},{"name":"K Rose","name_last_first":"Rose, K","first_name":"K","last_name":"Rose"},{"name":"S Spanier","name_last_first":"Spanier, S","first_name":"S","last_name":"Spanier"},{"name":"A York","name_last_first":"York, A","first_name":"A","last_name":"York"},{"name":"O Bouhali","name_last_first":"Bouhali, O","first_name":"O","last_name":"Bouhali"},{"name":"AC Hernandez","name_last_first":"Hernandez, AC","first_name":"AC","last_name":"Hernandez"},{"name":"R Eusebi","name_last_first":"Eusebi, R","first_name":"R","last_name":"Eusebi"},{"name":"W Flanagan","name_last_first":"Flanagan, W","first_name":"W","last_name":"Flanagan"},{"name":"J Gilmore","name_last_first":"Gilmore, J","first_name":"J","last_name":"Gilmore"},{"name":"T Kamon","name_last_first":"Kamon, T","first_name":"T","last_name":"Kamon"},{"name":"V Khotilovich","name_last_first":"Khotilovich, V","first_name":"V","last_name":"Khotilovich"},{"name":"V Krutelyov","name_last_first":"Krutelyov, V","first_name":"V","last_name":"Krutelyov"},{"name":"R Montalvo","name_last_first":"Montalvo, R","first_name":"R","last_name":"Montalvo"},{"name":"I Osipenkov","name_last_first":"Osipenkov, I","first_name":"I","last_name":"Osipenkov"},{"name":"Y Pakhotin","name_last_first":"Pakhotin, Y","first_name":"Y","last_name":"Pakhotin"},{"name":"A Perloff","name_last_first":"Perloff, A","first_name":"A","last_name":"Perloff"},{"name":"J Roe","name_last_first":"Roe, J","first_name":"J","last_name":"Roe"},{"name":"A Rose","name_last_first":"Rose, A","first_name":"A","last_name":"Rose"},{"name":"A Safonov","name_last_first":"Safonov, A","first_name":"A","last_name":"Safonov"},{"name":"I Suarez","name_last_first":"Suarez, I","first_name":"I","last_name":"Suarez"},{"name":"A Tatarinov","name_last_first":"Tatarinov, A","first_name":"A","last_name":"Tatarinov"},{"name":"KA Ulmer","name_last_first":"Ulmer, KA","first_name":"KA","last_name":"Ulmer"},{"name":"N Akchurin","name_last_first":"Akchurin, N","first_name":"N","last_name":"Akchurin"},{"name":"C Cowden","name_last_first":"Cowden, C","first_name":"C","last_name":"Cowden"},{"name":"J Damgov","name_last_first":"Damgov, J","first_name":"J","last_name":"Damgov"},{"name":"C Dragoiu","name_last_first":"Dragoiu, C","first_name":"C","last_name":"Dragoiu"},{"name":"PR Dudero","name_last_first":"Dudero, PR","first_name":"PR","last_name":"Dudero"},{"name":"J Faulkner","name_last_first":"Faulkner, J","first_name":"J","last_name":"Faulkner"},{"name":"K Kovitanggoon","name_last_first":"Kovitanggoon, K","first_name":"K","last_name":"Kovitanggoon"},{"name":"S Kunori","name_last_first":"Kunori, S","first_name":"S","last_name":"Kunori"},{"name":"SW Lee","name_last_first":"Lee, SW","first_name":"SW","last_name":"Lee"},{"name":"T Libeiro","name_last_first":"Libeiro, T","first_name":"T","last_name":"Libeiro"},{"name":"I Volobouev","name_last_first":"Volobouev, I","first_name":"I","last_name":"Volobouev"},{"name":"E Appelt","name_last_first":"Appelt, E","first_name":"E","last_name":"Appelt"},{"name":"AG Delannoy","name_last_first":"Delannoy, AG","first_name":"AG","last_name":"Delannoy"},{"name":"S Greene","name_last_first":"Greene, S","first_name":"S","last_name":"Greene"},{"name":"A Gurrola","name_last_first":"Gurrola, A","first_name":"A","last_name":"Gurrola"},{"name":"W Johns","name_last_first":"Johns, W","first_name":"W","last_name":"Johns"},{"name":"C Maguire","name_last_first":"Maguire, C","first_name":"C","last_name":"Maguire"},{"name":"Y Mao","name_last_first":"Mao, Y","first_name":"Y","last_name":"Mao"},{"name":"A Melo","name_last_first":"Melo, A","first_name":"A","last_name":"Melo"},{"name":"M Sharma","name_last_first":"Sharma, M","first_name":"M","last_name":"Sharma"},{"name":"P Sheldon","name_last_first":"Sheldon, P","first_name":"P","last_name":"Sheldon"},{"name":"B Snook","name_last_first":"Snook, B","first_name":"B","last_name":"Snook"},{"name":"S Tuo","name_last_first":"Tuo, S","first_name":"S","last_name":"Tuo"},{"name":"J Velkovska","name_last_first":"Velkovska, J","first_name":"J","last_name":"Velkovska"},{"name":"MW Arenton","name_last_first":"Arenton, MW","first_name":"MW","last_name":"Arenton"},{"name":"S Boutle","name_last_first":"Boutle, S","first_name":"S","last_name":"Boutle"},{"name":"B Cox","name_last_first":"Cox, B","first_name":"B","last_name":"Cox"},{"name":"B Francis","name_last_first":"Francis, B","first_name":"B","last_name":"Francis"},{"name":"J Goodell","name_last_first":"Goodell, J","first_name":"J","last_name":"Goodell"},{"name":"R Hirosky","name_last_first":"Hirosky, R","first_name":"R","last_name":"Hirosky"},{"name":"A Ledovskoy","name_last_first":"Ledovskoy, A","first_name":"A","last_name":"Ledovskoy"},{"name":"H Li","name_last_first":"Li, H","first_name":"H","last_name":"Li"},{"name":"C Lin","name_last_first":"Lin, C","first_name":"C","last_name":"Lin"},{"name":"C Neu","name_last_first":"Neu, C","first_name":"C","last_name":"Neu"},{"name":"E Wolfe","name_last_first":"Wolfe, E","first_name":"E","last_name":"Wolfe"},{"name":"J Wood","name_last_first":"Wood, J","first_name":"J","last_name":"Wood"},{"name":"C Clarke","name_last_first":"Clarke, C","first_name":"C","last_name":"Clarke"},{"name":"R Harr","name_last_first":"Harr, R","first_name":"R","last_name":"Harr"},{"name":"PE Karchin","name_last_first":"Karchin, PE","first_name":"PE","last_name":"Karchin"},{"name":"CKK Don","name_last_first":"Don, CKK","first_name":"CKK","last_name":"Don"},{"name":"P Lamichhane","name_last_first":"Lamichhane, P","first_name":"P","last_name":"Lamichhane"},{"name":"J Sturdy","name_last_first":"Sturdy, J","first_name":"J","last_name":"Sturdy"},{"name":"DA Belknap","name_last_first":"Belknap, DA","first_name":"DA","last_name":"Belknap"},{"name":"D Carlsmith","name_last_first":"Carlsmith, D","first_name":"D","last_name":"Carlsmith"},{"name":"M Cepeda","name_last_first":"Cepeda, M","first_name":"M","last_name":"Cepeda"},{"name":"S Dasu","name_last_first":"Dasu, S","first_name":"S","last_name":"Dasu"},{"name":"L Dodd","name_last_first":"Dodd, L","first_name":"L","last_name":"Dodd"},{"name":"S Duric","name_last_first":"Duric, S","first_name":"S","last_name":"Duric"},{"name":"E Friis","name_last_first":"Friis, E","first_name":"E","last_name":"Friis"},{"name":"R Hall-Wilton","name_last_first":"Hall-Wilton, R","first_name":"R","last_name":"Hall-Wilton"},{"name":"M Herndon","name_last_first":"Herndon, M","first_name":"M","last_name":"Herndon"},{"name":"A Herve","name_last_first":"Herve, A","first_name":"A","last_name":"Herve"},{"name":"P Klabbers","name_last_first":"Klabbers, P","first_name":"P","last_name":"Klabbers"},{"name":"A Lanaro","name_last_first":"Lanaro, A","first_name":"A","last_name":"Lanaro"},{"name":"C Lazaridis","name_last_first":"Lazaridis, C","first_name":"C","last_name":"Lazaridis"},{"name":"A Levine","name_last_first":"Levine, A","first_name":"A","last_name":"Levine"},{"name":"R Loveless","name_last_first":"Loveless, R","first_name":"R","last_name":"Loveless"},{"name":"A Mohapatra","name_last_first":"Mohapatra, A","first_name":"A","last_name":"Mohapatra"},{"name":"I Ojalvo","name_last_first":"Ojalvo, I","first_name":"I","last_name":"Ojalvo"},{"name":"T Perry","name_last_first":"Perry, T","first_name":"T","last_name":"Perry"},{"name":"GA Pierro","name_last_first":"Pierro, GA","first_name":"GA","last_name":"Pierro"},{"name":"G Polese","name_last_first":"Polese, G","first_name":"G","last_name":"Polese"},{"name":"I Ross","name_last_first":"Ross, I","first_name":"I","last_name":"Ross"},{"name":"T Sarangi","name_last_first":"Sarangi, T","first_name":"T","last_name":"Sarangi"},{"name":"A Savin","name_last_first":"Savin, A","first_name":"A","last_name":"Savin"},{"name":"WH Smith","name_last_first":"Smith, WH","first_name":"WH","last_name":"Smith"},{"name":"D Taylor","name_last_first":"Taylor, D","first_name":"D","last_name":"Taylor"},{"name":"C Vuosalo","name_last_first":"Vuosalo, C","first_name":"C","last_name":"Vuosalo"},{"name":"N Woods","name_last_first":"Woods, N","first_name":"N","last_name":"Woods"}],"wos_id":"000353892300002","publisher":{"location":"AMSTERDAM","name":"ELSEVIER SCIENCE BV"},"cite":{"fwo":" <div class=\"csl-entry\">Khachatryan, V, AM Sirunyan, A Tumasyan, W Adam, T Bergauer, M Dragicevic, J Ero, M Friedl, R Fruhwirth, VM Ghete, C Hartl, N Hormann, J Hrubec, M Jeitler, W Kiesenhofer, V Knunz, M Krammer, I Kratschmer, D Liko, I Mikulec, D Rabady, B Rahbaran, H Rohringer, R Shofbeck, J Strauss, W Treberer-Treberspurg, W Waltenberger, CE Wulz, V Mossolov, N Shumeiko, J SuarezGonzalez, S Alderweireldt, S Bansal, T Cornelis, EA DeWolf, X Janssen, A Knutsson, J Lauwers, S Luyckx, S Ochesanu, R Rougny, MV De Klundert, H Van Haevermaet, P Van Mechelen, N Van Remortel, A Van Spilbeeck, F Blekman, S Blyweert, J D’Hondt, N Daci, N Heracleous, J Keaveney, S Lowette, M Maes, A Olbrechts, Q Python, D Strom, S Tavernier, W Van Doninck, P Van Mulders, GP Van Onsem, I Villella, C Caillol, B Clerbaux, G De Lentdecker, D Dobur, L Favart, APR Gay, A Grebenyuk, A Leonard, A Mohammadi, L Pernie, A Randle-Conde, T Reis, T Seva, L Thomas, C van derVelde, P van Laer, J Wang, F Zenoni, Volker Adler, Kelly Beernaert, Leonardo Benucci, Anna Cimmino, Silvia Costantini, Shannon Rebecca Crucy, Sven Dildick, Alexis Fagot, Guillaume Garcia, Joseph McCartin, Alberto Andres Ocampo Rios, Deniz Poyraz, Dirk Ryckbosch, Michael Sigamani, Nadja Strobbe, Filip Thyssen, Michael Tytgat, Efe Yazgan, Nikolaos Zaganidis, S Basegmez, C Beluffi, G Bruno, R Castello, A Caudron, L Ceard, GG Da Silveira, C Delaere, T du Pree, D Favart, L Forthomme, A Giammanco, J Hollar, A Jafari, P Jez, M Komm, V Lemaitre, C Nuttens, L Perrini, A Pin, K Piotrzkowski, A Popov, L Quertenmont, M Selvaggi, MV Marono, JMV Garcia, N Beliy, T Caebergs, E Daubie, GH Hammad, WL Alda, GA Alves, L Brito, MC Martins, TD Martins, J Molina, CM Herrera, ME Pol, PR Teles, W Carvalho, J Chinellato, A Custodio, EM Da Costa, DD Damiao, CD Martins, SF De Souza, H Malbouisson, DM Figueiredo, L Mundim, H Nogima, WLP Da Silva, J Santaolalla, A Santoro, A Sznajder, EJT Manganote, AV Pereira, CA Bernardes, S Dogra, TRFP Tomei, EM Gregores, PG Mercadante, SF Novaes, SS Padula, A Aleksandrov, V Genchev, R Hadjiiska, P Iaydjiev, A Marinov, S Piperov, M Rodozov, S Stoykova, G Sultanov, M Vutova, A Dimitrov, I Glushkov, L Litov, B Pavlov, P Petkov, JG Bian, GM Chen, HS Chen, M Chen, T Cheng, R Du, CH Jiang, R Plestina, F Romeo, J Tao, Z Wang, C Asawatangtrakuldee, Y Ban, S Liu, Y Mao, SJ Qian, D Wang, Z Xu, L Zhang, W Zou, C Avila, A Cabrera, LFC Sierra, C Florez, JP Gomez, BG Moreno, JC Sanabria, N Godinovic, D Lelas, D Polic, I Puljak, Z Antunovic, M Kovac, V Brigljevic, K Kadija, J Luetic, D Mekterovic, L Sudic, A Attikis, G Mavromanolakis, J Mousa, C Nicolaou, F Ptochos, PA Razis, H Rykaczewski, M Bodlak, M Finger, M Finger, Y Assran, AE Kamel, MA Mahmoud, A Radi, M Kadastik, M Murumaa, M Raidal, A Tiko, P Eerola, M Voutilainen, J Harkonen, V Karimaki, R Kinnunen, MJ Kortelainen, T Lampen, K Lassila-Perini, S Lehti, T Linden, P Luukka, T Maenpaa, T Peltola, E Tuominen, J Tuominiemi, E Tuovinen, L Wendland, J Talvitie, T Tuuva, M Besancon, F Couderc, M Dejardin, D Denegri, B Fabbro, JL Faure, C Favaro, F Ferri, S Ganjour, A Givernaud, P Gras, GH de Monchenault, P Jarry, E Locci, J Malcles, J Rander, A Rosowsky, M Titov, S Baffioni, F Beaudette, P Busson, E Chapon, C Charlot, T Dahms, M Dalchenko, L Dobrzynski, N Filipovic, A Florent, RG de Cassagnac, L Mastrolorenzo, P Mine, IN Naranjo, M Nguyen, C Ochando, G Ortona, P Paganini, S Regnard, R Salerno, JB Sauvan, Y Sirois, C Veelken, Y Yilmaz, A Zabi, JL Agram, J Andrea, A Aubin, D Bloch, JM Brom, EC Chabert, C Collard, E Conte, JC Fontaine, D Gele, U Goerlach, C Goetzmann, AC Le Bihan, K Skovpen, P Van Hove, S Gadrat, S Beauceron, N Beaupere, C Bernet, G Boudoul, E Bouvier, S Brochet, AC Montoya, J Chasserat, R Chierici, D Contardo, B Courbon, P Depasse, H El Mamouni, J Fan, J Fay, S Gascon, M Gouzevitch, B Ille, T Kurca, M Lethuillier, L Mirabito, AL Pequegnot, S Perries, JDR Alvarez, D Sabes, L Sgandurra, V Sordini, MV Donckt, P Verdier, S Viret, H Xiao, Z Tsamalaidze, C Autermann, S Beranek, M Bontenackels, M Edelhoff, L Feld, A Heister, K Klein, M Lipinski, A Ostapchuk, M Preuten, F Raupach, J Sammet, S Schael, JF Schulte, H Weber, B Wittmer, V Zhukov, M Ata, M Brodski, E Dietz-Laursonn, D Duchardt, M Erdmann, R Fischer, A Guth, T Hebbeker, C Heidemann, K Hoepfner, D Klingebiel, S Knutzen, P Kreuzer, M Merschmeyer, A Meyer, P Millet, M Olschewski, K Padeken, P Papacz, H Reithler, SA Schmitz, L Sonnenschein, D Teyssier, S Thur, M Weber, V Cherepanov, Y Erdogan, G Flugge, H Geenen, M Geisler, WH Ahmad, F Hoehle, B Kargoll, T Kress, Y Kuessel, A Kunsken, J Lingemann, A Nowack, IM Nugent, O Pooth, A Stahl, MA Martin, I Asin, N Bartosik, J Behr, U Behrens, AJ Bell, A Bethani, K Borras, A Burgmeier, A Cakir, L Calligaris, A Campbell, S Choudhury, F Costanza, CD Pardos, G Dolinska, S Dooling, T Dorland, G Eckerlin, D Eckstein, T Eichhorn, G Flucke, JG Garcia, A Geiser, A Gizhko, P Gunnellini, J Hauk, M Hempel, H Jung, A Kalogeropoulos, O Karacheban, M Kasemann, P Katsas, J Kieseler, C Kleinwort, I Korol, D Krucker, W Lange, J Leonard, K Lipka, A Lobanov, W Lohmann, B Lutz, R Mankel, I Marfin, IA Melzer-Pellmann, AB Meyer, G Mittag, J Mnich, A Mussgiller, S Naumann-Emme, A Nayak, E Ntomari, H Perrey, D Pitzl, R Placakyte, A Raspereza, PMR Cipriano, B Roland, E Ron, MO Sahin, J Salfeld-Nebgen, P Saxena, T Schoerner-Sadenius, M Schoerder, C Seitz, S Spannagel, ADRV Trevino, R Walsh, C Wissing, V Blobel, MC Vignali, AR Draeger, J Erfle, E Garutti, K Goebel, M Gorner, J Haller, M Hoffmann, RS Hoing, A Junkes, H Kirschenmann, R Klanner, R Kogler, T Lapsien, T Lenz, I Marchesini, D Marconi, J Ott, T Peiffer, A Perieanu, N Pietsch, J Poehlsen, T Poehlsen, D Rathjens, C Sander, H Schettler, P Schleper, E Schlieckau, A Schmidt, M Seidel, V Sola, H Stadie, G Steinbruck, D Troendle, E Usai, L Vanelderen, A Vanhoefer, C Barth, C Baus, J Berger, C Boser, E Butz, T Chwalek, W De Boer, A Descroix, A Dierlamm, M Feindt, F Frensch, M Giffels, A Gilbert, F Hartmann, T Hauth, U Husemann, I Katkov, A Kornmayer, PL Pardo, MU Mozer, T Muller, T Muller, A Nurnberg, G Quast, K Rabbertz, S Rocker, HJ Simonis, FM Stober, R Ulrich, J Wagner-Kuhr, S Wayand, T Weiler, R Wolf, G Anagnostou, G Daskalakis, T Geralis, VA Giakoumopoulou, A Kyriakis, D Loukas, A Markou, C Markou, A Psallidas, I Topsis-Giotis, A Agapitos, S Kesisoglou, A Panagiotou, N Saoulidou, E Stiliaris, X Aslanoglou, I Evangelou, G Flouris, C Foudas, P Kokkas, N Manthos, I Papadopoulos, E Paradas, J Strologas, G Bencze, C Hajdu, P Hidas, D Horvath, F Sikler, V Veszpremi, G Vesztergombi, AJ Zsigmond, N Beni, S Czellar, J Karancsi, J Molnar, J Palinkas, Z Szillasi, A Makovec, P Raics, ZL Trocsanyi, B Ujvari, SK Swain, SB Beri, V Bhatnagar, R Gupta, U Bhawandeep, AK Kalsi, M Kaur, R Kumar, M Mittal, N Nishu, JB Singh, A Kumar, A Kumar, S Ahuja, A Bhardwaj, BC Choudhary, A Kumar, S Malhotra, M Naimuddin, K Ranjan, V Sharma, S Banerjee, S Bhattacharya, K Chatterjee, S Dutta, B Gomber, S Jain, S Jain, R Khurana, A Modak, S Mukherjee, D Roy, S Sarkar, M Sharan, A Abdulsalam, D Dutta, V Kumar, AK Mohanty, LM Pant, P Shukla, A Topkar, T Aziz, S Banerjee, S Bhowmik, RM Chatterjee, RK Dewanjee, S Dugad, S Ganguly, S Ghosh, M Guchait, A Gurtu, G Kole, S Kumar, M Maity, G Majumder, K Mazumdar, GB Mohanty, B Parida, K Sudhakar, N Wickramage, S Sharma, H Bakhshiansohi, H Behnamian, SM Etesami, A Fahim, R Goldouzian, M Khakzad, MM Najafabadi, M Naseri, SP Mehdiabadi, FR Hosseinabadi, B Safarzadeh, M Zeinali, M Felcini, M Grunewald, M Abbrescia, C Calabria, SS Chhibra, A Colaleo, D Creanza, L Cristella, N De Filippis, M De Palma, L Fiore, G Iaselli, G Maggi, M Maggi, S My, S Nuzzo, A Pompili, G Pugliese, R Radogna, G Selvaggi, A Sharma, L Silvestris, R Venditti, P Verwilligen, G Abbiendi, AC Benvenuti, D Bonacorsi, S Braibant-Giacomelli, L Brigliadori, R Campanini, P Capiluppi, BA Castro, FR Cavallo, G Codispoti, M Cuffiani, GM Dallavalle, F Fabbri, A Fanfani, D Fasanella, P Giacomelli, C Grandi, L Guiducci, S Marcellini, G Masetti, A Montanari, FL Navarria, A Perrotta, AM Rossi, T Rovelli, GP Siroli, N Tosi, R Travaglini, S Albergo, G Cappello, M Chiorboli, S Costa, F Giordano, R Potenza, A Tricomi, C Tuve, G Barbagli, V Ciulli, C Civinini, R D’Alessandro, E Focardi, E Gallo, S Gonzi, V Gori, P Lenzi, M Meschini, S Paoletti, G Sguazzoni, A Tropiano, L Benussi, S Bianco, F Fabbri, D Piccolo, R Ferretti, F Ferro, M Lo Vetere, E Robutti, S Tosi, ME Dinardo, S Fiorendi, S Gennai, R Gerosa, A Ghezzi, P Govoni, MT Lucchini, S Malvezzi, RA Manzoni, A Martelli, B Marzocchi, D Menasce, L Moroni, M Paganoni, D Pedrini, S Ragazzi, N Redaelli, TT de Fatis, S Buontempo, N Cavallo, S Di Guida, F Fabozzi, AOM Iorio, L Lista, S Meola, M Merola, P Paolucci, P Azzi, N Bacchetta, D Bisello, A Branca, R Carlin, P ChecchiA, M Dall’Osso, T Dorigo, U Dosselli, F Gasparini, U Gasparini, A Gozzelino, K Kanishchev, S Lacaprara, M Margoni, AT Meneguzzo, J Pazzini, N Pozzobon, P Ronchese, F Simonetto, E Torassa, M Tosi, P Zotto, A Zucchetta, G Zumerle, M Gabusi, SP Ratti, V Re, C Riccardi, P Salvini, P Vitulo, M Biasini, GM Bilei, D Ciangottini, L Fano, P Lariccia, G Mantovani, M Menichelli, A Saha, A Santocchia, A Spiezia, K Androsov, P Azzurri, G Bagliesi, J Bernardini, T Boccali, G Broccolo, R Castaldi, MA Ciocci, R Dell’Orso, S Donato, G Fedi, F Fiori, L Foa, A Giassi, MT Grippo, F Ligabue, T Lomtadze, L Martini, A Messineo, CS Moon, F Palla, A Rizzi, A Savoy-Navarro, AT Serban, P Spagnolo, P Squillacioti, R Tenchini, G Tonelli, A Venturi, PG Verdini, C Vernieri, L Barone, F Cavallari, G D’imperio, D Del Re, M Diemoz, C Jorda, E Longo, F Margaroli, P Meridiani, F Micheli, G Organtini, R Paramatti, S Rahatlou, C Rovelli, F Santanastasio, L Soffi, P Traczyk, N Amapane, R Arcidiacono, S Argiro, M Arneodo, R Bellan, C Biino, N Cartiglia, S Casasso, M Costa, R Covarelli, A Degano, N Demaria, L Finco, C Mariotti, S Maselli, E Migliore, V Monaco, M Musich, MM Obertino, L Pacher, N Pastrone, M Pelliccioni, GLP Angioni, A Potenza, A Romero, M Ruspa, R Sacchi, A Solano, A Staiano, U Tamponi, S Belforte, V Candelise, M Casarsa, F Cossutti, G Della Ricca, B Gobbo, C La Licata, M Marone, A Schizzi, T Umer, A Zanetti, S Chang, A Kropivnitskaya, SK Nam, DH Kim, GN Kim, MS Kim, DJ Kong, S Lee, YD Oh, H Park, A Sakharov, DC Son, TJ Kim, MS Ryu, JY Kim, DH Moon, S Song, S Choi, D Gyun, B Hong, M Jo, H Kim, Y Kim, B Lee, KS Lee, SK Park, Y Roh, HD Yoo, M Choi, JH Kim, IC Park, G Ryu, Y Choi, YK Choi, J Goh, D Kim, E Kwon, J Lee, I Yu, A Juodagalvis, JR Komaragiri, MABM Ali, EC Linares, H Castilla-Valdez, E De La Cruz-Burelo, I Heredia-de La Cruz, A Hernandez-Almada, R Lopez-Fernandez, A Sanchez-Hernandez, SC Moreno, FV Valencia, I Pedraza, HAS Ibarguen, AM Pineda, D Krofcheck, PH Butler, S Reucroft, A Ahmad, M Ahmad, Q Hassan, HR Hoorani, WA Khan, T Khurshid, M Shoaib, H Bialkowska, M Bluj, B Boimska, T Frueboes, M Gorski, M Kazana, K Nawrocki, K Romanowska-Rybinska, M Szleper, P Zalewski, G Brona, K Bunkowski, M Cwiok, W Dominik, K Doroba, A Kalinowski, M Konecki, J Krolikowski, M Misiura, M Olszewski, P Bargassa, CBDE Silva, P Faccioli, PGF Parracho, M Gallinaro, LL Iglesias, F Nguyen, JR Antunes, J Seixas, J Varela, P Vischia, S Afanasiev, P Bunin, M Gavrilenko, I Golutvin, I Gorbunov, A Kamenev, V Karjavin, V Konoplyanikov, A Lanev, A Malakhov, V Matveev, P Moisenz, V Palichik, V Perelygin, S Shmatov, N Skatchkov, V Smirnov, A Zarubin, V Golovtsov, Y Ivanov, V Kim, E Kuznetsova, P Levchenko, V Murzin, V Oreshkin, I Smirnov, V Sulimov, L Uvarov, S Vavilov, A Vorobyev, A Vorobyev, Y Andreev, A Dermenev, S Gninenko, N Golubev, M Kirsanov, N Krasnikov, A Pashenkov, D Tlisov, A Toropin, V Epshteyn, V Gavrilov, N Lychkovskaya, V Popov, I Pozdnyakov, G Safronov, S Semenov, A Spiridonov, V Stolin, E Vlasov, A Zhokin, V Andreev, M Azarkin, I Dremin, M Kirakosyan, A Leonidov, G Mesyats, SV Rusakov, A Vinogradov, A Belyaev, E Boos, M Dubinin, L Dudko, A Ershov, A Gribushin, V Klyukhin, O Kodolova, I Lokhtin, S Obraztsov, S Petrushanko, V Savrin, A Snigirev, I Azhgirey, I Bayshev, S Bitioukov, V Kachanov, A Kalinin, D Konstantinov, V Krychkine, V Petrov, R Ryutin, A Sobol, L Tourtchanovitch, S Troshin, N Tyurin, A Uzunian, A Volkov, P Adzic, M Ekmedzic, J Milosevic, V Rekovic, JA Maestre, C Battilana, E Calvo, M Cerrada, MC Llatas, N Colino, B De La Cruz, AD Peris, DD Vazquez, AE Del Valle, CF Bedoya, JPF Ramos, J Flix, MC Fouz, P Garcia-Abia, OG Lopez, SG Lopez, JM Hernandez, MI Josa, EN De Martino, APC Yzquierdo, JP Pelayo, AQ Olmeda, I Redondo, L Romero, MS Soares, C Albajar, JF de Troconiz, M Missiroli, D Moran, H Brun, J Cuevas, JF Menendez, S Folgueras, IG Caballero, JAB Cifuentes, IJ Cabrillo, A Calderon, JD Campderros, M Fernandez, G Gomez, A Graziano, AL Virto, J Marco, R Marco, CM Rivero, F Matorras, FJM Sanchez, JP Gomez, T Rodrigo, AY Rodriguez-Marrero, A Ruiz-Jimeno, L Scodellaro, I Vila, RV Cortabitarte, D Abbaneo, E Auffray, G Auzinger, M Bachtis, P Baillon, AH Ball, D Barney, A Benaglia, J Bendavid, L Benhabib, JF Benitez, P Bloch, A Bocci, A Bonato, O Bondu, C Botta, H Breuker, T Camporesi, G Cerminara, S Colafranceschi, M D’Alfonso, D d’ Enterria, A Dabrowski, A David, F De Guio, A De Roeck, S De Visscher, E Di Marco, M Dobson, M Dordevic, B Dorney, N Dupont-Sagorin, A Elliott-Peisert, G Franzoni, W Funk, D Gigi, K Gill, D Giordano, M Girone, F Glege, R Guida, S Gundacker, M Guthoff, J Hammer, M Hansen, P Harris, J Hegeman, V Innocente, P Janot, K Kousouris, K Krajczar, P Lecoq, C Lourenco, N Magini, L Malgeri, M Mannelli, J Marrouche, L Masetti, F Meijers, S Mersi, E Meschi, F Moortgat, S Morovic, M Mulders, L Orsini, L Pape, E Perez, A Petrilli, G Petrucciani, A Pfeiffer, M Pimia, D Piparo, M Plagge, A Racz, G Rolandi, M Rovere, H Sakulin, C Schafer, C Schwick, A Sharma, P Siegrist, P Silva, M Simon, P Sphicas, D Spiga, J Steggemann, B Stieger, M Stoye, Y Takahashi, D Treille, A Tsirou, GI Veres, N Wardle, HK Wohri, H Wollny, WD Zeuner, W Bertl, K Deiters, W Erdmann, R Horisberger, Q Ingram, HC Kaestli, D Kotlinski, U Langenegger, D Renker, T Rohe, F Bachmair, L Bani, L Bianchini, MA Buchmann, B Casal, N Chanon, G Dissertori, M Dittmar, M Donega, M Dunser, P Eller, C Grab, D Hits, J Hoss, W Lustermann, B Mangano, AC Marini, M Marionneau, PMR del Arbol, M Masciovecchio, D Meister, N Mohr, P Musella, C Nageli, F Nessi-Tedaldi, F Pandolfi, F Pauss, L Perrozzi, M Peruzzi, M Quittnat, L Rebane, M Rossini, A Starodumov, M Takahashi, K Theofilatos, R Wallny, HA Weber, C Amsler, MF Canelli, V Chiochia, A De Cosa, A Hinzmann, T Hreus, B Kilminster, C Lange, J Ngadiuba, D Pinna, P Robmann, FJ Ronga, S Taroni, M Verzetti, Y Yang, M Cardaci, KH Chen, C Ferro, CM Kuo, W Lin, YJ Lu, R Volpe, SS Yu, P Chang, YH Chang, Y Chao, KF Chen, PH Chen, C Dietz, U Grundler, WS Hou, YF Liu, RS Lu, MM Moya, E Petrakou, YM Tzeng, R Wilken, B Asavapibhop, G Singh, N Srimanobhas, N Suwonjandee, A Adiguzel, MN Bakirci, S Cerci, C Dozen, I Dumanoglu, E Eskut, S Girgis, G Gokbulut, Y Guler, E Gurpinar, I Hos, EE Kangal, AK Topaksu, G Onengut, K Ozdemir, S Ozturk, A Polatoz, DS Cerci, B Tali, H Topakli, M Vergili, C Zorbilmez, IV Akin, B Bilin, S Bilmis, H Gamsizkan, B Isildak, G Karapinar, K Ocalan, S Sekmen, UE Surat, M Yalvac, M Zeyrek, EA Albayrak, E Gulmez, M Kaya, O Kaya, T Yetkin, K Cankocak, FI Vardarli, L Levchuk, P Sorokin, JJ Brooke, E Clement, D Cussans, H Flacher, J Goldstein, M Grimes, GP Heath, HF Heath, J Jacob, L Kreczko, C Lucas, Z Meng, DM Newbold, S Paramesvaran, A Poll, T Sakuma, SS El Nasr-Storey, S Senkin, VJ Smith, KW Bell, A Belyaev, C Brew, RM Brown, DJA Cockerill, JA Coughlan, K Harder, S Harper, E Olaiya, D Petyt, CH Shepherd-Themistocleous, A Thea, IR Tomalin, T Williams, WJ Womersley, SD Worm, M Baber, R Bainbridge, O Buchmuller, D Burton, D Colling, N Cripps, P Dauncey, G Davies, M Della Negra, P Dunne, A Elwood, W Ferguson, J Fulcher, D Futyan, G Hall, G Iles, M Jarvis, G Karapostoli, M Kenzie, R Lane, R Lucas, L Lyons, AM Magnan, S Malik, B Mathias, J Nash, A Nikitenko, J Pela, M Pesaresi, K Petridis, DM Raymond, S Rogerson, A Rose, C Seez, P Sharp, A Tapper, MV Acosta, T Virdee, SC Zenz, JE Cole, PR Hobson, A Khan, P Kyberd, D Leggat, D Leslie, ID Reid, P Symonds, L Teodorescu, M Turner, J Dittmann, K Hatakeyama, A Kasmi, H Liu, N Pastika, T Scarborough, Z Wu, O Charaf, SI Cooper, C Henderson, P Rumerio, A Avetisyan, T Bose, C Fantasia, P Lawson, C Richardson, J Rohlf, JS John, L Sulak, J Alimena, E Berry, S Bhattacharya, G Christopher, D Cutts, Z Demiragli, N Dhingra, A Ferapontov, A Garabedian, U Heintz, G Kukartsev, E Laird, G Landsberg, M Luk, M Narain, M Segala, T Sinthuprasith, T Speer, J Swanson, R Breedon, G Breto, MCD Sanchez, S Chauhan, M Chertok, J Conway, R Conway, PT Cox, R Erbacher, M Gardner, W Ko, R Lander, M Mulhearn, D Pellett, J Pilot, F Ricci-Tam, S Shalhout, J Smith, M Squires, D Stolp, M Tripathi, S Wilbur, R Yohay, R Cousins, P Everaerts, C Farrell, J Hauser, M Ignatenko, G Rakness, E Takasugi, V Valuev, M Weber, K Burt, R Clare, J Ellison, JW Gary, G Hanson, J Heilman, MI Rikova, P Jandir, E Kennedy, F Lacroix, OR Long, A Luthra, M Malberti, MO Negrete, A Shrinivas, S Sumowidagdo, S Wimpenny, JG Branson, GB Cerati, S Cittolin, RT D’Agnolo, A Holzner, R Kelley, D Klein, J Letts, I Macneill, D Olivito, S Padhi, C Palmer, M Pieri, M Sani, V Sharma, S Simon, M Tadel, Y Tu, A Vartak, C Welke, F Wurthwein, A Yagil, GZ Della Porta, D Barge, J Bradmiller-Feld, C Campagnari, T Danielson, A Dishaw, V Dutta, K Flowers, MF Sevilla, P Geffert, C George, F Golf, L Gouskos, J Incandela, C Justus, N Mccoll, SD Mullin, J Richman, D Stuart, W To, C West, J Yoo, A Apresyan, A Bornheim, J Bunn, Y Chen, J Duarte, A Mott, HB Newman, C Pena, M Pierini, M Spiropulu, JR Vlimant, R Wilkinson, S Xie, RY Zhu, V Azzolini, A Calamba, B Carlson, T Ferguson, Y Iiyama, M Paulini, J Russ, H Vogel, I Vorobiev, JP Cumalat, WT Ford, A Gaz, M Krohn, EL Lopez, U Nauenberg, JG Smith, K Stenson, SR Wagner, J Alexander, A Chatterjee, J Chaves, J Chu, S Dittmer, N Eggert, N Mirman, GN Kaufman, JR Patterson, A Ryd, E Salvati, L Skinnari, W Sun, WD Teo, J Thom, J Thompson, J Tucker, Y Weng, L Winstrom, P Wittich, D Winn, S Abdullin, M Albrow, J Anderson, G Apollinari, LAT Bauerdick, A Beretvas, J Berryhill, PC Bhat, G Bolla, K Burkett, JN Butler, HWK Cheung, F Chlebana, S Cihangir, VD Elvira, I Fisk, J Freeman, E Gottschalk, L Gray, D Green, S Grunendahl, O Gutsche, J Hanlon, D Hare, RM Harris, J Hirschauer, B Hooberman, S Jindariani, M Johnson, U Joshi, B Klima, B Kreis, S Kwan, J Linacre, D Lincoln, R Lipton, T Liu, J Lykken, K Maeshima, JM Marraffino, VIM Outschoorn, S Maruyama, D Mason, P McBride, P Merkel, K Mishra, S Mrenna, S Nahn, C Newman-Holmes, V O’Dell, O Prokofyev, E Sexton-Kennedy, A Soha, WJ Spalding, L Spiegel, L Taylor, S Tkaczyk, NV Tran, L Uplegger, EW Vaandering, R Vidal, A Whitbeck, J Whitmore, F Yang, D Acosta, P Avery, P Bortignon, D Bourilkov, M Carver, D Curry, S Das, M De Gruttola, GP Di Giovanni, RD Field, M Fisher, IK Furic, J Hugon, J Konigsberg, A Korytov, T Kypreos, JF Low, K Matchev, H Mei, P Milenovic, G Mitselmakher, L Muniz, A Rinkevicius, L Shchutska, M Snowball, D Sperka, J Yelton, M Zakaria, S Hewamanage, S Linn, P Markowitz, G Martinez, JL Rodriguez, JR Adams, T Adams, A Askew, J Bochenek, B Diamond, J Haas, S Hagopian, V Hagopian, KF Johnson, H Prosper, V Veeraraghavan, M Weinberg, MM Baarmand, M Hohlmann, H Kalakhety, F Yumiceva, MR Adams, L Apanasevich, D Berry, RR Betts, I Bucinskaite, R Cavanaugh, O Evdokimov, L Gauthier, CE Gerber, DJ Hofman, P Kurt, C O’Brien, IDS Gonzalez, C Silkworth, P Turner, N Varelas, B Bilki, W Clarida, K Dilsiz, M Haytmyradov, JP Merlo, H Mermerkaya, A Mestvirishvili, A Moeller, J Nachtman, H Ogul, Y Onel, F Ozok, A Penzo, R Rahmat, S Sen, P Tan, E Tiras, J Wetzel, K Yi, I Anderson, BA Barnett, B Blumenfeld, S Bolognesi, D Fehling, AV Gritsan, P Maksimovic, C Martin, M Swartz, M Xiao, P Baringer, A Bean, G Benelli, C Bruner, J Gray, RP Kenny, D Majumder, M Malek, M Murray, D Noonan, S Sanders, J Sekaric, R Stringer, Q Wang, JS Wood, I Chakaberia, A Ivanov, K Kaadze, S Khalil, M Makouski, Y Maravin, LK Saini, N Skhirtladze, I Svintradze, J Gronberg, D Lange, F Rebassoo, D Wright, A Baden, A Belloni, B Calvert, SC Eno, JA Gomez, NJ Hadley, S Jabeen, RG Kellogg, T Kolberg, Y Lu, AC Mignerey, K Pedro, A Skuja, MB Tonjes, SC Tonwar, A Apyan, R Barbieri, K Bierwagen, W Busza, IA Cali, L Di Matteo, GG Ceballos, M Goncharov, D Gulhan, M Klute, YS Lai, YJ Lee, A Levin, PD Luckey, C Paus, D Ralph, C Roland, G Roland, GSF Stephans, K Sumorok, D Velicanu, J Veverka, B Wyslouch, M Yang, M Zanetti, V Zhukova, B Dahmes, A Gude, SC Kao, K Klapoetke, Y Kubota, J Mans, S Nourbakhsh, R Rusack, A Singovsky, N Tambe, J Turkewitz, JG Acosta, S Oliveros, E Avdeeva, K Bloom, S Bose, DR Claes, A Dominguez, RG Suarez, J Keller, D Knowlton, I Kravchenko, J Lazo-Flores, F Meier, F Ratnikov, GR Snow, M Zvada, G Alverson, E Barberis, D Baumgartel, M Chasco, A Massironi, DM Morse, D Nash, T Orimoto, D Trocino, RJ Wang, D Wood, J Zhang, KA Hahn, A Kubik, N Mucia, N Odell, B Pollack, A Pozdnyakov, M Schmitt, S Stoynev, K Sung, M Velasco, S Won, A Brinkerhoff, KM Chan, A Drozdetskiy, M Hildreth, C Jessop, DJ Karmgard, N Kellams, K Lannon, S Lynch, N Marinelli, Y Musienko, T Pearson, M Planer, R Ruchti, G Smith, N Valls, M Wayne, M Wolf, A Woodard, L Antonelli, J Brinson, B Bylsma, LS Durkin, S Flowers, A Hart, C Hill, R Hughes, K Kotov, TY Ling, W Luo, D Puigh, M Rodenburg, BL Winer, H Wolfe, HW Wulsin, O Driga, P Elmer, J Hardenbrook, P Hebda, SA Koay, P Lujan, D Marlow, T Medvedeva, M Mooney, J Olsen, P Piroue, X Quan, H Saka, D Stickland, C Tully, JS Werner, A Zuranski, E Brownson, S Malik, H Mendez, JER Vargas, VE Barnes, D Benedetti, D Bortoletto, M De Mattia, L Gutay, Z Hu, MK Jha, M Jones, K Jung, M Kress, N Leonardo, DH Miller, N Neumeister, F Primavera, BC Radburn-Smith, X Shi, I Shipsey, D Silvers, A Svyatkovskiy, F Wang, W Xie, L Xu, J Zablocki, N Parashar, J Stupak, A Adair, B Akgun, KM Ecklund, FJM Geurts, W Li, B Michlin, BP Padley, R Redjimi, J Roberts, J Zabel, B Betchart, A Bodek, P de Barbaro, R Demina, Y Eshaq, T Ferbel, M Galanti, A Garcia-Bellido, P Goldenzweig, J Han, A Harel, O Hindrichs, A Khukhunaishvili, S Korjenevski, G Petrillo, D Vishnevskiy, R Ciesielski, L Demortier, K Goulianos, C Mesropian, S Arora, A Barker, JP Chou, C Contreras-Campana, E Contreras-Campana, D Duggan, D Ferencek, Y Gershtein, R Gray, E Halkiadakis, D Hidas, S Kaplan, A Lath, S Panwalkar, M Park, R Patel, S Salur, S Schnetzer, D Sheffield, S Somalwar, R Stone, S Thomas, P Thomassen, M Walker, K Rose, S Spanier, A York, O Bouhali, AC Hernandez, R Eusebi, W Flanagan, J Gilmore, T Kamon, V Khotilovich, V Krutelyov, R Montalvo, I Osipenkov, Y Pakhotin, A Perloff, J Roe, A Rose, A Safonov, I Suarez, A Tatarinov, KA Ulmer, N Akchurin, C Cowden, J Damgov, C Dragoiu, PR Dudero, J Faulkner, K Kovitanggoon, S Kunori, SW Lee, T Libeiro, I Volobouev, E Appelt, AG Delannoy, S Greene, A Gurrola, W Johns, C Maguire, Y Mao, A Melo, M Sharma, P Sheldon, B Snook, S Tuo, J Velkovska, MW Arenton, S Boutle, B Cox, B Francis, J Goodell, R Hirosky, A Ledovskoy, H Li, C Lin, C Neu, E Wolfe, J Wood, C Clarke, R Harr, PE Karchin, CKK Don, P Lamichhane, J Sturdy, DA Belknap, D Carlsmith, M Cepeda, S Dasu, L Dodd, S Duric, E Friis, R Hall-Wilton, M Herndon, A Herve, P Klabbers, A Lanaro, C Lazaridis, A Levine, R Loveless, A Mohapatra, I Ojalvo, T Perry, GA Pierro, G Polese, I Ross, T Sarangi, A Savin, WH Smith, D Taylor, C Vuosalo, and N Woods. 2015. “Searches for Supersymmetry Based on Events with b Jets and Four W Bosons in Pp Collisions at 8 TeV.” <i>Physics Letters B</i> 745: 5–28.</div>\n","mla":" <div class=\"csl-entry\">Khachatryan, V, AM Sirunyan, A Tumasyan, et al. “Searches for Supersymmetry Based on Events with b Jets and Four W Bosons in Pp Collisions at 8 TeV.” <i>PHYSICS LETTERS B</i> 745 (2015): 5–28. Print.</div>\n","apa":" <div class=\"csl-entry\">Khachatryan, V., Sirunyan, A., Tumasyan, A., Adam, W., Bergauer, T., Dragicevic, M., Ero, J., et al. (2015). Searches for supersymmetry based on events with b jets and four W bosons in pp collisions at 8 TeV. <i>PHYSICS LETTERS B</i>, <i>745</i>, 5–28.</div>\n","vancouver":" <div class=\"csl-entry\">\n <div class=\"csl-left-margin\">1. </div><div class=\"csl-right-inline\">Khachatryan V, Sirunyan A, Tumasyan A, Adam W, Bergauer T, Dragicevic M, et al. Searches for supersymmetry based on events with b jets and four W bosons in pp collisions at 8 TeV. PHYSICS LETTERS B. AMSTERDAM: ELSEVIER SCIENCE BV; 2015;745:5–28. </div>\n </div>\n","chicago-author-date":" <div class=\"csl-entry\">Khachatryan, V, AM Sirunyan, A Tumasyan, W Adam, T Bergauer, M Dragicevic, J Ero, et al. 2015. “Searches for Supersymmetry Based on Events with b Jets and Four W Bosons in Pp Collisions at 8 TeV.” <i>Physics Letters B</i> 745: 5–28.</div>\n"},"doi":["10.1016/j.physletb.2015.04.002"],"parent":{"title":"PHYSICS LETTERS B","short_title":"Phys. Lett. B"},"volume":"745","language":["eng"],"date_updated":"2015-06-15 14:35:45","external":0,"publication_status":"published","handle":"http://hdl.handle.net/1854/LU-6060822","wos_type":"Article","title":"Searches for supersymmetry based on events with b jets and four W bosons in pp collisions at 8 TeV","classification":"A1","type":"journalArticle","abstract":["Five mutually exclusive searches for supersymmetry are presented based on events in which b jets and four W bosons are produced in proton-proton collisions at root s = 8TeV. The data, corresponding to an integrated luminosity of 19.5 fb(-1), were collected with the CMS experiment at the CERN LHC in 2012. The five studies differ in the leptonic signature from the W boson decays, and correspond to all-hadronic, single-lepton, opposite-sign dilepton, same-sign dilepton, and >= 3 lepton final states. The results of the five studies are combined to yield 95% confidence level limits for the gluino and bottom-squark masses in the context of gluino and bottom-squark pair production, respectively. In the limit when the lightest supersymmetric particle is light, gluino and bottom squark masses are excluded below 1280 and 570 GeV, respectively. (C) 2015 CERN for the benefit of the CMS Collaboration. Published by Elsevier B.V."],"affiliation":[{"ugent_id":"WE05","path":[{"ugent_id":"UGent"},{"ugent_id":"WE"},{"ugent_id":"WE05"}]}],"year":"2015"} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Catmandu-1.10/benchmark/clone.pl��������������������������������������������������������������������000755 �000765 �000024 �00000002105 13341726377 017550� 0����������������������������������������������������������������������������������������������������ustar�00nsteenla������������������������staff���������������������������000000 �000000 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env perl BEGIN { use strict; use warnings; use FindBin; use File::Spec (); use lib File::Spec->catdir($FindBin::Bin, '..', 'lib'); use Catmandu (); use Benchmark qw(:all); } package NothingFix; use strict; use warnings; use Moo; use Clone qw(clone); sub fix { $_[0]; } package CloneFix; use strict; use warnings; use Moo; use Clone qw(clone); sub fix { clone($_[0]); } package DataCloneFix; use strict; use warnings; use Moo; use Data::Clone qw(clone); sub fix { clone($_[0]); } package main; my $data = Catmandu->importer('JSON', file => File::Spec->catfile($FindBin::Bin, 'data.json'))->first; my $nothing_fixer = Catmandu::Fix->new(fixes => [(NothingFix->new) x 1000]); my $clone_fixer = Catmandu::Fix->new(fixes => [(CloneFix->new) x 1000]); my $data_clone_fixer = Catmandu::Fix->new(fixes => [(DataCloneFix->new) x 1000]); cmpthese(10000, { "nothing" => sub { $nothing_fixer->fix($data) }, "Clone" => sub { $clone_fixer->fix($data) }, "Data::Clone" => sub { $data_clone_fixer->fix($data) }, }); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������