PGDMP  munison8.3.38.3.3 00ENCODINGENCODINGSET client_encoding = 'UTF8'; false00 STDSTRINGS STDSTRINGS(SET standard_conforming_strings = 'on'; false1262307770unisonDATABASEDCREATE DATABASE unison WITH TEMPLATE = template0 ENCODING = 'UTF8'; DROP DATABASE unison; rkhfalse 2615307772goSCHEMACREATE SCHEMA go; DROP SCHEMA go; unisonfalse00goACLREVOKE ALL ON SCHEMA go FROM PUBLIC; REVOKE ALL ON SCHEMA go FROM unison; GRANT ALL ON SCHEMA go TO unison; GRANT USAGE ON SCHEMA go TO PUBLIC; unisonfalse10 2615307773gongSCHEMACREATE SCHEMA gong; DROP SCHEMA gong; unisonfalse00gongACLREVOKE ALL ON SCHEMA gong FROM PUBLIC; REVOKE ALL ON SCHEMA gong FROM unison; GRANT ALL ON SCHEMA gong TO unison; GRANT USAGE ON SCHEMA gong TO PUBLIC; unisonfalse11 2615307774marraySCHEMACREATE SCHEMA marray; DROP SCHEMA marray; unisonfalse00marrayACLREVOKE ALL ON SCHEMA marray FROM PUBLIC; REVOKE ALL ON SCHEMA marray FROM unison; GRANT ALL ON SCHEMA marray TO unison; GRANT USAGE ON SCHEMA marray TO PUBLIC; unisonfalse132615307775ncbiSCHEMACREATE SCHEMA ncbi; DROP SCHEMA ncbi; unisonfalse00ncbiACLREVOKE ALL ON SCHEMA ncbi FROM PUBLIC; REVOKE ALL ON SCHEMA ncbi FROM unison; GRANT ALL ON SCHEMA ncbi TO unison; GRANT USAGE ON SCHEMA ncbi TO PUBLIC; unisonfalse142615307776pdbSCHEMACREATE SCHEMA pdb; DROP SCHEMA pdb; unisonfalse00pdbACLREVOKE ALL ON SCHEMA pdb FROM PUBLIC; REVOKE ALL ON SCHEMA pdb FROM unison; GRANT ALL ON SCHEMA pdb TO unison; GRANT CREATE ON SCHEMA pdb TO loader; GRANT USAGE ON SCHEMA pdb TO PUBLIC; unisonfalse152615307777pgutilsSCHEMACREATE SCHEMA pgutils; DROP SCHEMA pgutils; rkhfalse00pgutilsACLREVOKE ALL ON SCHEMA pgutils FROM PUBLIC; REVOKE ALL ON SCHEMA pgutils FROM rkh; GRANT ALL ON SCHEMA pgutils TO rkh; GRANT USAGE ON SCHEMA pgutils TO PUBLIC; rkhfalse1626152200publicSCHEMACREATE SCHEMA public; DROP SCHEMA public; rkhfalse00 SCHEMA publicCOMMENT6COMMENT ON SCHEMA public IS 'standard public schema'; rkhfalse300publicACLREVOKE ALL ON SCHEMA public FROM PUBLIC; REVOKE ALL ON SCHEMA public FROM rkh; GRANT ALL ON SCHEMA public TO rkh; GRANT ALL ON SCHEMA public TO PUBLIC; rkhfalse32615307778scopSCHEMACREATE SCHEMA scop; DROP SCHEMA scop; unisonfalse00scopACLREVOKE ALL ON SCHEMA scop FROM PUBLIC; REVOKE ALL ON SCHEMA scop FROM unison; GRANT ALL ON SCHEMA scop TO unison; GRANT USAGE ON SCHEMA scop TO PUBLIC; unisonfalse172615307779sstSCHEMACREATE SCHEMA sst; DROP SCHEMA sst; unisonfalse00sstACLREVOKE ALL ON SCHEMA sst FROM PUBLIC; REVOKE ALL ON SCHEMA sst FROM unison; GRANT ALL ON SCHEMA sst TO unison; GRANT USAGE ON SCHEMA sst TO PUBLIC; unisonfalse72615307780taxSCHEMACREATE SCHEMA tax; DROP SCHEMA tax; unisonfalse00taxACLREVOKE ALL ON SCHEMA tax FROM PUBLIC; REVOKE ALL ON SCHEMA tax FROM unison; GRANT ALL ON SCHEMA tax TO unison; GRANT USAGE ON SCHEMA tax TO PUBLIC; unisonfalse8 2615307781unisonSCHEMACREATE SCHEMA unison; DROP SCHEMA unison; unisonfalse00unisonACLREVOKE ALL ON SCHEMA unison FROM PUBLIC; REVOKE ALL ON SCHEMA unison FROM unison; GRANT ALL ON SCHEMA unison TO unison; GRANT USAGE ON SCHEMA unison TO PUBLIC; unisonfalse9 2615307782 unison_auxSCHEMACREATE SCHEMA unison_aux; DROP SCHEMA unison_aux; unisonfalse00 unison_auxACLREVOKE ALL ON SCHEMA unison_aux FROM PUBLIC; REVOKE ALL ON SCHEMA unison_aux FROM unison; GRANT ALL ON SCHEMA unison_aux TO unison; GRANT USAGE ON SCHEMA unison_aux TO PUBLIC; unisonfalse12 2612307785plperlPROCEDURAL LANGUAGE#CREATE PROCEDURAL LANGUAGE plperl; !DROP PROCEDURAL LANGUAGE plperl; postgresfalse 2612307786plperluPROCEDURAL LANGUAGE$CREATE PROCEDURAL LANGUAGE plperlu; "DROP PROCEDURAL LANGUAGE plperlu; postgresfalse 2612307789plpgsqlPROCEDURAL LANGUAGE$CREATE PROCEDURAL LANGUAGE plpgsql; "DROP PROCEDURAL LANGUAGE plpgsql; postgresfalse 1259307899 associationTABLE#CREATE TABLE association ( id integer DEFAULT nextval(('association_id_seq'::text)::regclass) NOT NULL, term_id integer DEFAULT 0 NOT NULL, gene_product_id integer DEFAULT 0 NOT NULL, is_not integer, role_group integer, assocdate integer, source_db_id integer ); DROP TABLE go.association; gounisonfalse3328332933301000 associationACLREVOKE ALL ON TABLE association FROM PUBLIC; REVOKE ALL ON TABLE association FROM unison; GRANT ALL ON TABLE association TO unison; gounisonfalse2492 1259307905dbTABLECREATE TABLE db ( id integer DEFAULT nextval(('db_id_seq'::text)::regclass) NOT NULL, name character varying(55), fullname character varying(255), datatype character varying(255), generic_url character varying(255), url_syntax character varying(255) ); DROP TABLE go.db; gounisonfalse33311000dbACLiREVOKE ALL ON TABLE db FROM PUBLIC; REVOKE ALL ON TABLE db FROM unison; GRANT ALL ON TABLE db TO unison; gounisonfalse2493 1259307912dbxrefTABLELCREATE TABLE dbxref ( id integer DEFAULT nextval(('dbxref_id_seq'::text)::regclass) NOT NULL, xref_key character varying(255) DEFAULT ''::character varying NOT NULL, xref_keytype character varying(32), xref_dbname character varying(55) DEFAULT ''::character varying NOT NULL, xref_desc character varying(255) ); DROP TABLE go.dbxref; gounisonfalse3332333333341000dbxrefACLuREVOKE ALL ON TABLE dbxref FROM PUBLIC; REVOKE ALL ON TABLE dbxref FROM unison; GRANT ALL ON TABLE dbxref TO unison; gounisonfalse2494 1259307921evidenceTABLE+CREATE TABLE evidence ( id integer DEFAULT nextval(('evidence_id_seq'::text)::regclass) NOT NULL, code character varying(8) DEFAULT ''::character varying NOT NULL, association_id integer DEFAULT 0 NOT NULL, dbxref_id integer DEFAULT 0 NOT NULL, seq_acc character varying(255) ); DROP TABLE go.evidence; gounisonfalse33353336333733381000evidenceACL{REVOKE ALL ON TABLE evidence FROM PUBLIC; REVOKE ALL ON TABLE evidence FROM unison; GRANT ALL ON TABLE evidence TO unison; gounisonfalse2495 1259307928evidence_dbxrefTABLEwCREATE TABLE evidence_dbxref ( evidence_id integer DEFAULT 0 NOT NULL, dbxref_id integer DEFAULT 0 NOT NULL ); DROP TABLE go.evidence_dbxref; gounisonfalse333933401000evidence_dbxrefACLREVOKE ALL ON TABLE evidence_dbxref FROM PUBLIC; REVOKE ALL ON TABLE evidence_dbxref FROM unison; GRANT ALL ON TABLE evidence_dbxref TO unison; gounisonfalse2496 1259307933 gene_productTABLE%CREATE TABLE gene_product ( id integer DEFAULT nextval(('gene_product_id_seq'::text)::regclass) NOT NULL, symbol character varying(128) DEFAULT ''::character varying NOT NULL, dbxref_id integer DEFAULT 0 NOT NULL, species_id integer, type_id integer, full_name text ); DROP TABLE go.gene_product; gounisonfalse3341334233431000 gene_productACLREVOKE ALL ON TABLE gene_product FROM PUBLIC; REVOKE ALL ON TABLE gene_product FROM unison; GRANT ALL ON TABLE gene_product TO unison; gounisonfalse2497 1259307942gene_product_countTABLECREATE TABLE gene_product_count ( term_id integer DEFAULT 0 NOT NULL, code character varying(8), speciesdbname character varying(55) DEFAULT ''::character varying NOT NULL, product_count integer DEFAULT 0 NOT NULL ); "DROP TABLE go.gene_product_count; gounisonfalse3344334533461000gene_product_countACLREVOKE ALL ON TABLE gene_product_count FROM PUBLIC; REVOKE ALL ON TABLE gene_product_count FROM unison; GRANT ALL ON TABLE gene_product_count TO unison; gounisonfalse2498 1259307948gene_product_propertyTABLECREATE TABLE gene_product_property ( gene_product_id integer DEFAULT 0 NOT NULL, property_key character varying(64) DEFAULT ''::character varying NOT NULL, property_val character varying(255) ); %DROP TABLE go.gene_product_property; gounisonfalse334733481000gene_product_propertyACLREVOKE ALL ON TABLE gene_product_property FROM PUBLIC; REVOKE ALL ON TABLE gene_product_property FROM unison; GRANT ALL ON TABLE gene_product_property TO unison; gounisonfalse2499 1259307953gene_product_seqTABLECREATE TABLE gene_product_seq ( gene_product_id integer DEFAULT 0 NOT NULL, seq_id integer DEFAULT 0 NOT NULL, is_primary_seq integer ); DROP TABLE go.gene_product_seq; gounisonfalse334933501000gene_product_seqACLREVOKE ALL ON TABLE gene_product_seq FROM PUBLIC; REVOKE ALL ON TABLE gene_product_seq FROM unison; GRANT ALL ON TABLE gene_product_seq TO unison; gounisonfalse2500 1259307958gene_product_synonymTABLECREATE TABLE gene_product_synonym ( gene_product_id integer DEFAULT 0 NOT NULL, product_synonym character varying(255) DEFAULT ''::character varying NOT NULL ); $DROP TABLE go.gene_product_synonym; gounisonfalse335133521000gene_product_synonymACLREVOKE ALL ON TABLE gene_product_synonym FROM PUBLIC; REVOKE ALL ON TABLE gene_product_synonym FROM unison; GRANT ALL ON TABLE gene_product_synonym TO unison; gounisonfalse2501 1259307963 graph_pathTABLECREATE TABLE graph_path ( id integer DEFAULT nextval(('graph_path_id_seq'::text)::regclass) NOT NULL, term1_id integer DEFAULT 0 NOT NULL, term2_id integer DEFAULT 0 NOT NULL, distance integer DEFAULT 0 NOT NULL ); DROP TABLE go.graph_path; gounisonfalse33533354335533561000 graph_pathACLREVOKE ALL ON TABLE graph_path FROM PUBLIC; REVOKE ALL ON TABLE graph_path FROM unison; GRANT ALL ON TABLE graph_path TO unison; gounisonfalse2502 1259307970graph_path2termTABLECREATE TABLE graph_path2term ( graph_path_id integer DEFAULT 0 NOT NULL, term_id integer DEFAULT 0 NOT NULL, rank integer DEFAULT 0 NOT NULL ); DROP TABLE go.graph_path2term; gounisonfalse3357335833591000graph_path2termACLREVOKE ALL ON TABLE graph_path2term FROM PUBLIC; REVOKE ALL ON TABLE graph_path2term FROM unison; GRANT ALL ON TABLE graph_path2term TO unison; gounisonfalse2503 1259307976 instance_dataTABLECREATE TABLE instance_data ( release_name character varying(255), release_type character varying(255), release_notes text ); DROP TABLE go.instance_data; gounisonfalse1000 instance_dataACLREVOKE ALL ON TABLE instance_data FROM PUBLIC; REVOKE ALL ON TABLE instance_data FROM unison; GRANT ALL ON TABLE instance_data TO unison; gounisonfalse2504 1259307982seqTABLE2CREATE TABLE seq ( id integer DEFAULT nextval(('seq_id_seq'::text)::regclass) NOT NULL, display_id character varying(64), description character varying(255), seq text, seq_len integer, md5checksum character varying(32), moltype character varying(25), "timestamp" integer ); DROP TABLE go.seq; gounisonfalse33601000seqACLlREVOKE ALL ON TABLE seq FROM PUBLIC; REVOKE ALL ON TABLE seq FROM unison; GRANT ALL ON TABLE seq TO unison; gounisonfalse2505 1259307989 seq_dbxrefTABLEmCREATE TABLE seq_dbxref ( seq_id integer DEFAULT 0 NOT NULL, dbxref_id integer DEFAULT 0 NOT NULL ); DROP TABLE go.seq_dbxref; gounisonfalse336133621000 seq_dbxrefACLREVOKE ALL ON TABLE seq_dbxref FROM PUBLIC; REVOKE ALL ON TABLE seq_dbxref FROM unison; GRANT ALL ON TABLE seq_dbxref TO unison; gounisonfalse2506 1259307994 seq_propertyTABLE6CREATE TABLE seq_property ( id integer DEFAULT nextval(('seq_property_id_seq'::text)::regclass) NOT NULL, seq_id integer DEFAULT 0 NOT NULL, property_key character varying(64) DEFAULT ''::character varying NOT NULL, property_val character varying(255) DEFAULT ''::character varying NOT NULL ); DROP TABLE go.seq_property; gounisonfalse33633364336533661000 seq_propertyACLREVOKE ALL ON TABLE seq_property FROM PUBLIC; REVOKE ALL ON TABLE seq_property FROM unison; GRANT ALL ON TABLE seq_property TO unison; gounisonfalse2507 1259308001 source_auditTABLECREATE TABLE source_audit ( source_path character varying(255), source_type character varying(255), source_mtime integer ); DROP TABLE go.source_audit; gounisonfalse1000 source_auditACLREVOKE ALL ON TABLE source_audit FROM PUBLIC; REVOKE ALL ON TABLE source_audit FROM unison; GRANT ALL ON TABLE source_audit TO unison; gounisonfalse2508 1259308007speciesTABLECREATE TABLE species ( id integer DEFAULT nextval(('species_id_seq'::text)::regclass) NOT NULL, ncbi_taxa_id integer, common_name character varying(255), lineage_string text, genus character varying(55), species character varying(55) ); DROP TABLE go.species; gounisonfalse33671000speciesACLxREVOKE ALL ON TABLE species FROM PUBLIC; REVOKE ALL ON TABLE species FROM unison; GRANT ALL ON TABLE species TO unison; gounisonfalse2509 1259308014termTABLECREATE TABLE term ( id integer DEFAULT nextval(('term_id_seq'::text)::regclass) NOT NULL, name character varying(255) DEFAULT ''::character varying NOT NULL, term_type character varying(55) DEFAULT ''::character varying NOT NULL, acc character varying(32) DEFAULT ''::character varying NOT NULL, is_obsolete integer DEFAULT 0 NOT NULL, is_root integer DEFAULT 0 NOT NULL ); DROP TABLE go.term; gounisonfalse3368336933703371337233731000termACLoREVOKE ALL ON TABLE term FROM PUBLIC; REVOKE ALL ON TABLE term FROM unison; GRANT ALL ON TABLE term TO unison; gounisonfalse2510 1259308023 term2termTABLECREATE TABLE term2term ( id integer DEFAULT nextval(('term2term_id_seq'::text)::regclass) NOT NULL, relationship_type_id integer DEFAULT 0 NOT NULL, term1_id integer DEFAULT 0 NOT NULL, term2_id integer DEFAULT 0 NOT NULL ); DROP TABLE go.term2term; gounisonfalse33743375337633771000 term2termACL~REVOKE ALL ON TABLE term2term FROM PUBLIC; REVOKE ALL ON TABLE term2term FROM unison; GRANT ALL ON TABLE term2term TO unison; gounisonfalse2511 1259308030 term_auditTABLE_CREATE TABLE term_audit ( term_id integer DEFAULT 0 NOT NULL, term_loadtime integer ); DROP TABLE go.term_audit; gounisonfalse33781000 term_auditACLREVOKE ALL ON TABLE term_audit FROM PUBLIC; REVOKE ALL ON TABLE term_audit FROM unison; GRANT ALL ON TABLE term_audit TO unison; gounisonfalse2512 1259308034 term_dbxrefTABLECREATE TABLE term_dbxref ( term_id integer DEFAULT 0 NOT NULL, dbxref_id integer DEFAULT 0 NOT NULL, is_for_definition integer DEFAULT 0 NOT NULL ); DROP TABLE go.term_dbxref; gounisonfalse3379338033811000 term_dbxrefACLREVOKE ALL ON TABLE term_dbxref FROM PUBLIC; REVOKE ALL ON TABLE term_dbxref FROM unison; GRANT ALL ON TABLE term_dbxref TO unison; gounisonfalse2513 1259308040term_definitionTABLECREATE TABLE term_definition ( term_id integer DEFAULT 0 NOT NULL, term_definition text DEFAULT ''::text NOT NULL, dbxref_id integer, term_comment text, reference character varying(255) ); DROP TABLE go.term_definition; gounisonfalse338233831000term_definitionACLREVOKE ALL ON TABLE term_definition FROM PUBLIC; REVOKE ALL ON TABLE term_definition FROM unison; GRANT ALL ON TABLE term_definition TO unison; gounisonfalse2514 1259308048 term_synonymTABLECREATE TABLE term_synonym ( term_id integer DEFAULT 0 NOT NULL, term_synonym character varying(255), acc_synonym integer ); DROP TABLE go.term_synonym; gounisonfalse33841000 term_synonymACLREVOKE ALL ON TABLE term_synonym FROM PUBLIC; REVOKE ALL ON TABLE term_synonym FROM unison; GRANT ALL ON TABLE term_synonym TO unison; gounisonfalse2515 1259309698alias_alias_id_seqSEQUENCEtCREATE SEQUENCE alias_alias_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 'DROP SEQUENCE gong.alias_alias_id_seq; gongunisonfalse1100alias_alias_id_seq SEQUENCE SET:SELECT pg_catalog.setval('alias_alias_id_seq', 1, false); gongunisonfalse282400alias_alias_id_seqACLREVOKE ALL ON SEQUENCE alias_alias_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE alias_alias_id_seq FROM unison; GRANT ALL ON SEQUENCE alias_alias_id_seq TO unison; GRANT UPDATE ON SEQUENCE alias_alias_id_seq TO loader; gongunisonfalse2824 1259308052aliasTABLECREATE TABLE alias ( alias_id integer DEFAULT nextval('alias_alias_id_seq'::regclass) NOT NULL, alias text NOT NULL, go_id integer NOT NULL ); DROP TABLE gong.alias; gongunisonfalse33851100 TABLE aliasCOMMENT3COMMENT ON TABLE alias IS 'GO names and synonyms'; gongunisonfalse251600aliasACLREVOKE ALL ON TABLE alias FROM PUBLIC; REVOKE ALL ON TABLE alias FROM unison; GRANT ALL ON TABLE alias TO unison; GRANT SELECT ON TABLE alias TO PUBLIC; gongunisonfalse2516 1259308058 evidence_codeTABLEuCREATE TABLE evidence_code ( evidence_code text NOT NULL, abbr_exp text NOT NULL, descr text NOT NULL ); DROP TABLE gong.evidence_code; gongunisonfalse1100TABLE evidence_codeCOMMENTSCOMMENT ON TABLE evidence_code IS 'GO evidence codes, meanings, and descriptions'; gongunisonfalse251700"COLUMN evidence_code.evidence_codeCOMMENTUCOMMENT ON COLUMN evidence_code.evidence_code IS 'GO 2- or 3- letter evidence code'; gongunisonfalse251700COLUMN evidence_code.abbr_expCOMMENTKCOMMENT ON COLUMN evidence_code.abbr_exp IS 'code abbreviation expansion'; gongunisonfalse251700COLUMN evidence_code.descrCOMMENTCCOMMENT ON COLUMN evidence_code.descr IS 'usage summary for code'; gongunisonfalse251700 evidence_codeACLREVOKE ALL ON TABLE evidence_code FROM PUBLIC; REVOKE ALL ON TABLE evidence_code FROM unison; GRANT ALL ON TABLE evidence_code TO unison; gongunisonfalse2517 1259308064is_aTABLEPCREATE TABLE is_a ( go_id1 integer NOT NULL, go_id2 integer NOT NULL ); DROP TABLE gong.is_a; gongunisonfalse11 00 TABLE is_aCOMMENT2COMMENT ON TABLE is_a IS 'GO is_a relationships'; gongunisonfalse2518 00is_aACLREVOKE ALL ON TABLE is_a FROM PUBLIC; REVOKE ALL ON TABLE is_a FROM unison; GRANT ALL ON TABLE is_a TO unison; GRANT SELECT ON TABLE is_a TO PUBLIC; gongunisonfalse2518 1259308067nodeTABLECREATE TABLE node ( go_id integer NOT NULL, is_obsolete boolean DEFAULT false, alias_id integer, definition text, comment text ); DROP TABLE gong.node; gongunisonfalse338611 00 TABLE nodeCOMMENTSCOMMENT ON TABLE node IS 'GO nodes, indexed by their GO id (integer, wo/''GO:'')'; gongunisonfalse2519 00nodeACLREVOKE ALL ON TABLE node FROM PUBLIC; REVOKE ALL ON TABLE node FROM unison; GRANT ALL ON TABLE node TO unison; GRANT SELECT ON TABLE node TO PUBLIC; gongunisonfalse2519 1259308074part_ofTABLESCREATE TABLE part_of ( go_id1 integer NOT NULL, go_id2 integer NOT NULL ); DROP TABLE gong.part_of; gongunisonfalse11 00 TABLE part_ofCOMMENT8COMMENT ON TABLE part_of IS 'GO part_of relationships'; gongunisonfalse252000part_ofACLREVOKE ALL ON TABLE part_of FROM PUBLIC; REVOKE ALL ON TABLE part_of FROM unison; GRANT ALL ON TABLE part_of TO unison; GRANT SELECT ON TABLE part_of TO PUBLIC; gongunisonfalse2520 1259308077termVIEWCREATE VIEW term AS SELECT n.go_id, a.alias, n.definition, n.is_obsolete FROM (node n LEFT JOIN alias a ON ((a.alias_id = n.alias_id))) ORDER BY n.is_obsolete, n.go_id; DROP VIEW gong.term; gongunisonfalse29241100 VIEW termCOMMENT3COMMENT ON VIEW term IS 'simple view of GO nodes'; gongunisonfalse252100termACLREVOKE ALL ON TABLE term FROM PUBLIC; REVOKE ALL ON TABLE term FROM unison; GRANT ALL ON TABLE term TO unison; GRANT SELECT ON TABLE term TO PUBLIC; gongunisonfalse2521 1259309700chip_chip_id_seqSEQUENCErCREATE SEQUENCE chip_chip_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 'DROP SEQUENCE marray.chip_chip_id_seq; marrayunisonfalse1300chip_chip_id_seq SEQUENCE SET8SELECT pg_catalog.setval('chip_chip_id_seq', 1, false); marrayunisonfalse282500chip_chip_id_seqACLREVOKE ALL ON SEQUENCE chip_chip_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE chip_chip_id_seq FROM unison; GRANT ALL ON SEQUENCE chip_chip_id_seq TO unison; GRANT UPDATE ON SEQUENCE chip_chip_id_seq TO loader; marrayunisonfalse2825 1259308081chipTABLECREATE TABLE chip ( chip_id integer DEFAULT nextval('chip_chip_id_seq'::regclass) NOT NULL, name text NOT NULL, current_origin_id integer ); DROP TABLE marray.chip; marrayunisonfalse33871300 TABLE chipCOMMENT)COMMENT ON TABLE chip IS 'chip details'; marrayunisonfalse252200COLUMN chip.nameCOMMENT,COMMENT ON COLUMN chip.name IS 'chip name'; marrayunisonfalse252200chipACLREVOKE ALL ON TABLE chip FROM PUBLIC; REVOKE ALL ON TABLE chip FROM unison; GRANT ALL ON TABLE chip TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE chip TO loader; GRANT SELECT ON TABLE chip TO PUBLIC; marrayunisonfalse2522 1259308087probeTABLE#CREATE TABLE probe ( probe_id text NOT NULL, chip_id integer NOT NULL, chr text NOT NULL, strand character(1) NOT NULL, genasm_id integer NOT NULL, gstart integer NOT NULL, gstop integer NOT NULL, origin_id integer NOT NULL, md5 character(32) NOT NULL ); DROP TABLE marray.probe; marrayunisonfalse1300 TABLE probeCOMMENT+COMMENT ON TABLE probe IS 'probe details'; marrayunisonfalse252300COLUMN probe.chrCOMMENTSCOMMENT ON COLUMN probe.chr IS 'chromosome (e.g. 1..22,M,U,X,Y for homo sapiens)'; marrayunisonfalse252300COLUMN probe.strandCOMMENT9COMMENT ON COLUMN probe.strand IS 'genomic strand(+/-)'; marrayunisonfalse252300COLUMN probe.gstartCOMMENTbCOMMENT ON COLUMN probe.gstart IS 'start of probe on genome (1-based, +1 frame, gstop > gstart)'; marrayunisonfalse252300COLUMN probe.gstopCOMMENT`COMMENT ON COLUMN probe.gstop IS 'stop of probe on genome (1-based, +1 frame, gstop > gstart)'; marrayunisonfalse252300probeACLREVOKE ALL ON TABLE probe FROM PUBLIC; REVOKE ALL ON TABLE probe FROM unison; GRANT ALL ON TABLE probe TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE probe TO loader; GRANT SELECT ON TABLE probe TO PUBLIC; marrayunisonfalse2523 1259308093 chip_probe_vVIEWCREATE VIEW chip_probe_v AS SELECT c.name, p.probe_id, p.chip_id, p.chr, p.strand, p.genasm_id, p.gstart, p.gstop, p.origin_id, p.md5 FROM (probe p JOIN chip c ON ((p.chip_id = c.chip_id))); DROP VIEW marray.chip_probe_v; marrayunisonfalse29251300 chip_probe_vACLREVOKE ALL ON TABLE chip_probe_v FROM PUBLIC; REVOKE ALL ON TABLE chip_probe_v FROM unison; GRANT ALL ON TABLE chip_probe_v TO unison; GRANT SELECT ON TABLE chip_probe_v TO PUBLIC; marrayunisonfalse2524 1259308356gene2accessionTABLE:CREATE TABLE gene2accession ( tax_id integer NOT NULL, gene_id integer NOT NULL, status text, rna_acc text, rna_gi integer, pro_acc text, pro_gi integer, gen_acc text, gen_gi integer, gen_start integer, gen_end integer, gen_orient character(1), assembly text ); DROP TABLE ncbi.gene2accession; ncbiunisonfalse1400TABLE gene2accessionCOMMENTJCOMMENT ON TABLE gene2accession IS 'NCBI Entrez Gene <-> RefSeq mapping'; ncbiunisonfalse257100gene2accessionACLREVOKE ALL ON TABLE gene2accession FROM PUBLIC; REVOKE ALL ON TABLE gene2accession FROM unison; GRANT ALL ON TABLE gene2accession TO unison; GRANT SELECT ON TABLE gene2accession TO PUBLIC; ncbiunisonfalse2571 1259308362gene2goTABLECREATE TABLE gene2go ( tax_id integer NOT NULL, gene_id integer NOT NULL, go_id text NOT NULL, evidence text, qualifier text, term text NOT NULL, pubmed_id text, category text ); DROP TABLE ncbi.gene2go; ncbiunisonfalse1400 TABLE gene2goCOMMENT?COMMENT ON TABLE gene2go IS 'NCBI Entrez Gene <-> GO mapping'; ncbiunisonfalse2572 00gene2goACLREVOKE ALL ON TABLE gene2go FROM PUBLIC; REVOKE ALL ON TABLE gene2go FROM unison; GRANT ALL ON TABLE gene2go TO unison; GRANT SELECT ON TABLE gene2go TO PUBLIC; ncbiunisonfalse2572 1259308368 gene2unigeneTABLE[CREATE TABLE gene2unigene ( gene_id integer NOT NULL, unigene_acc text NOT NULL ); DROP TABLE ncbi.gene2unigene; ncbiunisonfalse14!00TABLE gene2unigeneCOMMENTICOMMENT ON TABLE gene2unigene IS 'NCBI Entrez Gene <-> UniGene mapping'; ncbiunisonfalse2573"00 gene2unigeneACLREVOKE ALL ON TABLE gene2unigene FROM PUBLIC; REVOKE ALL ON TABLE gene2unigene FROM unison; GRANT ALL ON TABLE gene2unigene TO unison; GRANT SELECT ON TABLE gene2unigene TO PUBLIC; ncbiunisonfalse2573 1259308374 gene_infoTABLE`CREATE TABLE gene_info ( tax_id integer NOT NULL, gene_id integer NOT NULL, symbol text, locus_tag text, synonyms text, xrefs text, chromosome text, map_loc text, descr text, type text, nom_auth_symbol text, nom_auth text, nom_status character(1), other_desig text, modification_date date ); DROP TABLE ncbi.gene_info; ncbiunisonfalse14#00TABLE gene_infoCOMMENT>COMMENT ON TABLE gene_info IS 'NCBI Entrez Gene information'; ncbiunisonfalse2574$00 gene_infoACLREVOKE ALL ON TABLE gene_info FROM PUBLIC; REVOKE ALL ON TABLE gene_info FROM unison; GRANT ALL ON TABLE gene_info TO unison; GRANT SELECT ON TABLE gene_info TO PUBLIC; ncbiunisonfalse2574 1259308380generifTABLECREATE TABLE generif ( tax_id integer NOT NULL, gene_id integer NOT NULL, pubmed_ids text, last_update timestamp without time zone NOT NULL, generif text ); DROP TABLE ncbi.generif; ncbiunisonfalse14%00 TABLE generifCOMMENTICOMMENT ON TABLE generif IS 'NCBI Entrez Gene References into Function'; ncbiunisonfalse2575&00COLUMN generif.pubmed_idsCOMMENTGCOMMENT ON COLUMN generif.pubmed_ids IS 'PubMed ids, comma delimited'; ncbiunisonfalse2575'00generifACLREVOKE ALL ON TABLE generif FROM PUBLIC; REVOKE ALL ON TABLE generif FROM unison; GRANT ALL ON TABLE generif TO unison; GRANT SELECT ON TABLE generif TO PUBLIC; ncbiunisonfalse2575 1259308098 homologeneTABLECREATE TABLE homologene ( hid integer NOT NULL, tax_id integer NOT NULL, gene_id integer NOT NULL, gene_symbol text NOT NULL, gi text NOT NULL, acc text NOT NULL ); DROP TABLE ncbi.homologene; ncbiunisonfalse14(00TABLE homologeneCOMMENT2COMMENT ON TABLE homologene IS 'NCBI HomoloGene'; ncbiunisonfalse2525)00 homologeneACLREVOKE ALL ON TABLE homologene FROM PUBLIC; REVOKE ALL ON TABLE homologene FROM unison; GRANT ALL ON TABLE homologene TO unison; GRANT SELECT ON TABLE homologene TO PUBLIC; ncbiunisonfalse2525 1259308386mim2geneTABLEmCREATE TABLE mim2gene ( mim_id integer NOT NULL, gene_id integer NOT NULL, type text NOT NULL ); DROP TABLE ncbi.mim2gene; ncbiunisonfalse14*00TABLE mim2geneCOMMENTACOMMENT ON TABLE mim2gene IS 'NCBI Entrez Gene <-> MIM mapping'; ncbiunisonfalse2576+00mim2geneACLREVOKE ALL ON TABLE mim2gene FROM PUBLIC; REVOKE ALL ON TABLE mim2gene FROM unison; GRANT ALL ON TABLE mim2gene TO unison; GRANT SELECT ON TABLE mim2gene TO PUBLIC; ncbiunisonfalse2576 1259308225chainTABLECREATE TABLE chain ( pdbid text NOT NULL, chainid character(1), pdbc text NOT NULL, name text, ec text, CONSTRAINT chain_pdbc_ck CHECK ((pdbc = (pdbid || (COALESCE(chainid, ''::bpchar))::text))) ); DROP TABLE pdb.chain; pdbunisonfalse340515,00chainACLREVOKE ALL ON TABLE chain FROM PUBLIC; REVOKE ALL ON TABLE chain FROM unison; GRANT ALL ON TABLE chain TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE chain TO loader; GRANT SELECT ON TABLE chain TO PUBLIC; pdbunisonfalse2548 1259309702*descriptor_origin_descriptor_origin_id_seqSEQUENCECREATE SEQUENCE descriptor_origin_descriptor_origin_id_seq START WITH 0 INCREMENT BY 1 NO MAXVALUE MINVALUE 0 CACHE 1; >DROP SEQUENCE pdb.descriptor_origin_descriptor_origin_id_seq; pdbunisonfalse15-00*descriptor_origin_descriptor_origin_id_seq SEQUENCE SETRSELECT pg_catalog.setval('descriptor_origin_descriptor_origin_id_seq', 0, false); pdbunisonfalse2826 1259308169descriptor_originTABLECREATE TABLE descriptor_origin ( descriptor_origin_id integer DEFAULT nextval('descriptor_origin_descriptor_origin_id_seq'::regclass) NOT NULL, type text NOT NULL, origin text NOT NULL, version text ); "DROP TABLE pdb.descriptor_origin; pdbunisonfalse339615.00descriptor_originACLREVOKE ALL ON TABLE descriptor_origin FROM PUBLIC; REVOKE ALL ON TABLE descriptor_origin FROM unison; GRANT ALL ON TABLE descriptor_origin TO unison; GRANT SELECT ON TABLE descriptor_origin TO PUBLIC; pdbunisonfalse2538 1259308392ligandTABLECREATE TABLE ligand ( ligand_id text NOT NULL, formula text, formula_weight numeric, last_modified date NOT NULL, formal_charge integer NOT NULL, type text NOT NULL ); DROP TABLE pdb.ligand; pdbunisonfalse15/00ligandACLREVOKE ALL ON TABLE ligand FROM PUBLIC; REVOKE ALL ON TABLE ligand FROM unison; GRANT ALL ON TABLE ligand TO unison; GRANT SELECT ON TABLE ligand TO PUBLIC; pdbunisonfalse2577 1259308398 ligand_atomsTABLEACREATE TABLE ligand_atoms ( atom_id text NOT NULL, ligand_id text NOT NULL, type_symbol text NOT NULL, alt_atom_id text NOT NULL, formal_charge integer NOT NULL, aromatic boolean NOT NULL, leaving_atom boolean NOT NULL, ordinal integer NOT NULL, stereo_config character(1) NOT NULL ); DROP TABLE pdb.ligand_atoms; pdbunisonfalse15000 ligand_atomsACLREVOKE ALL ON TABLE ligand_atoms FROM PUBLIC; REVOKE ALL ON TABLE ligand_atoms FROM unison; GRANT ALL ON TABLE ligand_atoms TO unison; GRANT SELECT ON TABLE ligand_atoms TO PUBLIC; pdbunisonfalse2578 1259308404 ligand_bondsTABLECREATE TABLE ligand_bonds ( atom_id_1 text NOT NULL, atom_id_2 text NOT NULL, ligand_id text NOT NULL, bond_order text NOT NULL, ordinal integer NOT NULL, aromatic boolean NOT NULL, stereo_config character(1) NOT NULL ); DROP TABLE pdb.ligand_bonds; pdbunisonfalse15100 ligand_bondsACLREVOKE ALL ON TABLE ligand_bonds FROM PUBLIC; REVOKE ALL ON TABLE ligand_bonds FROM unison; GRANT ALL ON TABLE ligand_bonds TO unison; GRANT SELECT ON TABLE ligand_bonds TO PUBLIC; pdbunisonfalse2579 1259308175ligand_descriptorsTABLECREATE TABLE ligand_descriptors ( ligand_id text NOT NULL, descriptor_origin_id integer NOT NULL, descriptor text NOT NULL ); #DROP TABLE pdb.ligand_descriptors; pdbunisonfalse15200ligand_descriptorsACLREVOKE ALL ON TABLE ligand_descriptors FROM PUBLIC; REVOKE ALL ON TABLE ligand_descriptors FROM unison; GRANT ALL ON TABLE ligand_descriptors TO unison; GRANT SELECT ON TABLE ligand_descriptors TO PUBLIC; pdbunisonfalse2539 1259308410ligand_descriptor_vVIEWCREATE VIEW ligand_descriptor_v AS SELECT _ld.ligand_id, _ld.descriptor_origin_id, _do.type, _do.origin, _do.version, _ld.descriptor FROM (ligand_descriptors _ld JOIN descriptor_origin _do ON ((_ld.descriptor_origin_id = _do.descriptor_origin_id))); #DROP VIEW pdb.ligand_descriptor_v; pdbunisonfalse294415300VIEW ligand_descriptor_vCOMMENTZCOMMENT ON VIEW ligand_descriptor_v IS 'ligand descriptors joined to origin definitions'; pdbunisonfalse2580400ligand_descriptor_vACLREVOKE ALL ON TABLE ligand_descriptor_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_descriptor_v FROM unison; GRANT ALL ON TABLE ligand_descriptor_v TO unison; GRANT SELECT ON TABLE ligand_descriptor_v TO PUBLIC; pdbunisonfalse2580 1259308414ligand_inchi_vVIEWCREATE VIEW ligand_inchi_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE (o.type = 'inchi'::text); DROP VIEW pdb.ligand_inchi_v; pdbunisonfalse294515500ligand_inchi_vACLREVOKE ALL ON TABLE ligand_inchi_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_inchi_v FROM unison; GRANT ALL ON TABLE ligand_inchi_v TO unison; GRANT SELECT ON TABLE ligand_inchi_v TO PUBLIC; pdbunisonfalse2581 1259308418ligand_names_all_vVIEWCREATE VIEW ligand_names_all_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE (((o.type = 'name'::text) OR (o.type = 'synonym'::text)) OR (o.type = 'systematic name'::text)); "DROP VIEW pdb.ligand_names_all_v; pdbunisonfalse294615600ligand_names_all_vACLREVOKE ALL ON TABLE ligand_names_all_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_names_all_v FROM unison; GRANT ALL ON TABLE ligand_names_all_v TO unison; GRANT SELECT ON TABLE ligand_names_all_v TO PUBLIC; pdbunisonfalse2582 1259308422ligand_smiles_acdlabs_vVIEWCREATE VIEW ligand_smiles_acdlabs_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.type = 'smiles'::text) AND (o.origin = 'ACDLabs'::text)); 'DROP VIEW pdb.ligand_smiles_acdlabs_v; pdbunisonfalse294715700ligand_smiles_acdlabs_vACLREVOKE ALL ON TABLE ligand_smiles_acdlabs_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_acdlabs_v FROM unison; GRANT ALL ON TABLE ligand_smiles_acdlabs_v TO unison; GRANT SELECT ON TABLE ligand_smiles_acdlabs_v TO PUBLIC; pdbunisonfalse2583 1259308426ligand_smiles_all_cactvs_vVIEW'CREATE VIEW ligand_smiles_all_cactvs_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.origin = 'CACTVS'::text) AND ((o.type = 'smiles'::text) OR (o.type = 'smiles_canonical'::text))); *DROP VIEW pdb.ligand_smiles_all_cactvs_v; pdbunisonfalse294815800ligand_smiles_all_cactvs_vACLREVOKE ALL ON TABLE ligand_smiles_all_cactvs_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_all_cactvs_v FROM unison; GRANT ALL ON TABLE ligand_smiles_all_cactvs_v TO unison; GRANT SELECT ON TABLE ligand_smiles_all_cactvs_v TO PUBLIC; pdbunisonfalse2584 1259308430ligand_smiles_all_oe_vVIEW\CREATE VIEW ligand_smiles_all_oe_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE (((o.origin = 'OpenEye OEToolkits'::text) OR (o.origin = 'OpenEye/OEToolkits'::text)) AND ((o.type = 'smiles'::text) OR (o.type = 'smiles_canonical'::text))); &DROP VIEW pdb.ligand_smiles_all_oe_v; pdbunisonfalse294915900ligand_smiles_all_oe_vACLREVOKE ALL ON TABLE ligand_smiles_all_oe_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_all_oe_v FROM unison; GRANT ALL ON TABLE ligand_smiles_all_oe_v TO unison; GRANT SELECT ON TABLE ligand_smiles_all_oe_v TO PUBLIC; pdbunisonfalse2585 1259308434ligand_smiles_all_vVIEWCREATE VIEW ligand_smiles_all_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.type = 'smiles'::text) OR (o.type = 'smiles_canonical'::text)); #DROP VIEW pdb.ligand_smiles_all_v; pdbunisonfalse295015:00ligand_smiles_all_vACLREVOKE ALL ON TABLE ligand_smiles_all_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_all_v FROM unison; GRANT ALL ON TABLE ligand_smiles_all_v TO unison; GRANT SELECT ON TABLE ligand_smiles_all_v TO PUBLIC; pdbunisonfalse2586 1259308438ligand_smiles_cactvs_vVIEWCREATE VIEW ligand_smiles_cactvs_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.type = 'smiles'::text) AND (o.origin = 'CACTVS'::text)); &DROP VIEW pdb.ligand_smiles_cactvs_v; pdbunisonfalse295115;00ligand_smiles_cactvs_vACLREVOKE ALL ON TABLE ligand_smiles_cactvs_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_cactvs_v FROM unison; GRANT ALL ON TABLE ligand_smiles_cactvs_v TO unison; GRANT SELECT ON TABLE ligand_smiles_cactvs_v TO PUBLIC; pdbunisonfalse2587 1259308442ligand_smiles_canon_cactvs_vVIEW CREATE VIEW ligand_smiles_canon_cactvs_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.type = 'smiles_canonical'::text) AND (o.origin = 'CACTVS'::text)); ,DROP VIEW pdb.ligand_smiles_canon_cactvs_v; pdbunisonfalse295215<00ligand_smiles_canon_cactvs_vACLREVOKE ALL ON TABLE ligand_smiles_canon_cactvs_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_canon_cactvs_v FROM unison; GRANT ALL ON TABLE ligand_smiles_canon_cactvs_v TO unison; GRANT SELECT ON TABLE ligand_smiles_canon_cactvs_v TO PUBLIC; pdbunisonfalse2588 1259308446ligand_smiles_canon_oe_vVIEW?CREATE VIEW ligand_smiles_canon_oe_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.type = 'smiles_canonical'::text) AND ((o.origin = 'OpenEye OEToolkits'::text) OR (o.origin = 'OpenEye/OEToolkits'::text))); (DROP VIEW pdb.ligand_smiles_canon_oe_v; pdbunisonfalse295315=00ligand_smiles_canon_oe_vACLREVOKE ALL ON TABLE ligand_smiles_canon_oe_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_canon_oe_v FROM unison; GRANT ALL ON TABLE ligand_smiles_canon_oe_v TO unison; GRANT SELECT ON TABLE ligand_smiles_canon_oe_v TO PUBLIC; pdbunisonfalse2589 1259308450ligand_smiles_canon_vVIEWCREATE VIEW ligand_smiles_canon_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE (o.type = 'smiles_canonical'::text); %DROP VIEW pdb.ligand_smiles_canon_v; pdbunisonfalse295415>00ligand_smiles_canon_vACLREVOKE ALL ON TABLE ligand_smiles_canon_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_canon_v FROM unison; GRANT ALL ON TABLE ligand_smiles_canon_v TO unison; GRANT SELECT ON TABLE ligand_smiles_canon_v TO PUBLIC; pdbunisonfalse2590 1259308454ligand_smiles_oe_vVIEW/CREATE VIEW ligand_smiles_oe_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE ((o.type = 'smiles'::text) AND ((o.origin = 'OpenEye OEToolkits'::text) OR (o.origin = 'OpenEye/OEToolkits'::text))); "DROP VIEW pdb.ligand_smiles_oe_v; pdbunisonfalse295515?00ligand_smiles_oe_vACLREVOKE ALL ON TABLE ligand_smiles_oe_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_oe_v FROM unison; GRANT ALL ON TABLE ligand_smiles_oe_v TO unison; GRANT SELECT ON TABLE ligand_smiles_oe_v TO PUBLIC; pdbunisonfalse2591 1259308458ligand_smiles_vVIEWCREATE VIEW ligand_smiles_v AS SELECT d.ligand_id, d.descriptor FROM (ligand_descriptors d JOIN descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE (o.type = 'smiles'::text); DROP VIEW pdb.ligand_smiles_v; pdbunisonfalse295615@00ligand_smiles_vACLREVOKE ALL ON TABLE ligand_smiles_v FROM PUBLIC; REVOKE ALL ON TABLE ligand_smiles_v FROM unison; GRANT ALL ON TABLE ligand_smiles_v TO unison; GRANT SELECT ON TABLE ligand_smiles_v TO PUBLIC; pdbunisonfalse2592! 1259308462 pdb_ligandTABLERCREATE TABLE pdb_ligand ( pdbid text NOT NULL, ligand_id text NOT NULL ); DROP TABLE pdb.pdb_ligand; pdbunisonfalse15A00 pdb_ligandACLREVOKE ALL ON TABLE pdb_ligand FROM PUBLIC; REVOKE ALL ON TABLE pdb_ligand FROM unison; GRANT ALL ON TABLE pdb_ligand TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pdb_ligand TO loader; GRANT SELECT ON TABLE pdb_ligand TO PUBLIC; pdbunisonfalse2593" 1259308468pdb_ligand_descriptors_vVIEWvCREATE VIEW pdb_ligand_descriptors_v AS SELECT pl.pdbid, pl.ligand_id, ld.descriptor_origin_id, "DO".type, "DO".origin, "DO".version, ld.descriptor FROM (((pdb_ligand pl JOIN ligand l ON ((pl.ligand_id = l.ligand_id))) JOIN ligand_descriptors ld ON ((l.ligand_id = ld.ligand_id))) JOIN descriptor_origin "DO" ON ((ld.descriptor_origin_id = "DO".descriptor_origin_id))); (DROP VIEW pdb.pdb_ligand_descriptors_v; pdbunisonfalse295715B00pdb_ligand_descriptors_vACLREVOKE ALL ON TABLE pdb_ligand_descriptors_v FROM PUBLIC; REVOKE ALL ON TABLE pdb_ligand_descriptors_v FROM unison; GRANT ALL ON TABLE pdb_ligand_descriptors_v TO unison; GRANT SELECT ON TABLE pdb_ligand_descriptors_v TO PUBLIC; pdbunisonfalse2594# 1259308472residueTABLECREATE TABLE residue ( pdbc text NOT NULL, seq_pos integer NOT NULL, seq_res character(1) NOT NULL, atom_res character(1), res_id text ); DROP TABLE pdb.residue; pdbunisonfalse15C00 TABLE residueCOMMENTWCOMMENT ON TABLE residue IS 'seqres to atom records correspondence in each pdb chain'; pdbunisonfalse2595D00COLUMN residue.seq_resCOMMENTDCOMMENT ON COLUMN residue.seq_res IS 'residue from SEQRES records'; pdbunisonfalse2595E00COLUMN residue.atom_resCOMMENTZCOMMENT ON COLUMN residue.atom_res IS 'residue from ATOM records, null if missing atoms'; pdbunisonfalse2595F00COLUMN residue.res_idCOMMENTQCOMMENT ON COLUMN residue.res_id IS 'residue identifier, null if missing atoms'; pdbunisonfalse2595G00residueACLREVOKE ALL ON TABLE residue FROM PUBLIC; REVOKE ALL ON TABLE residue FROM unison; GRANT ALL ON TABLE residue TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE residue TO loader; GRANT SELECT ON TABLE residue TO PUBLIC; pdbunisonfalse2595$ 1259308478summaryTABLEQCREATE TABLE summary ( pdbid text NOT NULL, method text, resolution numeric, title text NOT NULL, header text, source text, added timestamp with time zone NOT NULL, md5 character(32) NOT NULL, r_factor numeric, r_free numeric, CONSTRAINT summary_pdbid_length_ck CHECK ((length(pdbid) = 4)) ); DROP TABLE pdb.summary; pdbunisonfalse342415H00summaryACLREVOKE ALL ON TABLE summary FROM PUBLIC; REVOKE ALL ON TABLE summary FROM unison; GRANT ALL ON TABLE summary TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE summary TO loader; GRANT SELECT ON TABLE summary TO PUBLIC; pdbunisonfalse2596% 1259308485column_descriptionsVIEWCREATE VIEW column_descriptions AS SELECT n.nspname, c.relname, c.relkind, a.attname, d.description FROM (((pg_attribute a JOIN pg_class c ON ((a.attrelid = c.oid))) JOIN pg_namespace n ON ((c.relnamespace = n.oid))) LEFT JOIN pg_description d ON ((((a.attrelid = d.objoid) AND (a.attnum = d.objsubid)) AND (d.classoid = ('pg_class'::regclass)::oid)))) WHERE ((a.attnum > 0) AND ((c.relkind = 'v'::"char") OR (c.relkind = 'r'::"char"))); 'DROP VIEW pgutils.column_descriptions; pgutilsrkhfalse295816I00VIEW column_descriptionsCOMMENTBCOMMENT ON VIEW column_descriptions IS 'all column descriptions'; pgutilsrkhfalse2597J00column_descriptionsACLREVOKE ALL ON TABLE column_descriptions FROM PUBLIC; REVOKE ALL ON TABLE column_descriptions FROM rkh; GRANT ALL ON TABLE column_descriptions TO rkh; GRANT SELECT ON TABLE column_descriptions TO PUBLIC; pgutilsrkhfalse2597& 1259308490database_sizesVIEWCREATE VIEW database_sizes AS SELECT x.size_mb, x.datname FROM (SELECT 1 AS _order, round(((pg_database_size(pg_database.datname))::numeric / 1000000.0), 2) AS size_mb, pg_database.datname FROM pg_database UNION SELECT 2 AS _order, round(sum(((pg_database_size(pg_database.datname))::numeric / 1000000.0)), 2) AS size_mb, 'TOTAL' AS datname FROM pg_database) x ORDER BY x._order, x.datname; "DROP VIEW pgutils.database_sizes; pgutilsrkhfalse295916K00VIEW database_sizesCOMMENTUCOMMENT ON VIEW database_sizes IS 'all databases and sizes [in SI MB (10^6 bytes)]'; pgutilsrkhfalse2598L00database_sizesACLREVOKE ALL ON TABLE database_sizes FROM PUBLIC; REVOKE ALL ON TABLE database_sizes FROM rkh; GRANT ALL ON TABLE database_sizes TO rkh; GRANT SELECT ON TABLE database_sizes TO PUBLIC; pgutilsrkhfalse2598' 1259308494 dependenciesVIEWfCREATE VIEW dependencies AS SELECT DISTINCT pc.relkind AS r_relkind, pn.nspname AS p_nspname, pc.relname AS p_relname, cc.relkind AS c_relkind, cn.nspname AS c_namespace, cc.relname AS c_relname FROM ((((pg_depend d JOIN pg_class cc ON ((d.objid = cc.oid))) JOIN pg_class pc ON ((d.refobjid = pc.oid))) JOIN pg_namespace cn ON ((cc.relnamespace = cn.oid))) JOIN pg_namespace pn ON ((pc.relnamespace = pn.oid))) WHERE ((pc.relkind = ANY (ARRAY['i'::"char", 'r'::"char"])) AND (cc.relkind = ANY (ARRAY['i'::"char", 'r'::"char"]))) ORDER BY pn.nspname, pc.relname, pc.relkind, cn.nspname, cc.relname, cc.relkind; DROP VIEW pgutils.dependencies; pgutilsrkhfalse296016M00VIEW dependenciesCOMMENTQCOMMENT ON VIEW dependencies IS 'all table, index dependencies (no views, yet)'; pgutilsrkhfalse2599N00 dependenciesACLREVOKE ALL ON TABLE dependencies FROM PUBLIC; REVOKE ALL ON TABLE dependencies FROM rkh; GRANT ALL ON TABLE dependencies TO rkh; GRANT SELECT ON TABLE dependencies TO PUBLIC; pgutilsrkhfalse2599( 1259308499 foreign_keysVIEWCREATE VIEW foreign_keys AS SELECT fkn.nspname AS fk_namespace, fkr.relname AS fk_relation, fka.attname AS fk_column, fka.attnotnull AS fk_notnull, (EXISTS (SELECT pg_index.indexrelid, pg_index.indrelid, pg_index.indkey, pg_index.indclass, pg_index.indnatts, pg_index.indisunique, pg_index.indisprimary, pg_index.indisclustered, pg_index.indexprs, pg_index.indpred FROM pg_index WHERE ((pg_index.indrelid = fkr.oid) AND (pg_index.indkey[0] = fka.attnum)))) AS fk_indexed, pkn.nspname AS pk_namespace, pkr.relname AS pk_relation, pka.attname AS pk_column, (EXISTS (SELECT pg_index.indexrelid, pg_index.indrelid, pg_index.indkey, pg_index.indclass, pg_index.indnatts, pg_index.indisunique, pg_index.indisprimary, pg_index.indisclustered, pg_index.indexprs, pg_index.indpred FROM pg_index WHERE ((pg_index.indrelid = pkr.oid) AND (pg_index.indkey[0] = pka.attnum)))) AS pk_indexed, ((c.confupdtype)::text || (c.confdeltype)::text) AS ud, cn.nspname AS c_namespace, c.conname AS c_name FROM (((((((pg_constraint c JOIN pg_namespace cn ON ((cn.oid = c.connamespace))) JOIN pg_class fkr ON ((fkr.oid = c.conrelid))) JOIN pg_namespace fkn ON ((fkn.oid = fkr.relnamespace))) JOIN pg_attribute fka ON (((fka.attrelid = c.conrelid) AND (fka.attnum = ANY (c.conkey))))) JOIN pg_class pkr ON ((pkr.oid = c.confrelid))) JOIN pg_namespace pkn ON ((pkn.oid = pkr.relnamespace))) JOIN pg_attribute pka ON (((pka.attrelid = c.confrelid) AND (pka.attnum = ANY (c.confkey))))) WHERE (c.contype = 'f'::"char"); DROP VIEW pgutils.foreign_keys; pgutilsrkhfalse296116O00VIEW foreign_keysCOMMENT[COMMENT ON VIEW foreign_keys IS 'PK-FK constraints, including indexes and cascade traits'; pgutilsrkhfalse2600P00 foreign_keysACLREVOKE ALL ON TABLE foreign_keys FROM PUBLIC; REVOKE ALL ON TABLE foreign_keys FROM rkh; GRANT ALL ON TABLE foreign_keys TO rkh; GRANT SELECT ON TABLE foreign_keys TO PUBLIC; pgutilsrkhfalse2600) 1259308504foreign_keys_missing_indexesVIEW%CREATE VIEW foreign_keys_missing_indexes AS SELECT foreign_keys.fk_namespace, foreign_keys.fk_relation, foreign_keys.fk_column, foreign_keys.fk_notnull, foreign_keys.fk_indexed, foreign_keys.pk_namespace, foreign_keys.pk_relation, foreign_keys.pk_column, foreign_keys.pk_indexed, foreign_keys.ud, foreign_keys.c_namespace, foreign_keys.c_name FROM foreign_keys WHERE ((foreign_keys.ud ~ '[^a]'::text) AND (NOT foreign_keys.fk_indexed)) ORDER BY foreign_keys.pk_relation, foreign_keys.pk_column, foreign_keys.fk_relation, foreign_keys.fk_column; 0DROP VIEW pgutils.foreign_keys_missing_indexes; pgutilsrkhfalse296216Q00!VIEW foreign_keys_missing_indexesCOMMENTsCOMMENT ON VIEW foreign_keys_missing_indexes IS 'foreign keys with cascading constrains that do not have indexes'; pgutilsrkhfalse2601R00foreign_keys_missing_indexesACLREVOKE ALL ON TABLE foreign_keys_missing_indexes FROM PUBLIC; REVOKE ALL ON TABLE foreign_keys_missing_indexes FROM rkh; GRANT ALL ON TABLE foreign_keys_missing_indexes TO rkh; GRANT SELECT ON TABLE foreign_keys_missing_indexes TO PUBLIC; pgutilsrkhfalse2601* 1259308508foreign_keys_ppVIEWCREATE VIEW foreign_keys_pp AS SELECT ((((((foreign_keys.fk_namespace)::text || '.'::text) || (foreign_keys.fk_relation)::text) || '('::text) || (foreign_keys.fk_column)::text) || ')'::text) AS fk, ((((((foreign_keys.pk_namespace)::text || '.'::text) || (foreign_keys.pk_relation)::text) || '('::text) || (foreign_keys.pk_column)::text) || ')'::text) AS pk, ((((((foreign_keys.c_namespace)::text || '.'::text) || (foreign_keys.c_name)::text) || '('::text) || foreign_keys.ud) || ')'::text) AS "constraint", foreign_keys.fk_indexed, foreign_keys.fk_notnull, foreign_keys.pk_indexed FROM foreign_keys ORDER BY ((((((foreign_keys.fk_namespace)::text || '.'::text) || (foreign_keys.fk_relation)::text) || '('::text) || (foreign_keys.fk_column)::text) || ')'::text); #DROP VIEW pgutils.foreign_keys_pp; pgutilsrkhfalse296316S00VIEW foreign_keys_ppCOMMENTOCOMMENT ON VIEW foreign_keys_pp IS 'PK-FK constraints; see also foreign_keys'; pgutilsrkhfalse2602T00foreign_keys_ppACLREVOKE ALL ON TABLE foreign_keys_pp FROM PUBLIC; REVOKE ALL ON TABLE foreign_keys_pp FROM rkh; GRANT ALL ON TABLE foreign_keys_pp TO rkh; GRANT SELECT ON TABLE foreign_keys_pp TO PUBLIC; pgutilsrkhfalse2602+ 1259308512function_owner_mismatchVIEWCREATE VIEW function_owner_mismatch AS SELECT p.oid AS pro_oid, p.proname, p.proowner, up.usename AS pro_usename, p.pronamespace, n.nspname, n.nspowner, un.usename AS nsp_usename FROM (((pg_proc p JOIN pg_user up ON ((p.proowner = up.usesysid))) JOIN pg_namespace n ON ((p.pronamespace = n.oid))) JOIN pg_user un ON ((n.nspowner = un.usesysid))) WHERE (p.proowner <> n.nspowner); +DROP VIEW pgutils.function_owner_mismatch; pgutilsrkhfalse296416U00VIEW function_owner_mismatchCOMMENTfCOMMENT ON VIEW function_owner_mismatch IS 'functions whose owner and namespace owner are not equal'; pgutilsrkhfalse2603V00function_owner_mismatchACLREVOKE ALL ON TABLE function_owner_mismatch FROM PUBLIC; REVOKE ALL ON TABLE function_owner_mismatch FROM rkh; GRANT ALL ON TABLE function_owner_mismatch TO rkh; GRANT SELECT ON TABLE function_owner_mismatch TO PUBLIC; pgutilsrkhfalse2603, 1259308517index_owner_is_not_table_ownerVIEW`CREATE VIEW index_owner_is_not_table_owner AS SELECT nind.nspname AS namespace, i.indrelid AS table_oid, cind.relname AS table_name, uind.usename AS table_owner, i.indexrelid AS index_oid, cindex.relname AS index_name, uindex.usename AS index_owner FROM (((((pg_index i JOIN pg_class cindex ON ((i.indexrelid = cindex.oid))) JOIN pg_class cind ON ((i.indrelid = cind.oid))) JOIN pg_namespace nind ON ((cind.relnamespace = nind.oid))) LEFT JOIN pg_user uindex ON ((cindex.relowner = uindex.usesysid))) LEFT JOIN pg_user uind ON ((cind.relowner = uind.usesysid))) WHERE (cind.relowner <> cindex.relowner); 2DROP VIEW pgutils.index_owner_is_not_table_owner; pgutilsrkhfalse296516W00#VIEW index_owner_is_not_table_ownerCOMMENTdCOMMENT ON VIEW index_owner_is_not_table_owner IS 'indexes which are not owned by the table owner'; pgutilsrkhfalse2604X00index_owner_is_not_table_ownerACLREVOKE ALL ON TABLE index_owner_is_not_table_owner FROM PUBLIC; REVOKE ALL ON TABLE index_owner_is_not_table_owner FROM rkh; GRANT ALL ON TABLE index_owner_is_not_table_owner TO rkh; GRANT SELECT ON TABLE index_owner_is_not_table_owner TO PUBLIC; pgutilsrkhfalse2604- 1259308522indexed_tablesVIEWCREATE VIEW indexed_tables AS SELECT tn.nspname AS schemaname, tc.relname AS tablename, tt.spcname AS tablespace, i.indisunique AS uniq, i.indisprimary AS pk, i.indisclustered AS cluster, ic.relname AS indexname, tt.spcname AS indexspace, pg_get_indexdef(i.indexrelid) AS indexdef FROM (((((pg_index i JOIN pg_class tc ON ((tc.oid = i.indrelid))) JOIN pg_class ic ON ((ic.oid = i.indexrelid))) LEFT JOIN pg_namespace tn ON ((tn.oid = tc.relnamespace))) LEFT JOIN pg_tablespace tt ON ((tt.oid = tc.reltablespace))) LEFT JOIN pg_tablespace it ON ((it.oid = ic.reltablespace))) WHERE ((tc.relkind = 'r'::"char") AND (ic.relkind = 'i'::"char")) ORDER BY tn.nspname, tc.relname, ic.relname; "DROP VIEW pgutils.indexed_tables; pgutilsrkhfalse296616Y00VIEW indexed_tablesCOMMENTYCOMMENT ON VIEW indexed_tables IS 'all indexed tables, with tablespaces and index info'; pgutilsrkhfalse2605Z00indexed_tablesACLREVOKE ALL ON TABLE indexed_tables FROM PUBLIC; REVOKE ALL ON TABLE indexed_tables FROM rkh; GRANT ALL ON TABLE indexed_tables TO rkh; GRANT SELECT ON TABLE indexed_tables TO PUBLIC; pgutilsrkhfalse2605. 1259308527indexed_tables_clusterVIEWeCREATE VIEW indexed_tables_cluster AS SELECT DISTINCT ON (ti1.schemaname, ti1.tablename) ti1.schemaname, ti1.tablename, (SELECT ti2.indexname FROM indexed_tables ti2 WHERE (((ti1.schemaname = ti2.schemaname) AND (ti1.tablename = ti2.tablename)) AND (ti2.cluster = true))) AS cluster_index FROM indexed_tables ti1 ORDER BY ti1.schemaname, ti1.tablename; *DROP VIEW pgutils.indexed_tables_cluster; pgutilsrkhfalse296716[00VIEW indexed_tables_clusterCOMMENTrCOMMENT ON VIEW indexed_tables_cluster IS 'indexed tables with cluster info (NULL if indexed but not clustered)'; pgutilsrkhfalse2606\00indexed_tables_clusterACLREVOKE ALL ON TABLE indexed_tables_cluster FROM PUBLIC; REVOKE ALL ON TABLE indexed_tables_cluster FROM rkh; GRANT ALL ON TABLE indexed_tables_cluster TO rkh; GRANT SELECT ON TABLE indexed_tables_cluster TO PUBLIC; pgutilsrkhfalse2606/ 1259308531inherited_tablesVIEWCREATE VIEW inherited_tables AS SELECT sub.relname AS subtable, sup.relname AS supertable FROM pg_class sup, pg_class sub, pg_depend d WHERE (((sup.oid = d.refobjid) AND (d.objid = sub.oid)) AND (sub.relkind = 'r'::"char")) ORDER BY sub.relname; $DROP VIEW pgutils.inherited_tables; pgutilsrkhfalse296816]00VIEW inherited_tablesCOMMENTECOMMENT ON VIEW inherited_tables IS 'inherited table relationships'; pgutilsrkhfalse2607^00inherited_tablesACLREVOKE ALL ON TABLE inherited_tables FROM PUBLIC; REVOKE ALL ON TABLE inherited_tables FROM rkh; GRANT ALL ON TABLE inherited_tables TO rkh; GRANT SELECT ON TABLE inherited_tables TO PUBLIC; pgutilsrkhfalse26070 1259308535locksVIEW3CREATE VIEW locks AS SELECT l.pid, d.datname AS database, n.nspname AS schema, c.relname AS relation, l.locktype, l.mode, CASE l.granted WHEN true THEN 'RUN'::text ELSE 'WAIT'::text END AS state, a.usename, a.current_query, to_char((now() - a.query_start), 'HH24:MI:SS'::text) AS duration FROM ((((pg_locks l JOIN pg_database d ON ((l.database = d.oid))) JOIN pg_class c ON ((l.relation = c.oid))) JOIN pg_namespace n ON ((c.relnamespace = n.oid))) JOIN pg_stat_activity a ON ((l.pid = a.procpid))) ORDER BY l.pid, d.datname, n.nspname, c.relname, l.granted; DROP VIEW pgutils.locks; pgutilsrkhfalse296916_00 VIEW locksCOMMENTGCOMMENT ON VIEW locks IS 'granted and pending locks on all relations'; pgutilsrkhfalse2608`00locksACLREVOKE ALL ON TABLE locks FROM PUBLIC; REVOKE ALL ON TABLE locks FROM rkh; GRANT ALL ON TABLE locks TO rkh; GRANT SELECT ON TABLE locks TO PUBLIC; pgutilsrkhfalse26081 1259308540 oid_namesVIEWCREATE VIEW oid_names AS (SELECT pg_type.oid, 'pg_type' AS pgtable, pg_type.typname AS name FROM pg_type UNION SELECT pg_proc.oid, 'pg_proc' AS pgtable, pg_proc.proname AS name FROM pg_proc) UNION SELECT pg_class.oid, 'pg_class' AS pgtable, pg_class.relname AS name FROM pg_class; DROP VIEW pgutils.oid_names; pgutilsrkhfalse297016a00VIEW oid_namesCOMMENTqCOMMENT ON VIEW oid_names IS 'names for oids in pg_class, pg_proc, pg_type; coverage is better than ::regclass'; pgutilsrkhfalse2609b00 oid_namesACLREVOKE ALL ON TABLE oid_names FROM PUBLIC; REVOKE ALL ON TABLE oid_names FROM rkh; GRANT ALL ON TABLE oid_names TO rkh; GRANT SELECT ON TABLE oid_names TO PUBLIC; pgutilsrkhfalse26092 1259308544readmeTABLE)CREATE TABLE readme ( readme text ); DROP TABLE pgutils.readme; pgutilsrkhfalse16c00readmeACLREVOKE ALL ON TABLE readme FROM PUBLIC; REVOKE ALL ON TABLE readme FROM rkh; GRANT ALL ON TABLE readme TO rkh; GRANT SELECT ON TABLE readme TO PUBLIC; pgutilsrkhfalse26103 1259308550role_members_vVIEWCREATE VIEW role_members_v AS SELECT a1.rolname AS role, a1.rolinherit AS inherit, a1.rolcanlogin AS login, a2.rolname AS member FROM ((pg_auth_members am JOIN pg_authid a1 ON ((am.roleid = a1.oid))) JOIN pg_authid a2 ON ((am.member = a2.oid))); "DROP VIEW pgutils.role_members_v; pgutilspostgresfalse297116d00VIEW role_members_vCOMMENTGCOMMENT ON VIEW role_members_v IS 'roles and members, 1 row per pair'; pgutilspostgresfalse2611e00role_members_vACLREVOKE ALL ON TABLE role_members_v FROM PUBLIC; REVOKE ALL ON TABLE role_members_v FROM postgres; GRANT ALL ON TABLE role_members_v TO postgres; GRANT SELECT ON TABLE role_members_v TO rkh; pgutilspostgresfalse26111255308554as_set(anyelement) AGGREGATEmCREATE AGGREGATE as_set(anyelement) ( SFUNC = array_append, STYPE = anyarray, INITCOND = '{}' ); +DROP AGGREGATE pgutils.as_set(anyelement); pgutilsrkhfalse16f00as_set(anyelement)ACLREVOKE ALL ON FUNCTION as_set(anyelement) FROM PUBLIC; REVOKE ALL ON FUNCTION as_set(anyelement) FROM rkh; GRANT ALL ON FUNCTION as_set(anyelement) TO rkh; GRANT ALL ON FUNCTION as_set(anyelement) TO PUBLIC; pgutilsrkhfalse12954 1259308555role_membership_vVIEW>CREATE VIEW role_membership_v AS SELECT x.role, x.inherit, x.login, count(x.member) AS count, as_set(x.member) AS as_set FROM (SELECT role_members_v.role, role_members_v.inherit, role_members_v.login, role_members_v.member FROM role_members_v ORDER BY role_members_v.member) x GROUP BY x.role, x.inherit, x.login; %DROP VIEW pgutils.role_membership_v; pgutilspostgresfalse2972165 1259308559schema_not_owned_by_userVIEWCREATE VIEW schema_not_owned_by_user AS SELECT n.nspname, owner.usename FROM ((pg_namespace n JOIN pg_user owner ON ((n.nspowner = owner.usesysid))) JOIN pg_user u ON ((n.nspname = u.usename))) WHERE (n.nspowner <> u.usesysid); ,DROP VIEW pgutils.schema_not_owned_by_user; pgutilsrkhfalse297316g00VIEW schema_not_owned_by_userCOMMENTwCOMMENT ON VIEW schema_not_owned_by_user IS 'schemas with the same name as a user but which is not owned by the user'; pgutilsrkhfalse2613h00schema_not_owned_by_userACLREVOKE ALL ON TABLE schema_not_owned_by_user FROM PUBLIC; REVOKE ALL ON TABLE schema_not_owned_by_user FROM rkh; GRANT ALL ON TABLE schema_not_owned_by_user TO rkh; GRANT SELECT ON TABLE schema_not_owned_by_user TO PUBLIC; pgutilsrkhfalse26136 1259308563 table_sizesVIEW]CREATE VIEW table_sizes AS SELECT round(((pg_total_relation_size(c.oid))::numeric / 1000000.0), 2) AS tot_size_mb, round(((pg_relation_size(c.oid))::numeric / 1000000.0), 2) AS rel_size_mb, s.nspowner, so.usename AS nspowner_name, s.nspname, c.relowner, co.usename AS relowner_name, c.relname FROM (((pg_namespace s JOIN pg_class c ON ((s.oid = c.relnamespace))) JOIN pg_user so ON ((s.nspowner = so.usesysid))) JOIN pg_user co ON ((c.relowner = co.usesysid))) WHERE (c.relkind = 'r'::"char") ORDER BY round(((pg_total_relation_size(c.oid))::numeric / 1000000.0), 2), s.nspname, c.relkind, c.relname; DROP VIEW pgutils.table_sizes; pgutilsrkhfalse297416i00VIEW table_sizesCOMMENTOCOMMENT ON VIEW table_sizes IS 'all tables and sizes [in SI MB (10^6 bytes)]'; pgutilsrkhfalse2614j00 table_sizesACLREVOKE ALL ON TABLE table_sizes FROM PUBLIC; REVOKE ALL ON TABLE table_sizes FROM rkh; GRANT ALL ON TABLE table_sizes TO rkh; GRANT SELECT ON TABLE table_sizes TO PUBLIC; pgutilsrkhfalse26147 1259308568 schema_sizesVIEWCREATE VIEW schema_sizes AS SELECT table_sizes.nspname, table_sizes.nspowner_name, sum(table_sizes.tot_size_mb) AS tot_size_mb, sum(table_sizes.rel_size_mb) AS rel_size_mb FROM table_sizes GROUP BY table_sizes.nspname, table_sizes.nspowner_name ORDER BY table_sizes.nspname; DROP VIEW pgutils.schema_sizes; pgutilsrkhfalse297516k00VIEW schema_sizesCOMMENTQCOMMENT ON VIEW schema_sizes IS 'all schemas and sizes [in SI MB (10^6 bytes)]'; pgutilsrkhfalse2615l00 schema_sizesACLREVOKE ALL ON TABLE schema_sizes FROM PUBLIC; REVOKE ALL ON TABLE schema_sizes FROM rkh; GRANT ALL ON TABLE schema_sizes TO rkh; GRANT SELECT ON TABLE schema_sizes TO PUBLIC; pgutilsrkhfalse26158 1259308572table_cluster_indexVIEWqCREATE VIEW table_cluster_index AS SELECT rn.nspname, rc.relname, (SELECT ic.relname FROM (pg_index i JOIN pg_class ic ON ((i.indexrelid = ic.oid))) WHERE ((rc.oid = i.indrelid) AND (i.indisclustered = true))) AS cluster_index FROM (pg_class rc JOIN pg_namespace rn ON ((rc.relnamespace = rn.oid))) WHERE (rc.relkind = 'r'::"char") ORDER BY rn.nspname, rc.relname; 'DROP VIEW pgutils.table_cluster_index; pgutilsrkhfalse297616m00VIEW table_cluster_indexCOMMENTZCOMMENT ON VIEW table_cluster_index IS 'all tables, with cluster index when such exists'; pgutilsrkhfalse2616n00table_cluster_indexACLREVOKE ALL ON TABLE table_cluster_index FROM PUBLIC; REVOKE ALL ON TABLE table_cluster_index FROM rkh; GRANT ALL ON TABLE table_cluster_index TO rkh; GRANT SELECT ON TABLE table_cluster_index TO PUBLIC; pgutilsrkhfalse26169 1259308577 table_columnsVIEWCREATE VIEW table_columns AS SELECT n.nspname, c.relname, a.attname FROM ((pg_attribute a JOIN pg_class c ON ((a.attrelid = c.oid))) JOIN pg_namespace n ON ((c.relnamespace = n.oid))); !DROP VIEW pgutils.table_columns; pgutilsrkhfalse297716o00VIEW table_columnsCOMMENTlCOMMENT ON VIEW table_columns IS 'all schema,table,column tuples; primarily useful for consistency checks'; pgutilsrkhfalse2617p00 table_columnsACLREVOKE ALL ON TABLE table_columns FROM PUBLIC; REVOKE ALL ON TABLE table_columns FROM rkh; GRANT ALL ON TABLE table_columns TO rkh; GRANT SELECT ON TABLE table_columns TO PUBLIC; pgutilsrkhfalse2617: 1259308582 table_permsVIEW6CREATE VIEW table_perms AS SELECT n.nspname AS schemaname, c.relname AS tablename, pg_get_userbyid(c.relowner) AS tableowner, c.relacl AS perms FROM (pg_class c LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = ANY (ARRAY['r'::"char", 'v'::"char"])) ORDER BY n.nspname, c.relname; DROP VIEW pgutils.table_perms; pgutilsrkhfalse297816q00VIEW table_permsCOMMENTaCOMMENT ON VIEW table_perms IS 'all table permissions; primarily useful for consistency checks'; pgutilsrkhfalse2618r00 table_permsACLREVOKE ALL ON TABLE table_perms FROM PUBLIC; REVOKE ALL ON TABLE table_perms FROM rkh; GRANT ALL ON TABLE table_perms TO rkh; GRANT SELECT ON TABLE table_perms TO PUBLIC; pgutilsrkhfalse2618 1259308145claTABLE,CREATE TABLE cla ( sunid integer NOT NULL, sid text NOT NULL, pdb character(4) NOT NULL, def text NOT NULL, sccs text NOT NULL, cl integer NOT NULL, cf integer NOT NULL, sf integer NOT NULL, fa integer NOT NULL, dm integer NOT NULL, sp integer NOT NULL ); DROP TABLE scop.cla; scopunisonfalse17s00 TABLE claCOMMENTRCOMMENT ON TABLE cla IS 'SCOP domain classification (http://scop.berkeley.edu/)'; scopunisonfalse2534t00claACLREVOKE ALL ON TABLE cla FROM PUBLIC; REVOKE ALL ON TABLE cla FROM unison; GRANT ALL ON TABLE cla TO unison; GRANT INSERT,UPDATE ON TABLE cla TO loader; GRANT SELECT ON TABLE cla TO PUBLIC; scopunisonfalse2534 1259307846desTABLECREATE TABLE des ( sunid integer NOT NULL, level text NOT NULL, sccs text NOT NULL, sname text, descr text NOT NULL ); DROP TABLE scop.des; scopunisonfalse17u00 TABLE desCOMMENTPCOMMENT ON TABLE des IS 'SCOP domain descriptions (http://scop.berkeley.edu/)'; scopunisonfalse2482v00desACLREVOKE ALL ON TABLE des FROM PUBLIC; REVOKE ALL ON TABLE des FROM unison; GRANT ALL ON TABLE des TO unison; GRANT INSERT,UPDATE ON TABLE des TO loader; GRANT SELECT ON TABLE des TO PUBLIC; scopunisonfalse2482 1259308204domTABLECREATE TABLE dom ( sid text NOT NULL, pdb character(4) NOT NULL, chain character(1) NOT NULL, start integer, stop integer ); DROP TABLE scop.dom; scopunisonfalse17w00domACLREVOKE ALL ON TABLE dom FROM PUBLIC; REVOKE ALL ON TABLE dom FROM unison; GRANT ALL ON TABLE dom TO unison; GRANT SELECT ON TABLE dom TO PUBLIC; scopunisonfalse2544N 1259308695hieTABLE]CREATE TABLE hie ( sunid integer NOT NULL, psunid integer, children integer[] ); DROP TABLE scop.hie; scopunisonfalse17x00 TABLE hieCOMMENTKCOMMENT ON TABLE hie IS 'SCOP node hierarchy (http://scop.berkeley.edu/)'; scopunisonfalse2638y00hieACLREVOKE ALL ON TABLE hie FROM PUBLIC; REVOKE ALL ON TABLE hie FROM unison; GRANT ALL ON TABLE hie TO unison; GRANT INSERT,UPDATE ON TABLE hie TO loader; GRANT SELECT ON TABLE hie TO PUBLIC; scopunisonfalse2638O 1259308701dnaTABLEQCREATE TABLE dna ( dnaid integer NOT NULL, is_primarydna character(1) ); DROP TABLE sst.dna; sstunisonfalse7z00dnaACLREVOKE ALL ON TABLE dna FROM PUBLIC; REVOKE ALL ON TABLE dna FROM unison; GRANT ALL ON TABLE dna TO unison; GRANT SELECT ON TABLE dna TO PUBLIC; sstunisonfalse2639P 1259308704famTABLEQCREATE TABLE fam ( famid integer, familyname text, shortname text ); DROP TABLE sst.fam; sstunisonfalse7{00 TABLE famCOMMENT3COMMENT ON TABLE fam IS 'mirror of sst FAM table'; sstunisonfalse2640|00famACLREVOKE ALL ON TABLE fam FROM PUBLIC; REVOKE ALL ON TABLE fam FROM unison; GRANT ALL ON TABLE fam TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE fam TO loader; GRANT SELECT ON TABLE fam TO PUBLIC; sstunisonfalse2640Q 1259308710proTABLEkCREATE TABLE pro ( proid integer NOT NULL, unqid integer, proname text, formalname text ); DROP TABLE sst.pro; sstunisonfalse7}00proACLREVOKE ALL ON TABLE pro FROM PUBLIC; REVOKE ALL ON TABLE pro FROM unison; GRANT ALL ON TABLE pro TO unison; GRANT SELECT ON TABLE pro TO PUBLIC; sstunisonfalse2641R 1259308716prodnaTABLEPCREATE TABLE prodna ( proid integer NOT NULL, dnaid integer NOT NULL ); DROP TABLE sst.prodna; sstunisonfalse7~00prodnaACLREVOKE ALL ON TABLE prodna FROM PUBLIC; REVOKE ALL ON TABLE prodna FROM unison; GRANT ALL ON TABLE prodna TO unison; GRANT SELECT ON TABLE prodna TO PUBLIC; sstunisonfalse2642S 1259308719 spdi_listTABLECREATE TABLE spdi_list ( loc text, gene text, domains text, genbank text, unqid integer, proid integer, dnaid integer ); DROP TABLE sst.spdi_list; sstunisonfalse700TABLE spdi_listCOMMENTCOMMENT ON TABLE spdi_list IS 'direct import from SPDI supplementary data (http://share.gene.com/share/clark.gr.2003/Clark-12930_Supp.doc)'; sstunisonfalse2643T 1259308725unqTABLEECREATE TABLE unq ( unqid integer NOT NULL, shortname text ); DROP TABLE sst.unq; sstunisonfalse700unqACLREVOKE ALL ON TABLE unq FROM PUBLIC; REVOKE ALL ON TABLE unq FROM unison; GRANT ALL ON TABLE unq TO unison; GRANT SELECT ON TABLE unq TO PUBLIC; sstunisonfalse2644U 1259308731 unqfamilyTABLEACREATE TABLE unqfamily ( unqid integer, famid integer ); DROP TABLE sst.unqfamily; sstunisonfalse700TABLE unqfamilyCOMMENT?COMMENT ON TABLE unqfamily IS 'mirror of sst UNQFAMILY table'; sstunisonfalse264500 unqfamilyACLREVOKE ALL ON TABLE unqfamily FROM PUBLIC; REVOKE ALL ON TABLE unqfamily FROM unison; GRANT ALL ON TABLE unqfamily TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE unqfamily TO loader; GRANT SELECT ON TABLE unqfamily TO PUBLIC; sstunisonfalse2645V 1259308734 unqproformTABLETCREATE TABLE unqproform ( unqid integer NOT NULL, proid integer NOT NULL ); DROP TABLE sst.unqproform; sstunisonfalse700 unqproformACLREVOKE ALL ON TABLE unqproform FROM PUBLIC; REVOKE ALL ON TABLE unqproform FROM unison; GRANT ALL ON TABLE unqproform TO unison; GRANT SELECT ON TABLE unqproform TO PUBLIC; sstunisonfalse2646; 1259308593v_transTABLESCREATE TABLE v_trans ( dnaid integer NOT NULL, pseq_id integer NOT NULL ); DROP TABLE sst.v_trans; sstunisonfalse700v_transACLREVOKE ALL ON TABLE v_trans FROM PUBLIC; REVOKE ALL ON TABLE v_trans FROM unison; GRANT ALL ON TABLE v_trans TO unison; GRANT SELECT ON TABLE v_trans TO PUBLIC; sstunisonfalse2619< 1259308596 v_unq2dnaTABLECREATE TABLE v_unq2dna ( dnaid integer NOT NULL, proid integer NOT NULL, unqid integer NOT NULL, unqname text, shortname text ); DROP TABLE sst.v_unq2dna; sstunisonfalse700 v_unq2dnaACLREVOKE ALL ON TABLE v_unq2dna FROM PUBLIC; REVOKE ALL ON TABLE v_unq2dna FROM unison; GRANT ALL ON TABLE v_unq2dna TO unison; GRANT SELECT ON TABLE v_unq2dna TO PUBLIC; sstunisonfalse2620 1259308151spspecTABLECREATE TABLE spspec ( tax_id integer NOT NULL, k character(1) NOT NULL, gs text NOT NULL, latin text NOT NULL, common text, synonyms text ); DROP TABLE tax.spspec; taxunisonfalse800 TABLE spspecCOMMENTtCOMMENT ON TABLE spspec IS 'Swiss-Prot Species from ftp://us.expasy.org/databases/swiss-prot/release/speclist.txt'; taxunisonfalse253500COLUMN spspec.tax_idCOMMENTYCOMMENT ON COLUMN spspec.tax_id IS 'NCBI taxonomy identifier (same used by Swiss-Prot)'; taxunisonfalse253500COLUMN spspec.kCOMMENTXCOMMENT ON COLUMN spspec.k IS 'kingdom (A=archea, B=bacteria, E=eukaryota, V=viridae)'; taxunisonfalse253500COLUMN spspec.gsCOMMENT|COMMENT ON COLUMN spspec.gs IS 'Swiss-Prot 5-letter genus+species code (typically GENus+SPecies = GENSP, with exceptions)'; taxunisonfalse253500COLUMN spspec.latinCOMMENT=COMMENT ON COLUMN spspec.latin IS 'Latin genus and species'; taxunisonfalse253500COLUMN spspec.commonCOMMENT2COMMENT ON COLUMN spspec.common IS 'common name'; taxunisonfalse253500COLUMN spspec.synonymsCOMMENTACOMMENT ON COLUMN spspec.synonyms IS 'synonyms, "; " separated'; taxunisonfalse253500spspecACLREVOKE ALL ON TABLE spspec FROM PUBLIC; REVOKE ALL ON TABLE spspec FROM unison; GRANT ALL ON TABLE spspec TO unison; GRANT INSERT,UPDATE ON TABLE spspec TO loader; GRANT SELECT ON TABLE spspec TO PUBLIC; taxunisonfalse25351255308680@domain_digest(integer, integer, text, integer, double precision)FUNCTIONCREATE FUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text) RETURNS text AS $$BEGIN SELECT INTO digest domain_digest(pstart,pstop,name,score||';'||eval); END;$$ LANGUAGE plpgsql IMMUTABLE STRICT; DROP FUNCTION unison.domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text); unisonunisonfalse1293900wFUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text)COMMENTCOMMENT ON FUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text) IS 'formatted domain summary, like start-stop:domain(score,eval)'; unisonunisonfalse19800@domain_digest(integer, integer, text, integer, double precision)ACLFREVOKE ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text) FROM PUBLIC; REVOKE ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text) FROM unison; GRANT ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text) TO unison; GRANT ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, score integer, eval double precision, OUT digest text) TO PUBLIC; unisonunisonfalse19831255308681link_url(integer, text)FUNCTION{CREATE FUNCTION link_url(integer, text) RETURNS text AS $_$ DECLARE row record; _o alias for $1; _a text = $2; BEGIN SELECT INTO row origin,link_url FROM origin WHERE origin_id=_o; IF NOT FOUND THEN RAISE EXCEPTION 'origin_id=% does not exist', _o; END IF; IF row.link_url IS NULL THEN RAISE DEBUG 'link_url for origin_id=% is null', _o; END IF; IF row.origin ~ '^Pfam' THEN -- Pfam links against only the unversioned accession _a = split_part(_a,'.',1); END IF; -- %a -- alias -- %s -- alias, deprecated return replace(replace(row.link_url,'%a',_a),'%s',_a); END; $_$ LANGUAGE plpgsql IMMUTABLE STRICT; .DROP FUNCTION unison.link_url(integer, text); unisonunisonfalse9129300 FUNCTION link_url(integer, text)COMMENTdCOMMENT ON FUNCTION link_url(integer, text) IS 'create URL to the origin_id $1 for alias/query $2'; unisonunisonfalse5100link_url(integer, text)ACLREVOKE ALL ON FUNCTION link_url(integer, text) FROM PUBLIC; REVOKE ALL ON FUNCTION link_url(integer, text) FROM unison; GRANT ALL ON FUNCTION link_url(integer, text) TO unison; GRANT ALL ON FUNCTION link_url(integer, text) TO PUBLIC; unisonunisonfalse51!1255308097origin_id(text)FUNCTION+CREATE FUNCTION origin_id(text) RETURNS integer AS $_$DECLARE V_id integer; BEGIN select into V_id origin_id from origin where upper(origin)=upper($1); IF NOT FOUND THEN RAISE WARNING 'origin ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; &DROP FUNCTION unison.origin_id(text); unisonunisonfalse1293900FUNCTION origin_id(text)COMMENT_COMMENT ON FUNCTION origin_id(text) IS 'return origin_id for given origin (case insensitive)'; unisonunisonfalse3300origin_id(text)ACLREVOKE ALL ON FUNCTION origin_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION origin_id(text) FROM unison; GRANT ALL ON FUNCTION origin_id(text) TO unison; GRANT ALL ON FUNCTION origin_id(text) TO PUBLIC; unisonunisonfalse33 1255307814pftype_id(text)FUNCTION)CREATE FUNCTION pftype_id(text) RETURNS integer AS $_$DECLARE V_id integer; BEGIN select into V_id pftype_id from pftype where upper(name)=upper($1); IF NOT FOUND THEN RAISE WARNING 'pftype ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; &DROP FUNCTION unison.pftype_id(text); unisonunisonfalse9129300pftype_id(text)ACLREVOKE ALL ON FUNCTION pftype_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION pftype_id(text) FROM unison; GRANT ALL ON FUNCTION pftype_id(text) TO unison; GRANT ALL ON FUNCTION pftype_id(text) TO PUBLIC; unisonunisonfalse32$1255308233 preferred_run_id_by_pftype(text)FUNCTIONCREATE FUNCTION preferred_run_id_by_pftype(text) RETURNS integer AS $_$select preferred_run_id from pftype where pftype_id=pftype_id($1)$_$ LANGUAGE sql STABLE; 7DROP FUNCTION unison.preferred_run_id_by_pftype(text); unisonunisonfalse900)FUNCTION preferred_run_id_by_pftype(text)COMMENTfCOMMENT ON FUNCTION preferred_run_id_by_pftype(text) IS 'return preferred run_id for a given pftype'; unisonunisonfalse36 1259309710origin_origin_id_seqSEQUENCEvCREATE SEQUENCE origin_origin_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; +DROP SEQUENCE unison.origin_origin_id_seq; unisonunisonfalse900origin_origin_id_seq SEQUENCE SET<SELECT pg_catalog.setval('origin_origin_id_seq', 1, false); unisonunisonfalse283000origin_origin_id_seqACLREVOKE ALL ON SEQUENCE origin_origin_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE origin_origin_id_seq FROM unison; GRANT ALL ON SEQUENCE origin_origin_id_seq TO unison; GRANT UPDATE ON SEQUENCE origin_origin_id_seq TO loader; unisonunisonfalse2830 1259308116originTABLEICREATE TABLE origin ( origin_id integer DEFAULT nextval('origin_origin_id_seq'::regclass) NOT NULL, origin text NOT NULL, url text, descr text, ann_pref integer, last_updated timestamp with time zone, data_url text, is_public boolean DEFAULT false NOT NULL, link_url text, version text ); DROP TABLE unison.origin; unisonunisonfalse33883389900 TABLE originCOMMENTYCOMMENT ON TABLE origin IS 'origin (database or algorithm) of protein alias (sequence)'; unisonunisonfalse252900COLUMN origin.origin_idCOMMENTXCOMMENT ON COLUMN origin.origin_id IS 'unique id for origin; default is serial number'; unisonunisonfalse252900COLUMN origin.originCOMMENT=COMMENT ON COLUMN origin.origin IS 'origin name (freetext)'; unisonunisonfalse252900COLUMN origin.urlCOMMENT_COMMENT ON COLUMN origin.url IS 'URL for external reference; %s is placeholder for accession'; unisonunisonfalse252900COLUMN origin.descrCOMMENT8COMMENT ON COLUMN origin.descr IS 'origin description'; unisonunisonfalse252900COLUMN origin.ann_prefCOMMENTzCOMMENT ON COLUMN origin.ann_pref IS 'preference order for selecting annotation information (lower = higher preference)'; unisonunisonfalse252900COLUMN origin.last_updatedCOMMENTUCOMMENT ON COLUMN origin.last_updated IS 'timestamp for last update of this origin'; unisonunisonfalse252900COLUMN origin.data_urlCOMMENTOCOMMENT ON COLUMN origin.data_url IS 'URL for source data loaded into Unison'; unisonunisonfalse252900COLUMN origin.is_publicCOMMENTiCOMMENT ON COLUMN origin.is_public IS 'true if this data source or algorithm is publicly distributable'; unisonunisonfalse252900COLUMN origin.link_urlCOMMENT;COMMENT ON COLUMN origin.link_url IS 'URL to source data'; unisonunisonfalse252900originACLREVOKE ALL ON TABLE origin FROM PUBLIC; REVOKE ALL ON TABLE origin FROM unison; GRANT ALL ON TABLE origin TO unison; GRANT INSERT,UPDATE ON TABLE origin TO loader; GRANT REFERENCES ON TABLE origin TO rkh; GRANT SELECT ON TABLE origin TO PUBLIC; unisonunisonfalse2529 1259309716pannotation_pannotation_id_seqSEQUENCECREATE SEQUENCE pannotation_pannotation_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 5DROP SEQUENCE unison.pannotation_pannotation_id_seq; unisonunisonfalse900pannotation_pannotation_id_seq SEQUENCE SETFSELECT pg_catalog.setval('pannotation_pannotation_id_seq', 1, false); unisonunisonfalse283300pannotation_pannotation_id_seqACL REVOKE ALL ON SEQUENCE pannotation_pannotation_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pannotation_pannotation_id_seq FROM unison; GRANT ALL ON SEQUENCE pannotation_pannotation_id_seq TO unison; GRANT UPDATE ON SEQUENCE pannotation_pannotation_id_seq TO loader; unisonunisonfalse2833 1259307882 pannotationTABLE_CREATE TABLE pannotation ( pannotation_id integer DEFAULT nextval('pannotation_pannotation_id_seq'::regclass) NOT NULL, origin_id integer NOT NULL, alias text NOT NULL, descr text, tax_id integer, added timestamp with time zone DEFAULT timenow() NOT NULL ); ALTER TABLE ONLY pannotation ALTER COLUMN alias SET STATISTICS 1000; DROP TABLE unison.pannotation; unisonunisonfalse33233324900TABLE pannotationCOMMENTNCOMMENT ON TABLE pannotation IS 'alias (names) given by a particular origin'; unisonunisonfalse248900!COLUMN pannotation.pannotation_idCOMMENThCOMMENT ON COLUMN pannotation.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse248900COLUMN pannotation.origin_idCOMMENTNCOMMENT ON COLUMN pannotation.origin_id IS 'origin.origin_id for this alias'; unisonunisonfalse248900COLUMN pannotation.aliasCOMMENTCOMMENT ON COLUMN pannotation.alias IS 'alias text; this should be the unique identifier (may be more than 1) for this sequence from this origin'; unisonunisonfalse248900COLUMN pannotation.descrCOMMENTlCOMMENT ON COLUMN pannotation.descr IS 'descriptive text, typically derived from the corresponding origin'; unisonunisonfalse248900COLUMN pannotation.tax_idCOMMENTPCOMMENT ON COLUMN pannotation.tax_id IS 'swissprot species id; see tax.spspec'; unisonunisonfalse248900COLUMN pannotation.addedCOMMENTKCOMMENT ON COLUMN pannotation.added IS 'date that this alias was created'; unisonunisonfalse248900 pannotationACLREVOKE ALL ON TABLE pannotation FROM PUBLIC; REVOKE ALL ON TABLE pannotation FROM unison; GRANT ALL ON TABLE pannotation TO unison; GRANT SELECT,INSERT,UPDATE ON TABLE pannotation TO loader; GRANT SELECT ON TABLE pannotation TO PUBLIC; unisonunisonfalse2489 1259307889pseq_pannotationTABLECREATE TABLE pseq_pannotation ( pannotation_id integer NOT NULL, pseq_id integer NOT NULL, ref_pseq_id integer, added timestamp with time zone DEFAULT timenow() NOT NULL, version integer DEFAULT 1 NOT NULL, is_current boolean DEFAULT true NOT NULL ); $DROP TABLE unison.pseq_pannotation; unisonunisonfalse332533263327900TABLE pseq_pannotationCOMMENTECOMMENT ON TABLE pseq_pannotation IS 'aliases for a given sequence'; unisonunisonfalse249000&COLUMN pseq_pannotation.pannotation_idCOMMENTgCOMMENT ON COLUMN pseq_pannotation.pannotation_id IS 'fk to pseqaliasorigin.palias_id for this alias'; unisonunisonfalse249000COLUMN pseq_pannotation.pseq_idCOMMENTMCOMMENT ON COLUMN pseq_pannotation.pseq_id IS 'pseq.pseq_id for this alias'; unisonunisonfalse249000#COLUMN pseq_pannotation.ref_pseq_idCOMMENTdCOMMENT ON COLUMN pseq_pannotation.ref_pseq_id IS 'reference to pseq_id for this derived sequence'; unisonunisonfalse249000COLUMN pseq_pannotation.addedCOMMENT_COMMENT ON COLUMN pseq_pannotation.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse249000COLUMN pseq_pannotation.versionCOMMENTRCOMMENT ON COLUMN pseq_pannotation.version IS 'version number of this pseqalias'; unisonunisonfalse249000"COLUMN pseq_pannotation.is_currentCOMMENTZCOMMENT ON COLUMN pseq_pannotation.is_current IS 'is this pseqalias the current version'; unisonunisonfalse249000pseq_pannotationACLREVOKE ALL ON TABLE pseq_pannotation FROM PUBLIC; REVOKE ALL ON TABLE pseq_pannotation FROM unison; GRANT ALL ON TABLE pseq_pannotation TO unison; GRANT SELECT,INSERT,UPDATE ON TABLE pseq_pannotation TO loader; GRANT SELECT ON TABLE pseq_pannotation TO PUBLIC; unisonunisonfalse2490 1259307895paliasVIEWCREATE VIEW palias AS SELECT pa.pannotation_id, pv.pseq_id, pa.origin_id, pa.alias, pa.descr, pa.tax_id, pv.ref_pseq_id, pv.added FROM pannotation pa, pseq_pannotation pv WHERE ((pv.pannotation_id = pa.pannotation_id) AND (pv.is_current = true)); DROP VIEW unison.palias; unisonunisonfalse2923900 VIEW paliasCOMMENT]COMMENT ON VIEW palias IS 'backwardly compatible - joins paliasorigin and pseqalias tables'; unisonunisonfalse249100COLUMN palias.pannotation_idCOMMENTcCOMMENT ON COLUMN palias.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse249100COLUMN palias.pseq_idCOMMENT_COMMENT ON COLUMN palias.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse249100COLUMN palias.origin_idCOMMENTTCOMMENT ON COLUMN palias.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse249100COLUMN palias.aliasCOMMENT<COMMENT ON COLUMN palias.alias IS 'alias for the sequence'; unisonunisonfalse249100COLUMN palias.descrCOMMENT:COMMENT ON COLUMN palias.descr IS 'sequence description'; unisonunisonfalse249100COLUMN palias.tax_idCOMMENT?COMMENT ON COLUMN palias.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse249100COLUMN palias.addedCOMMENTUCOMMENT ON COLUMN palias.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse249100paliasACLREVOKE ALL ON TABLE palias FROM PUBLIC; REVOKE ALL ON TABLE palias FROM unison; GRANT ALL ON TABLE palias TO unison; GRANT ALL ON TABLE palias TO loader; GRANT SELECT ON TABLE palias TO PUBLIC; unisonunisonfalse2491 1259308157current_annotations_vVIEW\CREATE VIEW current_annotations_v AS SELECT a.pseq_id, a.origin_id, o.origin, o.ann_pref, a.pannotation_id, a.tax_id, t.k, t.gs, t.latin, t.common, a.alias, a.descr, a.added, replace(o.link_url, '%s'::text, a.alias) AS link_url FROM ((palias a JOIN origin o ON ((a.origin_id = o.origin_id))) LEFT JOIN tax.spspec t ON ((a.tax_id = t.tax_id))); (DROP VIEW unison.current_annotations_v; unisonunisonfalse2929900$COLUMN current_annotations_v.pseq_idCOMMENTnCOMMENT ON COLUMN current_annotations_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse253600&COLUMN current_annotations_v.origin_idCOMMENTcCOMMENT ON COLUMN current_annotations_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse253600#COLUMN current_annotations_v.originCOMMENTaCOMMENT ON COLUMN current_annotations_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse253600%COLUMN current_annotations_v.ann_prefCOMMENTjCOMMENT ON COLUMN current_annotations_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse253600+COLUMN current_annotations_v.pannotation_idCOMMENTrCOMMENT ON COLUMN current_annotations_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse253600#COLUMN current_annotations_v.tax_idCOMMENTNCOMMENT ON COLUMN current_annotations_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse253600COLUMN current_annotations_v.kCOMMENTwCOMMENT ON COLUMN current_annotations_v.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse253600COLUMN current_annotations_v.gsCOMMENTwCOMMENT ON COLUMN current_annotations_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse253600"COLUMN current_annotations_v.latinCOMMENTLCOMMENT ON COLUMN current_annotations_v.latin IS 'Latin genus and species'; unisonunisonfalse253600#COLUMN current_annotations_v.commonCOMMENTKCOMMENT ON COLUMN current_annotations_v.common IS 'common taxonomic name'; unisonunisonfalse253600"COLUMN current_annotations_v.aliasCOMMENTKCOMMENT ON COLUMN current_annotations_v.alias IS 'alias for the sequence'; unisonunisonfalse253600"COLUMN current_annotations_v.descrCOMMENTICOMMENT ON COLUMN current_annotations_v.descr IS 'sequence description'; unisonunisonfalse253600"COLUMN current_annotations_v.addedCOMMENTdCOMMENT ON COLUMN current_annotations_v.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse253600%COLUMN current_annotations_v.link_urlCOMMENTJCOMMENT ON COLUMN current_annotations_v.link_url IS 'URL to source data'; unisonunisonfalse253600current_annotations_vACLREVOKE ALL ON TABLE current_annotations_v FROM PUBLIC; REVOKE ALL ON TABLE current_annotations_v FROM unison; GRANT ALL ON TABLE current_annotations_v TO unison; GRANT SELECT ON TABLE current_annotations_v TO PUBLIC; unisonunisonfalse2536 1259307818pfeature_pfeature_id_seqSEQUENCEzCREATE SEQUENCE pfeature_pfeature_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; /DROP SEQUENCE unison.pfeature_pfeature_id_seq; unisonunisonfalse900pfeature_pfeature_id_seq SEQUENCE SET@SELECT pg_catalog.setval('pfeature_pfeature_id_seq', 1, false); unisonunisonfalse247400pfeature_pfeature_id_seqACLREVOKE ALL ON SEQUENCE pfeature_pfeature_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pfeature_pfeature_id_seq FROM unison; GRANT ALL ON SEQUENCE pfeature_pfeature_id_seq TO unison; GRANT UPDATE ON SEQUENCE pfeature_pfeature_id_seq TO loader; unisonunisonfalse2474 1259307815pfeatureTABLECREATE TABLE pfeature ( pfeature_id integer DEFAULT nextval('pfeature_pfeature_id_seq'::regclass) NOT NULL, pseq_id integer NOT NULL, pftype_id integer NOT NULL, start integer NOT NULL, stop integer NOT NULL, params_id integer NOT NULL ); DROP TABLE unison.pfeature; unisonunisonfalse3305900TABLE pfeatureCOMMENTeCOMMENT ON TABLE pfeature IS 'parent table of all features; inherited by "subclass" feature tables'; unisonunisonfalse247300COLUMN pfeature.pfeature_idCOMMENTPCOMMENT ON COLUMN pfeature.pfeature_id IS 'unique identifier for this feature'; unisonunisonfalse247300COLUMN pfeature.pseq_idCOMMENTOCOMMENT ON COLUMN pfeature.pseq_id IS 'pseq_id on which this feature applies'; unisonunisonfalse247300COLUMN pfeature.pftype_idCOMMENTNCOMMENT ON COLUMN pfeature.pftype_id IS 'type of feature, from pftype table'; unisonunisonfalse247300COLUMN pfeature.startCOMMENTOCOMMENT ON COLUMN pfeature.start IS 'starting position (1-based) for feature'; unisonunisonfalse247300COLUMN pfeature.stopCOMMENTLCOMMENT ON COLUMN pfeature.stop IS 'ending position (1-based) for feature'; unisonunisonfalse247300COLUMN pfeature.params_idCOMMENT]COMMENT ON COLUMN pfeature.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse247300pfeatureACLREVOKE ALL ON TABLE pfeature FROM PUBLIC; REVOKE ALL ON TABLE pfeature FROM unison; GRANT ALL ON TABLE pfeature TO unison; GRANT INSERT,UPDATE ON TABLE pfeature TO loader; GRANT SELECT ON TABLE pfeature TO PUBLIC; unisonunisonfalse2473 1259307820 palignmentTABLECREATE TABLE palignment ( start integer, stop integer, params_id integer, pmodel_id integer NOT NULL, mstart smallint NOT NULL, mstop smallint NOT NULL, ident smallint, sim smallint, gaps smallint NOT NULL, qgaps smallint, tgaps smallint, score integer NOT NULL, eval double precision NOT NULL, len smallint ) INHERITS (pfeature); DROP TABLE unison.palignment; unisonunisonfalse33069247300TABLE palignmentCOMMENTPCOMMENT ON TABLE palignment IS 'superclass table of sequence-model alignments'; unisonunisonfalse247500COLUMN palignment.pfeature_idCOMMENTZCOMMENT ON COLUMN palignment.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse247500COLUMN palignment.pseq_idCOMMENTcCOMMENT ON COLUMN palignment.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse247500COLUMN palignment.pftype_idCOMMENTfCOMMENT ON COLUMN palignment.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse247500COLUMN palignment.startCOMMENTQCOMMENT ON COLUMN palignment.start IS 'start of prediction in protein sequence'; unisonunisonfalse247500COLUMN palignment.stopCOMMENTOCOMMENT ON COLUMN palignment.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse247500COLUMN palignment.params_idCOMMENT_COMMENT ON COLUMN palignment.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse247500COLUMN palignment.pmodel_idCOMMENTMCOMMENT ON COLUMN palignment.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse247500COLUMN palignment.mstartCOMMENTDCOMMENT ON COLUMN palignment.mstart IS 'start of match /in model/'; unisonunisonfalse247500COLUMN palignment.mstopCOMMENTBCOMMENT ON COLUMN palignment.mstop IS 'stop of match /in model/'; unisonunisonfalse247500COLUMN palignment.qgapsCOMMENTJCOMMENT ON COLUMN palignment.qgaps IS 'number of gaps in query sequence'; unisonunisonfalse247500COLUMN palignment.tgapsCOMMENTKCOMMENT ON COLUMN palignment.tgaps IS 'number of gaps in target sequence'; unisonunisonfalse247500COLUMN palignment.scoreCOMMENTBCOMMENT ON COLUMN palignment.score IS 'algorithm-specific score'; unisonunisonfalse247500COLUMN palignment.evalCOMMENT:COMMENT ON COLUMN palignment.eval IS 'expectation value'; unisonunisonfalse247500COLUMN palignment.lenCOMMENTKCOMMENT ON COLUMN palignment.len IS 'length of alignment, including gaps'; unisonunisonfalse247500 palignmentACLREVOKE ALL ON TABLE palignment FROM PUBLIC; REVOKE ALL ON TABLE palignment FROM unison; GRANT ALL ON TABLE palignment TO unison; GRANT SELECT ON TABLE palignment TO PUBLIC; unisonunisonfalse2475 1259307823pahmmTABLECREATE TABLE pahmm ( pftype_id integer DEFAULT pftype_id('HMM'::text), qgaps smallint NOT NULL, tgaps smallint NOT NULL ) INHERITS (palignment); DROP TABLE unison.pahmm; unisonunisonfalse330733082475900 TABLE pahmmCOMMENTACOMMENT ON TABLE pahmm IS 'HMM alignments; inherits palignment'; unisonunisonfalse247600COLUMN pahmm.pfeature_idCOMMENT<COMMENT ON COLUMN pahmm.pfeature_id IS 'unique feature id'; unisonunisonfalse247600COLUMN pahmm.pseq_idCOMMENT^COMMENT ON COLUMN pahmm.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse247600COLUMN pahmm.pftype_idCOMMENTaCOMMENT ON COLUMN pahmm.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse247600COLUMN pahmm.startCOMMENTLCOMMENT ON COLUMN pahmm.start IS 'start of prediction in protein sequence'; unisonunisonfalse247600COLUMN pahmm.stopCOMMENTJCOMMENT ON COLUMN pahmm.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse247600COLUMN pahmm.params_idCOMMENTZCOMMENT ON COLUMN pahmm.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse247600COLUMN pahmm.pmodel_idCOMMENTHCOMMENT ON COLUMN pahmm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse247600COLUMN pahmm.mstartCOMMENT?COMMENT ON COLUMN pahmm.mstart IS 'start of match /in model/'; unisonunisonfalse247600COLUMN pahmm.mstopCOMMENT=COMMENT ON COLUMN pahmm.mstop IS 'stop of match /in model/'; unisonunisonfalse247600COLUMN pahmm.qgapsCOMMENTECOMMENT ON COLUMN pahmm.qgaps IS 'number of gaps in query sequence'; unisonunisonfalse247600COLUMN pahmm.tgapsCOMMENTFCOMMENT ON COLUMN pahmm.tgaps IS 'number of gaps in target sequence'; unisonunisonfalse247600COLUMN pahmm.scoreCOMMENTkCOMMENT ON COLUMN pahmm.score IS '(single) domain score; this is not the "sequence classification score"'; unisonunisonfalse247600COLUMN pahmm.evalCOMMENTGCOMMENT ON COLUMN pahmm.eval IS 'expecation eval (from domain score)'; unisonunisonfalse247600pahmmACLREVOKE ALL ON TABLE pahmm FROM PUBLIC; REVOKE ALL ON TABLE pahmm FROM unison; GRANT ALL ON TABLE pahmm TO unison; GRANT INSERT ON TABLE pahmm TO loader; GRANT SELECT ON TABLE pahmm TO PUBLIC; unisonunisonfalse2476 1259309718params_params_id_seqSEQUENCEvCREATE SEQUENCE params_params_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; +DROP SEQUENCE unison.params_params_id_seq; unisonunisonfalse900params_params_id_seq SEQUENCE SET<SELECT pg_catalog.setval('params_params_id_seq', 1, false); unisonunisonfalse283400params_params_id_seqACLREVOKE ALL ON SEQUENCE params_params_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE params_params_id_seq FROM unison; GRANT ALL ON SEQUENCE params_params_id_seq TO unison; GRANT UPDATE ON SEQUENCE params_params_id_seq TO loader; unisonunisonfalse2834 1259308234paramsTABLE,CREATE TABLE params ( params_id integer DEFAULT nextval('params_params_id_seq'::regclass) NOT NULL, name text NOT NULL, commandline text NOT NULL, added timestamp with time zone DEFAULT timenow(), pftype_id integer, is_public boolean DEFAULT false NOT NULL, descr text ); DROP TABLE unison.params; unisonunisonfalse340634073408900 TABLE paramsCOMMENTXCOMMENT ON TABLE params IS 'table of run parameters and dates; inherited by r* tables'; unisonunisonfalse254900COLUMN params.params_idCOMMENTPCOMMENT ON COLUMN params.params_id IS 'unique identifier for these parameters'; unisonunisonfalse254900COLUMN params.nameCOMMENT7COMMENT ON COLUMN params.name IS 'parameter set name'; unisonunisonfalse254900COLUMN params.commandlineCOMMENTQCOMMENT ON COLUMN params.commandline IS 'command line used to generate results'; unisonunisonfalse254900COLUMN params.addedCOMMENTBCOMMENT ON COLUMN params.added IS 'date parameters were defined'; unisonunisonfalse254900COLUMN params.pftype_idCOMMENTLCOMMENT ON COLUMN params.pftype_id IS 'pftype_id for results of this type'; unisonunisonfalse254900COLUMN params.is_publicCOMMENTQCOMMENT ON COLUMN params.is_public IS 'whether these results are distributable'; unisonunisonfalse254900COLUMN params.descrCOMMENTGCOMMENT ON COLUMN params.descr IS 'description of this parameter set'; unisonunisonfalse254900paramsACLREVOKE ALL ON TABLE params FROM PUBLIC; REVOKE ALL ON TABLE params FROM unison; GRANT ALL ON TABLE params TO unison; GRANT INSERT,UPDATE ON TABLE params TO loader; GRANT SELECT ON TABLE params TO PUBLIC; unisonunisonfalse2549 1259309728pftype_pftype_id_seqSEQUENCEvCREATE SEQUENCE pftype_pftype_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; +DROP SEQUENCE unison.pftype_pftype_id_seq; unisonunisonfalse900pftype_pftype_id_seq SEQUENCE SET<SELECT pg_catalog.setval('pftype_pftype_id_seq', 1, false); unisonunisonfalse283900pftype_pftype_id_seqACLREVOKE ALL ON SEQUENCE pftype_pftype_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pftype_pftype_id_seq FROM unison; GRANT ALL ON SEQUENCE pftype_pftype_id_seq TO unison; GRANT UPDATE ON SEQUENCE pftype_pftype_id_seq TO loader; unisonunisonfalse2839 1259308247pftypeTABLECREATE TABLE pftype ( pftype_id integer DEFAULT nextval('pftype_pftype_id_seq'::regclass) NOT NULL, name text, descr text, preferred_run_id integer ); DROP TABLE unison.pftype; unisonunisonfalse3412900 TABLE pftypeCOMMENT;COMMENT ON TABLE pftype IS 'enumeration of feature types'; unisonunisonfalse255100COLUMN pftype.pftype_idCOMMENTQCOMMENT ON COLUMN pftype.pftype_id IS 'unique identifier for this feature type'; unisonunisonfalse255100COLUMN pftype.nameCOMMENTPCOMMENT ON COLUMN pftype.name IS 'short descriptive name of this feature type'; unisonunisonfalse255100COLUMN pftype.descrCOMMENT>COMMENT ON COLUMN pftype.descr IS 'feature type description'; unisonunisonfalse255100COLUMN pftype.preferred_run_idCOMMENTvCOMMENT ON COLUMN pftype.preferred_run_id IS 'preferred/current parameter/model set identifer for this feature type'; unisonunisonfalse255100pftypeACLREVOKE ALL ON TABLE pftype FROM PUBLIC; REVOKE ALL ON TABLE pftype FROM unison; GRANT ALL ON TABLE pftype TO unison; GRANT INSERT,UPDATE ON TABLE pftype TO loader; GRANT SELECT ON TABLE pftype TO PUBLIC; unisonunisonfalse2551 1259307863pmodel_pmodel_id_seqSEQUENCEvCREATE SEQUENCE pmodel_pmodel_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; +DROP SEQUENCE unison.pmodel_pmodel_id_seq; unisonunisonfalse9 00pmodel_pmodel_id_seq SEQUENCE SET<SELECT pg_catalog.setval('pmodel_pmodel_id_seq', 1, false); unisonunisonfalse2485 00pmodel_pmodel_id_seqACLREVOKE ALL ON SEQUENCE pmodel_pmodel_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pmodel_pmodel_id_seq FROM unison; GRANT ALL ON SEQUENCE pmodel_pmodel_id_seq TO unison; GRANT UPDATE ON SEQUENCE pmodel_pmodel_id_seq TO loader; unisonunisonfalse2485 1259307855pmodelTABLECREATE TABLE pmodel ( pmodel_id integer DEFAULT nextval('pmodel_pmodel_id_seq'::regclass) NOT NULL, origin_id integer, acc text, added timestamp with time zone DEFAULT timenow(), descr text, is_current boolean DEFAULT true ); DROP TABLE unison.pmodel; unisonunisonfalse3316331733189 00 TABLE pmodelCOMMENT@COMMENT ON TABLE pmodel IS 'generic protein model information'; unisonunisonfalse2484 00COLUMN pmodel.pmodel_idCOMMENTECOMMENT ON COLUMN pmodel.pmodel_id IS 'unique id for protein model'; unisonunisonfalse2484 00COLUMN pmodel.origin_idCOMMENTACOMMENT ON COLUMN pmodel.origin_id IS 'origin of protein model'; unisonunisonfalse248400COLUMN pmodel.accCOMMENTXCOMMENT ON COLUMN pmodel.acc IS 'protein model name (perhaps an identifier in origin)'; unisonunisonfalse248400COLUMN pmodel.addedCOMMENT@COMMENT ON COLUMN pmodel.added IS 'when this data was created'; unisonunisonfalse248400COLUMN pmodel.descrCOMMENT7COMMENT ON COLUMN pmodel.descr IS 'model description'; unisonunisonfalse248400pmodelACLREVOKE ALL ON TABLE pmodel FROM PUBLIC; REVOKE ALL ON TABLE pmodel FROM unison; GRANT ALL ON TABLE pmodel TO unison; GRANT INSERT,UPDATE ON TABLE pmodel TO loader; GRANT SELECT ON TABLE pmodel TO PUBLIC; unisonunisonfalse2484 1259307865pmhmmTABLEKCREATE TABLE pmhmm ( origin_id integer NOT NULL, acc text NOT NULL, descr text NOT NULL, name text NOT NULL, len smallint NOT NULL, nseq smallint NOT NULL, cksum smallint NOT NULL, ga_seq real, ga_dom real, tc_seq real, tc_dom real, nc_seq real, nc_dom real ) INHERITS (pmodel); DROP TABLE unison.pmhmm; unisonunisonfalse3319332033212484900 TABLE pmhmmCOMMENTUCOMMENT ON TABLE pmhmm IS 'hidden Markov models (mostly from Pfam); inherts pmodel'; unisonunisonfalse248600COLUMN pmhmm.pmodel_idCOMMENTHCOMMENT ON COLUMN pmhmm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse248600COLUMN pmhmm.origin_idCOMMENTSCOMMENT ON COLUMN pmhmm.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse248600COLUMN pmhmm.accCOMMENTGCOMMENT ON COLUMN pmhmm.acc IS 'model accession from source database'; unisonunisonfalse248600COLUMN pmhmm.addedCOMMENT?COMMENT ON COLUMN pmhmm.added IS 'when this data was created'; unisonunisonfalse248600COLUMN pmhmm.descrCOMMENT4COMMENT ON COLUMN pmhmm.descr IS 'HMM description'; unisonunisonfalse248600COLUMN pmhmm.nameCOMMENT,COMMENT ON COLUMN pmhmm.name IS 'HMM name'; unisonunisonfalse248600COLUMN pmhmm.nseqCOMMENTVCOMMENT ON COLUMN pmhmm.nseq IS 'number of sequences in alignment used to build HMM'; unisonunisonfalse248600COLUMN pmhmm.ga_seqCOMMENTuCOMMENT ON COLUMN pmhmm.ga_seq IS 'sequence gathering cutoff used to build full alignment; expect no FP above this'; unisonunisonfalse248600COLUMN pmhmm.ga_domCOMMENTsCOMMENT ON COLUMN pmhmm.ga_dom IS 'domain gathering cutoff used to build full alignment; expect no FP above this'; unisonunisonfalse248600COLUMN pmhmm.tc_seqCOMMENTxCOMMENT ON COLUMN pmhmm.tc_seq IS 'trusted cutoff for sequence -- lowest sequence score of sequence in full alignment'; unisonunisonfalse248600COLUMN pmhmm.tc_domCOMMENTtCOMMENT ON COLUMN pmhmm.tc_dom IS 'trusted cutoff for domain -- lowest domain score of sequence in full alignment'; unisonunisonfalse248600COLUMN pmhmm.nc_seqCOMMENT{COMMENT ON COLUMN pmhmm.nc_seq IS 'noise cutoff for sequence -- highest sequence score of sequence NOT in full alignment'; unisonunisonfalse248600COLUMN pmhmm.nc_domCOMMENTwCOMMENT ON COLUMN pmhmm.nc_dom IS 'noise cutoff for domain -- highest domain score of sequence NOT in full alignment'; unisonunisonfalse2486 00pmhmmACLREVOKE ALL ON TABLE pmhmm FROM PUBLIC; REVOKE ALL ON TABLE pmhmm FROM unison; GRANT ALL ON TABLE pmhmm TO unison; GRANT INSERT,UPDATE ON TABLE pmhmm TO loader; GRANT SELECT ON TABLE pmhmm TO PUBLIC; unisonunisonfalse2486 1259307840pmsmTABLEYCREATE TABLE pmsm ( pmodelset_id integer NOT NULL, pmodel_id integer NOT NULL ); DROP TABLE unison.pmsm; unisonunisonfalse9!00 TABLE pmsmCOMMENT]COMMENT ON TABLE pmsm IS '"protein modelset model" -- defines membership of models in sets'; unisonunisonfalse2480"00COLUMN pmsm.pmodelset_idCOMMENTfCOMMENT ON COLUMN pmsm.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse2480#00COLUMN pmsm.pmodel_idCOMMENTGCOMMENT ON COLUMN pmsm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2480$00pmsmACLREVOKE ALL ON TABLE pmsm FROM PUBLIC; REVOKE ALL ON TABLE pmsm FROM unison; GRANT ALL ON TABLE pmsm TO unison; GRANT SELECT ON TABLE pmsm TO PUBLIC; unisonunisonfalse2480 1259308139 pmsm_pmhmmTABLE-CREATE TABLE pmsm_pmhmm ( ) INHERITS (pmsm); DROP TABLE unison.pmsm_pmhmm; unisonunisonfalse24809%00TABLE pmsm_pmhmmCOMMENTRCOMMENT ON TABLE pmsm_pmhmm IS 'pmsm for pmhmms (inherits from pmsm, which see)'; unisonunisonfalse2532&00COLUMN pmsm_pmhmm.pmodelset_idCOMMENTlCOMMENT ON COLUMN pmsm_pmhmm.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse2532'00COLUMN pmsm_pmhmm.pmodel_idCOMMENTMCOMMENT ON COLUMN pmsm_pmhmm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2532(00 pmsm_pmhmmACLREVOKE ALL ON TABLE pmsm_pmhmm FROM PUBLIC; REVOKE ALL ON TABLE pmsm_pmhmm FROM unison; GRANT ALL ON TABLE pmsm_pmhmm TO unison; GRANT SELECT ON TABLE pmsm_pmhmm TO PUBLIC; unisonunisonfalse2532 1259309742run_run_id_seqSEQUENCEpCREATE SEQUENCE run_run_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; %DROP SEQUENCE unison.run_run_id_seq; unisonunisonfalse9)00run_run_id_seq SEQUENCE SET6SELECT pg_catalog.setval('run_run_id_seq', 1, false); unisonunisonfalse2846 1259308253runTABLECREATE TABLE run ( run_id integer DEFAULT nextval('run_run_id_seq'::regclass) NOT NULL, params_id integer NOT NULL, pmodelset_id integer ); DROP TABLE unison.run; unisonunisonfalse34139*00 TABLE runCOMMENTRCOMMENT ON TABLE run IS 'table of run characteristics like params and modelsets'; unisonunisonfalse2552+00COLUMN run.run_idCOMMENT?COMMENT ON COLUMN run.run_id IS 'unison identifier for a run'; unisonunisonfalse2552,00COLUMN run.params_idCOMMENTXCOMMENT ON COLUMN run.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2552-00COLUMN run.pmodelset_idCOMMENTeCOMMENT ON COLUMN run.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse2552.00runACLREVOKE ALL ON TABLE run FROM PUBLIC; REVOKE ALL ON TABLE run FROM unison; GRANT ALL ON TABLE run TO unison; GRANT SELECT ON TABLE run TO PUBLIC; unisonunisonfalse2552W 1259308737pseq_features_pfam_vVIEW&CREATE VIEW pseq_features_pfam_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, f.score, f.eval, m.origin_id, o.origin, f.pmodel_id, m.name AS feature, m.acc, m.descr, NULL::text AS details, domain_digest(f.start, f.stop, m.name, f.score, f.eval) AS digest, link_url(m.origin_id, m.acc) AS link_url FROM ((((((pahmm f JOIN pmhmm m ON ((f.pmodel_id = m.pmodel_id))) JOIN pmsm_pmhmm ms ON ((ms.pmodel_id = m.pmodel_id))) JOIN origin o ON ((m.origin_id = o.origin_id))) JOIN params p ON ((f.params_id = p.params_id))) JOIN pftype ft ON ((p.pftype_id = ft.pftype_id))) JOIN run r ON (((r.params_id = f.params_id) AND (r.pmodelset_id = ms.pmodelset_id)))) WHERE ((r.run_id = preferred_run_id_by_pftype('HMM'::text)) AND (f.eval < (1)::double precision)); 'DROP VIEW unison.pseq_features_pfam_v; unisonunisonfalse29889/00pseq_features_pfam_vACLREVOKE ALL ON TABLE pseq_features_pfam_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_pfam_v FROM unison; GRANT ALL ON TABLE pseq_features_pfam_v TO unison; GRANT SELECT ON TABLE pseq_features_pfam_v TO PUBLIC; unisonunisonfalse2647X 1259308742__jinfeng_queryVIEW0CREATE VIEW __jinfeng_query AS SELECT DISTINCT a.alias, m.acc FROM (pseq_features_pfam_v m JOIN current_annotations_v a ON ((m.pseq_id = a.pseq_id))) WHERE (((a.origin_id = origin_id('RefSeq unversioned'::text)) AND (m.eval < (0.1)::double precision)) AND (a.tax_id = 9606)) ORDER BY a.alias, m.acc; "DROP VIEW unison.__jinfeng_query; unisonunisonfalse29899Y 1259308746_deprecated_pseq_gene_vVIEWCREATE VIEW _deprecated_pseq_gene_v AS SELECT DISTINCT sa.pseq_id, ao.tax_id, ga.gene_id, gr.pubmed_ids, gr.generif FROM (((pseq_pannotation sa JOIN pannotation ao ON (((sa.pannotation_id = ao.pannotation_id) AND (ao.origin_id = origin_id('RefSeq'::text))))) JOIN ncbi.gene2accession ga ON (((ao.alias = ga.pro_acc) AND (ao.tax_id = ga.tax_id)))) LEFT JOIN ncbi.generif gr ON (((ga.gene_id = gr.gene_id) AND (ao.tax_id = gr.tax_id)))) ORDER BY sa.pseq_id, ao.tax_id, ga.gene_id, gr.generif, gr.pubmed_ids; *DROP VIEW unison._deprecated_pseq_gene_v; unisonunisonfalse29909000_deprecated_pseq_gene_vACLREVOKE ALL ON TABLE _deprecated_pseq_gene_v FROM PUBLIC; REVOKE ALL ON TABLE _deprecated_pseq_gene_v FROM unison; GRANT ALL ON TABLE _deprecated_pseq_gene_v TO unison; GRANT SELECT ON TABLE _deprecated_pseq_gene_v TO PUBLIC; unisonunisonfalse2649&1255308300gs2tax_id(text)FUNCTIONCREATE FUNCTION gs2tax_id(text) RETURNS integer AS $_$select tax_id from tax.spspec where upper(gs)=upper($1)$_$ LANGUAGE sql IMMUTABLE STRICT; #DROP FUNCTION tax.gs2tax_id(text); taxunisonfalse8100FUNCTION gs2tax_id(text)COMMENTTCOMMENT ON FUNCTION gs2tax_id(text) IS 'convert gs (genus species) to NCBI tax_id'; taxunisonfalse38200gs2tax_id(text)ACLREVOKE ALL ON FUNCTION gs2tax_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION gs2tax_id(text) FROM unison; GRANT ALL ON FUNCTION gs2tax_id(text) TO unison; GRANT ALL ON FUNCTION gs2tax_id(text) TO PUBLIC; taxunisonfalse38Z 1259308751_infer_tax_id_ensembl_vVIEW_ CREATE VIEW _infer_tax_id_ensembl_v AS SELECT paliasorigin.origin_id, paliasorigin.pannotation_id, paliasorigin.tax_id, CASE WHEN (paliasorigin.origin_id = origin_id('Ensembl/Chimp'::text)) THEN tax.gs2tax_id('PANTR'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Cow'::text)) THEN tax.gs2tax_id('BOVIN'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Fly'::text)) THEN tax.gs2tax_id('DROME'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Human'::text)) THEN tax.gs2tax_id('HUMAN'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Mouse'::text)) THEN tax.gs2tax_id('MOUSE'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Rat'::text)) THEN tax.gs2tax_id('RAT'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Zebrafish'::text)) THEN tax.gs2tax_id('BRARE'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Chimp (ab initio)'::text)) THEN tax.gs2tax_id('PANTR'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Cow (ab initio)'::text)) THEN tax.gs2tax_id('BOVIN'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Fly (ab initio)'::text)) THEN tax.gs2tax_id('DROME'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Human (ab initio)'::text)) THEN tax.gs2tax_id('HUMAN'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Mouse (ab initio)'::text)) THEN tax.gs2tax_id('MOUSE'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Rat (ab initio)'::text)) THEN tax.gs2tax_id('RAT'::text) WHEN (paliasorigin.origin_id = origin_id('Ensembl/Zebrafish (ab initio)'::text)) THEN tax.gs2tax_id('BRARE'::text) ELSE NULL::integer END AS inferred_tax_id FROM pannotation paliasorigin WHERE ((((((((((((((paliasorigin.origin_id = origin_id('Ensembl/Chimp'::text)) OR (paliasorigin.origin_id = origin_id('Ensembl/Cow'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Fly'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Human'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Mouse'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Rat'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Zebrafish'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Chimp (ab initio)'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Cow (ab initio)'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Fly (ab initio)'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Human (ab initio)'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Mouse (ab initio)'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Rat (ab initio)'::text))) OR (paliasorigin.origin_id = origin_id('Ensembl/Zebrafish (ab initio)'::text))); *DROP VIEW unison._infer_tax_id_ensembl_v; unisonunisonfalse29919300(COLUMN _infer_tax_id_ensembl_v.origin_idCOMMENTeCOMMENT ON COLUMN _infer_tax_id_ensembl_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2650400-COLUMN _infer_tax_id_ensembl_v.pannotation_idCOMMENTtCOMMENT ON COLUMN _infer_tax_id_ensembl_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2650500%COLUMN _infer_tax_id_ensembl_v.tax_idCOMMENTPCOMMENT ON COLUMN _infer_tax_id_ensembl_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2650600_infer_tax_id_ensembl_vACLREVOKE ALL ON TABLE _infer_tax_id_ensembl_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_ensembl_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_ensembl_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_ensembl_v TO loader; unisonunisonfalse2650[ 1259308756_infer_tax_id_genengenes_vVIEW CREATE VIEW _infer_tax_id_genengenes_v AS SELECT a.origin_id, a.pannotation_id, a.tax_id, t.tax_id AS inferred_tax_id FROM (pannotation a JOIN tax.spspec t ON ((upper("substring"(a.descr, '/species=''([^\'']+)'''::text)) = t.gs))) WHERE (a.origin_id = origin_id('GenenGenes'::text)); -DROP VIEW unison._infer_tax_id_genengenes_v; unisonunisonfalse29929700+COLUMN _infer_tax_id_genengenes_v.origin_idCOMMENThCOMMENT ON COLUMN _infer_tax_id_genengenes_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse26518000COLUMN _infer_tax_id_genengenes_v.pannotation_idCOMMENTwCOMMENT ON COLUMN _infer_tax_id_genengenes_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2651900(COLUMN _infer_tax_id_genengenes_v.tax_idCOMMENTSCOMMENT ON COLUMN _infer_tax_id_genengenes_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2651:00_infer_tax_id_genengenes_vACLREVOKE ALL ON TABLE _infer_tax_id_genengenes_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_genengenes_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_genengenes_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_genengenes_v TO loader; unisonunisonfalse2651\ 1259308760_infer_tax_id_geneseq_vVIEWCREATE VIEW _infer_tax_id_geneseq_v AS SELECT a.origin_id, a.pannotation_id, a.tax_id, t.tax_id AS inferred_tax_id FROM (pannotation a JOIN tax.spspec t ON (("substring"(a.descr, '\[OS: ([^\]]+)'::text) = t.latin))) WHERE (a.origin_id = origin_id('Geneseq'::text)); *DROP VIEW unison._infer_tax_id_geneseq_v; unisonunisonfalse29939;00(COLUMN _infer_tax_id_geneseq_v.origin_idCOMMENTeCOMMENT ON COLUMN _infer_tax_id_geneseq_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2652<00-COLUMN _infer_tax_id_geneseq_v.pannotation_idCOMMENTtCOMMENT ON COLUMN _infer_tax_id_geneseq_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2652=00%COLUMN _infer_tax_id_geneseq_v.tax_idCOMMENTPCOMMENT ON COLUMN _infer_tax_id_geneseq_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2652>00_infer_tax_id_geneseq_vACLREVOKE ALL ON TABLE _infer_tax_id_geneseq_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_geneseq_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_geneseq_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_geneseq_v TO loader; unisonunisonfalse2652] 1259308764_infer_tax_id_refseq_vVIEWCREATE VIEW _infer_tax_id_refseq_v AS SELECT a.origin_id, a.pannotation_id, a.tax_id, t.tax_id AS inferred_tax_id FROM (pannotation a LEFT JOIN tax.spspec t ON ((lower("substring"(a.descr, '\[([^\]]+)\].?$'::text)) = lower(t.latin)))) WHERE (((a.origin_id = origin_id('RefSeq'::text)) OR (a.origin_id = origin_id('RefSeq unversioned'::text))) OR (a.origin_id = origin_id('RefSeq gi'::text))); )DROP VIEW unison._infer_tax_id_refseq_v; unisonunisonfalse29949?00'COLUMN _infer_tax_id_refseq_v.origin_idCOMMENTdCOMMENT ON COLUMN _infer_tax_id_refseq_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2653@00,COLUMN _infer_tax_id_refseq_v.pannotation_idCOMMENTsCOMMENT ON COLUMN _infer_tax_id_refseq_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2653A00$COLUMN _infer_tax_id_refseq_v.tax_idCOMMENTOCOMMENT ON COLUMN _infer_tax_id_refseq_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2653B00_infer_tax_id_refseq_vACLREVOKE ALL ON TABLE _infer_tax_id_refseq_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_refseq_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_refseq_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_refseq_v TO loader; unisonunisonfalse2653^ 1259308768_infer_tax_id_uniprot_vVIEWrCREATE VIEW _infer_tax_id_uniprot_v AS SELECT a.origin_id, a.pannotation_id, a.tax_id, t.tax_id AS inferred_tax_id FROM (pannotation a JOIN tax.spspec t ON ((substr(a.alias, (strpos(a.alias, '_'::text) + 1)) = t.gs))) WHERE (((a.origin_id = origin_id('UniProtKB/Swiss-Prot'::text)) OR (a.origin_id = origin_id('UniProtKB/TrEMBL'::text))) AND (a.alias ~ '_'::text)); *DROP VIEW unison._infer_tax_id_uniprot_v; unisonunisonfalse29959C00(COLUMN _infer_tax_id_uniprot_v.origin_idCOMMENTeCOMMENT ON COLUMN _infer_tax_id_uniprot_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2654D00-COLUMN _infer_tax_id_uniprot_v.pannotation_idCOMMENTtCOMMENT ON COLUMN _infer_tax_id_uniprot_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2654E00%COLUMN _infer_tax_id_uniprot_v.tax_idCOMMENTPCOMMENT ON COLUMN _infer_tax_id_uniprot_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2654F00_infer_tax_id_uniprot_vACLREVOKE ALL ON TABLE _infer_tax_id_uniprot_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_uniprot_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_uniprot_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_uniprot_v TO loader; unisonunisonfalse2654_ 1259308772_infer_tax_id_vVIEWiCREATE VIEW _infer_tax_id_v AS (((SELECT _v_infer_tax_id_ensembl.origin_id, _v_infer_tax_id_ensembl.pannotation_id, _v_infer_tax_id_ensembl.tax_id, _v_infer_tax_id_ensembl.inferred_tax_id FROM _infer_tax_id_ensembl_v _v_infer_tax_id_ensembl UNION ALL SELECT _v_infer_tax_id_genengenes.origin_id, _v_infer_tax_id_genengenes.pannotation_id, _v_infer_tax_id_genengenes.tax_id, _v_infer_tax_id_genengenes.inferred_tax_id FROM _infer_tax_id_genengenes_v _v_infer_tax_id_genengenes) UNION ALL SELECT _v_infer_tax_id_geneseq.origin_id, _v_infer_tax_id_geneseq.pannotation_id, _v_infer_tax_id_geneseq.tax_id, _v_infer_tax_id_geneseq.inferred_tax_id FROM _infer_tax_id_geneseq_v _v_infer_tax_id_geneseq) UNION ALL SELECT _v_infer_tax_id_refseq.origin_id, _v_infer_tax_id_refseq.pannotation_id, _v_infer_tax_id_refseq.tax_id, _v_infer_tax_id_refseq.inferred_tax_id FROM _infer_tax_id_refseq_v _v_infer_tax_id_refseq) UNION ALL SELECT _v_infer_tax_id_uniprot.origin_id, _v_infer_tax_id_uniprot.pannotation_id, _v_infer_tax_id_uniprot.tax_id, _v_infer_tax_id_uniprot.inferred_tax_id FROM _infer_tax_id_uniprot_v _v_infer_tax_id_uniprot; "DROP VIEW unison._infer_tax_id_v; unisonunisonfalse29969G00 COLUMN _infer_tax_id_v.origin_idCOMMENT]COMMENT ON COLUMN _infer_tax_id_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2655H00%COLUMN _infer_tax_id_v.pannotation_idCOMMENTlCOMMENT ON COLUMN _infer_tax_id_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2655I00COLUMN _infer_tax_id_v.tax_idCOMMENTHCOMMENT ON COLUMN _infer_tax_id_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2655J00_infer_tax_id_vACLREVOKE ALL ON TABLE _infer_tax_id_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_v TO loader; unisonunisonfalse2655` 1259308776_infer_tax_id_changed_vVIEWCREATE VIEW _infer_tax_id_changed_v AS SELECT _v_infer_tax_id.origin_id, _v_infer_tax_id.pannotation_id, _v_infer_tax_id.tax_id, _v_infer_tax_id.inferred_tax_id FROM _infer_tax_id_v _v_infer_tax_id WHERE ((((_v_infer_tax_id.tax_id IS NULL) AND (_v_infer_tax_id.inferred_tax_id IS NOT NULL)) OR ((_v_infer_tax_id.tax_id IS NOT NULL) AND (_v_infer_tax_id.inferred_tax_id IS NULL))) OR (_v_infer_tax_id.tax_id <> _v_infer_tax_id.inferred_tax_id)); *DROP VIEW unison._infer_tax_id_changed_v; unisonunisonfalse29979K00(COLUMN _infer_tax_id_changed_v.origin_idCOMMENTeCOMMENT ON COLUMN _infer_tax_id_changed_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2656L00-COLUMN _infer_tax_id_changed_v.pannotation_idCOMMENTtCOMMENT ON COLUMN _infer_tax_id_changed_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2656M00%COLUMN _infer_tax_id_changed_v.tax_idCOMMENTPCOMMENT ON COLUMN _infer_tax_id_changed_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2656N00_infer_tax_id_changed_vACLREVOKE ALL ON TABLE _infer_tax_id_changed_v FROM PUBLIC; REVOKE ALL ON TABLE _infer_tax_id_changed_v FROM unison; GRANT ALL ON TABLE _infer_tax_id_changed_v TO unison; GRANT SELECT ON TABLE _infer_tax_id_changed_v TO loader; unisonunisonfalse2656a 1259308780_missing_fk_indexesVIEWCREATE VIEW _missing_fk_indexes AS SELECT foreign_keys.fk_namespace, foreign_keys.fk_relation, foreign_keys.fk_column, foreign_keys.pk_relation, foreign_keys.pk_column, (((((((((('create index '::text || (foreign_keys.fk_relation)::text) || '_'::text) || (foreign_keys.fk_column)::text) || ' on '::text) || (foreign_keys.fk_namespace)::text) || '.'::text) || (foreign_keys.fk_relation)::text) || '('::text) || (foreign_keys.fk_column)::text) || ');'::text) AS sql FROM pgutils.foreign_keys WHERE (((foreign_keys.ud ~ 'c'::text) AND (NOT (foreign_keys.fk_indexed AND foreign_keys.pk_indexed))) AND (foreign_keys.pk_namespace = 'unison'::name)) ORDER BY foreign_keys.pk_relation, foreign_keys.pk_column, foreign_keys.fk_relation, foreign_keys.fk_column; &DROP VIEW unison._missing_fk_indexes; unisonunisonfalse29989O00VIEW _missing_fk_indexesCOMMENTbCOMMENT ON VIEW _missing_fk_indexes IS 'pk-fk relationships which are missing indexes on the fk'; unisonunisonfalse2657P00_missing_fk_indexesACLREVOKE ALL ON TABLE _missing_fk_indexes FROM PUBLIC; REVOKE ALL ON TABLE _missing_fk_indexes FROM unison; GRANT ALL ON TABLE _missing_fk_indexes TO unison; GRANT SELECT ON TABLE _missing_fk_indexes TO PUBLIC; unisonunisonfalse2657 1259309734pmodelset_pmodelset_id_seqSEQUENCE|CREATE SEQUENCE pmodelset_pmodelset_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 1DROP SEQUENCE unison.pmodelset_pmodelset_id_seq; unisonunisonfalse9Q00pmodelset_pmodelset_id_seq SEQUENCE SETBSELECT pg_catalog.setval('pmodelset_pmodelset_id_seq', 1, false); unisonunisonfalse2842R00pmodelset_pmodelset_id_seqACLREVOKE ALL ON SEQUENCE pmodelset_pmodelset_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pmodelset_pmodelset_id_seq FROM unison; GRANT ALL ON SEQUENCE pmodelset_pmodelset_id_seq TO unison; GRANT UPDATE ON SEQUENCE pmodelset_pmodelset_id_seq TO loader; unisonunisonfalse2842 1259308123 pmodelsetTABLE(CREATE TABLE pmodelset ( pmodelset_id integer DEFAULT nextval('pmodelset_pmodelset_id_seq'::regclass) NOT NULL, name text, descr text, pmsm_table text, def text, locked boolean DEFAULT true, last_updated timestamp without time zone DEFAULT now(), data_url text ); DROP TABLE unison.pmodelset; unisonunisonfalse3390339133929S00TABLE pmodelsetCOMMENThCOMMENT ON TABLE pmodelset IS 'set of protein models (possibly heterogeneous); see pmsm_* for linking'; unisonunisonfalse2530T00COLUMN pmodelset.pmodelset_idCOMMENTkCOMMENT ON COLUMN pmodelset.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse2530U00COLUMN pmodelset.nameCOMMENT5COMMENT ON COLUMN pmodelset.name IS 'modelset name'; unisonunisonfalse2530V00COLUMN pmodelset.descrCOMMENT:COMMENT ON COLUMN pmodelset.descr IS 'model description'; unisonunisonfalse2530W00COLUMN pmodelset.pmsm_tableCOMMENT]COMMENT ON COLUMN pmodelset.pmsm_table IS 'table name that contains pmodel_ids of this set'; unisonunisonfalse2530X00COLUMN pmodelset.defCOMMENTHCOMMENT ON COLUMN pmodelset.def IS 'sql to retrive models in this set'; unisonunisonfalse2530Y00COLUMN pmodelset.lockedCOMMENT\COMMENT ON COLUMN pmodelset.locked IS 'boolean value specifies if modelset can be updated'; unisonunisonfalse2530Z00COLUMN pmodelset.last_updatedCOMMENTACOMMENT ON COLUMN pmodelset.last_updated IS 'date last updated'; unisonunisonfalse2530[00 pmodelsetACLREVOKE ALL ON TABLE pmodelset FROM PUBLIC; REVOKE ALL ON TABLE pmodelset FROM unison; GRANT ALL ON TABLE pmodelset TO unison; GRANT INSERT,UPDATE ON TABLE pmodelset TO loader; GRANT SELECT ON TABLE pmodelset TO PUBLIC; unisonunisonfalse2530b 1259308784_pmsm_pmhmm_expand_by_pfam_nameVIEW2CREATE VIEW _pmsm_pmhmm_expand_by_pfam_name AS SELECT msm.pmodelset_id, ms.name AS pmodelset_name, m1.name AS model_name, m1.pmodel_id AS pmodel_id1, m1.origin_id AS origin_id1, o1.origin AS origin1, m2.acc AS acc1, m2.pmodel_id AS pmodel_id2, m2.origin_id AS origin_id2, o2.origin AS origin2, m2.acc AS acc2 FROM (((((pmsm_pmhmm msm JOIN pmodelset ms ON ((msm.pmodelset_id = ms.pmodelset_id))) JOIN pmhmm m1 ON ((msm.pmodel_id = m1.pmodel_id))) JOIN pmhmm m2 ON ((m1.name = m2.name))) JOIN origin o1 ON ((m1.origin_id = o1.origin_id))) JOIN origin o2 ON ((m2.origin_id = o2.origin_id))) WHERE (((o1.origin ~* 'pfam'::text) AND (o2.origin ~* 'pfam'::text)) AND (NOT (EXISTS (SELECT ne.pmodelset_id, ne.pmodel_id FROM pmsm_pmhmm ne WHERE ((ne.pmodelset_id = ms.pmodelset_id) AND (ne.pmodel_id = m2.pmodel_id)))))); 2DROP VIEW unison._pmsm_pmhmm_expand_by_pfam_name; unisonunisonfalse29999\00$VIEW _pmsm_pmhmm_expand_by_pfam_nameCOMMENTjCOMMENT ON VIEW _pmsm_pmhmm_expand_by_pfam_name IS 'identify same-named pfam models to expand pmodelset'; unisonunisonfalse2658]00_pmsm_pmhmm_expand_by_pfam_nameACLREVOKE ALL ON TABLE _pmsm_pmhmm_expand_by_pfam_name FROM PUBLIC; REVOKE ALL ON TABLE _pmsm_pmhmm_expand_by_pfam_name FROM unison; GRANT ALL ON TABLE _pmsm_pmhmm_expand_by_pfam_name TO unison; GRANT SELECT ON TABLE _pmsm_pmhmm_expand_by_pfam_name TO PUBLIC; unisonunisonfalse2658c 1259308789_pmsm_pmhmm_pfam_upgradeVIEWCREATE VIEW _pmsm_pmhmm_pfam_upgrade AS SELECT _pmsm_pmhmm_expand_by_pfam_name.pmodelset_id, _pmsm_pmhmm_expand_by_pfam_name.pmodel_id2 AS pmodel_id FROM _pmsm_pmhmm_expand_by_pfam_name WHERE (_pmsm_pmhmm_expand_by_pfam_name.pmodelset_id = (-500)); +DROP VIEW unison._pmsm_pmhmm_pfam_upgrade; unisonunisonfalse30009^00VIEW _pmsm_pmhmm_pfam_upgradeCOMMENTsCOMMENT ON VIEW _pmsm_pmhmm_pfam_upgrade IS 'map new pfam models into pmsm_pmhmm with _pmodelset_new_pfam_models'; unisonunisonfalse2659_00_pmsm_pmhmm_pfam_upgradeACLREVOKE ALL ON TABLE _pmsm_pmhmm_pfam_upgrade FROM PUBLIC; REVOKE ALL ON TABLE _pmsm_pmhmm_pfam_upgrade FROM unison; GRANT ALL ON TABLE _pmsm_pmhmm_pfam_upgrade TO unison; GRANT SELECT ON TABLE _pmsm_pmhmm_pfam_upgrade TO PUBLIC; unisonunisonfalse2659d 1259308793_readmeTABLE*CREATE TABLE _readme ( readme text ); DROP TABLE unison._readme; unisonunisonfalse9`00 TABLE _readmeCOMMENT\COMMENT ON TABLE _readme IS 'READ THIS FIRST -- Unison overview and licensing information'; unisonunisonfalse2660a00_readmeACLREVOKE ALL ON TABLE _readme FROM PUBLIC; REVOKE ALL ON TABLE _readme FROM unison; GRANT ALL ON TABLE _readme TO unison; GRANT SELECT ON TABLE _readme TO PUBLIC; unisonunisonfalse2660e 1259308799_tasksTABLEOCREATE TABLE _tasks ( run_order integer NOT NULL, sql text NOT NULL ); DROP TABLE unison._tasks; unisonunisonfalse9b00 TABLE _tasksCOMMENT@COMMENT ON TABLE _tasks IS 'things to do when building unison'; unisonunisonfalse2661f 1259308805 alias_pdbcs_vVIEWCREATE VIEW alias_pdbcs_v AS SELECT a.pseq_id, a.alias AS pdbc, a.descr FROM (palias a JOIN pdb.chain c ON ((a.alias = c.pdbc))) WHERE (a.origin_id = origin_id('PDB'::text)) ORDER BY a.alias; DROP VIEW unison.alias_pdbcs_v; unisonunisonfalse30019c00VIEW alias_pdbcs_vCOMMENTjCOMMENT ON VIEW alias_pdbcs_v IS 'pseq_ids and alias of sequences which are associated with a structure'; unisonunisonfalse2662d00COLUMN alias_pdbcs_v.pseq_idCOMMENTfCOMMENT ON COLUMN alias_pdbcs_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2662e00COLUMN alias_pdbcs_v.pdbcCOMMENTMCOMMENT ON COLUMN alias_pdbcs_v.pdbc IS 'PDB identifier + chain (''pdbc'')'; unisonunisonfalse2662f00 alias_pdbcs_vACLREVOKE ALL ON TABLE alias_pdbcs_v FROM PUBLIC; REVOKE ALL ON TABLE alias_pdbcs_v FROM unison; GRANT ALL ON TABLE alias_pdbcs_v TO unison; GRANT SELECT ON TABLE alias_pdbcs_v TO PUBLIC; unisonunisonfalse2662g 1259308809 aliases_vVIEWkCREATE VIEW aliases_v AS SELECT sa.pseq_id, o.ann_pref, o.origin, ao.alias, t.gs, translate(ao.descr, ' '::text, ': '::text) AS descr FROM (((pannotation ao JOIN pseq_pannotation sa ON ((ao.pannotation_id = sa.pannotation_id))) JOIN origin o ON ((ao.origin_id = o.origin_id))) LEFT JOIN tax.spspec t ON ((ao.tax_id = t.tax_id))) WHERE (sa.is_current = true); DROP VIEW unison.aliases_v; unisonunisonfalse30029g00COLUMN aliases_v.pseq_idCOMMENTbCOMMENT ON COLUMN aliases_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2663h00COLUMN aliases_v.ann_prefCOMMENT^COMMENT ON COLUMN aliases_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse2663i00COLUMN aliases_v.originCOMMENTUCOMMENT ON COLUMN aliases_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse2663j00COLUMN aliases_v.aliasCOMMENT?COMMENT ON COLUMN aliases_v.alias IS 'alias for the sequence'; unisonunisonfalse2663k00COLUMN aliases_v.gsCOMMENTkCOMMENT ON COLUMN aliases_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse2663l00COLUMN aliases_v.descrCOMMENT=COMMENT ON COLUMN aliases_v.descr IS 'sequence description'; unisonunisonfalse2663m00 aliases_vACLREVOKE ALL ON TABLE aliases_v FROM PUBLIC; REVOKE ALL ON TABLE aliases_v FROM unison; GRANT ALL ON TABLE aliases_v TO unison; GRANT SELECT ON TABLE aliases_v TO PUBLIC; unisonunisonfalse2663 1259309704aliasset_aliasset_id_seqSEQUENCEzCREATE SEQUENCE aliasset_aliasset_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; /DROP SEQUENCE unison.aliasset_aliasset_id_seq; unisonunisonfalse9n00aliasset_aliasset_id_seq SEQUENCE SET@SELECT pg_catalog.setval('aliasset_aliasset_id_seq', 1, false); unisonunisonfalse2827h 1259308814aliassetTABLE0CREATE TABLE aliasset ( aliasset_id integer DEFAULT nextval('aliasset_aliasset_id_seq'::regclass) NOT NULL, owner text DEFAULT "current_user"(), descr text, is_public boolean DEFAULT false, created timestamp without time zone DEFAULT now(), updated timestamp without time zone ); DROP TABLE unison.aliasset; unisonunisonfalse34263427342834299i 1259308823aliasset_aliasTABLEpCREATE TABLE aliasset_alias ( aliasset_id integer NOT NULL, alias text NOT NULL, pseq_id integer ); "DROP TABLE unison.aliasset_alias; unisonunisonfalse9j 1259308829 aliasset_vVIEWCREATE VIEW aliasset_v AS SELECT aliasset.aliasset_id, aliasset.owner, aliasset.descr, aliasset.is_public, aliasset.created, aliasset.updated FROM aliasset WHERE ((("current_user"())::text = aliasset.owner) OR (aliasset.is_public IS TRUE)); DROP VIEW unison.aliasset_v; unisonunisonfalse30039o00 aliasset_vACLREVOKE ALL ON TABLE aliasset_v FROM PUBLIC; REVOKE ALL ON TABLE aliasset_v FROM unison; GRANT ALL ON TABLE aliasset_v TO unison; GRANT SELECT ON TABLE aliasset_v TO PUBLIC; unisonunisonfalse2666k 1259308833aliasset_alias_vVIEWCREATE VIEW aliasset_alias_v AS SELECT aa.aliasset_id, aa.alias, aa.pseq_id FROM (aliasset_v a JOIN aliasset_alias aa ON ((a.aliasset_id = aa.aliasset_id))); #DROP VIEW unison.aliasset_alias_v; unisonunisonfalse30049p00aliasset_alias_vACLREVOKE ALL ON TABLE aliasset_alias_v FROM PUBLIC; REVOKE ALL ON TABLE aliasset_alias_v FROM unison; GRANT ALL ON TABLE aliasset_alias_v TO unison; GRANT SELECT ON TABLE aliasset_alias_v TO PUBLIC; unisonunisonfalse2667H 1259308662all_annotations_vVIEW|CREATE VIEW all_annotations_v AS SELECT sa.pseq_id, sa.is_current, o.ann_pref, ao.origin_id, o.origin, ao.tax_id, t.gs, ao.alias, ao.descr, ao.pannotation_id, sa.added AS assigned FROM (((pannotation ao JOIN pseq_pannotation sa ON ((ao.pannotation_id = sa.pannotation_id))) JOIN origin o ON ((o.origin_id = ao.origin_id))) LEFT JOIN tax.spspec t ON ((ao.tax_id = t.tax_id))); $DROP VIEW unison.all_annotations_v; unisonunisonfalse29839q00 COLUMN all_annotations_v.pseq_idCOMMENTjCOMMENT ON COLUMN all_annotations_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2632r00#COLUMN all_annotations_v.is_currentCOMMENTCOMMENT ON COLUMN all_annotations_v.is_current IS 'true if this annotation is current for the sequence; an alias may refer to only one sequence at any time'; unisonunisonfalse2632s00!COLUMN all_annotations_v.ann_prefCOMMENTfCOMMENT ON COLUMN all_annotations_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse2632t00"COLUMN all_annotations_v.origin_idCOMMENT_COMMENT ON COLUMN all_annotations_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2632u00COLUMN all_annotations_v.originCOMMENT]COMMENT ON COLUMN all_annotations_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse2632v00COLUMN all_annotations_v.tax_idCOMMENTJCOMMENT ON COLUMN all_annotations_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2632w00COLUMN all_annotations_v.gsCOMMENTsCOMMENT ON COLUMN all_annotations_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse2632x00COLUMN all_annotations_v.aliasCOMMENTGCOMMENT ON COLUMN all_annotations_v.alias IS 'alias for the sequence'; unisonunisonfalse2632y00COLUMN all_annotations_v.descrCOMMENTECOMMENT ON COLUMN all_annotations_v.descr IS 'sequence description'; unisonunisonfalse2632z00'COLUMN all_annotations_v.pannotation_idCOMMENTnCOMMENT ON COLUMN all_annotations_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2632{00all_annotations_vACLREVOKE ALL ON TABLE all_annotations_v FROM PUBLIC; REVOKE ALL ON TABLE all_annotations_v FROM unison; GRANT ALL ON TABLE all_annotations_v TO unison; GRANT SELECT ON TABLE all_annotations_v TO PUBLIC; unisonunisonfalse2632l 1259308837all_annotations_sorted_vVIEWCREATE VIEW all_annotations_sorted_v AS SELECT v_all_annotations_unsorted.pseq_id, v_all_annotations_unsorted.is_current, v_all_annotations_unsorted.ann_pref, v_all_annotations_unsorted.origin_id, v_all_annotations_unsorted.origin, v_all_annotations_unsorted.tax_id, v_all_annotations_unsorted.gs, v_all_annotations_unsorted.alias, v_all_annotations_unsorted.descr, v_all_annotations_unsorted.pannotation_id, v_all_annotations_unsorted.assigned FROM all_annotations_v v_all_annotations_unsorted ORDER BY v_all_annotations_unsorted.pseq_id, v_all_annotations_unsorted.is_current DESC, v_all_annotations_unsorted.ann_pref, (strpos(v_all_annotations_unsorted.alias, '_'::text) = 0), v_all_annotations_unsorted.alias; +DROP VIEW unison.all_annotations_sorted_v; unisonunisonfalse30059|00VIEW all_annotations_sorted_vCOMMENTJCOMMENT ON VIEW all_annotations_sorted_v IS 'all annotations by pseq_id'; unisonunisonfalse2668}00'COLUMN all_annotations_sorted_v.pseq_idCOMMENTqCOMMENT ON COLUMN all_annotations_sorted_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2668~00*COLUMN all_annotations_sorted_v.is_currentCOMMENTCOMMENT ON COLUMN all_annotations_sorted_v.is_current IS 'true if this annotation is current for the sequence; an alias may refer to only one sequence at any time'; unisonunisonfalse266800(COLUMN all_annotations_sorted_v.ann_prefCOMMENTmCOMMENT ON COLUMN all_annotations_sorted_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse266800)COLUMN all_annotations_sorted_v.origin_idCOMMENTfCOMMENT ON COLUMN all_annotations_sorted_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse266800&COLUMN all_annotations_sorted_v.originCOMMENTdCOMMENT ON COLUMN all_annotations_sorted_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse266800&COLUMN all_annotations_sorted_v.tax_idCOMMENTQCOMMENT ON COLUMN all_annotations_sorted_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse266800"COLUMN all_annotations_sorted_v.gsCOMMENTzCOMMENT ON COLUMN all_annotations_sorted_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse266800%COLUMN all_annotations_sorted_v.aliasCOMMENTNCOMMENT ON COLUMN all_annotations_sorted_v.alias IS 'alias for the sequence'; unisonunisonfalse266800%COLUMN all_annotations_sorted_v.descrCOMMENTLCOMMENT ON COLUMN all_annotations_sorted_v.descr IS 'sequence description'; unisonunisonfalse266800.COLUMN all_annotations_sorted_v.pannotation_idCOMMENTuCOMMENT ON COLUMN all_annotations_sorted_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse266800all_annotations_sorted_vACLREVOKE ALL ON TABLE all_annotations_sorted_v FROM PUBLIC; REVOKE ALL ON TABLE all_annotations_sorted_v FROM unison; GRANT ALL ON TABLE all_annotations_sorted_v TO unison; GRANT SELECT ON TABLE all_annotations_sorted_v TO PUBLIC; unisonunisonfalse2668*1255308351params_id(text)FUNCTION)CREATE FUNCTION params_id(text) RETURNS integer AS $_$DECLARE V_id integer; BEGIN select into V_id params_id from params where upper(name)=upper($1); IF NOT FOUND THEN RAISE WARNING 'params ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; &DROP FUNCTION unison.params_id(text); unisonunisonfalse12939'1255308301pmodelset_id(text)FUNCTION5CREATE FUNCTION pmodelset_id(text) RETURNS integer AS $_$DECLARE V_id integer; BEGIN select into V_id pmodelset_id from pmodelset where upper(name)=upper($1); IF NOT FOUND THEN RAISE WARNING 'pmodelset ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; )DROP FUNCTION unison.pmodelset_id(text); unisonunisonfalse9129300pmodelset_id(text)ACLREVOKE ALL ON FUNCTION pmodelset_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION pmodelset_id(text) FROM unison; GRANT ALL ON FUNCTION pmodelset_id(text) TO unison; GRANT ALL ON FUNCTION pmodelset_id(text) TO PUBLIC; unisonunisonfalse39m 1259308841current_annotations_mvTABLEDCREATE TABLE current_annotations_mv ( pseq_id integer, origin_id integer, origin text, ann_pref integer, pannotation_id integer, tax_id integer, k character(1), gs text, latin text, common text, alias text, descr text, added timestamp with time zone, link_url text ); *DROP TABLE unison.current_annotations_mv; unisonunisonfalse900current_annotations_mvACLREVOKE ALL ON TABLE current_annotations_mv FROM PUBLIC; REVOKE ALL ON TABLE current_annotations_mv FROM unison; GRANT ALL ON TABLE current_annotations_mv TO unison; GRANT SELECT ON TABLE current_annotations_mv TO PUBLIC; unisonunisonfalse2669n 1259308847known_bcl2_overlaps_mvTABLECREATE TABLE known_bcl2_overlaps_mv ( q_pseq_id integer, chr text, strand text, q_gstart text, q_gstop text, t_pseq_id integer, t_gstart text, t_gstop text ); *DROP TABLE unison.known_bcl2_overlaps_mv; unisonunisonfalse900'COLUMN known_bcl2_overlaps_mv.q_pseq_idCOMMENTGCOMMENT ON COLUMN known_bcl2_overlaps_mv.q_pseq_id IS 'query pseq_id'; unisonunisonfalse267000!COLUMN known_bcl2_overlaps_mv.chrCOMMENT>COMMENT ON COLUMN known_bcl2_overlaps_mv.chr IS 'chromosome'; unisonunisonfalse267000$COLUMN known_bcl2_overlaps_mv.strandCOMMENTVCOMMENT ON COLUMN known_bcl2_overlaps_mv.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse267000'COLUMN known_bcl2_overlaps_mv.t_pseq_idCOMMENTHCOMMENT ON COLUMN known_bcl2_overlaps_mv.t_pseq_id IS 'target pseq_id'; unisonunisonfalse267000&COLUMN known_bcl2_overlaps_mv.t_gstartCOMMENTYCOMMENT ON COLUMN known_bcl2_overlaps_mv.t_gstart IS 'genomic start of target sequence'; unisonunisonfalse267000%COLUMN known_bcl2_overlaps_mv.t_gstopCOMMENTWCOMMENT ON COLUMN known_bcl2_overlaps_mv.t_gstop IS 'genomic stop of target sequence'; unisonunisonfalse267000known_bcl2_overlaps_mvACLREVOKE ALL ON TABLE known_bcl2_overlaps_mv FROM PUBLIC; REVOKE ALL ON TABLE known_bcl2_overlaps_mv FROM unison; GRANT ALL ON TABLE known_bcl2_overlaps_mv TO unison; GRANT SELECT ON TABLE known_bcl2_overlaps_mv TO PUBLIC; unisonunisonfalse2670 1259308216pftmhmmTABLE CREATE TABLE pftmhmm ( pftype_id integer DEFAULT pftype_id('TMHMM'::text), type character(1) NOT NULL, CONSTRAINT tm_type_ck CHECK (((((type = 'o'::bpchar) OR (type = 'i'::bpchar)) OR (type = 'M'::bpchar)) OR (type = 'N'::bpchar))) ) INHERITS (pfeature); DROP TABLE unison.pftmhmm; unisonunisonfalse3402340334049247300 TABLE pftmhmmCOMMENT,COMMENT ON TABLE pftmhmm IS 'TMHMM output'; unisonunisonfalse254600COLUMN pftmhmm.pfeature_idCOMMENTWCOMMENT ON COLUMN pftmhmm.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse254600COLUMN pftmhmm.pseq_idCOMMENT`COMMENT ON COLUMN pftmhmm.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse254600COLUMN pftmhmm.pftype_idCOMMENTcCOMMENT ON COLUMN pftmhmm.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse254600COLUMN pftmhmm.startCOMMENTNCOMMENT ON COLUMN pftmhmm.start IS 'start of prediction in protein sequence'; unisonunisonfalse254600COLUMN pftmhmm.stopCOMMENTLCOMMENT ON COLUMN pftmhmm.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse254600COLUMN pftmhmm.params_idCOMMENT\COMMENT ON COLUMN pftmhmm.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse254600COLUMN pftmhmm.typeCOMMENTJCOMMENT ON COLUMN pftmhmm.type IS 'S=signal; M=in->out TM; N=out->in TM'; unisonunisonfalse254600pftmhmmACLREVOKE ALL ON TABLE pftmhmm FROM PUBLIC; REVOKE ALL ON TABLE pftmhmm FROM unison; GRANT ALL ON TABLE pftmhmm TO unison; GRANT INSERT,UPDATE ON TABLE pftmhmm TO loader; GRANT SELECT ON TABLE pftmhmm TO PUBLIC; unisonunisonfalse2546o 1259308853bcl2_zebrafish_vVIEWCREATE VIEW bcl2_zebrafish_v AS SELECT DISTINCT ON (p.score, p.pseq_id, m.name) (EXISTS (SELECT known_bcl2_overlaps_mv.q_pseq_id FROM known_bcl2_overlaps_mv WHERE ((known_bcl2_overlaps_mv.t_pseq_id = a.pseq_id) OR ((known_bcl2_overlaps_mv.q_pseq_id = a.pseq_id) AND (known_bcl2_overlaps_mv.t_pseq_id IS NULL))))) AS known, a.pseq_id, m.name AS bh_name, p.start AS bh_start, p.stop AS bh_stop, p.mstart AS bh_mstart, p.mstop AS bh_mstop, p.score AS bh_score, p.eval AS bh_eval, t.start AS tm_start, t.stop AS tm_stop, a.alias, a.descr FROM (((pahmm p JOIN pmhmm m ON ((p.pmodel_id = m.pmodel_id))) JOIN current_annotations_mv a ON (((p.pseq_id = a.pseq_id) AND (a.tax_id = tax.gs2tax_id('DANRE'::text))))) LEFT JOIN pftmhmm t ON (((t.pseq_id = a.pseq_id) AND (t.start > p.stop)))) WHERE ((p.params_id = params_id('Bcl-2 ls DEPRECATED'::text)) AND (m.pmodel_id IN (SELECT pmsm_pmhmm.pmodel_id FROM pmsm_pmhmm WHERE (pmsm_pmhmm.pmodelset_id = pmodelset_id('Bcl-2 domains'::text))))) ORDER BY p.score DESC, p.pseq_id, m.name; #DROP VIEW unison.bcl2_zebrafish_v; unisonunisonfalse3006900COLUMN bcl2_zebrafish_v.pseq_idCOMMENTiCOMMENT ON COLUMN bcl2_zebrafish_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse267100 COLUMN bcl2_zebrafish_v.tm_startCOMMENTGCOMMENT ON COLUMN bcl2_zebrafish_v.tm_start IS 'start position of TM'; unisonunisonfalse267100COLUMN bcl2_zebrafish_v.tm_stopCOMMENTECOMMENT ON COLUMN bcl2_zebrafish_v.tm_stop IS 'stop position of TM'; unisonunisonfalse267100COLUMN bcl2_zebrafish_v.aliasCOMMENTFCOMMENT ON COLUMN bcl2_zebrafish_v.alias IS 'alias for the sequence'; unisonunisonfalse267100bcl2_zebrafish_vACLREVOKE ALL ON TABLE bcl2_zebrafish_v FROM PUBLIC; REVOKE ALL ON TABLE bcl2_zebrafish_v FROM unison; GRANT ALL ON TABLE bcl2_zebrafish_v TO unison; GRANT SELECT ON TABLE bcl2_zebrafish_v TO PUBLIC; unisonunisonfalse2671p 1259308858bcl2_zebrafish_domains_vVIEWCREATE VIEW bcl2_zebrafish_domains_v AS SELECT a.known, a.pseq_id, a.bh_name, a.bh_start, a.bh_stop, a.bh_mstart, a.bh_mstop, a.bh_score, a.bh_eval, a.tm_start, a.tm_stop, a.alias, a.descr, array_to_string(ARRAY(SELECT pf.bh_name FROM bcl2_zebrafish_v pf WHERE ((pf.pseq_id = a.pseq_id) AND (((((((pf.bh_name = 'BH1_TP_FN'::text) AND (pf.bh_score > 21)) OR ((pf.bh_name = 'BH2_TP_FN'::text) AND (pf.bh_score > 13))) OR ((pf.bh_name = 'BH3_TP_FN'::text) AND (pf.bh_score > 12))) OR ((pf.bh_name = 'BH4_1_TP_FN'::text) AND (pf.bh_score > 22))) OR ((pf.bh_name = 'BH4_2_TP_FN'::text) AND (pf.bh_score > 20))) OR ((pf.bh_name = 'Bcl-2_TP'::text) AND (pf.bh_score > 20))))), ','::text) AS domains FROM bcl2_zebrafish_v a; +DROP VIEW unison.bcl2_zebrafish_domains_v; unisonunisonfalse3007900'COLUMN bcl2_zebrafish_domains_v.pseq_idCOMMENTqCOMMENT ON COLUMN bcl2_zebrafish_domains_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse267200(COLUMN bcl2_zebrafish_domains_v.tm_startCOMMENTOCOMMENT ON COLUMN bcl2_zebrafish_domains_v.tm_start IS 'start position of TM'; unisonunisonfalse267200'COLUMN bcl2_zebrafish_domains_v.tm_stopCOMMENTMCOMMENT ON COLUMN bcl2_zebrafish_domains_v.tm_stop IS 'stop position of TM'; unisonunisonfalse267200%COLUMN bcl2_zebrafish_domains_v.aliasCOMMENTNCOMMENT ON COLUMN bcl2_zebrafish_domains_v.alias IS 'alias for the sequence'; unisonunisonfalse267200bcl2_zebrafish_domains_vACLREVOKE ALL ON TABLE bcl2_zebrafish_domains_v FROM PUBLIC; REVOKE ALL ON TABLE bcl2_zebrafish_domains_v FROM unison; GRANT ALL ON TABLE bcl2_zebrafish_domains_v TO unison; GRANT SELECT ON TABLE bcl2_zebrafish_domains_v TO PUBLIC; unisonunisonfalse2672D 1259308637best_annotation_mvTABLE@CREATE TABLE best_annotation_mv ( pseq_id integer, origin_id integer, origin text, ann_pref integer, pannotation_id integer, tax_id integer, k character(1), gs text, latin text, common text, alias text, descr text, added timestamp with time zone, link_url text ); &DROP TABLE unison.best_annotation_mv; unisonunisonfalse900TABLE best_annotation_mvCOMMENT\COMMENT ON TABLE best_annotation_mv IS 'materialized view of best annotation_v, which see'; unisonunisonfalse262800!COLUMN best_annotation_mv.pseq_idCOMMENTkCOMMENT ON COLUMN best_annotation_mv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse262800#COLUMN best_annotation_mv.origin_idCOMMENT`COMMENT ON COLUMN best_annotation_mv.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse262800 COLUMN best_annotation_mv.originCOMMENT^COMMENT ON COLUMN best_annotation_mv.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse262800"COLUMN best_annotation_mv.ann_prefCOMMENTgCOMMENT ON COLUMN best_annotation_mv.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse262800(COLUMN best_annotation_mv.pannotation_idCOMMENToCOMMENT ON COLUMN best_annotation_mv.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse262800 COLUMN best_annotation_mv.tax_idCOMMENTKCOMMENT ON COLUMN best_annotation_mv.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse262800COLUMN best_annotation_mv.kCOMMENTtCOMMENT ON COLUMN best_annotation_mv.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse262800COLUMN best_annotation_mv.gsCOMMENTtCOMMENT ON COLUMN best_annotation_mv.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse262800COLUMN best_annotation_mv.latinCOMMENTICOMMENT ON COLUMN best_annotation_mv.latin IS 'Latin genus and species'; unisonunisonfalse262800 COLUMN best_annotation_mv.commonCOMMENTHCOMMENT ON COLUMN best_annotation_mv.common IS 'common taxonomic name'; unisonunisonfalse262800COLUMN best_annotation_mv.aliasCOMMENTHCOMMENT ON COLUMN best_annotation_mv.alias IS 'alias for the sequence'; unisonunisonfalse262800COLUMN best_annotation_mv.addedCOMMENTaCOMMENT ON COLUMN best_annotation_mv.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse262800"COLUMN best_annotation_mv.link_urlCOMMENTGCOMMENT ON COLUMN best_annotation_mv.link_url IS 'URL to source data'; unisonunisonfalse262800best_annotation_mvACLREVOKE ALL ON TABLE best_annotation_mv FROM PUBLIC; REVOKE ALL ON TABLE best_annotation_mv FROM unison; GRANT ALL ON TABLE best_annotation_mv TO unison; GRANT SELECT ON TABLE best_annotation_mv TO PUBLIC; unisonunisonfalse2628q 1259308862best_annotation_vVIEWCREATE VIEW best_annotation_v AS SELECT DISTINCT ON (cau.pseq_id, (cau.tax_id <> 9606)) cau.pseq_id, cau.origin_id, cau.origin, cau.ann_pref, cau.pannotation_id, cau.tax_id, cau.k, cau.gs, cau.latin, cau.common, cau.alias, cau.descr, cau.added, cau.link_url FROM current_annotations_v cau ORDER BY cau.pseq_id, (cau.tax_id <> 9606), cau.ann_pref, (strpos(cau.alias, '_'::text) = 0), cau.alias; $DROP VIEW unison.best_annotation_v; unisonunisonfalse3008900 COLUMN best_annotation_v.pseq_idCOMMENTjCOMMENT ON COLUMN best_annotation_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse267300"COLUMN best_annotation_v.origin_idCOMMENT_COMMENT ON COLUMN best_annotation_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse267300COLUMN best_annotation_v.originCOMMENT]COMMENT ON COLUMN best_annotation_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse267300!COLUMN best_annotation_v.ann_prefCOMMENTfCOMMENT ON COLUMN best_annotation_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse267300'COLUMN best_annotation_v.pannotation_idCOMMENTnCOMMENT ON COLUMN best_annotation_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse267300COLUMN best_annotation_v.tax_idCOMMENTJCOMMENT ON COLUMN best_annotation_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse267300COLUMN best_annotation_v.kCOMMENTsCOMMENT ON COLUMN best_annotation_v.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse267300COLUMN best_annotation_v.gsCOMMENTsCOMMENT ON COLUMN best_annotation_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse267300COLUMN best_annotation_v.latinCOMMENTHCOMMENT ON COLUMN best_annotation_v.latin IS 'Latin genus and species'; unisonunisonfalse267300COLUMN best_annotation_v.commonCOMMENTGCOMMENT ON COLUMN best_annotation_v.common IS 'common taxonomic name'; unisonunisonfalse267300COLUMN best_annotation_v.aliasCOMMENTGCOMMENT ON COLUMN best_annotation_v.alias IS 'alias for the sequence'; unisonunisonfalse267300COLUMN best_annotation_v.descrCOMMENTECOMMENT ON COLUMN best_annotation_v.descr IS 'sequence description'; unisonunisonfalse267300COLUMN best_annotation_v.addedCOMMENT`COMMENT ON COLUMN best_annotation_v.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse267300!COLUMN best_annotation_v.link_urlCOMMENTFCOMMENT ON COLUMN best_annotation_v.link_url IS 'URL to source data'; unisonunisonfalse267300best_annotation_vACLREVOKE ALL ON TABLE best_annotation_v FROM PUBLIC; REVOKE ALL ON TABLE best_annotation_v FROM unison; GRANT ALL ON TABLE best_annotation_v TO unison; GRANT SELECT ON TABLE best_annotation_v TO PUBLIC; unisonunisonfalse2673r 1259308866better_annotations_vVIEWCREATE VIEW better_annotations_v AS SELECT current_annotations_unsorted_v.pseq_id, current_annotations_unsorted_v.origin_id, current_annotations_unsorted_v.origin, current_annotations_unsorted_v.ann_pref, current_annotations_unsorted_v.pannotation_id, current_annotations_unsorted_v.tax_id, current_annotations_unsorted_v.k, current_annotations_unsorted_v.gs, current_annotations_unsorted_v.latin, current_annotations_unsorted_v.common, current_annotations_unsorted_v.alias, current_annotations_unsorted_v.descr, current_annotations_unsorted_v.added, current_annotations_unsorted_v.link_url FROM current_annotations_v current_annotations_unsorted_v WHERE (current_annotations_unsorted_v.ann_pref IS NOT NULL); 'DROP VIEW unison.better_annotations_v; unisonunisonfalse3009900#COLUMN better_annotations_v.pseq_idCOMMENTmCOMMENT ON COLUMN better_annotations_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse267400%COLUMN better_annotations_v.origin_idCOMMENTbCOMMENT ON COLUMN better_annotations_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse267400"COLUMN better_annotations_v.originCOMMENT`COMMENT ON COLUMN better_annotations_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse267400$COLUMN better_annotations_v.ann_prefCOMMENTiCOMMENT ON COLUMN better_annotations_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse267400*COLUMN better_annotations_v.pannotation_idCOMMENTqCOMMENT ON COLUMN better_annotations_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse267400"COLUMN better_annotations_v.tax_idCOMMENTMCOMMENT ON COLUMN better_annotations_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse267400COLUMN better_annotations_v.kCOMMENTvCOMMENT ON COLUMN better_annotations_v.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse267400COLUMN better_annotations_v.gsCOMMENTvCOMMENT ON COLUMN better_annotations_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse267400!COLUMN better_annotations_v.latinCOMMENTKCOMMENT ON COLUMN better_annotations_v.latin IS 'Latin genus and species'; unisonunisonfalse267400"COLUMN better_annotations_v.commonCOMMENTJCOMMENT ON COLUMN better_annotations_v.common IS 'common taxonomic name'; unisonunisonfalse267400!COLUMN better_annotations_v.aliasCOMMENTJCOMMENT ON COLUMN better_annotations_v.alias IS 'alias for the sequence'; unisonunisonfalse267400!COLUMN better_annotations_v.descrCOMMENTHCOMMENT ON COLUMN better_annotations_v.descr IS 'sequence description'; unisonunisonfalse267400!COLUMN better_annotations_v.addedCOMMENTcCOMMENT ON COLUMN better_annotations_v.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse267400$COLUMN better_annotations_v.link_urlCOMMENTICOMMENT ON COLUMN better_annotations_v.link_url IS 'URL to source data'; unisonunisonfalse267400better_annotations_vACLREVOKE ALL ON TABLE better_annotations_v FROM PUBLIC; REVOKE ALL ON TABLE better_annotations_v FROM unison; GRANT ALL ON TABLE better_annotations_v TO unison; GRANT SELECT ON TABLE better_annotations_v TO PUBLIC; unisonunisonfalse2674s 1259308870better_annotations_sorted_vVIEW?CREATE VIEW better_annotations_sorted_v AS SELECT better_annotations_unsorted_v.pseq_id, better_annotations_unsorted_v.origin_id, better_annotations_unsorted_v.origin, better_annotations_unsorted_v.ann_pref, better_annotations_unsorted_v.pannotation_id, better_annotations_unsorted_v.tax_id, better_annotations_unsorted_v.k, better_annotations_unsorted_v.gs, better_annotations_unsorted_v.latin, better_annotations_unsorted_v.common, better_annotations_unsorted_v.alias, better_annotations_unsorted_v.descr, better_annotations_unsorted_v.added, better_annotations_unsorted_v.link_url FROM better_annotations_v better_annotations_unsorted_v ORDER BY better_annotations_unsorted_v.pseq_id, better_annotations_unsorted_v.ann_pref, (strpos(better_annotations_unsorted_v.alias, '_'::text) = 0), better_annotations_unsorted_v.alias; .DROP VIEW unison.better_annotations_sorted_v; unisonunisonfalse3010900*COLUMN better_annotations_sorted_v.pseq_idCOMMENTtCOMMENT ON COLUMN better_annotations_sorted_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse267500,COLUMN better_annotations_sorted_v.origin_idCOMMENTiCOMMENT ON COLUMN better_annotations_sorted_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse267500)COLUMN better_annotations_sorted_v.originCOMMENTgCOMMENT ON COLUMN better_annotations_sorted_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse267500+COLUMN better_annotations_sorted_v.ann_prefCOMMENTpCOMMENT ON COLUMN better_annotations_sorted_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse2675001COLUMN better_annotations_sorted_v.pannotation_idCOMMENTxCOMMENT ON COLUMN better_annotations_sorted_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse267500)COLUMN better_annotations_sorted_v.tax_idCOMMENTTCOMMENT ON COLUMN better_annotations_sorted_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse267500$COLUMN better_annotations_sorted_v.kCOMMENT}COMMENT ON COLUMN better_annotations_sorted_v.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse267500%COLUMN better_annotations_sorted_v.gsCOMMENT}COMMENT ON COLUMN better_annotations_sorted_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse267500(COLUMN better_annotations_sorted_v.latinCOMMENTRCOMMENT ON COLUMN better_annotations_sorted_v.latin IS 'Latin genus and species'; unisonunisonfalse267500)COLUMN better_annotations_sorted_v.commonCOMMENTQCOMMENT ON COLUMN better_annotations_sorted_v.common IS 'common taxonomic name'; unisonunisonfalse267500(COLUMN better_annotations_sorted_v.aliasCOMMENTQCOMMENT ON COLUMN better_annotations_sorted_v.alias IS 'alias for the sequence'; unisonunisonfalse267500(COLUMN better_annotations_sorted_v.descrCOMMENTOCOMMENT ON COLUMN better_annotations_sorted_v.descr IS 'sequence description'; unisonunisonfalse267500(COLUMN better_annotations_sorted_v.addedCOMMENTjCOMMENT ON COLUMN better_annotations_sorted_v.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse267500+COLUMN better_annotations_sorted_v.link_urlCOMMENTPCOMMENT ON COLUMN better_annotations_sorted_v.link_url IS 'URL to source data'; unisonunisonfalse267500better_annotations_sorted_vACLREVOKE ALL ON TABLE better_annotations_sorted_v FROM PUBLIC; REVOKE ALL ON TABLE better_annotations_sorted_v FROM unison; GRANT ALL ON TABLE better_annotations_sorted_v TO unison; GRANT SELECT ON TABLE better_annotations_sorted_v TO PUBLIC; unisonunisonfalse26751247308876 blast_resultTYPEaCREATE TYPE blast_result AS ( pfeature_id integer, query integer, qstart integer, qstop integer, target integer, tstart smallint, tstop smallint, ident smallint, sim smallint, gaps smallint, qgaps smallint, tgaps smallint, score integer, eval double precision, len smallint, pct_ident real, pct_hsp_coverage real, pct_coverage real ); DROP TYPE unison.blast_result; unisonunisonfalse92676 1259308187papseqTABLE1CREATE TABLE papseq ( pftype_id integer DEFAULT pftype_id('BLAST'::text), params_id integer, ident smallint NOT NULL, sim smallint NOT NULL, len smallint NOT NULL, pct_ident real NOT NULL, pct_hsp_coverage real NOT NULL, pct_coverage real NOT NULL ) INHERITS (palignment); DROP TABLE unison.papseq; unisonunisonfalse339733982475900 TABLE papseqCOMMENT[COMMENT ON TABLE papseq IS 'BLAST pseq-pseq alignments (via pmpseq); inherits palignment'; unisonunisonfalse254100COLUMN papseq.pfeature_idCOMMENTVCOMMENT ON COLUMN papseq.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse254100COLUMN papseq.pseq_idCOMMENT_COMMENT ON COLUMN papseq.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse254100COLUMN papseq.pftype_idCOMMENTbCOMMENT ON COLUMN papseq.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse254100COLUMN papseq.startCOMMENTMCOMMENT ON COLUMN papseq.start IS 'start of prediction in protein sequence'; unisonunisonfalse254100COLUMN papseq.stopCOMMENTKCOMMENT ON COLUMN papseq.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse254100COLUMN papseq.params_idCOMMENT[COMMENT ON COLUMN papseq.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse254100COLUMN papseq.pmodel_idCOMMENTICOMMENT ON COLUMN papseq.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse254100COLUMN papseq.mstartCOMMENT@COMMENT ON COLUMN papseq.mstart IS 'start of match /in model/'; unisonunisonfalse254100COLUMN papseq.mstopCOMMENT>COMMENT ON COLUMN papseq.mstop IS 'stop of match /in model/'; unisonunisonfalse254100COLUMN papseq.qgapsCOMMENTFCOMMENT ON COLUMN papseq.qgaps IS 'number of gaps in query sequence'; unisonunisonfalse254100COLUMN papseq.tgapsCOMMENTGCOMMENT ON COLUMN papseq.tgaps IS 'number of gaps in target sequence'; unisonunisonfalse254100COLUMN papseq.scoreCOMMENT>COMMENT ON COLUMN papseq.score IS 'algorithm-specific score'; unisonunisonfalse254100COLUMN papseq.evalCOMMENT6COMMENT ON COLUMN papseq.eval IS 'expectation value'; unisonunisonfalse254100COLUMN papseq.pct_identCOMMENTBCOMMENT ON COLUMN papseq.pct_ident IS 'derived value: ident/len'; unisonunisonfalse254100COLUMN papseq.pct_hsp_coverageCOMMENT\COMMENT ON COLUMN papseq.pct_hsp_coverage IS 'derived value: len/length of query sequence'; unisonunisonfalse254100COLUMN papseq.pct_coverageCOMMENTpCOMMENT ON COLUMN papseq.pct_coverage IS 'derived value: length of shorter sequence/length of longer sequence'; unisonunisonfalse254100papseqACLREVOKE ALL ON TABLE papseq FROM PUBLIC; REVOKE ALL ON TABLE papseq FROM unison; GRANT ALL ON TABLE papseq TO unison; GRANT INSERT,UPDATE ON TABLE papseq TO loader; GRANT SELECT ON TABLE papseq TO PUBLIC; unisonunisonfalse2541 1259308191pmpseqTABLEHCREATE TABLE pmpseq ( pseq_id integer NOT NULL ) INHERITS (pmodel); DROP TABLE unison.pmpseq; unisonunisonfalse3399340034019248400 TABLE pmpseqCOMMENT@COMMENT ON TABLE pmpseq IS 'models used for papseq alignments'; unisonunisonfalse254200COLUMN pmpseq.pmodel_idCOMMENTICOMMENT ON COLUMN pmpseq.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse254200COLUMN pmpseq.origin_idCOMMENTTCOMMENT ON COLUMN pmpseq.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse254200COLUMN pmpseq.accCOMMENTHCOMMENT ON COLUMN pmpseq.acc IS 'model accession from source database'; unisonunisonfalse254200COLUMN pmpseq.addedCOMMENT@COMMENT ON COLUMN pmpseq.added IS 'when this data was created'; unisonunisonfalse254200COLUMN pmpseq.pseq_idCOMMENT_COMMENT ON COLUMN pmpseq.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse254200pmpseqACLREVOKE ALL ON TABLE pmpseq FROM PUBLIC; REVOKE ALL ON TABLE pmpseq FROM unison; GRANT ALL ON TABLE pmpseq TO unison; GRANT SELECT ON TABLE pmpseq TO PUBLIC; unisonunisonfalse2542 1259308272blasts_vVIEW+CREATE VIEW blasts_v AS SELECT a.pseq_id AS q_pseq_id, m.pseq_id AS t_pseq_id, a.pct_ident FROM (papseq a JOIN pmpseq m ON ((a.pmodel_id = m.pmodel_id))) UNION ALL SELECT m.pseq_id AS q_pseq_id, a.pseq_id AS t_pseq_id, a.pct_ident FROM (papseq a JOIN pmpseq m ON ((a.pmodel_id = m.pmodel_id))); DROP VIEW unison.blasts_v; unisonunisonfalse2936900COLUMN blasts_v.q_pseq_idCOMMENT9COMMENT ON COLUMN blasts_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse255600COLUMN blasts_v.t_pseq_idCOMMENT:COMMENT ON COLUMN blasts_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse255600COLUMN blasts_v.pct_identCOMMENT<COMMENT ON COLUMN blasts_v.pct_ident IS 'percent identity'; unisonunisonfalse255600blasts_vACLREVOKE ALL ON TABLE blasts_v FROM PUBLIC; REVOKE ALL ON TABLE blasts_v FROM unison; GRANT ALL ON TABLE blasts_v TO unison; GRANT SELECT ON TABLE blasts_v TO PUBLIC; unisonunisonfalse2556 1259309712p2gblataln_p2gblataln_id_seqSEQUENCE~CREATE SEQUENCE p2gblataln_p2gblataln_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 3DROP SEQUENCE unison.p2gblataln_p2gblataln_id_seq; unisonunisonfalse900p2gblataln_p2gblataln_id_seq SEQUENCE SETDSELECT pg_catalog.setval('p2gblataln_p2gblataln_id_seq', 1, false); unisonunisonfalse283100p2gblataln_p2gblataln_id_seqACLREVOKE ALL ON SEQUENCE p2gblataln_p2gblataln_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE p2gblataln_p2gblataln_id_seq FROM unison; GRANT ALL ON SEQUENCE p2gblataln_p2gblataln_id_seq TO unison; GRANT UPDATE ON SEQUENCE p2gblataln_p2gblataln_id_seq TO loader; unisonunisonfalse2831 1259307790 p2gblatalnTABLE1CREATE TABLE p2gblataln ( p2gblataln_id integer DEFAULT nextval('p2gblataln_p2gblataln_id_seq'::regclass) NOT NULL, hsp_str text NOT NULL, ident integer NOT NULL, pgap_cnt integer NOT NULL, pgap_bases integer NOT NULL, ggap_cnt integer NOT NULL, ggap_bases integer NOT NULL ); DROP TABLE unison.p2gblataln; unisonunisonfalse3300900TABLE p2gblatalnCOMMENTWCOMMENT ON TABLE p2gblataln IS 'protein to dna BLAT alignments - groups of BLAT HSPs'; unisonunisonfalse246900COLUMN p2gblataln.hsp_strCOMMENTeCOMMENT ON COLUMN p2gblataln.hsp_str IS 'serialized version of the p2gblathsp_ids in the alignment'; unisonunisonfalse246900COLUMN p2gblataln.identCOMMENTOCOMMENT ON COLUMN p2gblataln.ident IS 'number of identities in the alignment'; unisonunisonfalse246900COLUMN p2gblataln.pgap_cntCOMMENTACOMMENT ON COLUMN p2gblataln.pgap_cnt IS 'number of query gaps'; unisonunisonfalse246900COLUMN p2gblataln.pgap_basesCOMMENTUCOMMENT ON COLUMN p2gblataln.pgap_bases IS 'number of total residues in query gaps'; unisonunisonfalse246900COLUMN p2gblataln.ggap_cntCOMMENTDCOMMENT ON COLUMN p2gblataln.ggap_cnt IS 'number of template gaps'; unisonunisonfalse246900COLUMN p2gblataln.ggap_basesCOMMENTXCOMMENT ON COLUMN p2gblataln.ggap_bases IS 'number of total residues in template gaps'; unisonunisonfalse246900 p2gblatalnACLREVOKE ALL ON TABLE p2gblataln FROM PUBLIC; REVOKE ALL ON TABLE p2gblataln FROM unison; GRANT ALL ON TABLE p2gblataln TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE p2gblataln TO loader; GRANT SELECT ON TABLE p2gblataln TO PUBLIC; unisonunisonfalse2469 1259307796 p2gblatalnhspTABLEgCREATE TABLE p2gblatalnhsp ( p2gblataln_id integer NOT NULL, p2gblathsp_id integer NOT NULL ); !DROP TABLE unison.p2gblatalnhsp; unisonunisonfalse900TABLE p2gblatalnhspCOMMENTXCOMMENT ON TABLE p2gblatalnhsp IS 'groups protein-to-genome BLAT HSPs into alignments'; unisonunisonfalse247000 p2gblatalnhspACLREVOKE ALL ON TABLE p2gblatalnhsp FROM PUBLIC; REVOKE ALL ON TABLE p2gblatalnhsp FROM unison; GRANT ALL ON TABLE p2gblatalnhsp TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE p2gblatalnhsp TO loader; GRANT SELECT ON TABLE p2gblatalnhsp TO PUBLIC; unisonunisonfalse2470 1259309714p2gblathsp_p2gblathsp_id_seqSEQUENCE~CREATE SEQUENCE p2gblathsp_p2gblathsp_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 3DROP SEQUENCE unison.p2gblathsp_p2gblathsp_id_seq; unisonunisonfalse9 00p2gblathsp_p2gblathsp_id_seq SEQUENCE SETDSELECT pg_catalog.setval('p2gblathsp_p2gblathsp_id_seq', 1, false); unisonunisonfalse2832 00p2gblathsp_p2gblathsp_id_seqACLREVOKE ALL ON SEQUENCE p2gblathsp_p2gblathsp_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE p2gblathsp_p2gblathsp_id_seq FROM unison; GRANT ALL ON SEQUENCE p2gblathsp_p2gblathsp_id_seq TO unison; GRANT UPDATE ON SEQUENCE p2gblathsp_p2gblathsp_id_seq TO loader; unisonunisonfalse2832 1259307799 p2gblathspTABLEcCREATE TABLE p2gblathsp ( p2gblathsp_id integer DEFAULT nextval('p2gblathsp_p2gblathsp_id_seq'::regclass) NOT NULL, genasm_id integer NOT NULL, chr text NOT NULL, plus_strand boolean NOT NULL, gstart integer NOT NULL, gstop integer NOT NULL, pseq_id integer NOT NULL, pstart integer NOT NULL, pstop integer NOT NULL ); DROP TABLE unison.p2gblathsp; unisonunisonfalse33019 00TABLE p2gblathspCOMMENT;COMMENT ON TABLE p2gblathsp IS 'protein to dna BLAT HSPs'; unisonunisonfalse2471 00COLUMN p2gblathsp.genasm_idCOMMENTaCOMMENT ON COLUMN p2gblathsp.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse2471 00COLUMN p2gblathsp.chrCOMMENTXCOMMENT ON COLUMN p2gblathsp.chr IS 'chromosome (e.g. 1..22,M,U,X,Y for homo sapiens)'; unisonunisonfalse247100COLUMN p2gblathsp.plus_strandCOMMENTTCOMMENT ON COLUMN p2gblathsp.plus_strand IS 'located on genomic plus strand (t/f)'; unisonunisonfalse247100COLUMN p2gblathsp.gstartCOMMENTeCOMMENT ON COLUMN p2gblathsp.gstart IS 'start of HSP on genome (1-based, +1 frame, gstop > gstart)'; unisonunisonfalse247100COLUMN p2gblathsp.gstopCOMMENTcCOMMENT ON COLUMN p2gblathsp.gstop IS 'stop of HSP on genome (1-based, +1 frame, gstop > gstart)'; unisonunisonfalse247100COLUMN p2gblathsp.pseq_idCOMMENTcCOMMENT ON COLUMN p2gblathsp.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse247100COLUMN p2gblathsp.pstartCOMMENTLCOMMENT ON COLUMN p2gblathsp.pstart IS 'start of HSP on protein (1-based)'; unisonunisonfalse247100COLUMN p2gblathsp.pstopCOMMENTJCOMMENT ON COLUMN p2gblathsp.pstop IS 'stop of HSP on protein (1-based)'; unisonunisonfalse247100 p2gblathspACLREVOKE ALL ON TABLE p2gblathsp FROM PUBLIC; REVOKE ALL ON TABLE p2gblathsp FROM unison; GRANT ALL ON TABLE p2gblathsp TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE p2gblathsp TO loader; GRANT SELECT ON TABLE p2gblathsp TO PUBLIC; unisonunisonfalse2471 1259309736pseq_pseq_id_seqSEQUENCErCREATE SEQUENCE pseq_pseq_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 'DROP SEQUENCE unison.pseq_pseq_id_seq; unisonunisonfalse900pseq_pseq_id_seq SEQUENCE SET8SELECT pg_catalog.setval('pseq_pseq_id_seq', 1, false); unisonunisonfalse284300pseq_pseq_id_seqACLREVOKE ALL ON SEQUENCE pseq_pseq_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pseq_pseq_id_seq FROM unison; GRANT ALL ON SEQUENCE pseq_pseq_id_seq TO unison; GRANT UPDATE ON SEQUENCE pseq_pseq_id_seq TO loader; GRANT SELECT ON SEQUENCE pseq_pseq_id_seq TO PUBLIC; unisonunisonfalse2843 1259307805pseqTABLE"CREATE TABLE pseq ( pseq_id integer DEFAULT nextval('pseq_pseq_id_seq'::regclass) NOT NULL, seq text NOT NULL, len integer NOT NULL, md5 character(32) NOT NULL, added timestamp with time zone DEFAULT timenow() NOT NULL, CONSTRAINT pseq_len_gt_0 CHECK ((len > 0)) ); DROP TABLE unison.pseq; unisonunisonfalse330233033304900 TABLE pseqCOMMENT>COMMENT ON TABLE pseq IS 'table of unique protein sequences'; unisonunisonfalse247200COLUMN pseq.pseq_idCOMMENTVCOMMENT ON COLUMN pseq.pseq_id IS 'unique id for sequence; default is serial number'; unisonunisonfalse247200COLUMN pseq.seqCOMMENT2COMMENT ON COLUMN pseq.seq IS 'protein sequence'; unisonunisonfalse247200COLUMN pseq.lenCOMMENTICOMMENT ON COLUMN pseq.len IS 'sequence length, computed automatically'; unisonunisonfalse247200COLUMN pseq.md5COMMENTJCOMMENT ON COLUMN pseq.md5 IS 'md5 for sequence, computed automatically'; unisonunisonfalse247200COLUMN pseq.addedCOMMENTUCOMMENT ON COLUMN pseq.added IS 'timestamp at which sequence was added (automatic)'; unisonunisonfalse247200pseqACLREVOKE ALL ON TABLE pseq FROM PUBLIC; REVOKE ALL ON TABLE pseq FROM unison; GRANT ALL ON TABLE pseq TO unison; GRANT INSERT,UPDATE ON TABLE pseq TO loader; GRANT SELECT,REFERENCES ON TABLE pseq TO PUBLIC; unisonunisonfalse2472u 1259308877blatlociVIEWDCREATE VIEW blatloci AS SELECT ah.p2gblataln_id, h.pseq_id, min(h.pstart) AS pstart, max(h.pstop) AS pstop, count(*) AS exons, sum(((h.pstop - h.pstart) + 1)) AS aln_length, ((((sum(((h.pstop - h.pstart) + 1)))::double precision / (q.len)::double precision) * (100)::double precision))::integer AS pct_cov, a.ident, ((((a.ident)::double precision / (sum(((h.pstop - h.pstart) + 1)))::double precision) * (100)::double precision))::integer AS pct_ident, h.genasm_id, h.chr, h.plus_strand, min(h.gstart) AS gstart, max(h.gstop) AS gstop FROM (((p2gblathsp h JOIN p2gblatalnhsp ah ON ((h.p2gblathsp_id = ah.p2gblathsp_id))) JOIN p2gblataln a ON ((ah.p2gblataln_id = a.p2gblataln_id))) JOIN pseq q ON ((h.pseq_id = q.pseq_id))) GROUP BY h.pseq_id, ah.p2gblataln_id, h.genasm_id, h.chr, h.plus_strand, a.ident, q.len ORDER BY h.pseq_id, ((((sum(((h.pstop - h.pstart) + 1)))::double precision / (q.len)::double precision) * (100)::double precision))::integer DESC, ((((a.ident)::double precision / (sum(((h.pstop - h.pstart) + 1)))::double precision) * (100)::double precision))::integer DESC; DROP VIEW unison.blatloci; unisonunisonfalse3011900 VIEW blatlociCOMMENT:COMMENT ON VIEW blatloci IS 'summary of BLAT alignments'; unisonunisonfalse267700COLUMN blatloci.pseq_idCOMMENTaCOMMENT ON COLUMN blatloci.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2677 00COLUMN blatloci.pstartCOMMENTOCOMMENT ON COLUMN blatloci.pstart IS 'start of alignment in protein sequence'; unisonunisonfalse2677!00COLUMN blatloci.pstopCOMMENTMCOMMENT ON COLUMN blatloci.pstop IS 'stop of alignment in protein sequence'; unisonunisonfalse2677"00COLUMN blatloci.exonsCOMMENT7COMMENT ON COLUMN blatloci.exons IS 'number of exons'; unisonunisonfalse2677#00COLUMN blatloci.aln_lengthCOMMENT@COMMENT ON COLUMN blatloci.aln_length IS 'length of alignment'; unisonunisonfalse2677$00COLUMN blatloci.pct_covCOMMENT:COMMENT ON COLUMN blatloci.pct_cov IS 'percent coverage'; unisonunisonfalse2677%00COLUMN blatloci.pct_identCOMMENT<COMMENT ON COLUMN blatloci.pct_ident IS 'percent identity'; unisonunisonfalse2677&00COLUMN blatloci.genasm_idCOMMENT_COMMENT ON COLUMN blatloci.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse2677'00COLUMN blatloci.chrCOMMENT0COMMENT ON COLUMN blatloci.chr IS 'chromosome'; unisonunisonfalse2677(00COLUMN blatloci.plus_strandCOMMENTWCOMMENT ON COLUMN blatloci.plus_strand IS 'true = ''+'' strand; false = ''-'' strand'; unisonunisonfalse2677)00COLUMN blatloci.gstartCOMMENTMCOMMENT ON COLUMN blatloci.gstart IS 'genomic start position on chromosome'; unisonunisonfalse2677*00COLUMN blatloci.gstopCOMMENTKCOMMENT ON COLUMN blatloci.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse2677+00blatlociACLREVOKE ALL ON TABLE blatloci FROM PUBLIC; REVOKE ALL ON TABLE blatloci FROM unison; GRANT ALL ON TABLE blatloci TO unison; GRANT SELECT ON TABLE blatloci TO PUBLIC; unisonunisonfalse2677 1259309706canned_views_cv_id_seqSEQUENCExCREATE SEQUENCE canned_views_cv_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; -DROP SEQUENCE unison.canned_views_cv_id_seq; unisonunisonfalse9,00canned_views_cv_id_seq SEQUENCE SET>SELECT pg_catalog.setval('canned_views_cv_id_seq', 1, false); unisonunisonfalse2828-00canned_views_cv_id_seqACLREVOKE ALL ON SEQUENCE canned_views_cv_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE canned_views_cv_id_seq FROM unison; GRANT ALL ON SEQUENCE canned_views_cv_id_seq TO unison; GRANT UPDATE ON SEQUENCE canned_views_cv_id_seq TO loader; unisonunisonfalse2828v 1259308882 canned_viewsTABLECREATE TABLE canned_views ( cv_id integer DEFAULT nextval('canned_views_cv_id_seq'::regclass) NOT NULL, name text NOT NULL, descr text NOT NULL, sql text NOT NULL, order_by text ); DROP TABLE unison.canned_views; unisonunisonfalse34309.00TABLE canned_viewsCOMMENT>COMMENT ON TABLE canned_views IS 'curated data mining views'; unisonunisonfalse2678/00COLUMN canned_views.nameCOMMENT4COMMENT ON COLUMN canned_views.name IS 'view name'; unisonunisonfalse2678000COLUMN canned_views.order_byCOMMENTCOMMENT ON COLUMN canned_views.order_by IS 'optional final order clause for view (independendent of any internal sorting for distinct, etc)'; unisonunisonfalse2678100 canned_viewsACLREVOKE ALL ON TABLE canned_views FROM PUBLIC; REVOKE ALL ON TABLE canned_views FROM unison; GRANT ALL ON TABLE canned_views TO unison; GRANT SELECT ON TABLE canned_views TO PUBLIC; unisonunisonfalse2678 1259308352current_annotations_sorted_vVIEWTCREATE VIEW current_annotations_sorted_v AS SELECT current_annotations_unsorted_v.pseq_id, current_annotations_unsorted_v.origin_id, current_annotations_unsorted_v.origin, current_annotations_unsorted_v.ann_pref, current_annotations_unsorted_v.pannotation_id, current_annotations_unsorted_v.tax_id, current_annotations_unsorted_v.k, current_annotations_unsorted_v.gs, current_annotations_unsorted_v.latin, current_annotations_unsorted_v.common, current_annotations_unsorted_v.alias, current_annotations_unsorted_v.descr, current_annotations_unsorted_v.added, current_annotations_unsorted_v.link_url FROM current_annotations_v current_annotations_unsorted_v ORDER BY current_annotations_unsorted_v.pseq_id, current_annotations_unsorted_v.ann_pref, (strpos(current_annotations_unsorted_v.alias, '_'::text) = 0), current_annotations_unsorted_v.alias; /DROP VIEW unison.current_annotations_sorted_v; unisonunisonfalse29439200+COLUMN current_annotations_sorted_v.pseq_idCOMMENTuCOMMENT ON COLUMN current_annotations_sorted_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2570300-COLUMN current_annotations_sorted_v.origin_idCOMMENTjCOMMENT ON COLUMN current_annotations_sorted_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2570400*COLUMN current_annotations_sorted_v.originCOMMENThCOMMENT ON COLUMN current_annotations_sorted_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse2570500,COLUMN current_annotations_sorted_v.ann_prefCOMMENTqCOMMENT ON COLUMN current_annotations_sorted_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse25706002COLUMN current_annotations_sorted_v.pannotation_idCOMMENTyCOMMENT ON COLUMN current_annotations_sorted_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2570700*COLUMN current_annotations_sorted_v.tax_idCOMMENTUCOMMENT ON COLUMN current_annotations_sorted_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2570800%COLUMN current_annotations_sorted_v.kCOMMENT~COMMENT ON COLUMN current_annotations_sorted_v.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse2570900&COLUMN current_annotations_sorted_v.gsCOMMENT~COMMENT ON COLUMN current_annotations_sorted_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse2570:00)COLUMN current_annotations_sorted_v.latinCOMMENTSCOMMENT ON COLUMN current_annotations_sorted_v.latin IS 'Latin genus and species'; unisonunisonfalse2570;00*COLUMN current_annotations_sorted_v.commonCOMMENTRCOMMENT ON COLUMN current_annotations_sorted_v.common IS 'common taxonomic name'; unisonunisonfalse2570<00)COLUMN current_annotations_sorted_v.aliasCOMMENTRCOMMENT ON COLUMN current_annotations_sorted_v.alias IS 'alias for the sequence'; unisonunisonfalse2570=00)COLUMN current_annotations_sorted_v.descrCOMMENTPCOMMENT ON COLUMN current_annotations_sorted_v.descr IS 'sequence description'; unisonunisonfalse2570>00)COLUMN current_annotations_sorted_v.addedCOMMENTkCOMMENT ON COLUMN current_annotations_sorted_v.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse2570?00,COLUMN current_annotations_sorted_v.link_urlCOMMENTQCOMMENT ON COLUMN current_annotations_sorted_v.link_url IS 'URL to source data'; unisonunisonfalse2570@00current_annotations_sorted_vACLREVOKE ALL ON TABLE current_annotations_sorted_v FROM PUBLIC; REVOKE ALL ON TABLE current_annotations_sorted_v FROM unison; GRANT ALL ON TABLE current_annotations_sorted_v TO unison; GRANT SELECT ON TABLE current_annotations_sorted_v TO PUBLIC; unisonunisonfalse2570w 1259308888 e3_and_bh3_cvVIEWCREATE VIEW e3_and_bh3_cv AS SELECT DISTINCT ON (e3d.pseq_id) e3d.pseq_id, e3d.start AS e3_start, e3d.stop AS e3_stop, e3d.score AS e3_score, e3d.eval AS e3_eval, bh3.start AS bh3_start, bh3.stop AS bh3_stop, bh3.score AS bh3_score, bh3.eval AS bh3_eval, m.name AS e3_name, m.descr AS e3_descr FROM (((pahmm e3d JOIN pahmm bh3 ON ((e3d.pseq_id = bh3.pseq_id))) JOIN pmsm_pmhmm msm ON (((e3d.pmodel_id = msm.pmodel_id) AND (msm.pmodelset_id = pmodelset_id('E3 Ligase Domains'::text))))) JOIN pmhmm m ON ((e3d.pmodel_id = m.pmodel_id))) WHERE (((e3d.params_id = 43) AND (bh3.params_id = 46)) AND (bh3.pmodel_id = 19028469)) ORDER BY e3d.pseq_id, e3d.eval, bh3.score DESC; DROP VIEW unison.e3_and_bh3_cv; unisonunisonfalse30129A00 e3_and_bh3_cvACLREVOKE ALL ON TABLE e3_and_bh3_cv FROM PUBLIC; REVOKE ALL ON TABLE e3_and_bh3_cv FROM unison; GRANT ALL ON TABLE e3_and_bh3_cv TO unison; GRANT SELECT ON TABLE e3_and_bh3_cv TO PUBLIC; unisonunisonfalse2679x 1259308893ensembl_coordinates_mvTABLECREATE TABLE ensembl_coordinates_mv ( pseq_id integer, pannotation_id integer, origin_id integer, tax_id integer, method text, genome text, chr text, gstart text, gstop text, strand text ); *DROP TABLE unison.ensembl_coordinates_mv; unisonunisonfalse9B00%COLUMN ensembl_coordinates_mv.pseq_idCOMMENToCOMMENT ON COLUMN ensembl_coordinates_mv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2680C00,COLUMN ensembl_coordinates_mv.pannotation_idCOMMENTsCOMMENT ON COLUMN ensembl_coordinates_mv.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2680D00'COLUMN ensembl_coordinates_mv.origin_idCOMMENTdCOMMENT ON COLUMN ensembl_coordinates_mv.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2680E00$COLUMN ensembl_coordinates_mv.tax_idCOMMENTOCOMMENT ON COLUMN ensembl_coordinates_mv.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2680F00!COLUMN ensembl_coordinates_mv.chrCOMMENT>COMMENT ON COLUMN ensembl_coordinates_mv.chr IS 'chromosome'; unisonunisonfalse2680G00$COLUMN ensembl_coordinates_mv.gstartCOMMENT[COMMENT ON COLUMN ensembl_coordinates_mv.gstart IS 'genomic start position on chromosome'; unisonunisonfalse2680H00#COLUMN ensembl_coordinates_mv.gstopCOMMENTYCOMMENT ON COLUMN ensembl_coordinates_mv.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse2680I00$COLUMN ensembl_coordinates_mv.strandCOMMENTVCOMMENT ON COLUMN ensembl_coordinates_mv.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse2680J00ensembl_coordinates_mvACLREVOKE ALL ON TABLE ensembl_coordinates_mv FROM PUBLIC; REVOKE ALL ON TABLE ensembl_coordinates_mv FROM unison; GRANT ALL ON TABLE ensembl_coordinates_mv TO unison; GRANT SELECT ON TABLE ensembl_coordinates_mv TO PUBLIC; unisonunisonfalse2680y 1259308899ensembl_coordinates_vVIEWCREATE VIEW ensembl_coordinates_v AS SELECT palias.pseq_id, palias.pannotation_id, palias.origin_id, palias.tax_id, split_part(split_part(palias.descr, ':'::text, 2), ' '::text, 1) AS method, split_part(palias.descr, ':'::text, 3) AS genome, split_part(palias.descr, ':'::text, 4) AS chr, split_part(palias.descr, ':'::text, 5) AS gstart, split_part(palias.descr, ':'::text, 6) AS gstop, CASE WHEN (split_part(split_part(palias.descr, ':'::text, 7), ' '::text, 1) = (1)::text) THEN '+'::text ELSE '-'::text END AS strand FROM palias WHERE (((palias.origin_id >= 100) AND (palias.origin_id <= 160)) AND (palias.descr ~~ 'pep%'::text)); (DROP VIEW unison.ensembl_coordinates_v; unisonunisonfalse30139K00$COLUMN ensembl_coordinates_v.pseq_idCOMMENTnCOMMENT ON COLUMN ensembl_coordinates_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2681L00+COLUMN ensembl_coordinates_v.pannotation_idCOMMENTrCOMMENT ON COLUMN ensembl_coordinates_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2681M00&COLUMN ensembl_coordinates_v.origin_idCOMMENTcCOMMENT ON COLUMN ensembl_coordinates_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2681N00#COLUMN ensembl_coordinates_v.tax_idCOMMENTNCOMMENT ON COLUMN ensembl_coordinates_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2681O00 COLUMN ensembl_coordinates_v.chrCOMMENT=COMMENT ON COLUMN ensembl_coordinates_v.chr IS 'chromosome'; unisonunisonfalse2681P00#COLUMN ensembl_coordinates_v.gstartCOMMENTZCOMMENT ON COLUMN ensembl_coordinates_v.gstart IS 'genomic start position on chromosome'; unisonunisonfalse2681Q00"COLUMN ensembl_coordinates_v.gstopCOMMENTXCOMMENT ON COLUMN ensembl_coordinates_v.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse2681R00#COLUMN ensembl_coordinates_v.strandCOMMENTUCOMMENT ON COLUMN ensembl_coordinates_v.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse2681S00ensembl_coordinates_vACLREVOKE ALL ON TABLE ensembl_coordinates_v FROM PUBLIC; REVOKE ALL ON TABLE ensembl_coordinates_v FROM unison; GRANT ALL ON TABLE ensembl_coordinates_v TO unison; GRANT SELECT ON TABLE ensembl_coordinates_v TO PUBLIC; unisonunisonfalse2681z 1259308903"ensembl_unambiguous_coordinates_mvTABLECREATE TABLE ensembl_unambiguous_coordinates_mv ( pseq_id integer, pannotation_id integer, origin_id integer, tax_id integer, method text, genome text, chr text, gstart text, gstop text, strand text ); 6DROP TABLE unison.ensembl_unambiguous_coordinates_mv; unisonunisonfalse9T001COLUMN ensembl_unambiguous_coordinates_mv.pseq_idCOMMENT{COMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2682U008COLUMN ensembl_unambiguous_coordinates_mv.pannotation_idCOMMENTCOMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2682V003COLUMN ensembl_unambiguous_coordinates_mv.origin_idCOMMENTpCOMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2682W000COLUMN ensembl_unambiguous_coordinates_mv.tax_idCOMMENT[COMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2682X00-COLUMN ensembl_unambiguous_coordinates_mv.chrCOMMENTJCOMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.chr IS 'chromosome'; unisonunisonfalse2682Y000COLUMN ensembl_unambiguous_coordinates_mv.gstartCOMMENTgCOMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.gstart IS 'genomic start position on chromosome'; unisonunisonfalse2682Z00/COLUMN ensembl_unambiguous_coordinates_mv.gstopCOMMENTeCOMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse2682[000COLUMN ensembl_unambiguous_coordinates_mv.strandCOMMENTbCOMMENT ON COLUMN ensembl_unambiguous_coordinates_mv.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse2682\00"ensembl_unambiguous_coordinates_mvACL REVOKE ALL ON TABLE ensembl_unambiguous_coordinates_mv FROM PUBLIC; REVOKE ALL ON TABLE ensembl_unambiguous_coordinates_mv FROM unison; GRANT ALL ON TABLE ensembl_unambiguous_coordinates_mv TO unison; GRANT SELECT ON TABLE ensembl_unambiguous_coordinates_mv TO PUBLIC; unisonunisonfalse2682{ 1259308909!ensembl_unambiguous_coordinates_vVIEWCREATE VIEW ensembl_unambiguous_coordinates_v AS SELECT e1.pseq_id, e1.pannotation_id, e1.origin_id, e1.tax_id, e1.method, e1.genome, e1.chr, e1.gstart, e1.gstop, e1.strand FROM (ensembl_coordinates_mv e1 JOIN (SELECT ensembl_coordinates_mv.pseq_id, ensembl_coordinates_mv.genome FROM ensembl_coordinates_mv GROUP BY ensembl_coordinates_mv.pseq_id, ensembl_coordinates_mv.genome HAVING (count(*) = 1)) e2 ON (((e1.pseq_id = e2.pseq_id) AND (e1.genome = e2.genome)))); 4DROP VIEW unison.ensembl_unambiguous_coordinates_v; unisonunisonfalse30149]000COLUMN ensembl_unambiguous_coordinates_v.pseq_idCOMMENTzCOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2683^007COLUMN ensembl_unambiguous_coordinates_v.pannotation_idCOMMENT~COMMENT ON COLUMN ensembl_unambiguous_coordinates_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2683_002COLUMN ensembl_unambiguous_coordinates_v.origin_idCOMMENToCOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2683`00/COLUMN ensembl_unambiguous_coordinates_v.tax_idCOMMENTZCOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2683a00,COLUMN ensembl_unambiguous_coordinates_v.chrCOMMENTICOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.chr IS 'chromosome'; unisonunisonfalse2683b00/COLUMN ensembl_unambiguous_coordinates_v.gstartCOMMENTfCOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.gstart IS 'genomic start position on chromosome'; unisonunisonfalse2683c00.COLUMN ensembl_unambiguous_coordinates_v.gstopCOMMENTdCOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse2683d00/COLUMN ensembl_unambiguous_coordinates_v.strandCOMMENTaCOMMENT ON COLUMN ensembl_unambiguous_coordinates_v.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse2683e00!ensembl_unambiguous_coordinates_vACL REVOKE ALL ON TABLE ensembl_unambiguous_coordinates_v FROM PUBLIC; REVOKE ALL ON TABLE ensembl_unambiguous_coordinates_v FROM unison; GRANT ALL ON TABLE ensembl_unambiguous_coordinates_v TO unison; GRANT SELECT ON TABLE ensembl_unambiguous_coordinates_v TO PUBLIC; unisonunisonfalse2683 1259308163ensembl_unambiguous_overlaps_mvTABLECREATE TABLE ensembl_unambiguous_overlaps_mv ( genome text, chr text, strand text, q_pseq_id integer, q_gstart text, q_gstop text, t_pseq_id integer, t_gstart text, t_gstop text ); 3DROP TABLE unison.ensembl_unambiguous_overlaps_mv; unisonunisonfalse9f00*COLUMN ensembl_unambiguous_overlaps_mv.chrCOMMENTGCOMMENT ON COLUMN ensembl_unambiguous_overlaps_mv.chr IS 'chromosome'; unisonunisonfalse2537g00-COLUMN ensembl_unambiguous_overlaps_mv.strandCOMMENT_COMMENT ON COLUMN ensembl_unambiguous_overlaps_mv.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse2537h000COLUMN ensembl_unambiguous_overlaps_mv.q_pseq_idCOMMENTPCOMMENT ON COLUMN ensembl_unambiguous_overlaps_mv.q_pseq_id IS 'query pseq_id'; unisonunisonfalse2537i000COLUMN ensembl_unambiguous_overlaps_mv.t_pseq_idCOMMENTQCOMMENT ON COLUMN ensembl_unambiguous_overlaps_mv.t_pseq_id IS 'target pseq_id'; unisonunisonfalse2537j00/COLUMN ensembl_unambiguous_overlaps_mv.t_gstartCOMMENTbCOMMENT ON COLUMN ensembl_unambiguous_overlaps_mv.t_gstart IS 'genomic start of target sequence'; unisonunisonfalse2537k00.COLUMN ensembl_unambiguous_overlaps_mv.t_gstopCOMMENT`COMMENT ON COLUMN ensembl_unambiguous_overlaps_mv.t_gstop IS 'genomic stop of target sequence'; unisonunisonfalse2537l00ensembl_unambiguous_overlaps_mvACLREVOKE ALL ON TABLE ensembl_unambiguous_overlaps_mv FROM PUBLIC; REVOKE ALL ON TABLE ensembl_unambiguous_overlaps_mv FROM unison; GRANT ALL ON TABLE ensembl_unambiguous_overlaps_mv TO unison; GRANT SELECT ON TABLE ensembl_unambiguous_overlaps_mv TO PUBLIC; unisonunisonfalse2537| 1259308913ensembl_unambiguous_overlaps_vVIEWCREATE VIEW ensembl_unambiguous_overlaps_v AS SELECT a1.genome, a1.chr, a1.strand, a1.pseq_id AS q_pseq_id, a1.gstart AS q_gstart, a1.gstop AS q_gstop, a2.pseq_id AS t_pseq_id, a2.gstart AS t_gstart, a2.gstop AS t_gstop FROM (ensembl_unambiguous_coordinates_mv a1 JOIN ensembl_unambiguous_coordinates_mv a2 ON ((((((a1.genome = a2.genome) AND (a1.chr = a2.chr)) AND (a1.strand = a2.strand)) AND (a2.gstart <= a1.gstop)) AND (a2.gstop >= a1.gstart)))); 1DROP VIEW unison.ensembl_unambiguous_overlaps_v; unisonunisonfalse30159m00)COLUMN ensembl_unambiguous_overlaps_v.chrCOMMENTFCOMMENT ON COLUMN ensembl_unambiguous_overlaps_v.chr IS 'chromosome'; unisonunisonfalse2684n00,COLUMN ensembl_unambiguous_overlaps_v.strandCOMMENT^COMMENT ON COLUMN ensembl_unambiguous_overlaps_v.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse2684o00/COLUMN ensembl_unambiguous_overlaps_v.q_pseq_idCOMMENTOCOMMENT ON COLUMN ensembl_unambiguous_overlaps_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse2684p00/COLUMN ensembl_unambiguous_overlaps_v.t_pseq_idCOMMENTPCOMMENT ON COLUMN ensembl_unambiguous_overlaps_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse2684q00.COLUMN ensembl_unambiguous_overlaps_v.t_gstartCOMMENTaCOMMENT ON COLUMN ensembl_unambiguous_overlaps_v.t_gstart IS 'genomic start of target sequence'; unisonunisonfalse2684r00-COLUMN ensembl_unambiguous_overlaps_v.t_gstopCOMMENT_COMMENT ON COLUMN ensembl_unambiguous_overlaps_v.t_gstop IS 'genomic stop of target sequence'; unisonunisonfalse2684s00ensembl_unambiguous_overlaps_vACLREVOKE ALL ON TABLE ensembl_unambiguous_overlaps_v FROM PUBLIC; REVOKE ALL ON TABLE ensembl_unambiguous_overlaps_v FROM unison; GRANT ALL ON TABLE ensembl_unambiguous_overlaps_v TO unison; GRANT SELECT ON TABLE ensembl_unambiguous_overlaps_v TO PUBLIC; unisonunisonfalse2684"1255308162 pset_id(text)FUNCTION!CREATE FUNCTION pset_id(text) RETURNS integer AS $_$DECLARE V_id integer; BEGIN select into V_id pset_id from pset where upper(name)=upper($1); IF NOT FOUND THEN RAISE WARNING 'pset ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; $DROP FUNCTION unison.pset_id(text); unisonunisonfalse91293t00 pset_id(text)ACLREVOKE ALL ON FUNCTION pset_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION pset_id(text) FROM unison; GRANT ALL ON FUNCTION pset_id(text) TO unison; GRANT ALL ON FUNCTION pset_id(text) TO PUBLIC; unisonunisonfalse3451255308917sequence_ends(text)FUNCTIONCREATE FUNCTION sequence_ends(text) RETURNS text AS $_$ select sequence_ends($1,5); $_$ LANGUAGE sql IMMUTABLE STRICT; *DROP FUNCTION unison.sequence_ends(text); unisonunisonfalse9u00FUNCTION sequence_ends(text)COMMENTrCOMMENT ON FUNCTION sequence_ends(text) IS 'equivalent to sequence_ends(seq,5); see sequence_ends(text,integer)'; unisonunisonfalse53v00sequence_ends(text)ACLREVOKE ALL ON FUNCTION sequence_ends(text) FROM PUBLIC; REVOKE ALL ON FUNCTION sequence_ends(text) FROM unison; GRANT ALL ON FUNCTION sequence_ends(text) TO unison; GRANT ALL ON FUNCTION sequence_ends(text) TO PUBLIC; unisonunisonfalse53 1259307873pseqsetTABLECCREATE TABLE pseqset ( pset_id integer, pseq_id integer ); DROP TABLE unison.pseqset; unisonunisonfalse9w00 TABLE pseqsetCOMMENTICOMMENT ON TABLE pseqset IS 'links pset and pseq instances (many-many)'; unisonunisonfalse2487x00COLUMN pseqset.pset_idCOMMENT5COMMENT ON COLUMN pseqset.pset_id IS 'pset.pset_id'; unisonunisonfalse2487y00COLUMN pseqset.pseq_idCOMMENT5COMMENT ON COLUMN pseqset.pseq_id IS 'pseq.pseq_id'; unisonunisonfalse2487z00pseqsetACLREVOKE ALL ON TABLE pseqset FROM PUBLIC; REVOKE ALL ON TABLE pseqset FROM unison; GRANT ALL ON TABLE pseqset TO unison; GRANT INSERT,UPDATE ON TABLE pseqset TO loader; GRANT SELECT ON TABLE pseqset TO PUBLIC; unisonunisonfalse2487} 1259308918extended_annotation_vVIEWCREATE VIEW extended_annotation_v AS SELECT ba.pseq_id, sequence_ends(q.seq) AS sequence_ends, ba.origin_id, ba.origin, ba.ann_pref, ba.pannotation_id, ba.tax_id, ba.k, ba.gs, ba.latin, ba.common, ba.alias, ba.descr, ba.added, ba.link_url, (EXISTS (SELECT pseqset.pset_id, pseqset.pseq_id FROM pseqset WHERE ((pseqset.pset_id = pset_id('patented'::text)) AND (pseqset.pseq_id = q.pseq_id)))) AS patented, (EXISTS (SELECT pseqset.pset_id, pseqset.pseq_id FROM pseqset WHERE ((pseqset.pset_id = pset_id('patented 98%'::text)) AND (pseqset.pseq_id = q.pseq_id)))) AS "patented98%" FROM (pseq q JOIN best_annotation_mv ba ON ((q.pseq_id = ba.pseq_id))); (DROP VIEW unison.extended_annotation_v; unisonunisonfalse30169{00VIEW extended_annotation_vCOMMENTQCOMMENT ON VIEW extended_annotation_v IS 'summary of best sequence information'; unisonunisonfalse2685|00extended_annotation_vACLREVOKE ALL ON TABLE extended_annotation_v FROM PUBLIC; REVOKE ALL ON TABLE extended_annotation_v FROM unison; GRANT ALL ON TABLE extended_annotation_v TO unison; GRANT SELECT ON TABLE extended_annotation_v TO PUBLIC; unisonunisonfalse2685 1259307852pmprospect_scop_mvTABLENCREATE TABLE pmprospect_scop_mv ( pmodel_id integer, sunid integer ); &DROP TABLE unison.pmprospect_scop_mv; unisonunisonfalse9}00TABLE pmprospect_scop_mvCOMMENTeCOMMENT ON TABLE pmprospect_scop_mv IS 'materialized view of Prospect model <-> scop sunid mapping'; unisonunisonfalse2483~00#COLUMN pmprospect_scop_mv.pmodel_idCOMMENTUCOMMENT ON COLUMN pmprospect_scop_mv.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse248300pmprospect_scop_mvACLREVOKE ALL ON TABLE pmprospect_scop_mv FROM PUBLIC; REVOKE ALL ON TABLE pmprospect_scop_mv FROM unison; GRANT ALL ON TABLE pmprospect_scop_mv TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pmprospect_scop_mv TO loader; GRANT SELECT ON TABLE pmprospect_scop_mv TO PUBLIC; unisonunisonfalse2483~ 1259308923fn3_prospect_pmodelset_dvVIEW,CREATE VIEW fn3_prospect_pmodelset_dv AS SELECT DISTINCT pmprospect_scop.pmodel_id FROM pmprospect_scop_mv pmprospect_scop WHERE (pmprospect_scop.sunid IN (SELECT des.sunid FROM scop.des WHERE ((des.level = 'px'::text) AND (des.sccs ~ 'b[.]1[.]2[.]'::text)))) ORDER BY pmprospect_scop.pmodel_id; ,DROP VIEW unison.fn3_prospect_pmodelset_dv; unisonunisonfalse3017900*COLUMN fn3_prospect_pmodelset_dv.pmodel_idCOMMENT\COMMENT ON COLUMN fn3_prospect_pmodelset_dv.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse268600fn3_prospect_pmodelset_dvACLREVOKE ALL ON TABLE fn3_prospect_pmodelset_dv FROM PUBLIC; REVOKE ALL ON TABLE fn3_prospect_pmodelset_dv FROM unison; GRANT ALL ON TABLE fn3_prospect_pmodelset_dv TO unison; GRANT SELECT ON TABLE fn3_prospect_pmodelset_dv TO PUBLIC; unisonunisonfalse2686 1259309708genasm_genasm_id_seqSEQUENCEvCREATE SEQUENCE genasm_genasm_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; +DROP SEQUENCE unison.genasm_genasm_id_seq; unisonunisonfalse900genasm_genasm_id_seq SEQUENCE SET<SELECT pg_catalog.setval('genasm_genasm_id_seq', 1, false); unisonunisonfalse282900genasm_genasm_id_seqACLREVOKE ALL ON SEQUENCE genasm_genasm_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE genasm_genasm_id_seq FROM unison; GRANT ALL ON SEQUENCE genasm_genasm_id_seq TO unison; GRANT UPDATE ON SEQUENCE genasm_genasm_id_seq TO loader; unisonunisonfalse2829 1259308927genasmTABLECREATE TABLE genasm ( genasm_id integer DEFAULT nextval('genasm_genasm_id_seq'::regclass) NOT NULL, tax_id integer, name text NOT NULL, url text ); DROP TABLE unison.genasm; unisonunisonfalse3431900 TABLE genasmCOMMENT2COMMENT ON TABLE genasm IS 'genome and assembly'; unisonunisonfalse268700COLUMN genasm.genasm_idCOMMENT]COMMENT ON COLUMN genasm.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse268700COLUMN genasm.tax_idCOMMENT?COMMENT ON COLUMN genasm.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse268700COLUMN genasm.nameCOMMENTHCOMMENT ON COLUMN genasm.name IS 'genome assembly name (e.g. NHGD-34)'; unisonunisonfalse268700COLUMN genasm.urlCOMMENT:COMMENT ON COLUMN genasm.url IS 'URL of genome assembly'; unisonunisonfalse268700genasmACLREVOKE ALL ON TABLE genasm FROM PUBLIC; REVOKE ALL ON TABLE genasm FROM unison; GRANT ALL ON TABLE genasm TO unison; GRANT INSERT,UPDATE ON TABLE genasm TO loader; GRANT SELECT,REFERENCES ON TABLE genasm TO PUBLIC; unisonunisonfalse2687 1259308933gg_famid_pseq_id_mvTABLEMCREATE TABLE gg_famid_pseq_id_mv ( famid integer, pseq_id integer ); 'DROP TABLE unison.gg_famid_pseq_id_mv; unisonunisonfalse900TABLE gg_famid_pseq_id_mvCOMMENTbCOMMENT ON TABLE gg_famid_pseq_id_mv IS 'materialized view of GenenGenes<->pseq_id associations'; unisonunisonfalse268800"COLUMN gg_famid_pseq_id_mv.pseq_idCOMMENTlCOMMENT ON COLUMN gg_famid_pseq_id_mv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse268800gg_famid_pseq_id_mvACLREVOKE ALL ON TABLE gg_famid_pseq_id_mv FROM PUBLIC; REVOKE ALL ON TABLE gg_famid_pseq_id_mv FROM unison; GRANT ALL ON TABLE gg_famid_pseq_id_mv TO unison; GRANT SELECT ON TABLE gg_famid_pseq_id_mv TO PUBLIC; unisonunisonfalse2688 1259308936gg_famid_pseq_id_vVIEWCREATE VIEW gg_famid_pseq_id_v AS SELECT DISTINCT uf.famid, pd.pseq_id FROM ((sst.unqfamily uf JOIN sst.v_unq2dna ud ON ((ud.unqid = uf.unqid))) JOIN sst.v_trans pd ON ((pd.dnaid = ud.dnaid))) ORDER BY uf.famid, pd.pseq_id; %DROP VIEW unison.gg_famid_pseq_id_v; unisonunisonfalse3018900VIEW gg_famid_pseq_id_vCOMMENTOCOMMENT ON VIEW gg_famid_pseq_id_v IS 'GenenGenes family-to-sequence mapping'; unisonunisonfalse268900!COLUMN gg_famid_pseq_id_v.pseq_idCOMMENTkCOMMENT ON COLUMN gg_famid_pseq_id_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse268900gg_famid_pseq_id_vACLREVOKE ALL ON TABLE gg_famid_pseq_id_v FROM PUBLIC; REVOKE ALL ON TABLE gg_famid_pseq_id_v FROM unison; GRANT ALL ON TABLE gg_famid_pseq_id_v TO unison; GRANT SELECT ON TABLE gg_famid_pseq_id_v TO PUBLIC; unisonunisonfalse2689 1259308104 homologene_vVIEW)CREATE VIEW homologene_v AS SELECT h.hid, h.tax_id, h.gene_id, h.gene_symbol, h.gi, h.acc, sa.pseq_id FROM ((ncbi.homologene h JOIN pannotation oa ON (((h.acc = oa.alias) AND (oa.origin_id = origin_id('RefSeq'::text))))) JOIN pseq_pannotation sa ON ((oa.pannotation_id = sa.pannotation_id))); DROP VIEW unison.homologene_v; unisonunisonfalse2926900VIEW homologene_vCOMMENToCOMMENT ON VIEW homologene_v IS 'view of ncbi.homologene with pseq_ids. WARNING: omits entries not in Unison'; unisonunisonfalse252600COLUMN homologene_v.hidCOMMENTKCOMMENT ON COLUMN homologene_v.hid IS 'homologene gene family identifier'; unisonunisonfalse252600COLUMN homologene_v.tax_idCOMMENTECOMMENT ON COLUMN homologene_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse252600COLUMN homologene_v.gene_idCOMMENTFCOMMENT ON COLUMN homologene_v.gene_id IS 'NCBI Entrez Gene gene_id'; unisonunisonfalse252600COLUMN homologene_v.accCOMMENT<COMMENT ON COLUMN homologene_v.acc IS 'sequence accession'; unisonunisonfalse252600COLUMN homologene_v.pseq_idCOMMENTeCOMMENT ON COLUMN homologene_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse252600 homologene_vACLREVOKE ALL ON TABLE homologene_v FROM PUBLIC; REVOKE ALL ON TABLE homologene_v FROM unison; GRANT ALL ON TABLE homologene_v TO unison; GRANT SELECT ON TABLE homologene_v TO PUBLIC; unisonunisonfalse2526 1259308108homologene_pairs_vVIEWjCREATE VIEW homologene_pairs_v AS SELECT q.hid, q.pseq_id AS q_pseq_id, q.acc AS q_acc, q.tax_id AS q_tax_id, q.gene_symbol AS q_gene_symbol, t.pseq_id AS t_pseq_id, t.acc AS t_acc, t.tax_id AS t_tax_id, t.gene_symbol AS t_gene_symbol FROM (homologene_v q JOIN homologene_v t ON (((q.hid = t.hid) AND ((q.pseq_id <> t.pseq_id) OR (q.tax_id <> t.tax_id))))); %DROP VIEW unison.homologene_pairs_v; unisonunisonfalse2927900VIEW homologene_pairs_vCOMMENT[COMMENT ON VIEW homologene_pairs_v IS 'pairs of sequences from HomoloGene, with pseq_ids'; unisonunisonfalse252700COLUMN homologene_pairs_v.hidCOMMENTQCOMMENT ON COLUMN homologene_pairs_v.hid IS 'homologene gene family identifier'; unisonunisonfalse252700#COLUMN homologene_pairs_v.q_pseq_idCOMMENTCCOMMENT ON COLUMN homologene_pairs_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse252700"COLUMN homologene_pairs_v.q_tax_idCOMMENTHCOMMENT ON COLUMN homologene_pairs_v.q_tax_id IS 'tax_id of q_pseq_id'; unisonunisonfalse252700#COLUMN homologene_pairs_v.t_pseq_idCOMMENTDCOMMENT ON COLUMN homologene_pairs_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse252700"COLUMN homologene_pairs_v.t_tax_idCOMMENTMCOMMENT ON COLUMN homologene_pairs_v.t_tax_id IS 'tax_id of target pseq_id'; unisonunisonfalse252700'COLUMN homologene_pairs_v.t_gene_symbolCOMMENT\COMMENT ON COLUMN homologene_pairs_v.t_gene_symbol IS 'target sequence Entrez Gene symbol'; unisonunisonfalse252700homologene_pairs_vACLREVOKE ALL ON TABLE homologene_pairs_v FROM PUBLIC; REVOKE ALL ON TABLE homologene_pairs_v FROM unison; GRANT ALL ON TABLE homologene_pairs_v TO unison; GRANT SELECT ON TABLE homologene_pairs_v TO PUBLIC; unisonunisonfalse2527 1259308112homologene_orthologs_vVIEWCREATE VIEW homologene_orthologs_v AS SELECT homologene_pairs_v.hid, homologene_pairs_v.q_pseq_id, homologene_pairs_v.q_acc, homologene_pairs_v.q_tax_id, homologene_pairs_v.q_gene_symbol, homologene_pairs_v.t_pseq_id, homologene_pairs_v.t_acc, homologene_pairs_v.t_tax_id, homologene_pairs_v.t_gene_symbol FROM homologene_pairs_v homologene_pairs_v WHERE (homologene_pairs_v.q_tax_id <> homologene_pairs_v.t_tax_id); )DROP VIEW unison.homologene_orthologs_v; unisonunisonfalse2928900VIEW homologene_orthologs_vCOMMENTOCOMMENT ON VIEW homologene_orthologs_v IS 'orthologs from homologene_pairs_v'; unisonunisonfalse252800!COLUMN homologene_orthologs_v.hidCOMMENTUCOMMENT ON COLUMN homologene_orthologs_v.hid IS 'homologene gene family identifier'; unisonunisonfalse252800'COLUMN homologene_orthologs_v.q_pseq_idCOMMENTGCOMMENT ON COLUMN homologene_orthologs_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse252800&COLUMN homologene_orthologs_v.q_tax_idCOMMENTLCOMMENT ON COLUMN homologene_orthologs_v.q_tax_id IS 'tax_id of q_pseq_id'; unisonunisonfalse252800'COLUMN homologene_orthologs_v.t_pseq_idCOMMENTHCOMMENT ON COLUMN homologene_orthologs_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse252800&COLUMN homologene_orthologs_v.t_tax_idCOMMENTQCOMMENT ON COLUMN homologene_orthologs_v.t_tax_id IS 'tax_id of target pseq_id'; unisonunisonfalse252800+COLUMN homologene_orthologs_v.t_gene_symbolCOMMENT`COMMENT ON COLUMN homologene_orthologs_v.t_gene_symbol IS 'target sequence Entrez Gene symbol'; unisonunisonfalse252800homologene_orthologs_vACLREVOKE ALL ON TABLE homologene_orthologs_v FROM PUBLIC; REVOKE ALL ON TABLE homologene_orthologs_v FROM unison; GRANT ALL ON TABLE homologene_orthologs_v TO unison; GRANT SELECT ON TABLE homologene_orthologs_v TO PUBLIC; unisonunisonfalse2528 1259308940homologene_paralogs_vVIEWCREATE VIEW homologene_paralogs_v AS SELECT homologene_pairs_v.hid, homologene_pairs_v.q_pseq_id, homologene_pairs_v.q_acc, homologene_pairs_v.q_tax_id, homologene_pairs_v.q_gene_symbol, homologene_pairs_v.t_pseq_id, homologene_pairs_v.t_acc, homologene_pairs_v.t_tax_id, homologene_pairs_v.t_gene_symbol FROM homologene_pairs_v homologene_pairs_v WHERE (homologene_pairs_v.q_tax_id = homologene_pairs_v.t_tax_id); (DROP VIEW unison.homologene_paralogs_v; unisonunisonfalse3019900VIEW homologene_paralogs_vCOMMENTMCOMMENT ON VIEW homologene_paralogs_v IS 'paralogs from homologene_pairs_v'; unisonunisonfalse269000 COLUMN homologene_paralogs_v.hidCOMMENTTCOMMENT ON COLUMN homologene_paralogs_v.hid IS 'homologene gene family identifier'; unisonunisonfalse269000&COLUMN homologene_paralogs_v.q_pseq_idCOMMENTFCOMMENT ON COLUMN homologene_paralogs_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse269000%COLUMN homologene_paralogs_v.q_tax_idCOMMENTKCOMMENT ON COLUMN homologene_paralogs_v.q_tax_id IS 'tax_id of q_pseq_id'; unisonunisonfalse269000&COLUMN homologene_paralogs_v.t_pseq_idCOMMENTGCOMMENT ON COLUMN homologene_paralogs_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse269000%COLUMN homologene_paralogs_v.t_tax_idCOMMENTPCOMMENT ON COLUMN homologene_paralogs_v.t_tax_id IS 'tax_id of target pseq_id'; unisonunisonfalse269000*COLUMN homologene_paralogs_v.t_gene_symbolCOMMENT_COMMENT ON COLUMN homologene_paralogs_v.t_gene_symbol IS 'target sequence Entrez Gene symbol'; unisonunisonfalse269000homologene_paralogs_vACLREVOKE ALL ON TABLE homologene_paralogs_v FROM PUBLIC; REVOKE ALL ON TABLE homologene_paralogs_v FROM unison; GRANT ALL ON TABLE homologene_paralogs_v TO unison; GRANT SELECT ON TABLE homologene_paralogs_v TO PUBLIC; unisonunisonfalse269061255308944hmm_pmodel_id(text)FUNCTIONCREATE FUNCTION hmm_pmodel_id(text) RETURNS SETOF integer AS $_$select pmodel_id from pmhmm where acc=$1 or name=$1 order by added desc;$_$ LANGUAGE sql IMMUTABLE STRICT; *DROP FUNCTION unison.hmm_pmodel_id(text); unisonunisonfalse900hmm_pmodel_id(text)ACLREVOKE ALL ON FUNCTION hmm_pmodel_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION hmm_pmodel_id(text) FROM unison; GRANT ALL ON FUNCTION hmm_pmodel_id(text) TO unison; GRANT ALL ON FUNCTION hmm_pmodel_id(text) TO PUBLIC; unisonunisonfalse54 1259307827pfregexpTABLECREATE TABLE pfregexp ( pftype_id integer DEFAULT pftype_id('regexp'::text), start integer, stop integer, params_id integer, pmodel_id integer NOT NULL ) INHERITS (pfeature); DROP TABLE unison.pfregexp; unisonunisonfalse330933102473900TABLE pfregexpCOMMENTUCOMMENT ON TABLE pfregexp IS 'regular expression features based on pmregexp motifs'; unisonunisonfalse247700COLUMN pfregexp.pfeature_idCOMMENTXCOMMENT ON COLUMN pfregexp.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse247700COLUMN pfregexp.pseq_idCOMMENTaCOMMENT ON COLUMN pfregexp.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse247700COLUMN pfregexp.pftype_idCOMMENTdCOMMENT ON COLUMN pfregexp.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse247700COLUMN pfregexp.startCOMMENTOCOMMENT ON COLUMN pfregexp.start IS 'start of prediction in protein sequence'; unisonunisonfalse247700COLUMN pfregexp.stopCOMMENTMCOMMENT ON COLUMN pfregexp.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse247700COLUMN pfregexp.params_idCOMMENT]COMMENT ON COLUMN pfregexp.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse247700COLUMN pfregexp.pmodel_idCOMMENTKCOMMENT ON COLUMN pfregexp.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse247700pfregexpACLREVOKE ALL ON TABLE pfregexp FROM PUBLIC; REVOKE ALL ON TABLE pfregexp FROM unison; GRANT ALL ON TABLE pfregexp TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pfregexp TO loader; GRANT SELECT ON TABLE pfregexp TO PUBLIC; unisonunisonfalse2477 1259307831 pftmdetectTABLE CREATE TABLE pftmdetect ( pftype_id integer DEFAULT pftype_id('tmdetect'::text), prob real NOT NULL, type character(1) NOT NULL, CONSTRAINT pftmdetect_type_is_m_n_or_s CHECK ((((type = 'M'::bpchar) OR (type = 'N'::bpchar)) OR (type = 'S'::bpchar))) ) INHERITS (pfeature); DROP TABLE unison.pftmdetect; unisonunisonfalse3311331233132473900TABLE pftmdetectCOMMENTGCOMMENT ON TABLE pftmdetect IS 'signal and transmembrane predictions'; unisonunisonfalse247800COLUMN pftmdetect.pfeature_idCOMMENTZCOMMENT ON COLUMN pftmdetect.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse247800COLUMN pftmdetect.pseq_idCOMMENTcCOMMENT ON COLUMN pftmdetect.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse247800COLUMN pftmdetect.pftype_idCOMMENTfCOMMENT ON COLUMN pftmdetect.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse247800COLUMN pftmdetect.startCOMMENTQCOMMENT ON COLUMN pftmdetect.start IS 'start of prediction in protein sequence'; unisonunisonfalse247800COLUMN pftmdetect.stopCOMMENTOCOMMENT ON COLUMN pftmdetect.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse247800COLUMN pftmdetect.params_idCOMMENT_COMMENT ON COLUMN pftmdetect.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse247800 pftmdetectACLREVOKE ALL ON TABLE pftmdetect FROM PUBLIC; REVOKE ALL ON TABLE pftmdetect FROM unison; GRANT ALL ON TABLE pftmdetect TO unison; GRANT INSERT,UPDATE ON TABLE pftmdetect TO loader; GRANT SELECT ON TABLE pftmdetect TO PUBLIC; unisonunisonfalse2478 1259308945 ig_tm_itim_cvVIEWCREATE VIEW ig_tm_itim_cv AS SELECT h.pseq_id, (((h.start)::text || '-'::text) || (h.stop)::text) AS "Ig", h.eval, (((tm.start)::text || '-'::text) || (tm.stop)::text) AS "TM", tm.prob AS tm_prob, (((itim.start)::text || '-'::text) || (itim.stop)::text) AS "ITIM" FROM (((((pahmm h JOIN pftmdetect tm ON ((tm.pseq_id = h.pseq_id))) JOIN pfregexp itim ON ((itim.pseq_id = h.pseq_id))) JOIN run r1 ON ((r1.params_id = h.params_id))) JOIN run r2 ON ((r2.params_id = tm.params_id))) JOIN pmsm_pmhmm ms ON (((ms.pmodel_id = h.pmodel_id) AND (r1.pmodelset_id = ms.pmodelset_id)))) WHERE (((((((h.pmodel_id IN (SELECT hmm_pmodel_id('ig'::text) AS hmm_pmodel_id)) AND (r1.run_id = preferred_run_id_by_pftype('HMM'::text))) AND ((tm.type = 'M'::bpchar) OR (tm.type = 'N'::bpchar))) AND (r2.run_id = preferred_run_id_by_pftype('tmdetect'::text))) AND (itim.pmodel_id = 11368857)) AND (h.stop < tm.start)) AND (tm.stop < itim.start)) ORDER BY h.eval; DROP VIEW unison.ig_tm_itim_cv; unisonunisonfalse3020900 ig_tm_itim_cvACLREVOKE ALL ON TABLE ig_tm_itim_cv FROM PUBLIC; REVOKE ALL ON TABLE ig_tm_itim_cv FROM unison; GRANT ALL ON TABLE ig_tm_itim_cv TO unison; GRANT SELECT ON TABLE ig_tm_itim_cv TO PUBLIC; unisonunisonfalse2691C 1259308633 pseq_sst_vVIEWCREATE VIEW pseq_sst_v AS SELECT DISTINCT a.pseq_id, b.dnaid, b.proid, b.unqid, b.unqname, b.shortname FROM (sst.v_trans a JOIN sst.v_unq2dna b ON ((a.dnaid = b.dnaid))) ORDER BY a.pseq_id, b.dnaid, b.proid, b.unqid, b.unqname, b.shortname; DROP VIEW unison.pseq_sst_v; unisonunisonfalse2982900 pseq_sst_vACLREVOKE ALL ON TABLE pseq_sst_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_sst_v FROM unison; GRANT ALL ON TABLE pseq_sst_v TO unison; GRANT SELECT ON TABLE pseq_sst_v TO PUBLIC; unisonunisonfalse2627 1259308950human_itims_w_unqs_cvVIEWCREATE VIEW human_itims_w_unqs_cv AS SELECT DISTINCT ON (itim.pseq_id) itim.pseq_id, ug.unqid, CASE WHEN ((EXISTS (SELECT uf.unqid, uf.famid FROM sst.unqfamily uf WHERE ((uf.unqid = ug.unqid) AND (uf.famid = 2502)))) = true) THEN 'Y'::text ELSE 'N'::text END AS "in FAM2502?", itim."Ig", itim.eval, itim."TM", itim.tm_prob, itim."ITIM" FROM (ig_tm_itim_cv itim LEFT JOIN pseq_sst_v ug ON ((itim.pseq_id = ug.pseq_id))) ORDER BY itim.pseq_id; (DROP VIEW unison.human_itims_w_unqs_cv; unisonunisonfalse3021900human_itims_w_unqs_cvACLREVOKE ALL ON TABLE human_itims_w_unqs_cv FROM PUBLIC; REVOKE ALL ON TABLE human_itims_w_unqs_cv FROM unison; GRANT ALL ON TABLE human_itims_w_unqs_cv TO unison; GRANT SELECT ON TABLE human_itims_w_unqs_cv TO PUBLIC; unisonunisonfalse2692 1259308954ig_prospect_pmodelset_dvVIEW+CREATE VIEW ig_prospect_pmodelset_dv AS SELECT DISTINCT pmprospect_scop.pmodel_id FROM pmprospect_scop_mv pmprospect_scop WHERE (pmprospect_scop.sunid IN (SELECT des.sunid FROM scop.des WHERE ((des.level = 'px'::text) AND (des.sccs ~ 'b[.]1[.]1[.]'::text)))) ORDER BY pmprospect_scop.pmodel_id; +DROP VIEW unison.ig_prospect_pmodelset_dv; unisonunisonfalse3022900VIEW ig_prospect_pmodelset_dvCOMMENTaCOMMENT ON VIEW ig_prospect_pmodelset_dv IS 'defines set of Fibronectin III prospect templates'; unisonunisonfalse269300)COLUMN ig_prospect_pmodelset_dv.pmodel_idCOMMENT[COMMENT ON COLUMN ig_prospect_pmodelset_dv.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse269300ig_prospect_pmodelset_dvACLREVOKE ALL ON TABLE ig_prospect_pmodelset_dv FROM PUBLIC; REVOKE ALL ON TABLE ig_prospect_pmodelset_dv FROM unison; GRANT ALL ON TABLE ig_prospect_pmodelset_dv TO unison; GRANT SELECT ON TABLE ig_prospect_pmodelset_dv TO PUBLIC; unisonunisonfalse2693 1259308958 ig_tm_itimVIEWCREATE VIEW ig_tm_itim AS SELECT h.pseq_id, (((h.start)::text || '-'::text) || (h.stop)::text) AS "Ig", h.eval, (((tm.start)::text || '-'::text) || (tm.stop)::text) AS "TM", tm.prob AS tm_prob, (((itim.start)::text || '-'::text) || (itim.stop)::text) AS "ITIM", ((ba.origin || ':'::text) || ba.alias) AS alias, ba.gs, ba.descr FROM (((pahmm h JOIN pftmdetect tm ON ((tm.pseq_id = h.pseq_id))) JOIN pfregexp itim ON ((itim.pseq_id = h.pseq_id))) LEFT JOIN best_annotation_mv ba ON ((h.pseq_id = ba.pseq_id))) WHERE (((((h.pmodel_id = 13609290) AND ((tm.type = 'M'::bpchar) OR (tm.type = 'N'::bpchar))) AND (itim.pmodel_id = 11368857)) AND (h.stop < tm.start)) AND (tm.stop < itim.start)) ORDER BY h.eval; DROP VIEW unison.ig_tm_itim; unisonunisonfalse3023900COLUMN ig_tm_itim.pseq_idCOMMENTcCOMMENT ON COLUMN ig_tm_itim.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse269400COLUMN ig_tm_itim.evalCOMMENT:COMMENT ON COLUMN ig_tm_itim.eval IS 'expectation value'; unisonunisonfalse269400COLUMN ig_tm_itim.tm_probCOMMENTHCOMMENT ON COLUMN ig_tm_itim.tm_prob IS 'maximum tmdetect probability'; unisonunisonfalse269400COLUMN ig_tm_itim.aliasCOMMENT@COMMENT ON COLUMN ig_tm_itim.alias IS 'alias for the sequence'; unisonunisonfalse269400COLUMN ig_tm_itim.gsCOMMENTlCOMMENT ON COLUMN ig_tm_itim.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse2694 1259308963ig_tm_itim2_cvVIEWCREATE VIEW ig_tm_itim2_cv AS SELECT h.pseq_id, (((h.start)::text || '-'::text) || (h.stop)::text) AS "Ig", h.eval, (((tm.start)::text || '-'::text) || (tm.stop)::text) AS "TM", tm.prob AS tm_prob, (((itim.start)::text || '-'::text) || (itim.stop)::text) AS "ITIM", ((ba.origin || ':'::text) || ba.alias) AS alias, ba.gs, ba.descr FROM (((((pahmm h JOIN pftmdetect tm ON ((tm.pseq_id = h.pseq_id))) JOIN pfregexp itim ON ((itim.pseq_id = h.pseq_id))) JOIN run r1 ON ((r1.params_id = h.params_id))) JOIN run r2 ON ((r2.params_id = tm.params_id))) LEFT JOIN best_annotation_mv ba ON ((h.pseq_id = ba.pseq_id))) WHERE (((((((h.pmodel_id IN (SELECT hmm_pmodel_id('ig'::text) AS hmm_pmodel_id)) AND (r1.run_id = preferred_run_id_by_pftype('HMM'::text))) AND ((tm.type = 'M'::bpchar) OR (tm.type = 'N'::bpchar))) AND (r2.run_id = preferred_run_id_by_pftype('TMDETECT'::text))) AND (itim.pmodel_id = 11368857)) AND (h.stop < tm.start)) AND (tm.stop < itim.start)) ORDER BY h.eval; !DROP VIEW unison.ig_tm_itim2_cv; unisonunisonfalse3024900COLUMN ig_tm_itim2_cv.pseq_idCOMMENTgCOMMENT ON COLUMN ig_tm_itim2_cv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse269500COLUMN ig_tm_itim2_cv.evalCOMMENT>COMMENT ON COLUMN ig_tm_itim2_cv.eval IS 'expectation value'; unisonunisonfalse269500COLUMN ig_tm_itim2_cv.tm_probCOMMENTLCOMMENT ON COLUMN ig_tm_itim2_cv.tm_prob IS 'maximum tmdetect probability'; unisonunisonfalse269500COLUMN ig_tm_itim2_cv.aliasCOMMENTDCOMMENT ON COLUMN ig_tm_itim2_cv.alias IS 'alias for the sequence'; unisonunisonfalse269500COLUMN ig_tm_itim2_cv.gsCOMMENTpCOMMENT ON COLUMN ig_tm_itim2_cv.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse269500ig_tm_itim2_cvACLREVOKE ALL ON TABLE ig_tm_itim2_cv FROM PUBLIC; REVOKE ALL ON TABLE ig_tm_itim2_cv FROM unison; GRANT ALL ON TABLE ig_tm_itim2_cv TO unison; GRANT SELECT ON TABLE ig_tm_itim2_cv TO PUBLIC; unisonunisonfalse2695 1259308968itxm_vVIEWCREATE VIEW itxm_v AS SELECT DISTINCT ON (ig.pseq_id) ig.pseq_id, (((ig.start)::text || '-'::text) || (ig.stop)::text) AS "Ig", ig.eval, (((tm.start)::text || '-'::text) || (tm.stop)::text) AS "TM", tm.prob AS tm_prob, (((itam.start)::text || '-'::text) || (itam.stop)::text) AS "ITAM pos", substr(q.seq, itam.start, ((itam.stop - itam.start) + 1)) AS "ITAM seq", (((itim.start)::text || '-'::text) || (itim.stop)::text) AS "ITIM pos", substr(q.seq, itim.start, ((itim.stop - itim.start) + 1)) AS "ITIM seq", (((itsm.start)::text || '-'::text) || (itsm.stop)::text) AS "ITSM pos", substr(q.seq, itsm.start, ((itsm.stop - itsm.start) + 1)) AS "ITSM seq", ((ba.origin || ':'::text) || ba.alias) AS alias, ba.gs, ba.descr FROM (((((((pahmm ig JOIN pseq q ON ((q.pseq_id = ig.pseq_id))) JOIN run r ON ((r.params_id = ig.params_id))) JOIN pftmdetect tm ON ((((tm.pseq_id = ig.pseq_id) AND ((tm.type = 'N'::bpchar) OR (tm.type = 'M'::bpchar))) AND (tm.start > ig.stop)))) LEFT JOIN pfregexp itam ON ((((ig.pseq_id = itam.pseq_id) AND (itam.pmodel_id = 11368858)) AND (itam.start > tm.stop)))) LEFT JOIN pfregexp itim ON ((((ig.pseq_id = itim.pseq_id) AND (itim.pmodel_id = 11368857)) AND (itim.start > tm.stop)))) LEFT JOIN pfregexp itsm ON ((((ig.pseq_id = itsm.pseq_id) AND (itsm.pmodel_id = 11368859)) AND (itsm.start > tm.stop)))) LEFT JOIN best_annotation_mv ba ON ((ig.pseq_id = ba.pseq_id))) WHERE ((((ig.pmodel_id IN (SELECT hmm_pmodel_id('ig'::text) AS hmm_pmodel_id)) AND (r.run_id = preferred_run_id_by_pftype('HMM'::text))) AND (ig.eval <= (1)::double precision)) AND (((itam.start IS NOT NULL) OR (itim.start IS NOT NULL)) OR (itsm.start IS NOT NULL))) ORDER BY ig.pseq_id; DROP VIEW unison.itxm_v; unisonunisonfalse3025900 VIEW itxm_vCOMMENTYCOMMENT ON VIEW itxm_v IS 'integrated view of ITAM, ITIM, and ITSM-containing proteins'; unisonunisonfalse269600COLUMN itxm_v.pseq_idCOMMENT_COMMENT ON COLUMN itxm_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse269600COLUMN itxm_v.evalCOMMENT6COMMENT ON COLUMN itxm_v.eval IS 'expectation value'; unisonunisonfalse269600COLUMN itxm_v.tm_probCOMMENTDCOMMENT ON COLUMN itxm_v.tm_prob IS 'maximum tmdetect probability'; unisonunisonfalse269600COLUMN itxm_v.aliasCOMMENT<COMMENT ON COLUMN itxm_v.alias IS 'alias for the sequence'; unisonunisonfalse269600COLUMN itxm_v.gsCOMMENThCOMMENT ON COLUMN itxm_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse269600itxm_vACLREVOKE ALL ON TABLE itxm_v FROM PUBLIC; REVOKE ALL ON TABLE itxm_v FROM unison; GRANT ALL ON TABLE itxm_v TO unison; GRANT SELECT ON TABLE itxm_v TO PUBLIC; unisonunisonfalse2696 1259308973itxm_w_unq_fam_vVIEWCREATE VIEW itxm_w_unq_fam_v AS SELECT v_itxm.gs, v_itxm.pseq_id, v_itxm.alias, ('UNQ'::text || ((SELECT DISTINCT pseq_sst_v.unqid FROM pseq_sst_v WHERE (pseq_sst_v.pseq_id = v_itxm.pseq_id) ORDER BY pseq_sst_v.unqid LIMIT 1))::text) AS unq, CASE WHEN (EXISTS (SELECT fp.famid, fp.pseq_id FROM gg_famid_pseq_id_mv fp WHERE ((fp.pseq_id = v_itxm.pseq_id) AND (fp.famid = 2502)))) THEN 'Y'::text ELSE NULL::text END AS "FAM2502", CASE WHEN (EXISTS (SELECT fp.famid, fp.pseq_id FROM gg_famid_pseq_id_mv fp WHERE ((fp.pseq_id = v_itxm.pseq_id) AND (fp.famid = 2503)))) THEN 'Y'::text ELSE NULL::text END AS "FAM2503", v_itxm."Ig", v_itxm.eval, v_itxm."TM", v_itxm.tm_prob, v_itxm."ITAM pos", v_itxm."ITAM seq", v_itxm."ITIM pos", v_itxm."ITIM seq", v_itxm."ITSM pos", v_itxm."ITSM seq", v_itxm.descr FROM itxm_v v_itxm ORDER BY v_itxm.gs, CASE WHEN (EXISTS (SELECT fp.famid, fp.pseq_id FROM gg_famid_pseq_id_mv fp WHERE ((fp.pseq_id = v_itxm.pseq_id) AND (fp.famid = 2502)))) THEN 'Y'::text ELSE NULL::text END, CASE WHEN (EXISTS (SELECT fp.famid, fp.pseq_id FROM gg_famid_pseq_id_mv fp WHERE ((fp.pseq_id = v_itxm.pseq_id) AND (fp.famid = 2503)))) THEN 'Y'::text ELSE NULL::text END, v_itxm.alias; #DROP VIEW unison.itxm_w_unq_fam_v; unisonunisonfalse3026900COLUMN itxm_w_unq_fam_v.gsCOMMENTrCOMMENT ON COLUMN itxm_w_unq_fam_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse269700COLUMN itxm_w_unq_fam_v.pseq_idCOMMENTiCOMMENT ON COLUMN itxm_w_unq_fam_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse269700COLUMN itxm_w_unq_fam_v.aliasCOMMENTFCOMMENT ON COLUMN itxm_w_unq_fam_v.alias IS 'alias for the sequence'; unisonunisonfalse269700COLUMN itxm_w_unq_fam_v.unqCOMMENT>COMMENT ON COLUMN itxm_w_unq_fam_v.unq IS 'Genentech UNQ id'; unisonunisonfalse269700COLUMN itxm_w_unq_fam_v.evalCOMMENT@COMMENT ON COLUMN itxm_w_unq_fam_v.eval IS 'expectation value'; unisonunisonfalse269700COLUMN itxm_w_unq_fam_v.tm_probCOMMENTNCOMMENT ON COLUMN itxm_w_unq_fam_v.tm_prob IS 'maximum tmdetect probability'; unisonunisonfalse269700itxm_w_unq_fam_vACLREVOKE ALL ON TABLE itxm_w_unq_fam_v FROM PUBLIC; REVOKE ALL ON TABLE itxm_w_unq_fam_v FROM unison; GRANT ALL ON TABLE itxm_w_unq_fam_v TO unison; GRANT SELECT ON TABLE itxm_w_unq_fam_v TO PUBLIC; unisonunisonfalse2697 1259308977known_bcl2_overlaps_vVIEW,CREATE VIEW known_bcl2_overlaps_v AS SELECT a.pseq_id AS q_pseq_id, b.chr, b.strand, b.q_gstart, b.q_gstop, b.t_pseq_id, b.t_gstart, b.t_gstop FROM (pseqset a LEFT JOIN ensembl_unambiguous_overlaps_mv b ON ((a.pseq_id = b.q_pseq_id))) WHERE (a.pset_id = pset_id('Bcl-2 knowns zebrafish'::text)); (DROP VIEW unison.known_bcl2_overlaps_v; unisonunisonfalse3027900&COLUMN known_bcl2_overlaps_v.q_pseq_idCOMMENTFCOMMENT ON COLUMN known_bcl2_overlaps_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse269800 COLUMN known_bcl2_overlaps_v.chrCOMMENT=COMMENT ON COLUMN known_bcl2_overlaps_v.chr IS 'chromosome'; unisonunisonfalse269800#COLUMN known_bcl2_overlaps_v.strandCOMMENTUCOMMENT ON COLUMN known_bcl2_overlaps_v.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse269800&COLUMN known_bcl2_overlaps_v.t_pseq_idCOMMENTGCOMMENT ON COLUMN known_bcl2_overlaps_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse269800%COLUMN known_bcl2_overlaps_v.t_gstartCOMMENTXCOMMENT ON COLUMN known_bcl2_overlaps_v.t_gstart IS 'genomic start of target sequence'; unisonunisonfalse269800$COLUMN known_bcl2_overlaps_v.t_gstopCOMMENTVCOMMENT ON COLUMN known_bcl2_overlaps_v.t_gstop IS 'genomic stop of target sequence'; unisonunisonfalse269800known_bcl2_overlaps_vACLREVOKE ALL ON TABLE known_bcl2_overlaps_v FROM PUBLIC; REVOKE ALL ON TABLE known_bcl2_overlaps_v FROM unison; GRANT ALL ON TABLE known_bcl2_overlaps_v TO unison; GRANT SELECT ON TABLE known_bcl2_overlaps_v TO PUBLIC; unisonunisonfalse2698 1259308981ligand_smiles_canon_vVIEWCREATE VIEW ligand_smiles_canon_v AS SELECT d.ligand_id, d.descriptor FROM (pdb.ligand_descriptors d JOIN pdb.descriptor_origin o ON ((o.descriptor_origin_id = d.descriptor_origin_id))) WHERE (o.type = 'smiles_canonical'::text); (DROP VIEW unison.ligand_smiles_canon_v; unisonunisonfalse30289 1259308985metaTABLE=CREATE TABLE meta ( key text NOT NULL, value text ); DROP TABLE unison.meta; unisonunisonfalse900 TABLE metaCOMMENT@COMMENT ON TABLE meta IS 'key-value pairs of unison meta data'; unisonunisonfalse270000metaACLREVOKE ALL ON TABLE meta FROM PUBLIC; REVOKE ALL ON TABLE meta FROM unison; GRANT ALL ON TABLE meta TO unison; GRANT INSERT,UPDATE ON TABLE meta TO loader; GRANT SELECT ON TABLE meta TO PUBLIC; unisonunisonfalse2700 1259308991mintTABLEFCREATE TABLE mint ( sprot_a text, organism_a text, short_label_a text, role_a text, modifications_a text, mutations_a text, bd_name_a text, bd_range_a text, bd_identification_method_a text, bd_xref_a text, hotspot_range_a text, hotspot_identification_method_a text, var_splice_xref_a text, var_splice_name_a text, endogenous_a text, tagged_a text, sprot_b text, organism_b text, short_label_b text, role_b text, modifications_b text, mutations_b text, bd_name_b text, bd_range_b text, bd_identification_method_b text, bd_xref_b text, hotspot_range_b text, hotspot_identification_method_b text, var_splice_xref text, var_splice_name_b text, endogenous_b text, tagged_b text, interaction_type text, negation text, kd text, confidence_measure text, confidence_value text, target_modified_residues text, comments text, pmid text, interaction_detection_method text, participant_detection text, vivo text, other_ref text ); DROP TABLE unison.mint; unisonunisonfalse900 TABLE mintCOMMENTPCOMMENT ON TABLE mint IS 'Protein-Protein interactions from the MINT database'; unisonunisonfalse270100mintACLREVOKE ALL ON TABLE mint FROM PUBLIC; REVOKE ALL ON TABLE mint FROM unison; GRANT ALL ON TABLE mint TO unison; GRANT INSERT ON TABLE mint TO loader; GRANT SELECT ON TABLE mint TO PUBLIC; unisonunisonfalse2701 1259308997mint_one_way_vVIEWCREATE VIEW mint_one_way_v AS SELECT a1.pseq_id AS pseq_id_a, m.sprot_a, a2.pseq_id AS pseq_id_b, m.sprot_b, m.interaction_detection_method, m.pmid FROM ((mint m JOIN all_annotations_v a1 ON ((m.sprot_a = a1.alias))) JOIN all_annotations_v a2 ON ((m.sprot_b = a2.alias))) WHERE ((a1.origin_id = origin_id('UniProtKB/Swiss-Prot'::text)) AND (a2.origin_id = origin_id('UniProtKB/Swiss-Prot'::text))); !DROP VIEW unison.mint_one_way_v; unisonunisonfalse3029900VIEW mint_one_way_vCOMMENTICOMMENT ON VIEW mint_one_way_v IS 'abridged view of mint with pseq_ids'; unisonunisonfalse270200mint_one_way_vACLREVOKE ALL ON TABLE mint_one_way_v FROM PUBLIC; REVOKE ALL ON TABLE mint_one_way_v FROM unison; GRANT ALL ON TABLE mint_one_way_v TO unison; GRANT SELECT ON TABLE mint_one_way_v TO PUBLIC; unisonunisonfalse2702 1259309002mint_vVIEW=CREATE VIEW mint_v AS SELECT a.pseq_id_a, a.sprot_a, a.pseq_id_b, a.sprot_b, a.interaction_detection_method, a.pmid FROM mint_one_way_v a UNION ALL SELECT a.pseq_id_b AS pseq_id_a, a.sprot_b AS sprot_a, a.pseq_id_a AS pseq_id_b, a.sprot_a AS sprot_b, a.interaction_detection_method, a.pmid FROM mint_one_way_v a; DROP VIEW unison.mint_v; unisonunisonfalse3030900 VIEW mint_vCOMMENTSCOMMENT ON VIEW mint_v IS 'symmetric view of mint (mint_one_way_v) with pseq_ids'; unisonunisonfalse270300mint_vACLREVOKE ALL ON TABLE mint_v FROM PUBLIC; REVOKE ALL ON TABLE mint_v FROM unison; GRANT ALL ON TABLE mint_v TO unison; GRANT SELECT ON TABLE mint_v TO PUBLIC; unisonunisonfalse2703F 1259308650 ncbi_pseq_mvTABLECREATE TABLE ncbi_pseq_mv ( tax_id integer, gene_id integer, status text, rna_acc text, rna_gi integer, pro_acc text, pro_gi integer, gen_acc text, gen_gi integer, gen_start integer, gen_end integer, gen_orient character(1), assembly text, rna_acc_trunc text, pro_acc_trunc text, gen_acc_trunc text, pseq_id integer ); DROP TABLE unison.ncbi_pseq_mv; unisonunisonfalse900 ncbi_pseq_mvACLREVOKE ALL ON TABLE ncbi_pseq_mv FROM PUBLIC; REVOKE ALL ON TABLE ncbi_pseq_mv FROM unison; GRANT ALL ON TABLE ncbi_pseq_mv TO unison; GRANT SELECT ON TABLE ncbi_pseq_mv TO PUBLIC; unisonunisonfalse2630 1259309006 ncbi_pseq_vVIEWCREATE VIEW ncbi_pseq_v AS SELECT ga.tax_id, ga.gene_id, ga.status, ga.rna_acc, ga.rna_gi, ga.pro_acc, ga.pro_gi, ga.gen_acc, ga.gen_gi, ga.gen_start, ga.gen_end, ga.gen_orient, ga.assembly, split_part(ga.rna_acc, '.'::text, 1) AS rna_acc_trunc, split_part(ga.pro_acc, '.'::text, 1) AS pro_acc_trunc, split_part(ga.gen_acc, '.'::text, 1) AS gen_acc_trunc, ca.pseq_id FROM (ncbi.gene2accession ga JOIN current_annotations_v ca ON (((ga.pro_acc = ca.alias) AND (ca.origin_id = origin_id('RefSeq'::text))))); DROP VIEW unison.ncbi_pseq_v; unisonunisonfalse3031900VIEW ncbi_pseq_vCOMMENT{COMMENT ON VIEW ncbi_pseq_v IS 'maps accessions from NCBI''s gene2accession table to pseq_ids via RefSeq protein aliases'; unisonunisonfalse270400 ncbi_pseq_vACLREVOKE ALL ON TABLE ncbi_pseq_v FROM PUBLIC; REVOKE ALL ON TABLE ncbi_pseq_v FROM unison; GRANT ALL ON TABLE ncbi_pseq_v TO unison; GRANT SELECT ON TABLE ncbi_pseq_v TO PUBLIC; unisonunisonfalse2704 1259308199papseq_vVIEWCREATE VIEW papseq_v AS SELECT a.pfeature_id, a.pseq_id AS q_pseq_id, a.start AS q_start, a.stop AS q_stop, b.pseq_id AS t_pseq_id, a.mstart AS t_start, a.mstop AS t_stop, a.ident, a.sim, a.gaps, a.qgaps, a.tgaps, a.score, a.eval, a.len, a.pct_ident, a.pct_hsp_coverage, a.pct_coverage FROM (papseq a JOIN pmpseq b ON ((a.pmodel_id = b.pmodel_id))) UNION ALL SELECT a.pfeature_id, b.pseq_id AS q_pseq_id, a.mstart AS q_start, a.mstop AS q_stop, a.pseq_id AS t_pseq_id, a.start AS t_start, a.stop AS t_stop, a.ident, a.sim, a.gaps, a.qgaps, a.tgaps, a.score, a.eval, a.len, a.pct_ident, a.pct_hsp_coverage, a.pct_coverage FROM (papseq a JOIN pmpseq b ON ((a.pmodel_id = b.pmodel_id))); DROP VIEW unison.papseq_v; unisonunisonfalse2931900 VIEW papseq_vCOMMENTBCOMMENT ON VIEW papseq_v IS 'BLAST sequence-sequence alignments'; unisonunisonfalse254300COLUMN papseq_v.pfeature_idCOMMENTXCOMMENT ON COLUMN papseq_v.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse254300COLUMN papseq_v.q_pseq_idCOMMENT9COMMENT ON COLUMN papseq_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse254300COLUMN papseq_v.q_startCOMMENTECOMMENT ON COLUMN papseq_v.q_start IS 'start position in q_pseq_id'; unisonunisonfalse254300COLUMN papseq_v.q_stopCOMMENTCCOMMENT ON COLUMN papseq_v.q_stop IS 'stop position in q_pseq_id'; unisonunisonfalse254300COLUMN papseq_v.t_pseq_idCOMMENT:COMMENT ON COLUMN papseq_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse254300COLUMN papseq_v.t_startCOMMENTJCOMMENT ON COLUMN papseq_v.t_start IS 'start position in target pseq_id'; unisonunisonfalse254300COLUMN papseq_v.t_stopCOMMENTHCOMMENT ON COLUMN papseq_v.t_stop IS 'stop position in target pseq_id'; unisonunisonfalse254300COLUMN papseq_v.qgapsCOMMENTHCOMMENT ON COLUMN papseq_v.qgaps IS 'number of gaps in query sequence'; unisonunisonfalse254300COLUMN papseq_v.tgapsCOMMENTICOMMENT ON COLUMN papseq_v.tgaps IS 'number of gaps in target sequence'; unisonunisonfalse254300COLUMN papseq_v.scoreCOMMENT@COMMENT ON COLUMN papseq_v.score IS 'algorithm-specific score'; unisonunisonfalse254300COLUMN papseq_v.evalCOMMENT8COMMENT ON COLUMN papseq_v.eval IS 'expectation value'; unisonunisonfalse254300COLUMN papseq_v.pct_identCOMMENT<COMMENT ON COLUMN papseq_v.pct_ident IS 'percent identity'; unisonunisonfalse254300COLUMN papseq_v.pct_coverageCOMMENT?COMMENT ON COLUMN papseq_v.pct_coverage IS 'percent coverage'; unisonunisonfalse254300papseq_vACLREVOKE ALL ON TABLE papseq_v FROM PUBLIC; REVOKE ALL ON TABLE papseq_v FROM unison; GRANT ALL ON TABLE papseq_v TO unison; GRANT SELECT ON TABLE papseq_v TO PUBLIC; unisonunisonfalse2543 1259309010nearby_sequences_vVIEWCREATE VIEW nearby_sequences_v AS SELECT pseq.pseq_id AS q_pseq_id, pseq.pseq_id AS t_pseq_id, pseq.len, (100)::double precision AS pct_ident, (100)::double precision AS pct_coverage FROM pseq UNION ALL SELECT v_papseq.q_pseq_id, v_papseq.t_pseq_id, v_papseq.len, v_papseq.pct_ident, v_papseq.pct_coverage FROM papseq_v v_papseq WHERE ((v_papseq.pct_ident > (90)::double precision) AND (v_papseq.pct_coverage > (90)::double precision)); %DROP VIEW unison.nearby_sequences_v; unisonunisonfalse3032900VIEW nearby_sequences_vCOMMENTcCOMMENT ON VIEW nearby_sequences_v IS 'sequeneces within 90% coverage and 90% identity, unsorted'; unisonunisonfalse270500nearby_sequences_vACLREVOKE ALL ON TABLE nearby_sequences_v FROM PUBLIC; REVOKE ALL ON TABLE nearby_sequences_v FROM unison; GRANT ALL ON TABLE nearby_sequences_v TO unison; GRANT SELECT ON TABLE nearby_sequences_v TO PUBLIC; unisonunisonfalse2705 1259309014patents_geneseq_vVIEWCREATE VIEW patents_geneseq_v AS SELECT sa.pseq_id, o.origin, ao.alias, t.latin AS species, ("substring"(ao.descr, '\[DT: (\d+\-\w+\-\d+)'::text))::date AS patent_date, "substring"(ao.descr, '\[PA:\s+\([^\)]+\)\s+([^\]]+)'::text) AS patent_authority, ao.descr FROM (((pseq_pannotation sa JOIN pannotation ao ON ((sa.pannotation_id = ao.pannotation_id))) JOIN origin o ON ((ao.origin_id = o.origin_id))) LEFT JOIN tax.spspec t ON ((ao.tax_id = t.tax_id))) WHERE ((ao.origin_id = origin_id('Geneseq'::text)) AND sa.is_current); $DROP VIEW unison.patents_geneseq_v; unisonunisonfalse3033900VIEW patents_geneseq_vCOMMENTCOMMENT ON VIEW patents_geneseq_v IS 'Patents from Derwent Geneseq (proprietary; http://scientific.thomsonreuters.com/pharma/geneseq/)'; unisonunisonfalse270600 COLUMN patents_geneseq_v.pseq_idCOMMENTjCOMMENT ON COLUMN patents_geneseq_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse270600COLUMN patents_geneseq_v.aliasCOMMENT[COMMENT ON COLUMN patents_geneseq_v.alias IS 'pataa concatentated alias for the sequence'; unisonunisonfalse270600 COLUMN patents_geneseq_v.speciesCOMMENTACOMMENT ON COLUMN patents_geneseq_v.species IS 'patent species'; unisonunisonfalse270600$COLUMN patents_geneseq_v.patent_dateCOMMENTBCOMMENT ON COLUMN patents_geneseq_v.patent_date IS 'patent date'; unisonunisonfalse270600)COLUMN patents_geneseq_v.patent_authorityCOMMENTLCOMMENT ON COLUMN patents_geneseq_v.patent_authority IS 'patent authority'; unisonunisonfalse2706 00COLUMN patents_geneseq_v.descrCOMMENT`COMMENT ON COLUMN patents_geneseq_v.descr IS 'patent application id, title, and sequence info'; unisonunisonfalse2706 00patents_geneseq_vACLREVOKE ALL ON TABLE patents_geneseq_v FROM PUBLIC; REVOKE ALL ON TABLE patents_geneseq_v FROM unison; GRANT ALL ON TABLE patents_geneseq_v TO unison; GRANT SELECT ON TABLE patents_geneseq_v TO PUBLIC; unisonunisonfalse2706 1259309019patents_pataa_vVIEWxCREATE VIEW patents_pataa_v AS SELECT sa.pseq_id, o.origin, ao.alias, NULL::text AS species, NULL::date AS patent_date, NULL::text AS patent_authority, ao.descr FROM ((pseq_pannotation sa JOIN pannotation ao ON ((sa.pannotation_id = ao.pannotation_id))) JOIN origin o ON ((ao.origin_id = o.origin_id))) WHERE ((ao.origin_id = origin_id('pataa'::text)) AND sa.is_current); "DROP VIEW unison.patents_pataa_v; unisonunisonfalse30349 00VIEW patents_pataa_vCOMMENTJCOMMENT ON VIEW patents_pataa_v IS 'Patents from NCBI''s pataa database'; unisonunisonfalse2707 00COLUMN patents_pataa_v.pseq_idCOMMENThCOMMENT ON COLUMN patents_pataa_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2707 00COLUMN patents_pataa_v.aliasCOMMENTYCOMMENT ON COLUMN patents_pataa_v.alias IS 'pataa concatentated alias for the sequence'; unisonunisonfalse270700COLUMN patents_pataa_v.speciesCOMMENTOCOMMENT ON COLUMN patents_pataa_v.species IS 'patent species (NULL in pataa)'; unisonunisonfalse270700"COLUMN patents_pataa_v.patent_dateCOMMENTPCOMMENT ON COLUMN patents_pataa_v.patent_date IS 'patent date (NULL in pataa)'; unisonunisonfalse270700'COLUMN patents_pataa_v.patent_authorityCOMMENTZCOMMENT ON COLUMN patents_pataa_v.patent_authority IS 'patent authority (NULL in pataa)'; unisonunisonfalse270700COLUMN patents_pataa_v.descrCOMMENTjCOMMENT ON COLUMN patents_pataa_v.descr IS 'patent and sequence numbers from pataa sequence description'; unisonunisonfalse270700patents_pataa_vACLREVOKE ALL ON TABLE patents_pataa_v FROM PUBLIC; REVOKE ALL ON TABLE patents_pataa_v FROM unison; GRANT ALL ON TABLE patents_pataa_v TO unison; GRANT SELECT ON TABLE patents_pataa_v TO PUBLIC; unisonunisonfalse2707 1259309023 patents_vVIEWCREATE VIEW patents_v AS SELECT patents_pataa_v.pseq_id, patents_pataa_v.origin, patents_pataa_v.alias, patents_pataa_v.species, patents_pataa_v.patent_date, patents_pataa_v.patent_authority, patents_pataa_v.descr FROM patents_pataa_v UNION ALL SELECT patents_geneseq_v.pseq_id, patents_geneseq_v.origin, patents_geneseq_v.alias, patents_geneseq_v.species, patents_geneseq_v.patent_date, patents_geneseq_v.patent_authority, patents_geneseq_v.descr FROM patents_geneseq_v; DROP VIEW unison.patents_v; unisonunisonfalse3035900VIEW patents_vCOMMENTVCOMMENT ON VIEW patents_v IS 'Patents from pataa database and Geneseq, if available'; unisonunisonfalse270800COLUMN patents_v.pseq_idCOMMENTbCOMMENT ON COLUMN patents_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse270800COLUMN patents_v.aliasCOMMENTLCOMMENT ON COLUMN patents_v.alias IS 'authority''s alias for the sequence'; unisonunisonfalse270800COLUMN patents_v.speciesCOMMENTRCOMMENT ON COLUMN patents_v.species IS 'patent species (not available in pataa)'; unisonunisonfalse270800COLUMN patents_v.patent_dateCOMMENTJCOMMENT ON COLUMN patents_v.patent_date IS 'patent date (NULL in pataa)'; unisonunisonfalse270800!COLUMN patents_v.patent_authorityCOMMENTTCOMMENT ON COLUMN patents_v.patent_authority IS 'patent authority (NULL in pataa)'; unisonunisonfalse270800COLUMN patents_v.descrCOMMENTjCOMMENT ON COLUMN patents_v.descr IS 'descriptions from patents_pataa_v and patents_genseq_v, which see'; unisonunisonfalse270800 patents_vACLREVOKE ALL ON TABLE patents_v FROM PUBLIC; REVOKE ALL ON TABLE patents_v FROM unison; GRANT ALL ON TABLE patents_v TO unison; GRANT SELECT ON TABLE patents_v TO PUBLIC; unisonunisonfalse2708 1259309027nearby_patents_vVIEWFCREATE VIEW nearby_patents_v AS SELECT n.q_pseq_id, n.t_pseq_id, n.len, round((n.pct_coverage)::numeric, 1) AS pct_coverage, round((n.pct_ident)::numeric, 1) AS pct_ident, p.origin, p.alias, p.species, p.patent_date, p.patent_authority, p.descr FROM (nearby_sequences_v n JOIN patents_v p ON ((n.t_pseq_id = p.pseq_id))); #DROP VIEW unison.nearby_patents_v; unisonunisonfalse3036900nearby_patents_vACLREVOKE ALL ON TABLE nearby_patents_v FROM PUBLIC; REVOKE ALL ON TABLE nearby_patents_v FROM unison; GRANT ALL ON TABLE nearby_patents_v TO unison; GRANT SELECT ON TABLE nearby_patents_v TO PUBLIC; unisonunisonfalse2709 1259309031nearby_patents_sorted_vVIEWCREATE VIEW nearby_patents_sorted_v AS SELECT nearby_patents_unsorted_v.q_pseq_id, nearby_patents_unsorted_v.t_pseq_id, nearby_patents_unsorted_v.len, nearby_patents_unsorted_v.pct_coverage, nearby_patents_unsorted_v.pct_ident, nearby_patents_unsorted_v.origin, nearby_patents_unsorted_v.alias, nearby_patents_unsorted_v.species, nearby_patents_unsorted_v.patent_date, nearby_patents_unsorted_v.patent_authority, nearby_patents_unsorted_v.descr FROM nearby_patents_v nearby_patents_unsorted_v ORDER BY nearby_patents_unsorted_v.pct_coverage DESC, nearby_patents_unsorted_v.pct_ident DESC, nearby_patents_unsorted_v.t_pseq_id, nearby_patents_unsorted_v.patent_date, nearby_patents_unsorted_v.patent_authority, (nearby_patents_unsorted_v.origin = 'pataa'::text), nearby_patents_unsorted_v.alias; *DROP VIEW unison.nearby_patents_sorted_v; unisonunisonfalse3037900nearby_patents_sorted_vACLREVOKE ALL ON TABLE nearby_patents_sorted_v FROM PUBLIC; REVOKE ALL ON TABLE nearby_patents_sorted_v FROM unison; GRANT ALL ON TABLE nearby_patents_sorted_v TO unison; GRANT SELECT ON TABLE nearby_patents_sorted_v TO PUBLIC; unisonunisonfalse2710 1259309035nearby_sequences_sorted_vVIEWCREATE VIEW nearby_sequences_sorted_v AS SELECT nearby_sequences_unsorted_v.q_pseq_id, nearby_sequences_unsorted_v.t_pseq_id, nearby_sequences_unsorted_v.len, nearby_sequences_unsorted_v.pct_ident, nearby_sequences_unsorted_v.pct_coverage FROM nearby_sequences_v nearby_sequences_unsorted_v ORDER BY nearby_sequences_unsorted_v.pct_coverage DESC, nearby_sequences_unsorted_v.pct_ident DESC, nearby_sequences_unsorted_v.t_pseq_id; ,DROP VIEW unison.nearby_sequences_sorted_v; unisonunisonfalse3038900VIEW nearby_sequences_sorted_vCOMMENT`COMMENT ON VIEW nearby_sequences_sorted_v IS 'sequeneces within 90% coverage and 90% identity'; unisonunisonfalse271100nearby_sequences_sorted_vACLREVOKE ALL ON TABLE nearby_sequences_sorted_v FROM PUBLIC; REVOKE ALL ON TABLE nearby_sequences_sorted_v FROM unison; GRANT ALL ON TABLE nearby_sequences_sorted_v TO unison; GRANT SELECT ON TABLE nearby_sequences_sorted_v TO PUBLIC; unisonunisonfalse2711 1259309039orphaned_sequences_vVIEWCREATE VIEW orphaned_sequences_v AS SELECT pseq.pseq_id FROM pseq EXCEPT SELECT pseqalias.pseq_id FROM pseq_pannotation pseqalias; 'DROP VIEW unison.orphaned_sequences_v; unisonunisonfalse3039900VIEW orphaned_sequences_vCOMMENTQCOMMENT ON VIEW orphaned_sequences_v IS 'sequences which do not have any alias'; unisonunisonfalse2712 00#COLUMN orphaned_sequences_v.pseq_idCOMMENTmCOMMENT ON COLUMN orphaned_sequences_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2712!00orphaned_sequences_vACLREVOKE ALL ON TABLE orphaned_sequences_v FROM PUBLIC; REVOKE ALL ON TABLE orphaned_sequences_v FROM unison; GRANT ALL ON TABLE orphaned_sequences_v TO unison; GRANT SELECT ON TABLE orphaned_sequences_v TO PUBLIC; unisonunisonfalse2712 1259309043 p2gblataln_vVIEWLCREATE VIEW p2gblataln_v AS SELECT ah.p2gblataln_id, h.pseq_id, h.pstart, h.pstop, h.gstart, h.gstop, a.ident, h.genasm_id, h.chr, h.plus_strand FROM ((p2gblathsp h JOIN p2gblatalnhsp ah ON ((h.p2gblathsp_id = ah.p2gblathsp_id))) JOIN p2gblataln a ON ((ah.p2gblataln_id = a.p2gblataln_id))) ORDER BY ah.p2gblataln_id, h.gstart; DROP VIEW unison.p2gblataln_v; unisonunisonfalse30409"00COLUMN p2gblataln_v.pseq_idCOMMENTeCOMMENT ON COLUMN p2gblataln_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2713#00COLUMN p2gblataln_v.pstartCOMMENTSCOMMENT ON COLUMN p2gblataln_v.pstart IS 'start of alignment in protein sequence'; unisonunisonfalse2713$00COLUMN p2gblataln_v.pstopCOMMENTQCOMMENT ON COLUMN p2gblataln_v.pstop IS 'stop of alignment in protein sequence'; unisonunisonfalse2713%00COLUMN p2gblataln_v.gstartCOMMENTQCOMMENT ON COLUMN p2gblataln_v.gstart IS 'genomic start position on chromosome'; unisonunisonfalse2713&00COLUMN p2gblataln_v.gstopCOMMENTOCOMMENT ON COLUMN p2gblataln_v.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse2713'00COLUMN p2gblataln_v.genasm_idCOMMENTcCOMMENT ON COLUMN p2gblataln_v.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse2713(00COLUMN p2gblataln_v.chrCOMMENT4COMMENT ON COLUMN p2gblataln_v.chr IS 'chromosome'; unisonunisonfalse2713)00COLUMN p2gblataln_v.plus_strandCOMMENT[COMMENT ON COLUMN p2gblataln_v.plus_strand IS 'true = ''+'' strand; false = ''-'' strand'; unisonunisonfalse2713*00 p2gblataln_vACLREVOKE ALL ON TABLE p2gblataln_v FROM PUBLIC; REVOKE ALL ON TABLE p2gblataln_v FROM unison; GRANT ALL ON TABLE p2gblataln_v TO unison; GRANT SELECT ON TABLE p2gblataln_v TO PUBLIC; unisonunisonfalse2713I 1259308667pahmm_current_pfam_vVIEW2CREATE VIEW pahmm_current_pfam_v AS SELECT a.pseq_id, a.params_id, p.name AS params, a.start, a.stop, a.score, a.eval, a.mstart, a.mstop, m.origin_id, o.origin, a.pmodel_id, m.name, m.acc, m.descr FROM (((((pahmm a JOIN pmhmm m ON ((a.pmodel_id = m.pmodel_id))) JOIN pmsm_pmhmm ms ON ((ms.pmodel_id = m.pmodel_id))) JOIN origin o ON ((m.origin_id = o.origin_id))) JOIN params p ON ((a.params_id = p.params_id))) JOIN run r ON (((r.params_id = a.params_id) AND (r.pmodelset_id = ms.pmodelset_id)))) WHERE (r.run_id = preferred_run_id_by_pftype('HMM'::text)); 'DROP VIEW unison.pahmm_current_pfam_v; unisonunisonfalse29849+00VIEW pahmm_current_pfam_vCOMMENT@COMMENT ON VIEW pahmm_current_pfam_v IS 'current pfam results'; unisonunisonfalse2633,00pahmm_current_pfam_vACLREVOKE ALL ON TABLE pahmm_current_pfam_v FROM PUBLIC; REVOKE ALL ON TABLE pahmm_current_pfam_v FROM unison; GRANT ALL ON TABLE pahmm_current_pfam_v TO unison; GRANT SELECT ON TABLE pahmm_current_pfam_v TO PUBLIC; unisonunisonfalse2633 1259308182pahmm_vVIEWCREATE VIEW pahmm_v AS SELECT a.params_id, a.pseq_id, a.start, a.stop, a.mstart, a.mstop, ((SELECT CASE WHEN (a.mstart = 1) THEN '['::text ELSE '.'::text END AS "case") || (SELECT CASE WHEN (a.mstop = m.len) THEN ']'::text ELSE '.'::text END AS "case")) AS ends, round((((((a.mstop - a.mstart) + 1))::double precision / (m.len)::double precision) * (100)::double precision)) AS pct_cov, a.score, a.eval, m.origin_id, a.pmodel_id, m.acc, m.name, m.descr FROM (pahmm a JOIN pmhmm m ON ((m.pmodel_id = a.pmodel_id))); DROP VIEW unison.pahmm_v; unisonunisonfalse29309-00 VIEW pahmm_vCOMMENTSCOMMENT ON VIEW pahmm_v IS 'HMM alignments with origin_id, acc, model, and descr'; unisonunisonfalse2540.00pahmm_vACLREVOKE ALL ON TABLE pahmm_v FROM PUBLIC; REVOKE ALL ON TABLE pahmm_v FROM unison; GRANT ALL ON TABLE pahmm_v TO unison; GRANT SELECT ON TABLE pahmm_v TO PUBLIC; unisonunisonfalse2540%1255308271tax_id2gs(integer)FUNCTIONCREATE FUNCTION tax_id2gs(integer) RETURNS text AS $_$ DECLARE v_id alias for $1; rv text; BEGIN select into rv gs from tax.spspec where tax_id=v_id; return rv; END;$_$ LANGUAGE plpgsql; &DROP FUNCTION tax.tax_id2gs(integer); taxunisonfalse81293= 1259308602palias_vVIEW_CREATE VIEW palias_v AS SELECT sa.pseq_id, ao.pannotation_id, ao.tax_id, tax.tax_id2gs(ao.tax_id) AS tax_id2gs, ao.origin_id, o.origin, ao.alias, ao.descr, sa.added FROM pannotation ao, pseq_pannotation sa, origin o WHERE (((sa.pannotation_id = ao.pannotation_id) AND (ao.origin_id = o.origin_id)) AND (sa.is_current = true)) ORDER BY o.ann_pref; DROP VIEW unison.palias_v; unisonunisonfalse29799/00COLUMN palias_v.pseq_idCOMMENTaCOMMENT ON COLUMN palias_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2621000COLUMN palias_v.pannotation_idCOMMENTeCOMMENT ON COLUMN palias_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse2621100COLUMN palias_v.tax_idCOMMENTACOMMENT ON COLUMN palias_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse2621200COLUMN palias_v.origin_idCOMMENTVCOMMENT ON COLUMN palias_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2621300COLUMN palias_v.originCOMMENTTCOMMENT ON COLUMN palias_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse2621400COLUMN palias_v.aliasCOMMENT>COMMENT ON COLUMN palias_v.alias IS 'alias for the sequence'; unisonunisonfalse2621500COLUMN palias_v.descrCOMMENT<COMMENT ON COLUMN palias_v.descr IS 'sequence description'; unisonunisonfalse2621600COLUMN palias_v.addedCOMMENTWCOMMENT ON COLUMN palias_v.added IS 'date that this sequence was assigned this alias'; unisonunisonfalse2621700palias_vACLREVOKE ALL ON TABLE palias_v FROM PUBLIC; REVOKE ALL ON TABLE palias_v FROM unison; GRANT ALL ON TABLE palias_v TO unison; GRANT SELECT ON TABLE palias_v TO PUBLIC; unisonunisonfalse2621 1259309047 paliasoriginVIEWCREATE VIEW paliasorigin AS SELECT pannotation.pannotation_id, pannotation.origin_id, pannotation.alias, pannotation.descr, pannotation.tax_id, pannotation.added FROM pannotation; DROP VIEW unison.paliasorigin; unisonunisonfalse30419800VIEW paliasoriginCOMMENTICOMMENT ON VIEW paliasorigin IS 'DEPRECATED -- use pannotation instead'; unisonunisonfalse2714900 paliasoriginACLREVOKE ALL ON TABLE paliasorigin FROM PUBLIC; REVOKE ALL ON TABLE paliasorigin FROM unison; GRANT ALL ON TABLE paliasorigin TO unison; GRANT SELECT ON TABLE paliasorigin TO PUBLIC; unisonunisonfalse2714 1259307836 paprospectTABLECREATE TABLE paprospect ( pftype_id integer DEFAULT pftype_id('Prospect'::text), start integer, stop integer, params_id integer, pmodel_id integer NOT NULL, nident integer NOT NULL, nalign integer NOT NULL, raw real NOT NULL, mutation real NOT NULL, singleton real NOT NULL, pairwise real NOT NULL, gap real NOT NULL, ssfit real NOT NULL, zscore real, svm real NOT NULL, rgyr real NOT NULL ) INHERITS (pfeature); DROP TABLE unison.paprospect; unisonunisonfalse3314331592473:00TABLE paprospectCOMMENTxCOMMENT ON TABLE paprospect IS 'single Prospect threading alignment (unique )'; unisonunisonfalse2479;00COLUMN paprospect.pfeature_idCOMMENTZCOMMENT ON COLUMN paprospect.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse2479<00COLUMN paprospect.pseq_idCOMMENTcCOMMENT ON COLUMN paprospect.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2479=00COLUMN paprospect.pftype_idCOMMENTfCOMMENT ON COLUMN paprospect.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse2479>00COLUMN paprospect.startCOMMENTQCOMMENT ON COLUMN paprospect.start IS 'start of prediction in protein sequence'; unisonunisonfalse2479?00COLUMN paprospect.stopCOMMENTOCOMMENT ON COLUMN paprospect.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2479@00COLUMN paprospect.params_idCOMMENT_COMMENT ON COLUMN paprospect.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2479A00COLUMN paprospect.pmodel_idCOMMENTMCOMMENT ON COLUMN paprospect.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2479B00COLUMN paprospect.nidentCOMMENTGCOMMENT ON COLUMN paprospect.nident IS 'number of identical residues'; unisonunisonfalse2479C00COLUMN paprospect.nalignCOMMENTECOMMENT ON COLUMN paprospect.nalign IS 'number of aligned residues'; unisonunisonfalse2479D00COLUMN paprospect.rawCOMMENT?COMMENT ON COLUMN paprospect.raw IS 'Prospect ''raw'' score '; unisonunisonfalse2479E00COLUMN paprospect.singletonCOMMENTKCOMMENT ON COLUMN paprospect.singleton IS 'Prospect ''singleton'' score '; unisonunisonfalse2479F00COLUMN paprospect.ssfitCOMMENT[COMMENT ON COLUMN paprospect.ssfit IS 'Prospect secondary structure compatibility score '; unisonunisonfalse2479G00COLUMN paprospect.zscoreCOMMENTRCOMMENT ON COLUMN paprospect.zscore IS 'Prospect Z-score based on 50 iterations'; unisonunisonfalse2479H00COLUMN paprospect.svmCOMMENT?COMMENT ON COLUMN paprospect.svm IS 'Prospect ''svm'' score '; unisonunisonfalse2479I00 paprospectACLREVOKE ALL ON TABLE paprospect FROM PUBLIC; REVOKE ALL ON TABLE paprospect FROM unison; GRANT ALL ON TABLE paprospect TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE paprospect TO loader; GRANT SELECT ON TABLE paprospect TO PUBLIC; unisonunisonfalse2479 1259308277 pmprospectTABLECREATE TABLE pmprospect ( origin_id integer DEFAULT origin_id('Prospect'::text), pseq_id integer NOT NULL, len integer NOT NULL, ncores integer NOT NULL ) INHERITS (pmodel); DROP TABLE unison.pmprospect; unisonunisonfalse341434153416341724849J00TABLE pmprospectCOMMENTUCOMMENT ON TABLE pmprospect IS 'Prospect threading backbone (inherits from pmodel)'; unisonunisonfalse2557K00COLUMN pmprospect.pmodel_idCOMMENTMCOMMENT ON COLUMN pmprospect.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2557L00COLUMN pmprospect.origin_idCOMMENTXCOMMENT ON COLUMN pmprospect.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2557M00COLUMN pmprospect.accCOMMENTLCOMMENT ON COLUMN pmprospect.acc IS 'model accession from source database'; unisonunisonfalse2557N00COLUMN pmprospect.addedCOMMENTDCOMMENT ON COLUMN pmprospect.added IS 'when this data was created'; unisonunisonfalse2557O00COLUMN pmprospect.descrCOMMENT;COMMENT ON COLUMN pmprospect.descr IS 'model description'; unisonunisonfalse2557P00COLUMN pmprospect.pseq_idCOMMENTcCOMMENT ON COLUMN pmprospect.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2557Q00COLUMN pmprospect.ncoresCOMMENTFCOMMENT ON COLUMN pmprospect.ncores IS 'number of cores in template'; unisonunisonfalse2557R00 pmprospectACL REVOKE ALL ON TABLE pmprospect FROM PUBLIC; REVOKE ALL ON TABLE pmprospect FROM unison; GRANT ALL ON TABLE pmprospect TO unison; GRANT INSERT,UPDATE ON TABLE pmprospect TO loader; GRANT REFERENCES ON TABLE pmprospect TO rkh; GRANT SELECT ON TABLE pmprospect TO PUBLIC; unisonunisonfalse2557 1259308286pmprospect_scop_vVIEWCREATE VIEW pmprospect_scop_v AS (SELECT m.origin_id, m.pmodel_id, m.acc, c.sunid, c.sid, c.pdb, 1 AS "case" FROM (pmprospect m JOIN scop.cla c ON ((m.acc = c.sid))) WHERE (m.origin_id = origin_id('Prospect/SCOP'::text)) UNION ALL SELECT m.origin_id, m.pmodel_id, m.acc, c.sunid, c.sid, c.pdb, 2 AS "case" FROM (pmprospect m JOIN scop.cla c ON ((rpad(m.acc, 5, '_'::text) = substr(c.sid, 2, 5)))) WHERE (m.origin_id = origin_id('Prospect/FSSP'::text))) UNION ALL SELECT m.origin_id, m.pmodel_id, m.acc, c.sunid, c.sid, c.pdb, 2 AS "case" FROM (pmprospect m JOIN scop.cla c ON ((rpad(m.acc, 5, '_'::text) = substr(c.sid, 2, 5)))) WHERE (m.origin_id = origin_id('Prospect-3.0/FSSP'::text)); $DROP VIEW unison.pmprospect_scop_v; unisonunisonfalse29379S00VIEW pmprospect_scop_vCOMMENTfCOMMENT ON VIEW pmprospect_scop_v IS 'prospect pmodel_id-to-scop sunid mapping, with debugging info'; unisonunisonfalse2558T00"COLUMN pmprospect_scop_v.origin_idCOMMENT_COMMENT ON COLUMN pmprospect_scop_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2558U00"COLUMN pmprospect_scop_v.pmodel_idCOMMENTTCOMMENT ON COLUMN pmprospect_scop_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2558V00COLUMN pmprospect_scop_v.accCOMMENTSCOMMENT ON COLUMN pmprospect_scop_v.acc IS 'model accession from source database'; unisonunisonfalse2558W00pmprospect_scop_vACLREVOKE ALL ON TABLE pmprospect_scop_v FROM PUBLIC; REVOKE ALL ON TABLE pmprospect_scop_v FROM unison; GRANT ALL ON TABLE pmprospect_scop_v TO unison; GRANT SELECT ON TABLE pmprospect_scop_v TO PUBLIC; unisonunisonfalse2558 1259308291pmprospect_scop_dvVIEWCREATE VIEW pmprospect_scop_dv AS SELECT _pmprospect_scop_v.pmodel_id, _pmprospect_scop_v.sunid FROM pmprospect_scop_v _pmprospect_scop_v; %DROP VIEW unison.pmprospect_scop_dv; unisonunisonfalse29389X00VIEW pmprospect_scop_dvCOMMENTRCOMMENT ON VIEW pmprospect_scop_dv IS 'prospect pmodel_id-to-scop sunid mapping'; unisonunisonfalse2559Y00#COLUMN pmprospect_scop_dv.pmodel_idCOMMENTUCOMMENT ON COLUMN pmprospect_scop_dv.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2559Z00pmprospect_scop_dvACLREVOKE ALL ON TABLE pmprospect_scop_dv FROM PUBLIC; REVOKE ALL ON TABLE pmprospect_scop_dv FROM unison; GRANT ALL ON TABLE pmprospect_scop_dv TO unison; GRANT SELECT ON TABLE pmprospect_scop_dv TO PUBLIC; unisonunisonfalse2559 1259308295paprospect_scop_vVIEW4CREATE VIEW paprospect_scop_v AS SELECT t.pseq_id, t.params_id, t.pmodel_id, m.acc, m.len, t.start, t.stop, t.nident, CASE WHEN (t.stop < t.start) THEN NULL::numeric ELSE round((((t.nident)::numeric / (t.nalign)::numeric) * 100.0), 0) END AS pct_ident, (t.raw)::integer AS raw, round((t.svm)::numeric, 1) AS svm, round((t.mutation)::numeric, 0) AS mutation, round((t.pairwise)::numeric, 0) AS pairwise, round((t.singleton)::numeric, 0) AS singleton, round((t.gap)::numeric, 0) AS gap, cla.cl AS clid, descl.descr AS clname, cla.cf AS cfid, descf.descr AS cfname, cla.sf AS sfid, dessf.descr AS sfname, cla.dm AS dmid, desdm.descr AS dmname FROM (((((((paprospect t JOIN pmprospect_scop_dv b ON ((t.pmodel_id = b.pmodel_id))) JOIN pmprospect m ON ((t.pmodel_id = m.pmodel_id))) LEFT JOIN scop.cla ON ((b.sunid = cla.sunid))) LEFT JOIN scop.des descl ON ((cla.cl = descl.sunid))) LEFT JOIN scop.des descf ON ((cla.cf = descf.sunid))) LEFT JOIN scop.des dessf ON ((cla.sf = dessf.sunid))) LEFT JOIN scop.des desdm ON ((cla.dm = desdm.sunid))) ORDER BY t.pseq_id, t.svm DESC; $DROP VIEW unison.paprospect_scop_v; unisonunisonfalse29399[00VIEW paprospect_scop_vCOMMENTCOMMENT ON VIEW paprospect_scop_v IS 'Prospect threading alignments with SCOP class, fold, superfamily, and domain annotations'; unisonunisonfalse2560\00 COLUMN paprospect_scop_v.pseq_idCOMMENTjCOMMENT ON COLUMN paprospect_scop_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2560]00"COLUMN paprospect_scop_v.params_idCOMMENTfCOMMENT ON COLUMN paprospect_scop_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2560^00"COLUMN paprospect_scop_v.pmodel_idCOMMENTTCOMMENT ON COLUMN paprospect_scop_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2560_00COLUMN paprospect_scop_v.accCOMMENTSCOMMENT ON COLUMN paprospect_scop_v.acc IS 'model accession from source database'; unisonunisonfalse2560`00COLUMN paprospect_scop_v.startCOMMENTXCOMMENT ON COLUMN paprospect_scop_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse2560a00COLUMN paprospect_scop_v.stopCOMMENTVCOMMENT ON COLUMN paprospect_scop_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2560b00COLUMN paprospect_scop_v.nidentCOMMENTNCOMMENT ON COLUMN paprospect_scop_v.nident IS 'number of identical residues'; unisonunisonfalse2560c00"COLUMN paprospect_scop_v.pct_identCOMMENTECOMMENT ON COLUMN paprospect_scop_v.pct_ident IS 'percent identity'; unisonunisonfalse2560d00COLUMN paprospect_scop_v.rawCOMMENTFCOMMENT ON COLUMN paprospect_scop_v.raw IS 'Prospect ''raw'' score '; unisonunisonfalse2560e00COLUMN paprospect_scop_v.svmCOMMENTFCOMMENT ON COLUMN paprospect_scop_v.svm IS 'Prospect ''svm'' score '; unisonunisonfalse2560f00"COLUMN paprospect_scop_v.singletonCOMMENTRCOMMENT ON COLUMN paprospect_scop_v.singleton IS 'Prospect ''singleton'' score '; unisonunisonfalse2560g00paprospect_scop_vACLREVOKE ALL ON TABLE paprospect_scop_v FROM PUBLIC; REVOKE ALL ON TABLE paprospect_scop_v FROM unison; GRANT ALL ON TABLE paprospect_scop_v TO unison; GRANT SELECT ON TABLE paprospect_scop_v TO PUBLIC; unisonunisonfalse2560 1259309051 paprospect_vVIEWCREATE VIEW paprospect_v AS SELECT q.pseq_id, q.params_id, q.pmodel_id, m.pseq_id AS t_pseq_id, m.acc, s.name AS descr, m.origin_id, q.start, q.stop, q.nident, (q.raw)::integer AS raw, round((q.svm)::numeric, 1) AS svm, round((q.mutation)::numeric, 0) AS mutation, round((q.pairwise)::numeric, 0) AS pairwise, round((q.singleton)::numeric, 0) AS singleton, round((q.gap)::numeric, 0) AS gap, q.nalign AS len, q.nalign, CASE WHEN (q.stop < q.start) THEN NULL::numeric ELSE round((((q.nident)::numeric / (q.nalign)::numeric(8,3)) * 100.0), 0) END AS pct_ident, CASE WHEN (q.stop < q.start) THEN NULL::numeric ELSE round((((((q.stop - q.start) + 1))::numeric / (p.len)::numeric) * 100.0), 0) END AS pct_coverage FROM (((paprospect q JOIN pmprospect m ON ((q.pmodel_id = m.pmodel_id))) JOIN pseq p ON ((p.pseq_id = q.pseq_id))) JOIN pdb.chain s ON ((lower(s.pdbc) = lower(m.acc)))) ORDER BY q.svm DESC; DROP VIEW unison.paprospect_v; unisonunisonfalse30429h00COLUMN paprospect_v.pseq_idCOMMENTeCOMMENT ON COLUMN paprospect_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2715i00COLUMN paprospect_v.params_idCOMMENTaCOMMENT ON COLUMN paprospect_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2715j00COLUMN paprospect_v.pmodel_idCOMMENTOCOMMENT ON COLUMN paprospect_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2715k00COLUMN paprospect_v.t_pseq_idCOMMENT>COMMENT ON COLUMN paprospect_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse2715l00COLUMN paprospect_v.accCOMMENTNCOMMENT ON COLUMN paprospect_v.acc IS 'model accession from source database'; unisonunisonfalse2715m00COLUMN paprospect_v.origin_idCOMMENTZCOMMENT ON COLUMN paprospect_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse2715n00COLUMN paprospect_v.startCOMMENTSCOMMENT ON COLUMN paprospect_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse2715o00COLUMN paprospect_v.stopCOMMENTQCOMMENT ON COLUMN paprospect_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2715p00COLUMN paprospect_v.nidentCOMMENTICOMMENT ON COLUMN paprospect_v.nident IS 'number of identical residues'; unisonunisonfalse2715q00COLUMN paprospect_v.rawCOMMENTACOMMENT ON COLUMN paprospect_v.raw IS 'Prospect ''raw'' score '; unisonunisonfalse2715r00COLUMN paprospect_v.svmCOMMENTACOMMENT ON COLUMN paprospect_v.svm IS 'Prospect ''svm'' score '; unisonunisonfalse2715s00COLUMN paprospect_v.singletonCOMMENTMCOMMENT ON COLUMN paprospect_v.singleton IS 'Prospect ''singleton'' score '; unisonunisonfalse2715t00COLUMN paprospect_v.nalignCOMMENTGCOMMENT ON COLUMN paprospect_v.nalign IS 'number of aligned residues'; unisonunisonfalse2715u00COLUMN paprospect_v.pct_identCOMMENT@COMMENT ON COLUMN paprospect_v.pct_ident IS 'percent identity'; unisonunisonfalse2715v00 COLUMN paprospect_v.pct_coverageCOMMENTCCOMMENT ON COLUMN paprospect_v.pct_coverage IS 'percent coverage'; unisonunisonfalse2715w00 paprospect_vACLREVOKE ALL ON TABLE paprospect_v FROM PUBLIC; REVOKE ALL ON TABLE paprospect_v FROM unison; GRANT ALL ON TABLE paprospect_v TO unison; GRANT SELECT ON TABLE paprospect_v TO PUBLIC; unisonunisonfalse2715 1259308210papseq_pdbcs_mvTABLECREATE TABLE papseq_pdbcs_mv ( q_pseq_id integer, q_start integer, q_stop integer, t_pseq_id integer, t_start integer, t_stop integer, pdbc text, descr text, tax_id integer, ident smallint, sim smallint, gaps smallint, q_gaps smallint, t_gaps smallint, score integer, eval double precision, len smallint, pct_ident real, pct_coverage real ); #DROP TABLE unison.papseq_pdbcs_mv; unisonunisonfalse9x00papseq_pdbcs_mvACLREVOKE ALL ON TABLE papseq_pdbcs_mv FROM PUBLIC; REVOKE ALL ON TABLE papseq_pdbcs_mv FROM unison; GRANT ALL ON TABLE papseq_pdbcs_mv TO unison; GRANT SELECT ON TABLE papseq_pdbcs_mv TO PUBLIC; unisonunisonfalse2545K 1259308676papseq_pdbcs_vVIEWpCREATE VIEW papseq_pdbcs_v AS SELECT b.q_pseq_id, b.q_start, b.q_stop, b.t_pseq_id, b.t_start, b.t_stop, a.alias AS pdbc, a.descr, a.tax_id, b.ident, b.sim, b.gaps, b.qgaps AS q_gaps, b.tgaps AS t_gaps, b.score, b.eval, b.len, b.pct_ident, b.pct_coverage FROM (papseq_v b JOIN palias a ON (((b.t_pseq_id = a.pseq_id) AND (a.origin_id = origin_id('PDB'::text))))); !DROP VIEW unison.papseq_pdbcs_v; unisonunisonfalse29869y00VIEW papseq_pdbcs_vCOMMENTLCOMMENT ON VIEW papseq_pdbcs_v IS 'candidated templates for given pseq_id'; unisonunisonfalse2635z00COLUMN papseq_pdbcs_v.q_pseq_idCOMMENT?COMMENT ON COLUMN papseq_pdbcs_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse2635{00COLUMN papseq_pdbcs_v.q_startCOMMENTKCOMMENT ON COLUMN papseq_pdbcs_v.q_start IS 'start position in q_pseq_id'; unisonunisonfalse2635|00COLUMN papseq_pdbcs_v.q_stopCOMMENTICOMMENT ON COLUMN papseq_pdbcs_v.q_stop IS 'stop position in q_pseq_id'; unisonunisonfalse2635}00COLUMN papseq_pdbcs_v.t_pseq_idCOMMENT@COMMENT ON COLUMN papseq_pdbcs_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse2635~00COLUMN papseq_pdbcs_v.t_startCOMMENTPCOMMENT ON COLUMN papseq_pdbcs_v.t_start IS 'start position in target pseq_id'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.t_stopCOMMENTNCOMMENT ON COLUMN papseq_pdbcs_v.t_stop IS 'stop position in target pseq_id'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.pdbcCOMMENTNCOMMENT ON COLUMN papseq_pdbcs_v.pdbc IS 'PDB identifier + chain (''pdbc'')'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.tax_idCOMMENTGCOMMENT ON COLUMN papseq_pdbcs_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.t_gapsCOMMENTFCOMMENT ON COLUMN papseq_pdbcs_v.t_gaps IS 'gaps is target sequence'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.scoreCOMMENTFCOMMENT ON COLUMN papseq_pdbcs_v.score IS 'algorithm-specific score'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.evalCOMMENT>COMMENT ON COLUMN papseq_pdbcs_v.eval IS 'expectation value'; unisonunisonfalse263500COLUMN papseq_pdbcs_v.pct_identCOMMENTBCOMMENT ON COLUMN papseq_pdbcs_v.pct_ident IS 'percent identity'; unisonunisonfalse263500"COLUMN papseq_pdbcs_v.pct_coverageCOMMENTECOMMENT ON COLUMN papseq_pdbcs_v.pct_coverage IS 'percent coverage'; unisonunisonfalse263500papseq_pdbcs_vACLREVOKE ALL ON TABLE papseq_pdbcs_v FROM PUBLIC; REVOKE ALL ON TABLE papseq_pdbcs_v FROM unison; GRANT ALL ON TABLE papseq_pdbcs_v TO unison; GRANT SELECT ON TABLE papseq_pdbcs_v TO PUBLIC; unisonunisonfalse2635 1259309056papssmTABLECREATE TABLE papssm ( pftype_id integer DEFAULT pftype_id('PSSM'::text), ident smallint NOT NULL, sim smallint NOT NULL ) INHERITS (palignment); DROP TABLE unison.papssm; unisonunisonfalse343234332475900 TABLE papssmCOMMENTYCOMMENT ON TABLE papssm IS 'PSI-BLAST sequence-profile alignments; inherits palignment'; unisonunisonfalse271600COLUMN papssm.pfeature_idCOMMENTVCOMMENT ON COLUMN papssm.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse271600COLUMN papssm.pseq_idCOMMENT_COMMENT ON COLUMN papssm.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse271600COLUMN papssm.pftype_idCOMMENTbCOMMENT ON COLUMN papssm.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse271600COLUMN papssm.startCOMMENTMCOMMENT ON COLUMN papssm.start IS 'start of prediction in protein sequence'; unisonunisonfalse271600COLUMN papssm.stopCOMMENTKCOMMENT ON COLUMN papssm.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse271600COLUMN papssm.params_idCOMMENT[COMMENT ON COLUMN papssm.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse271600COLUMN papssm.pmodel_idCOMMENTICOMMENT ON COLUMN papssm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse271600COLUMN papssm.mstartCOMMENT@COMMENT ON COLUMN papssm.mstart IS 'start of match /in model/'; unisonunisonfalse271600COLUMN papssm.mstopCOMMENT>COMMENT ON COLUMN papssm.mstop IS 'stop of match /in model/'; unisonunisonfalse271600COLUMN papssm.qgapsCOMMENTFCOMMENT ON COLUMN papssm.qgaps IS 'number of gaps in query sequence'; unisonunisonfalse271600COLUMN papssm.tgapsCOMMENTGCOMMENT ON COLUMN papssm.tgaps IS 'number of gaps in target sequence'; unisonunisonfalse271600COLUMN papssm.scoreCOMMENT>COMMENT ON COLUMN papssm.score IS 'algorithm-specific score'; unisonunisonfalse271600COLUMN papssm.evalCOMMENT6COMMENT ON COLUMN papssm.eval IS 'expectation value'; unisonunisonfalse271600papssmACLREVOKE ALL ON TABLE papssm FROM PUBLIC; REVOKE ALL ON TABLE papssm FROM unison; GRANT ALL ON TABLE papssm TO unison; GRANT INSERT ON TABLE papssm TO loader; GRANT SELECT ON TABLE papssm TO PUBLIC; unisonunisonfalse2716 1259309060params_vVIEWCREATE VIEW params_v AS SELECT params.params_id, params.name, params.is_public, params.descr, params.commandline FROM params ORDER BY params.name; DROP VIEW unison.params_v; unisonunisonfalse3043900COLUMN params_v.params_idCOMMENT]COMMENT ON COLUMN params_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse271700COLUMN params_v.nameCOMMENT9COMMENT ON COLUMN params_v.name IS 'parameter set name'; unisonunisonfalse271700COLUMN params_v.is_publicCOMMENTkCOMMENT ON COLUMN params_v.is_public IS 'true if this data source or algorithm is publicly distributable'; unisonunisonfalse271700COLUMN params_v.descrCOMMENTACOMMENT ON COLUMN params_v.descr IS 'description of parameters'; unisonunisonfalse271700params_vACLREVOKE ALL ON TABLE params_v FROM PUBLIC; REVOKE ALL ON TABLE params_v FROM unison; GRANT ALL ON TABLE params_v TO unison; GRANT SELECT ON TABLE params_v TO PUBLIC; unisonunisonfalse2717/1255308590origin_alias_fmt(text, text)FUNCTIONCREATE FUNCTION origin_alias_fmt(text, text) RETURNS text AS $_$select $1 || ':' || $2;$_$ LANGUAGE sql IMMUTABLE STRICT; 3DROP FUNCTION unison.origin_alias_fmt(text, text); unisonunisonfalse900%FUNCTION origin_alias_fmt(text, text)COMMENTzCOMMENT ON FUNCTION origin_alias_fmt(text, text) IS 'canonical format for origin and alias, like this: :'; unisonunisonfalse47 1259309064pataa_vVIEWBCREATE VIEW pataa_v AS SELECT sa.pseq_id, origin_alias_fmt(o.origin, ao.alias) AS alias, t.latin AS species, ("substring"(ao.descr, '\[DT: (\S+)'::text))::date AS patent_date, "substring"(ao.descr, '\[PA:\s+\([^\)]+\)\s+([^\s\]]+)'::text) AS patent_authority, ao.descr FROM (((pseq_pannotation sa JOIN pannotation ao ON ((sa.pannotation_id = ao.pannotation_id))) JOIN origin o ON ((ao.origin_id = o.origin_id))) LEFT JOIN tax.spspec t ON ((ao.tax_id = t.tax_id))) WHERE ((ao.origin_id = 10002) AND sa.is_current) ORDER BY ("substring"(ao.descr, '\[DT: (\S+)'::text))::date; DROP VIEW unison.pataa_v; unisonunisonfalse3044900COLUMN pataa_v.pseq_idCOMMENT`COMMENT ON COLUMN pataa_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse271800COLUMN pataa_v.aliasCOMMENT=COMMENT ON COLUMN pataa_v.alias IS 'alias for the sequence'; unisonunisonfalse271800COLUMN pataa_v.speciesCOMMENT7COMMENT ON COLUMN pataa_v.species IS 'patent species'; unisonunisonfalse271800pataa_vACLREVOKE ALL ON TABLE pataa_v FROM PUBLIC; REVOKE ALL ON TABLE pataa_v FROM unison; GRANT ALL ON TABLE pataa_v TO unison; GRANT SELECT ON TABLE pataa_v TO PUBLIC; unisonunisonfalse2718 1259309069patent_count_vVIEWyCREATE VIEW patent_count_v AS SELECT patents_v.pseq_id, count(*) AS count FROM patents_v GROUP BY patents_v.pseq_id; !DROP VIEW unison.patent_count_v; unisonunisonfalse3045900patent_count_vACLREVOKE ALL ON TABLE patent_count_v FROM PUBLIC; REVOKE ALL ON TABLE patent_count_v FROM unison; GRANT ALL ON TABLE patent_count_v TO unison; GRANT SELECT ON TABLE patent_count_v TO PUBLIC; unisonunisonfalse2719 1259309073patents_sorted_vVIEWNCREATE VIEW patents_sorted_v AS SELECT patents_unsorted_v.pseq_id, patents_unsorted_v.origin, patents_unsorted_v.alias, patents_unsorted_v.species, patents_unsorted_v.patent_date, patents_unsorted_v.patent_authority, patents_unsorted_v.descr FROM patents_v patents_unsorted_v ORDER BY (patents_unsorted_v.origin = 'pataa'::text); #DROP VIEW unison.patents_sorted_v; unisonunisonfalse3046900VIEW patents_sorted_vCOMMENT]COMMENT ON VIEW patents_sorted_v IS 'Patents from pataa database and Geneseq, if available'; unisonunisonfalse272000COLUMN patents_sorted_v.pseq_idCOMMENTiCOMMENT ON COLUMN patents_sorted_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse272000COLUMN patents_sorted_v.aliasCOMMENTSCOMMENT ON COLUMN patents_sorted_v.alias IS 'authority''s alias for the sequence'; unisonunisonfalse272000COLUMN patents_sorted_v.speciesCOMMENTYCOMMENT ON COLUMN patents_sorted_v.species IS 'patent species (not available in pataa)'; unisonunisonfalse272000#COLUMN patents_sorted_v.patent_dateCOMMENTQCOMMENT ON COLUMN patents_sorted_v.patent_date IS 'patent date (NULL in pataa)'; unisonunisonfalse272000(COLUMN patents_sorted_v.patent_authorityCOMMENT[COMMENT ON COLUMN patents_sorted_v.patent_authority IS 'patent authority (NULL in pataa)'; unisonunisonfalse272000COLUMN patents_sorted_v.descrCOMMENTqCOMMENT ON COLUMN patents_sorted_v.descr IS 'descriptions from patents_pataa_v and patents_genseq_v, which see'; unisonunisonfalse272000patents_sorted_vACLREVOKE ALL ON TABLE patents_sorted_v FROM PUBLIC; REVOKE ALL ON TABLE patents_sorted_v FROM unison; GRANT ALL ON TABLE patents_sorted_v TO unison; GRANT SELECT ON TABLE patents_sorted_v TO PUBLIC; unisonunisonfalse2720 1259309720pcluster_pcluster_id_seqSEQUENCEzCREATE SEQUENCE pcluster_pcluster_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; /DROP SEQUENCE unison.pcluster_pcluster_id_seq; unisonunisonfalse900pcluster_pcluster_id_seq SEQUENCE SET@SELECT pg_catalog.setval('pcluster_pcluster_id_seq', 1, false); unisonunisonfalse283500pcluster_pcluster_id_seqACLREVOKE ALL ON SEQUENCE pcluster_pcluster_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pcluster_pcluster_id_seq FROM unison; GRANT ALL ON SEQUENCE pcluster_pcluster_id_seq TO unison; GRANT UPDATE ON SEQUENCE pcluster_pcluster_id_seq TO loader; unisonunisonfalse2835 1259309077pclusterTABLEECREATE TABLE pcluster ( pcluster_id integer DEFAULT nextval('pcluster_pcluster_id_seq'::regclass) NOT NULL, genasm_id integer NOT NULL, gstart integer NOT NULL, gstop integer NOT NULL, chr text NOT NULL, plus_strand boolean NOT NULL, created timestamp with time zone DEFAULT timenow() NOT NULL ); DROP TABLE unison.pcluster; unisonunisonfalse34343435900TABLE pclusterCOMMENT[COMMENT ON TABLE pcluster IS 'store pclusters of pseq_ids mapping to same genomic region'; unisonunisonfalse272100COLUMN pcluster.genasm_idCOMMENT_COMMENT ON COLUMN pcluster.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse272100COLUMN pcluster.gstartCOMMENTMCOMMENT ON COLUMN pcluster.gstart IS 'genomic start position on chromosome'; unisonunisonfalse272100COLUMN pcluster.gstopCOMMENTKCOMMENT ON COLUMN pcluster.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse272100COLUMN pcluster.chrCOMMENT0COMMENT ON COLUMN pcluster.chr IS 'chromosome'; unisonunisonfalse272100COLUMN pcluster.plus_strandCOMMENTWCOMMENT ON COLUMN pcluster.plus_strand IS 'true = ''+'' strand; false = ''-'' strand'; unisonunisonfalse272100pclusterACLREVOKE ALL ON TABLE pcluster FROM PUBLIC; REVOKE ALL ON TABLE pcluster FROM unison; GRANT ALL ON TABLE pcluster TO unison; GRANT SELECT,INSERT,UPDATE ON TABLE pcluster TO loader; GRANT SELECT,REFERENCES ON TABLE pcluster TO PUBLIC; unisonunisonfalse2721 1259309084pcluster_memberTABLECREATE TABLE pcluster_member ( pcluster_id integer NOT NULL, pseq_id integer NOT NULL, gstart integer NOT NULL, gstop integer NOT NULL ); #DROP TABLE unison.pcluster_member; unisonunisonfalse900TABLE pcluster_memberCOMMENTTCOMMENT ON TABLE pcluster_member IS 'stores list of pseq_ids for a given pcluster'; unisonunisonfalse272200COLUMN pcluster_member.pseq_idCOMMENThCOMMENT ON COLUMN pcluster_member.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse272200COLUMN pcluster_member.gstartCOMMENTTCOMMENT ON COLUMN pcluster_member.gstart IS 'genomic start position on chromosome'; unisonunisonfalse272200COLUMN pcluster_member.gstopCOMMENTRCOMMENT ON COLUMN pcluster_member.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse272200pcluster_memberACL REVOKE ALL ON TABLE pcluster_member FROM PUBLIC; REVOKE ALL ON TABLE pcluster_member FROM unison; GRANT ALL ON TABLE pcluster_member TO unison; GRANT SELECT,INSERT,UPDATE ON TABLE pcluster_member TO loader; GRANT SELECT,REFERENCES ON TABLE pcluster_member TO PUBLIC; unisonunisonfalse2722 1259309722perftest_def_def_id_seqSEQUENCEyCREATE SEQUENCE perftest_def_def_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; .DROP SEQUENCE unison.perftest_def_def_id_seq; unisonunisonfalse900perftest_def_def_id_seq SEQUENCE SET?SELECT pg_catalog.setval('perftest_def_def_id_seq', 1, false); unisonunisonfalse2836 1259309087 perftest_defTABLECREATE TABLE perftest_def ( def_id integer DEFAULT nextval('perftest_def_def_id_seq'::regclass) NOT NULL, current boolean DEFAULT true NOT NULL, ordr smallint DEFAULT 10000 NOT NULL, name text NOT NULL, sql text NOT NULL, n_runs smallint NOT NULL, min_n_rows integer NOT NULL, max_time integer NOT NULL, max_avg_time integer NOT NULL, CONSTRAINT max_avg_time_gt_zero CHECK ((max_avg_time >= 0)), CONSTRAINT max_avg_time_le_max_time CHECK ((max_avg_time <= max_time)), CONSTRAINT max_time_gt_zero CHECK ((max_time > 0)), CONSTRAINT min_n_rows_gt_zero CHECK ((min_n_rows > 0)), CONSTRAINT runs_gt_zero CHECK ((n_runs > 0)) ); DROP TABLE unison.perftest_def; unisonunisonfalse34363437343834393440344134423443900TABLE perftest_defCOMMENTHCOMMENT ON TABLE perftest_def IS 'Unison performance test definitions'; unisonunisonfalse272300COLUMN perftest_def.def_idCOMMENTOCOMMENT ON COLUMN perftest_def.def_id IS 'unique test definition identifier '; unisonunisonfalse272300COLUMN perftest_def.currentCOMMENT_COMMENT ON COLUMN perftest_def.current IS 'whether test should be executed for new test runs'; unisonunisonfalse272300COLUMN perftest_def.ordrCOMMENTLCOMMENT ON COLUMN perftest_def.ordr IS 'order in which test should be run'; unisonunisonfalse272300COLUMN perftest_def.nameCOMMENT?COMMENT ON COLUMN perftest_def.name IS 'unique name for test'; unisonunisonfalse272300COLUMN perftest_def.sqlCOMMENT8COMMENT ON COLUMN perftest_def.sql IS 'sql definition'; unisonunisonfalse272300COLUMN perftest_def.n_runsCOMMENTDCOMMENT ON COLUMN perftest_def.n_runs IS 'number of runs for test'; unisonunisonfalse272300COLUMN perftest_def.min_n_rowsCOMMENT_COMMENT ON COLUMN perftest_def.min_n_rows IS 'minimum number of rows expected for result set'; unisonunisonfalse272300COLUMN perftest_def.max_timeCOMMENT\COMMENT ON COLUMN perftest_def.max_time IS 'max time expected for a single test execution'; unisonunisonfalse272300 COLUMN perftest_def.max_avg_timeCOMMENTPCOMMENT ON COLUMN perftest_def.max_avg_time IS 'max average time for all runs'; unisonunisonfalse272300 perftest_defACLREVOKE ALL ON TABLE perftest_def FROM PUBLIC; REVOKE ALL ON TABLE perftest_def FROM unison; GRANT ALL ON TABLE perftest_def TO unison; GRANT SELECT ON TABLE perftest_def TO PUBLIC; unisonunisonfalse2723 1259309724!perftest_platform_platform_id_seqSEQUENCECREATE SEQUENCE perftest_platform_platform_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 8DROP SEQUENCE unison.perftest_platform_platform_id_seq; unisonunisonfalse900!perftest_platform_platform_id_seq SEQUENCE SETISELECT pg_catalog.setval('perftest_platform_platform_id_seq', 1, false); unisonunisonfalse2837 1259309100perftest_platformTABLEDCREATE TABLE perftest_platform ( platform_id integer DEFAULT nextval('perftest_platform_platform_id_seq'::regclass) NOT NULL, name text NOT NULL, date timestamp without time zone DEFAULT now() NOT NULL, current boolean DEFAULT true NOT NULL, locked boolean DEFAULT false NOT NULL, mac macaddr NOT NULL, ip inet NOT NULL, uname_s text NOT NULL, uname_n text NOT NULL, uname_r text NOT NULL, uname_m text NOT NULL, ram_gb smallint NOT NULL, fs_type text NOT NULL, pg_version_str text NOT NULL, pg_version text NOT NULL ); %DROP TABLE unison.perftest_platform; unisonunisonfalse3444344534463447900TABLE perftest_platformCOMMENTbCOMMENT ON TABLE perftest_platform IS 'hardware and software platform for a set of test results'; unisonunisonfalse272400$COLUMN perftest_platform.platform_idCOMMENTZCOMMENT ON COLUMN perftest_platform.platform_id IS 'unique id for a set of test results'; unisonunisonfalse272400COLUMN perftest_platform.nameCOMMENT=COMMENT ON COLUMN perftest_platform.name IS 'platform name'; unisonunisonfalse272400COLUMN perftest_platform.dateCOMMENT<COMMENT ON COLUMN perftest_platform.date IS 'date of test'; unisonunisonfalse272400 COLUMN perftest_platform.currentCOMMENTaCOMMENT ON COLUMN perftest_platform.current IS 'whether this platform is currently interesting'; unisonunisonfalse272400COLUMN perftest_platform.macCOMMENT?COMMENT ON COLUMN perftest_platform.mac IS 'host MAC address'; unisonunisonfalse272400COLUMN perftest_platform.ipCOMMENT8COMMENT ON COLUMN perftest_platform.ip IS 'IP address'; unisonunisonfalse272400 COLUMN perftest_platform.uname_sCOMMENTECOMMENT ON COLUMN perftest_platform.uname_s IS 'result of uname -s'; unisonunisonfalse272400 COLUMN perftest_platform.uname_nCOMMENTECOMMENT ON COLUMN perftest_platform.uname_n IS 'result of uname -n'; unisonunisonfalse272400 COLUMN perftest_platform.uname_rCOMMENTECOMMENT ON COLUMN perftest_platform.uname_r IS 'result of uname -r'; unisonunisonfalse272400 COLUMN perftest_platform.uname_mCOMMENTECOMMENT ON COLUMN perftest_platform.uname_m IS 'result of uname -m'; unisonunisonfalse272400COLUMN perftest_platform.ram_gbCOMMENTLCOMMENT ON COLUMN perftest_platform.ram_gb IS 'total installed RAM, in GB'; unisonunisonfalse272400 COLUMN perftest_platform.fs_typeCOMMENTUCOMMENT ON COLUMN perftest_platform.fs_type IS 'PGDATA filesystem type and options'; unisonunisonfalse272400'COLUMN perftest_platform.pg_version_strCOMMENTMCOMMENT ON COLUMN perftest_platform.pg_version_str IS 'text from version()'; unisonunisonfalse272400#COLUMN perftest_platform.pg_versionCOMMENTNCOMMENT ON COLUMN perftest_platform.pg_version IS 'PostgreSQL x.y.z version'; unisonunisonfalse272400perftest_platformACLREVOKE ALL ON TABLE perftest_platform FROM PUBLIC; REVOKE ALL ON TABLE perftest_platform FROM unison; GRANT ALL ON TABLE perftest_platform TO unison; GRANT SELECT ON TABLE perftest_platform TO PUBLIC; unisonunisonfalse2724 1259309109perftest_resultTABLE&CREATE TABLE perftest_result ( def_id integer NOT NULL, run_id integer NOT NULL, had_error boolean NOT NULL, n_rows integer, times integer[], avg_time integer, CONSTRAINT avg_time_gt_zero CHECK ((avg_time > 0)), CONSTRAINT n_rows_gt_zero CHECK ((n_rows > 0)) ); #DROP TABLE unison.perftest_result; unisonunisonfalse34483449900TABLE perftest_resultCOMMENTTCOMMENT ON TABLE perftest_result IS 'results for a single test on single platform'; unisonunisonfalse272500COLUMN perftest_result.def_idCOMMENTBCOMMENT ON COLUMN perftest_result.def_id IS 'test definition id'; unisonunisonfalse272500COLUMN perftest_result.run_idCOMMENTRCOMMENT ON COLUMN perftest_result.run_id IS 'test run id (implies one platform)'; unisonunisonfalse272500 COLUMN perftest_result.had_errorCOMMENTeCOMMENT ON COLUMN perftest_result.had_error IS 'whether there was an error/exception for this test'; unisonunisonfalse272500COLUMN perftest_result.n_rowsCOMMENTTCOMMENT ON COLUMN perftest_result.n_rows IS 'number of rows returned by this test'; unisonunisonfalse272500COLUMN perftest_result.timesCOMMENTsCOMMENT ON COLUMN perftest_result.times IS 'vector of elapsed times for this test (see perftest_platform.n_runs)'; unisonunisonfalse272500COLUMN perftest_result.avg_timeCOMMENTTCOMMENT ON COLUMN perftest_result.avg_time IS 'average elapsed time for this test'; unisonunisonfalse272500perftest_resultACLREVOKE ALL ON TABLE perftest_result FROM PUBLIC; REVOKE ALL ON TABLE perftest_result FROM unison; GRANT ALL ON TABLE perftest_result TO unison; GRANT SELECT ON TABLE perftest_result TO PUBLIC; unisonunisonfalse2725 1259309726perftest_run_run_id_seqSEQUENCEyCREATE SEQUENCE perftest_run_run_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; .DROP SEQUENCE unison.perftest_run_run_id_seq; unisonunisonfalse900perftest_run_run_id_seq SEQUENCE SET?SELECT pg_catalog.setval('perftest_run_run_id_seq', 1, false); unisonunisonfalse2838 1259309117 perftest_runTABLECREATE TABLE perftest_run ( run_id integer DEFAULT nextval('perftest_run_run_id_seq'::regclass) NOT NULL, platform_id integer NOT NULL, start_ts timestamp without time zone NOT NULL, stop_ts timestamp without time zone, comments text ); DROP TABLE unison.perftest_run; unisonunisonfalse3450900TABLE perftest_runCOMMENTjCOMMENT ON TABLE perftest_run IS 'a set of perf results on a specific platform; perhaps >1 run/platform'; unisonunisonfalse272600 perftest_runACLREVOKE ALL ON TABLE perftest_run FROM PUBLIC; REVOKE ALL ON TABLE perftest_run FROM unison; GRANT ALL ON TABLE perftest_run TO unison; GRANT SELECT ON TABLE perftest_run TO PUBLIC; unisonunisonfalse2726 1259309123 pfantigenicTABLE CREATE TABLE pfantigenic ( pseq_id integer, pftype_id integer DEFAULT pftype_id('EMBOSS/antigenic'::text), start integer, stop integer, params_id integer, score double precision NOT NULL, max_pos smallint NOT NULL ) INHERITS (pfeature); DROP TABLE unison.pfantigenic; unisonunisonfalse345134522473900TABLE pfantigenicCOMMENT=COMMENT ON TABLE pfantigenic IS 'EMBOSS antigenic features'; unisonunisonfalse272700COLUMN pfantigenic.pfeature_idCOMMENT[COMMENT ON COLUMN pfantigenic.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse272700COLUMN pfantigenic.pseq_idCOMMENTdCOMMENT ON COLUMN pfantigenic.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse272700COLUMN pfantigenic.pftype_idCOMMENTgCOMMENT ON COLUMN pfantigenic.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse272700COLUMN pfantigenic.startCOMMENTRCOMMENT ON COLUMN pfantigenic.start IS 'start of prediction in protein sequence'; unisonunisonfalse272700COLUMN pfantigenic.stopCOMMENTPCOMMENT ON COLUMN pfantigenic.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse272700COLUMN pfantigenic.params_idCOMMENT`COMMENT ON COLUMN pfantigenic.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse272700COLUMN pfantigenic.scoreCOMMENT:COMMENT ON COLUMN pfantigenic.score IS 'antigenic score'; unisonunisonfalse272700 pfantigenicACLREVOKE ALL ON TABLE pfantigenic FROM PUBLIC; REVOKE ALL ON TABLE pfantigenic FROM unison; GRANT ALL ON TABLE pfantigenic TO unison; GRANT INSERT ON TABLE pfantigenic TO loader; GRANT SELECT ON TABLE pfantigenic TO PUBLIC; unisonunisonfalse2727 1259309127 pfantigenic_vVIEW*CREATE VIEW pfantigenic_v AS SELECT a.pseq_id, a.start, a.stop, ((a.stop - a.start) + 1) AS len, a.max_pos, a.score, substr(q.seq, a.start, ((a.stop - a.start) + 1)) AS subseq FROM (pfantigenic a JOIN pseq q ON ((a.pseq_id = q.pseq_id))) WHERE ((a.stop - a.start) <= 24) ORDER BY a.score DESC; DROP VIEW unison.pfantigenic_v; unisonunisonfalse3047900VIEW pfantigenic_vCOMMENTYCOMMENT ON VIEW pfantigenic_v IS 'simplified view of antigenic sites with subsequences'; unisonunisonfalse272800COLUMN pfantigenic_v.pseq_idCOMMENTfCOMMENT ON COLUMN pfantigenic_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse272800COLUMN pfantigenic_v.startCOMMENTTCOMMENT ON COLUMN pfantigenic_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse272800COLUMN pfantigenic_v.stopCOMMENTRCOMMENT ON COLUMN pfantigenic_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse272800COLUMN pfantigenic_v.scoreCOMMENTECOMMENT ON COLUMN pfantigenic_v.score IS 'algorithm-specific score'; unisonunisonfalse272800 pfantigenic_vACLREVOKE ALL ON TABLE pfantigenic_v FROM PUBLIC; REVOKE ALL ON TABLE pfantigenic_v FROM unison; GRANT ALL ON TABLE pfantigenic_v TO unison; GRANT SELECT ON TABLE pfantigenic_v TO PUBLIC; unisonunisonfalse2728 1259309131pfbigpiTABLECREATE TABLE pfbigpi ( pftype_id integer DEFAULT pftype_id('BIG-PI'::text), start integer, stop integer DEFAULT 0, params_id integer, site_no smallint NOT NULL, quality character(1) NOT NULL, score real NOT NULL, pvalue real NOT NULL, CONSTRAINT big_pi_identifies_only_two_sites CHECK (((site_no = 1) OR (site_no = 2))), CONSTRAINT quality_must_be_one_of_abcdsni CHECK ((strpos('ABCDSNI'::text, (quality)::text) <> 0)) ) INHERITS (pfeature); DROP TABLE unison.pfbigpi; unisonunisonfalse345334543455345634579247300 TABLE pfbigpiCOMMENTHCOMMENT ON TABLE pfbigpi IS 'BIG-PI GPI predictions; see also bigpi_v'; unisonunisonfalse272900COLUMN pfbigpi.pfeature_idCOMMENTWCOMMENT ON COLUMN pfbigpi.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse272900COLUMN pfbigpi.pseq_idCOMMENT`COMMENT ON COLUMN pfbigpi.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse272900COLUMN pfbigpi.pftype_idCOMMENTcCOMMENT ON COLUMN pfbigpi.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse272900COLUMN pfbigpi.startCOMMENT1COMMENT ON COLUMN pfbigpi.start IS 'omega site'; unisonunisonfalse272900COLUMN pfbigpi.stopCOMMENT'COMMENT ON COLUMN pfbigpi.stop IS '0'; unisonunisonfalse272900COLUMN pfbigpi.params_idCOMMENT\COMMENT ON COLUMN pfbigpi.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse272900COLUMN pfbigpi.qualityCOMMENTUCOMMENT ON COLUMN pfbigpi.quality IS 'A-D are good sites; S,N,I are rejected sites'; unisonunisonfalse272900COLUMN pfbigpi.scoreCOMMENT?COMMENT ON COLUMN pfbigpi.score IS 'algorithm-specific score'; unisonunisonfalse272900pfbigpiACLREVOKE ALL ON TABLE pfbigpi FROM PUBLIC; REVOKE ALL ON TABLE pfbigpi FROM unison; GRANT ALL ON TABLE pfbigpi TO unison; GRANT INSERT ON TABLE pfbigpi TO loader; GRANT SELECT ON TABLE pfbigpi TO PUBLIC; unisonunisonfalse2729 1259309138 pfbigpi_vVIEWpCREATE VIEW pfbigpi_v AS SELECT pfbigpi.pfeature_id, pfbigpi.pseq_id, pfbigpi.pftype_id, pfbigpi.start, pfbigpi.stop, pfbigpi.pvalue, pfbigpi.params_id, pfbigpi.site_no, pfbigpi.quality, pfbigpi.score FROM pfbigpi WHERE ((((pfbigpi.quality = 'A'::bpchar) OR (pfbigpi.quality = 'B'::bpchar)) OR (pfbigpi.quality = 'C'::bpchar)) OR (pfbigpi.quality = 'D'::bpchar)); DROP VIEW unison.pfbigpi_v; unisonunisonfalse3048900VIEW pfbigpi_vCOMMENTOCOMMENT ON VIEW pfbigpi_v IS 'reliable GPI anchoring predictions from BIG-PI'; unisonunisonfalse273000COLUMN pfbigpi_v.pfeature_idCOMMENTYCOMMENT ON COLUMN pfbigpi_v.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse273000COLUMN pfbigpi_v.pseq_idCOMMENTbCOMMENT ON COLUMN pfbigpi_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse273000COLUMN pfbigpi_v.pftype_idCOMMENTeCOMMENT ON COLUMN pfbigpi_v.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse273000COLUMN pfbigpi_v.startCOMMENTPCOMMENT ON COLUMN pfbigpi_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse273000COLUMN pfbigpi_v.stopCOMMENTNCOMMENT ON COLUMN pfbigpi_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse273000COLUMN pfbigpi_v.params_idCOMMENT^COMMENT ON COLUMN pfbigpi_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse273000COLUMN pfbigpi_v.scoreCOMMENTACOMMENT ON COLUMN pfbigpi_v.score IS 'algorithm-specific score'; unisonunisonfalse273000 pfbigpi_vACLREVOKE ALL ON TABLE pfbigpi_v FROM PUBLIC; REVOKE ALL ON TABLE pfbigpi_v FROM unison; GRANT ALL ON TABLE pfbigpi_v TO unison; GRANT SELECT ON TABLE pfbigpi_v TO PUBLIC; unisonunisonfalse2730 1259309143 pfnetphosTABLE\CREATE TABLE pfnetphos ( pftype_id integer DEFAULT pftype_id('netphos'::text), prob double precision NOT NULL, kinase text NOT NULL, CONSTRAINT one_residue CHECK ((start = stop)), CONSTRAINT prob_ge_0_50 CHECK ((prob >= (0.5)::double precision)), CONSTRAINT valid_kinase_type CHECK ((kinase = ANY (ARRAY['ATM'::text, 'CaM-II'::text, 'cdc2'::text, 'cdk5'::text, 'CKI'::text, 'CKII'::text, 'DNAPK'::text, 'EGFR'::text, 'GSK3'::text, 'INSR'::text, 'p38MAPK'::text, 'PKA'::text, 'PKB'::text, 'PKC'::text, 'PKG'::text, 'RSK'::text, 'SRC'::text, 'unsp'::text]))) ) INHERITS (pfeature); DROP TABLE unison.pfnetphos; unisonunisonfalse345834593460346134629247300TABLE pfnetphosCOMMENT^COMMENT ON TABLE pfnetphos IS 'S,T,Y phosphorylation prediction by netphos ONLY w/prob>=0.5'; unisonunisonfalse273100COLUMN pfnetphos.probCOMMENTKCOMMENT ON COLUMN pfnetphos.prob IS 'probability; prob<0.5 are discarded'; unisonunisonfalse273100 pfnetphosACLREVOKE ALL ON TABLE pfnetphos FROM PUBLIC; REVOKE ALL ON TABLE pfnetphos FROM unison; GRANT ALL ON TABLE pfnetphos TO unison; GRANT SELECT ON TABLE pfnetphos TO PUBLIC; GRANT INSERT ON TABLE pfnetphos TO loader; unisonunisonfalse2731)1255308334_agg_as_set_finalfunc(anyarray)FUNCTIONCREATE FUNCTION _agg_as_set_finalfunc(anyarray) RETURNS text AS $_$select array_to_string($1,',')$_$ LANGUAGE sql IMMUTABLE STRICT; 6DROP FUNCTION unison._agg_as_set_finalfunc(anyarray); unisonunisonfalse900(FUNCTION _agg_as_set_finalfunc(anyarray)COMMENTbCOMMENT ON FUNCTION _agg_as_set_finalfunc(anyarray) IS '''final'' function for as_set aggregate'; unisonunisonfalse4100_agg_as_set_finalfunc(anyarray)ACL REVOKE ALL ON FUNCTION _agg_as_set_finalfunc(anyarray) FROM PUBLIC; REVOKE ALL ON FUNCTION _agg_as_set_finalfunc(anyarray) FROM unison; GRANT ALL ON FUNCTION _agg_as_set_finalfunc(anyarray) TO unison; GRANT ALL ON FUNCTION _agg_as_set_finalfunc(anyarray) TO PUBLIC; unisonunisonfalse411255308335as_set(anyelement) AGGREGATECREATE AGGREGATE as_set(anyelement) ( SFUNC = array_append, STYPE = anyarray, INITCOND = '{}', FINALFUNC = _agg_as_set_finalfunc ); *DROP AGGREGATE unison.as_set(anyelement); unisonunisonfalse41900AGGREGATE as_set(anyelement)COMMENTXCOMMENT ON AGGREGATE as_set(anyelement) IS 'build a comma-separated list of arguments'; unisonunisonfalse1294 1259309153pfnetphos_site_predictions_vVIEWCREATE VIEW pfnetphos_site_predictions_v AS SELECT x.pseq_id, x.params_id, x.start AS pos, max(x.prob) AS max_prob, as_set((((x.kinase || '('::text) || (x.prob)::text) || ')'::text)) AS kinases FROM (SELECT pfnetphos.pseq_id, pfnetphos.params_id, pfnetphos.start, pfnetphos.prob, pfnetphos.kinase FROM pfnetphos WHERE (pfnetphos.prob >= (0.5)::double precision) ORDER BY pfnetphos.pseq_id, pfnetphos.params_id, pfnetphos.start, pfnetphos.prob DESC) x GROUP BY x.pseq_id, x.params_id, x.start; /DROP VIEW unison.pfnetphos_site_predictions_v; unisonunisonfalse3049900pfnetphos_site_predictions_vACLREVOKE ALL ON TABLE pfnetphos_site_predictions_v FROM PUBLIC; REVOKE ALL ON TABLE pfnetphos_site_predictions_v FROM unison; GRANT ALL ON TABLE pfnetphos_site_predictions_v TO unison; GRANT SELECT ON TABLE pfnetphos_site_predictions_v TO PUBLIC; unisonunisonfalse2732 1259309157 pfpepcoilTABLECREATE TABLE pfpepcoil ( pftype_id integer DEFAULT pftype_id('EMBOSS/pepcoil'::text), score real NOT NULL, prob real NOT NULL, CONSTRAINT prob_between_0_1 CHECK (((prob >= (0)::double precision) AND (prob <= (1)::double precision))) ) INHERITS (pfeature); DROP TABLE unison.pfpepcoil; unisonunisonfalse34633464346524739 00TABLE pfpepcoilCOMMENTOCOMMENT ON TABLE pfpepcoil IS 'coiled-coiled predictions from EMBOSS pepcoil'; unisonunisonfalse2733 00COLUMN pfpepcoil.pfeature_idCOMMENTYCOMMENT ON COLUMN pfpepcoil.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse2733 00COLUMN pfpepcoil.pseq_idCOMMENTbCOMMENT ON COLUMN pfpepcoil.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2733 00COLUMN pfpepcoil.pftype_idCOMMENTeCOMMENT ON COLUMN pfpepcoil.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse2733 00COLUMN pfpepcoil.startCOMMENTPCOMMENT ON COLUMN pfpepcoil.start IS 'start of prediction in protein sequence'; unisonunisonfalse273300COLUMN pfpepcoil.stopCOMMENTNCOMMENT ON COLUMN pfpepcoil.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse273300COLUMN pfpepcoil.params_idCOMMENT^COMMENT ON COLUMN pfpepcoil.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse273300COLUMN pfpepcoil.scoreCOMMENTACOMMENT ON COLUMN pfpepcoil.score IS 'algorithm-specific score'; unisonunisonfalse273300 pfpepcoilACLREVOKE ALL ON TABLE pfpepcoil FROM PUBLIC; REVOKE ALL ON TABLE pfpepcoil FROM unison; GRANT ALL ON TABLE pfpepcoil TO unison; GRANT SELECT ON TABLE pfpepcoil TO PUBLIC; GRANT INSERT ON TABLE pfpepcoil TO loader; unisonunisonfalse2733 1259309162 pfpsipredTABLECREATE TABLE pfpsipred ( pftype_id integer DEFAULT pftype_id('PSIPRED'::text), type character(1), CONSTRAINT sec_str_type_ck CHECK ((((type = 'H'::bpchar) OR (type = 'E'::bpchar)) OR (type = 'C'::bpchar))) ) INHERITS (pfeature); DROP TABLE unison.pfpsipred; unisonunisonfalse3466346734689247300TABLE pfpsipredCOMMENTPCOMMENT ON TABLE pfpsipred IS 'Psipred predicted secondary structure elements'; unisonunisonfalse273400COLUMN pfpsipred.pfeature_idCOMMENTYCOMMENT ON COLUMN pfpsipred.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse273400COLUMN pfpsipred.pseq_idCOMMENTbCOMMENT ON COLUMN pfpsipred.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse273400COLUMN pfpsipred.pftype_idCOMMENTeCOMMENT ON COLUMN pfpsipred.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse273400COLUMN pfpsipred.startCOMMENTPCOMMENT ON COLUMN pfpsipred.start IS 'start of prediction in protein sequence'; unisonunisonfalse273400COLUMN pfpsipred.stopCOMMENTNCOMMENT ON COLUMN pfpsipred.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse273400COLUMN pfpsipred.params_idCOMMENT^COMMENT ON COLUMN pfpsipred.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse273400 pfpsipredACLREVOKE ALL ON TABLE pfpsipred FROM PUBLIC; REVOKE ALL ON TABLE pfpsipred FROM unison; GRANT ALL ON TABLE pfpsipred TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pfpsipred TO loader; GRANT SELECT ON TABLE pfpsipred TO PUBLIC; unisonunisonfalse2734 1259308131pmregexpTABLECREATE TABLE pmregexp ( acc text NOT NULL, descr text NOT NULL, regexp text NOT NULL, name text NOT NULL ) INHERITS (pmodel); DROP TABLE unison.pmregexp; unisonunisonfalse3393339433959248400TABLE pmregexpCOMMENTbCOMMENT ON TABLE pmregexp IS 'regular expression models (e.g., PROSITE and other simple motifs)'; unisonunisonfalse253100COLUMN pmregexp.pmodel_idCOMMENTKCOMMENT ON COLUMN pmregexp.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse253100COLUMN pmregexp.origin_idCOMMENTVCOMMENT ON COLUMN pmregexp.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse253100COLUMN pmregexp.accCOMMENTJCOMMENT ON COLUMN pmregexp.acc IS 'model accession from source database'; unisonunisonfalse253100COLUMN pmregexp.addedCOMMENTBCOMMENT ON COLUMN pmregexp.added IS 'when this data was created'; unisonunisonfalse253100COLUMN pmregexp.descrCOMMENT9COMMENT ON COLUMN pmregexp.descr IS 'model description'; unisonunisonfalse2531 00COLUMN pmregexp.nameCOMMENT>COMMENT ON COLUMN pmregexp.name IS 'regular expression name'; unisonunisonfalse2531!00pmregexpACLREVOKE ALL ON TABLE pmregexp FROM PUBLIC; REVOKE ALL ON TABLE pmregexp FROM unison; GRANT ALL ON TABLE pmregexp TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pmregexp TO loader; GRANT SELECT ON TABLE pmregexp TO PUBLIC; unisonunisonfalse2531J 1259308672 pfregexp_vVIEWCREATE VIEW pfregexp_v AS SELECT f.params_id, f.pseq_id, f.start, f.stop, m.origin_id, m.pmodel_id, m.acc, m.name, m.descr FROM (pfregexp f JOIN pmregexp m ON ((f.pmodel_id = m.pmodel_id))); DROP VIEW unison.pfregexp_v; unisonunisonfalse29859"00VIEW pfregexp_vCOMMENT\COMMENT ON VIEW pfregexp_v IS 'regexp features with model origin_id, acc, name, and descr'; unisonunisonfalse2634#00 pfregexp_vACLREVOKE ALL ON TABLE pfregexp_v FROM PUBLIC; REVOKE ALL ON TABLE pfregexp_v FROM unison; GRANT ALL ON TABLE pfregexp_v TO unison; GRANT SELECT ON TABLE pfregexp_v TO PUBLIC; unisonunisonfalse2634 1259309167pfsegTABLEzCREATE TABLE pfseg ( pftype_id integer DEFAULT pftype_id('seg'::text), score real NOT NULL ) INHERITS (pfeature); DROP TABLE unison.pfseg; unisonunisonfalse3469347092473$00 TABLE pfsegCOMMENTYCOMMENT ON TABLE pfseg IS 'seg - segment sequences(s) by local complexity, predicitons'; unisonunisonfalse2735%00pfsegACLREVOKE ALL ON TABLE pfseg FROM PUBLIC; REVOKE ALL ON TABLE pfseg FROM unison; GRANT ALL ON TABLE pfseg TO unison; GRANT SELECT ON TABLE pfseg TO PUBLIC; GRANT INSERT,UPDATE ON TABLE pfseg TO loader; unisonunisonfalse2735 1259309171 pfsigcleaveTABLECREATE TABLE pfsigcleave ( pftype_id integer DEFAULT pftype_id('EMBOSS/sigcleave'::text), score real ) INHERITS (pfeature); DROP TABLE unison.pfsigcleave; unisonunisonfalse3471347224739&00TABLE pfsigcleaveCOMMENTICOMMENT ON TABLE pfsigcleave IS 'protein feature from EMBOSS sigcleave'; unisonunisonfalse2736'00COLUMN pfsigcleave.pfeature_idCOMMENT[COMMENT ON COLUMN pfsigcleave.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse2736(00COLUMN pfsigcleave.pseq_idCOMMENTdCOMMENT ON COLUMN pfsigcleave.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2736)00COLUMN pfsigcleave.pftype_idCOMMENTgCOMMENT ON COLUMN pfsigcleave.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse2736*00COLUMN pfsigcleave.startCOMMENTRCOMMENT ON COLUMN pfsigcleave.start IS 'start of prediction in protein sequence'; unisonunisonfalse2736+00COLUMN pfsigcleave.stopCOMMENTPCOMMENT ON COLUMN pfsigcleave.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2736,00COLUMN pfsigcleave.params_idCOMMENT`COMMENT ON COLUMN pfsigcleave.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2736-00COLUMN pfsigcleave.scoreCOMMENTCCOMMENT ON COLUMN pfsigcleave.score IS 'algorithm-specific score'; unisonunisonfalse2736.00 pfsigcleaveACLREVOKE ALL ON TABLE pfsigcleave FROM PUBLIC; REVOKE ALL ON TABLE pfsigcleave FROM unison; GRANT ALL ON TABLE pfsigcleave TO unison; GRANT INSERT,UPDATE ON TABLE pfsigcleave TO loader; GRANT SELECT ON TABLE pfsigcleave TO PUBLIC; unisonunisonfalse2736 1259309175 pfsignalphmmTABLECREATE TABLE pfsignalphmm ( pftype_id integer DEFAULT pftype_id('SignalP'::text), start integer DEFAULT 1, sig_anchor_prob real NOT NULL, max_cleavage_prob real NOT NULL, sig_peptide_prob real NOT NULL, pfsignalphmm_pred_id integer ) INHERITS (pfeature); DROP TABLE unison.pfsignalphmm; unisonunisonfalse34733474347592473/00TABLE pfsignalphmmCOMMENT<COMMENT ON TABLE pfsignalphmm IS 'HMM output from SignalP'; unisonunisonfalse2737000COLUMN pfsignalphmm.pfeature_idCOMMENT\COMMENT ON COLUMN pfsignalphmm.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse2737100COLUMN pfsignalphmm.pseq_idCOMMENTeCOMMENT ON COLUMN pfsignalphmm.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2737200COLUMN pfsignalphmm.pftype_idCOMMENThCOMMENT ON COLUMN pfsignalphmm.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse2737300COLUMN pfsignalphmm.startCOMMENTSCOMMENT ON COLUMN pfsignalphmm.start IS 'start of prediction in protein sequence'; unisonunisonfalse2737400COLUMN pfsignalphmm.stopCOMMENTQCOMMENT ON COLUMN pfsignalphmm.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2737500COLUMN pfsignalphmm.params_idCOMMENTaCOMMENT ON COLUMN pfsignalphmm.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2737600#COLUMN pfsignalphmm.sig_anchor_probCOMMENTOCOMMENT ON COLUMN pfsignalphmm.sig_anchor_prob IS 'signal anchor probability'; unisonunisonfalse2737700%COLUMN pfsignalphmm.max_cleavage_probCOMMENTUCOMMENT ON COLUMN pfsignalphmm.max_cleavage_prob IS 'max cleavage site probability'; unisonunisonfalse2737800$COLUMN pfsignalphmm.sig_peptide_probCOMMENTQCOMMENT ON COLUMN pfsignalphmm.sig_peptide_prob IS 'signal peptide probability'; unisonunisonfalse2737900 pfsignalphmmACLREVOKE ALL ON TABLE pfsignalphmm FROM PUBLIC; REVOKE ALL ON TABLE pfsignalphmm FROM unison; GRANT ALL ON TABLE pfsignalphmm TO unison; GRANT INSERT,UPDATE ON TABLE pfsignalphmm TO loader; GRANT SELECT ON TABLE pfsignalphmm TO PUBLIC; unisonunisonfalse2737 1259309180pfsignalphmm_predTABLElCREATE TABLE pfsignalphmm_pred ( pfsignalphmm_pred_id integer NOT NULL, prediction text NOT NULL ); %DROP TABLE unison.pfsignalphmm_pred; unisonunisonfalse9:00TABLE pfsignalphmm_predCOMMENTNCOMMENT ON TABLE pfsignalphmm_pred IS 'lookup table for SignalP predictions'; unisonunisonfalse2738;00pfsignalphmm_predACL REVOKE ALL ON TABLE pfsignalphmm_pred FROM PUBLIC; REVOKE ALL ON TABLE pfsignalphmm_pred FROM unison; GRANT ALL ON TABLE pfsignalphmm_pred TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pfsignalphmm_pred TO loader; GRANT SELECT ON TABLE pfsignalphmm_pred TO PUBLIC; unisonunisonfalse2738 1259309186pfsignalphmm_vVIEWCREATE VIEW pfsignalphmm_v AS SELECT s.pseq_id, s.params_id, s.start, s.stop, s.sig_anchor_prob, s.max_cleavage_prob, s.sig_peptide_prob, p.prediction FROM (pfsignalphmm s JOIN pfsignalphmm_pred p ON ((s.pfsignalphmm_pred_id = p.pfsignalphmm_pred_id))); !DROP VIEW unison.pfsignalphmm_v; unisonunisonfalse30509<00COLUMN pfsignalphmm_v.pseq_idCOMMENTgCOMMENT ON COLUMN pfsignalphmm_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2739=00COLUMN pfsignalphmm_v.params_idCOMMENTcCOMMENT ON COLUMN pfsignalphmm_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2739>00COLUMN pfsignalphmm_v.startCOMMENTUCOMMENT ON COLUMN pfsignalphmm_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse2739?00COLUMN pfsignalphmm_v.stopCOMMENTSCOMMENT ON COLUMN pfsignalphmm_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2739@00pfsignalphmm_vACLREVOKE ALL ON TABLE pfsignalphmm_v FROM PUBLIC; REVOKE ALL ON TABLE pfsignalphmm_v FROM unison; GRANT ALL ON TABLE pfsignalphmm_v TO unison; GRANT SELECT ON TABLE pfsignalphmm_v TO PUBLIC; unisonunisonfalse2739 1259308242 pfsignalpnnTABLECREATE TABLE pfsignalpnn ( pftype_id integer DEFAULT pftype_id('SignalP'::text), start integer DEFAULT 1, d_score real NOT NULL, signal_peptide boolean NOT NULL ) INHERITS (pfeature); DROP TABLE unison.pfsignalpnn; unisonunisonfalse34093410341124739A00TABLE pfsignalpnnCOMMENTFCOMMENT ON TABLE pfsignalpnn IS 'neural network output from SignalP'; unisonunisonfalse2550B00COLUMN pfsignalpnn.pfeature_idCOMMENT[COMMENT ON COLUMN pfsignalpnn.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse2550C00COLUMN pfsignalpnn.pseq_idCOMMENTdCOMMENT ON COLUMN pfsignalpnn.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2550D00COLUMN pfsignalpnn.pftype_idCOMMENTgCOMMENT ON COLUMN pfsignalpnn.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse2550E00COLUMN pfsignalpnn.startCOMMENTRCOMMENT ON COLUMN pfsignalpnn.start IS 'start of prediction in protein sequence'; unisonunisonfalse2550F00COLUMN pfsignalpnn.stopCOMMENTPCOMMENT ON COLUMN pfsignalpnn.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2550G00COLUMN pfsignalpnn.params_idCOMMENT`COMMENT ON COLUMN pfsignalpnn.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2550H00!COLUMN pfsignalpnn.signal_peptideCOMMENTACOMMENT ON COLUMN pfsignalpnn.signal_peptide IS 'd_score>0.430'; unisonunisonfalse2550I00 pfsignalpnnACLREVOKE ALL ON TABLE pfsignalpnn FROM PUBLIC; REVOKE ALL ON TABLE pfsignalpnn FROM unison; GRANT ALL ON TABLE pfsignalpnn TO unison; GRANT INSERT,UPDATE ON TABLE pfsignalpnn TO loader; GRANT SELECT ON TABLE pfsignalpnn TO PUBLIC; unisonunisonfalse2550 1259309190 pftmhmm_ecd_vVIEWCREATE VIEW pftmhmm_ecd_v AS SELECT pftmhmm.pfeature_id, pftmhmm.pseq_id, pftmhmm.pftype_id, pftmhmm.start, pftmhmm.stop, pftmhmm.params_id, pftmhmm.type, ((pftmhmm.stop - pftmhmm.start) + 1) AS length FROM pftmhmm WHERE (pftmhmm.type = 'o'::bpchar); DROP VIEW unison.pftmhmm_ecd_v; unisonunisonfalse30519J00 pftmhmm_ecd_vACLREVOKE ALL ON TABLE pftmhmm_ecd_v FROM PUBLIC; REVOKE ALL ON TABLE pftmhmm_ecd_v FROM unison; GRANT ALL ON TABLE pftmhmm_ecd_v TO unison; GRANT SELECT ON TABLE pftmhmm_ecd_v TO PUBLIC; unisonunisonfalse2740 1259308303 run_historyTABLECREATE TABLE run_history ( pseq_id integer NOT NULL, ran_on timestamp with time zone DEFAULT timenow(), failed boolean DEFAULT false NOT NULL, run_id integer NOT NULL ); DROP TABLE unison.run_history; unisonunisonfalse341834199K00TABLE run_historyCOMMENTCOMMENT ON TABLE run_history IS 'if/when a query sequence (pseq_id) was run with params_id against targets, perhaps specified by origin_id and/or pmodelset_id'; unisonunisonfalse2561L00COLUMN run_history.pseq_idCOMMENTFCOMMENT ON COLUMN run_history.pseq_id IS 'pseq_id of query sequence'; unisonunisonfalse2561M00COLUMN run_history.ran_onCOMMENTuCOMMENT ON COLUMN run_history.ran_on IS 'when this sequence was run with this params against the specified targets'; unisonunisonfalse2561N00COLUMN run_history.failedCOMMENTCOMMENT ON COLUMN run_history.failed IS 'True if a program systematically fails with this sequence and parameters. This is useful to prevent repeatedly running problematic combinations.'; unisonunisonfalse2561O00COLUMN run_history.run_idCOMMENTjCOMMENT ON COLUMN run_history.run_id IS 'identifier for this run (params and modelset), see run(run_id)'; unisonunisonfalse2561P00 run_historyACLREVOKE ALL ON TABLE run_history FROM PUBLIC; REVOKE ALL ON TABLE run_history FROM unison; GRANT ALL ON TABLE run_history TO unison; GRANT ALL ON TABLE run_history TO loader; GRANT SELECT ON TABLE run_history TO PUBLIC; unisonunisonfalse2561 1259308308pftmhmm_tm_count_vVIEWCREATE VIEW pftmhmm_tm_count_v AS SELECT rh.pseq_id, r.params_id, (SELECT count(*) AS count FROM pftmhmm WHERE (((pftmhmm.params_id = r.params_id) AND ((pftmhmm.type = 'M'::bpchar) OR (pftmhmm.type = 'N'::bpchar))) AND (pftmhmm.pseq_id = rh.pseq_id))) AS count FROM (run_history rh JOIN run r ON ((r.run_id = rh.run_id))) WHERE (rh.run_id = preferred_run_id_by_pftype('tmhmm'::text)); %DROP VIEW unison.pftmhmm_tm_count_v; unisonunisonfalse29409Q00VIEW pftmhmm_tm_count_vCOMMENTkCOMMENT ON VIEW pftmhmm_tm_count_v IS 'number of TMHMM-predicted transmembrane domains for each sequence'; unisonunisonfalse2562R00!COLUMN pftmhmm_tm_count_v.pseq_idCOMMENTkCOMMENT ON COLUMN pftmhmm_tm_count_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2562S00#COLUMN pftmhmm_tm_count_v.params_idCOMMENTgCOMMENT ON COLUMN pftmhmm_tm_count_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2562T00pftmhmm_tm_count_vACLREVOKE ALL ON TABLE pftmhmm_tm_count_v FROM PUBLIC; REVOKE ALL ON TABLE pftmhmm_tm_count_v FROM unison; GRANT ALL ON TABLE pftmhmm_tm_count_v TO unison; GRANT SELECT ON TABLE pftmhmm_tm_count_v TO PUBLIC; unisonunisonfalse2562 1259308221 pftmhmm_tms_vVIEWCREATE VIEW pftmhmm_tms_v AS SELECT pftmhmm.pfeature_id, pftmhmm.pseq_id, pftmhmm.pftype_id, pftmhmm.start, pftmhmm.stop, pftmhmm.params_id, pftmhmm.type FROM pftmhmm WHERE ((pftmhmm.type = 'M'::bpchar) OR (pftmhmm.type = 'N'::bpchar)); DROP VIEW unison.pftmhmm_tms_v; unisonunisonfalse29329U00VIEW pftmhmm_tms_vCOMMENT<COMMENT ON VIEW pftmhmm_tms_v IS 'TM regions from pftmhmm'; unisonunisonfalse2547V00 COLUMN pftmhmm_tms_v.pfeature_idCOMMENT]COMMENT ON COLUMN pftmhmm_tms_v.pfeature_id IS 'unique identifier for this protein feature'; unisonunisonfalse2547W00COLUMN pftmhmm_tms_v.pseq_idCOMMENTfCOMMENT ON COLUMN pftmhmm_tms_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2547X00COLUMN pftmhmm_tms_v.pftype_idCOMMENTiCOMMENT ON COLUMN pftmhmm_tms_v.pftype_id IS 'protein feature type identifier -- see pftype(pftype_id)'; unisonunisonfalse2547Y00COLUMN pftmhmm_tms_v.startCOMMENTTCOMMENT ON COLUMN pftmhmm_tms_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse2547Z00COLUMN pftmhmm_tms_v.stopCOMMENTRCOMMENT ON COLUMN pftmhmm_tms_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2547[00COLUMN pftmhmm_tms_v.params_idCOMMENTbCOMMENT ON COLUMN pftmhmm_tms_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2547\00 pftmhmm_tms_vACLREVOKE ALL ON TABLE pftmhmm_tms_v FROM PUBLIC; REVOKE ALL ON TABLE pftmhmm_tms_v FROM unison; GRANT ALL ON TABLE pftmhmm_tms_v TO unison; GRANT SELECT ON TABLE pftmhmm_tms_v TO PUBLIC; unisonunisonfalse2547 1259309194pftype_preferred_run_vVIEWNCREATE VIEW pftype_preferred_run_v AS SELECT t.pftype_id, t.name AS pftype, p.params_id, p.name AS params, p.is_public, m.pmodelset_id, m.name FROM (((pftype t LEFT JOIN run r ON ((t.preferred_run_id = r.run_id))) LEFT JOIN params p ON ((r.params_id = p.params_id))) LEFT JOIN pmodelset m ON ((r.pmodelset_id = m.pmodelset_id))); )DROP VIEW unison.pftype_preferred_run_v; unisonunisonfalse30529]00VIEW pftype_preferred_run_vCOMMENTcCOMMENT ON VIEW pftype_preferred_run_v IS 'preferred params and pmodelsets for each feature type'; unisonunisonfalse2741^00pftype_preferred_run_vACLREVOKE ALL ON TABLE pftype_preferred_run_v FROM PUBLIC; REVOKE ALL ON TABLE pftype_preferred_run_v FROM unison; GRANT ALL ON TABLE pftype_preferred_run_v TO unison; GRANT SELECT ON TABLE pftype_preferred_run_v TO PUBLIC; unisonunisonfalse2741 1259309730pmap_aln_aln_id_seqSEQUENCEuCREATE SEQUENCE pmap_aln_aln_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; *DROP SEQUENCE unison.pmap_aln_aln_id_seq; unisonunisonfalse9_00pmap_aln_aln_id_seq SEQUENCE SET;SELECT pg_catalog.setval('pmap_aln_aln_id_seq', 1, false); unisonunisonfalse2840`00pmap_aln_aln_id_seqACLREVOKE ALL ON SEQUENCE pmap_aln_aln_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pmap_aln_aln_id_seq FROM unison; GRANT ALL ON SEQUENCE pmap_aln_aln_id_seq TO unison; GRANT UPDATE ON SEQUENCE pmap_aln_aln_id_seq TO loader; unisonunisonfalse2840 1259308336pmap_alnTABLE}CREATE TABLE pmap_aln ( aln_id integer DEFAULT nextval('pmap_aln_aln_id_seq'::regclass) NOT NULL, hsp_str text NOT NULL, ident integer NOT NULL, pgap_cnt integer NOT NULL, pgap_bases integer NOT NULL, ggap_cnt integer NOT NULL, ggap_bases integer NOT NULL, genasm_id integer NOT NULL, pseq_id integer NOT NULL, params_id integer NOT NULL ); DROP TABLE unison.pmap_aln; unisonunisonfalse34229a00TABLE pmap_alnCOMMENTUCOMMENT ON TABLE pmap_aln IS 'protein to dna PMAP alignments - groups of PMAP HSPs'; unisonunisonfalse2567b00COLUMN pmap_aln.aln_idCOMMENTFCOMMENT ON COLUMN pmap_aln.aln_id IS 'pmap_aln alignment identifier'; unisonunisonfalse2567c00COLUMN pmap_aln.hsp_strCOMMENTaCOMMENT ON COLUMN pmap_aln.hsp_str IS 'serialized version of the pmap_hsp_ids in the alignment'; unisonunisonfalse2567d00COLUMN pmap_aln.identCOMMENTMCOMMENT ON COLUMN pmap_aln.ident IS 'number of identities in the alignment'; unisonunisonfalse2567e00COLUMN pmap_aln.pgap_cntCOMMENT?COMMENT ON COLUMN pmap_aln.pgap_cnt IS 'number of query gaps'; unisonunisonfalse2567f00COLUMN pmap_aln.pgap_basesCOMMENTSCOMMENT ON COLUMN pmap_aln.pgap_bases IS 'number of total residues in query gaps'; unisonunisonfalse2567g00COLUMN pmap_aln.ggap_cntCOMMENTBCOMMENT ON COLUMN pmap_aln.ggap_cnt IS 'number of template gaps'; unisonunisonfalse2567h00COLUMN pmap_aln.ggap_basesCOMMENTVCOMMENT ON COLUMN pmap_aln.ggap_bases IS 'number of total residues in template gaps'; unisonunisonfalse2567i00COLUMN pmap_aln.genasm_idCOMMENT_COMMENT ON COLUMN pmap_aln.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse2567j00COLUMN pmap_aln.pseq_idCOMMENTaCOMMENT ON COLUMN pmap_aln.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2567k00COLUMN pmap_aln.params_idCOMMENT]COMMENT ON COLUMN pmap_aln.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2567l00pmap_alnACLREVOKE ALL ON TABLE pmap_aln FROM PUBLIC; REVOKE ALL ON TABLE pmap_aln FROM unison; GRANT ALL ON TABLE pmap_aln TO unison; GRANT INSERT,DELETE,TRIGGER,UPDATE ON TABLE pmap_aln TO loader; GRANT SELECT ON TABLE pmap_aln TO PUBLIC; unisonunisonfalse2567 1259308342 pmap_alnhspTABLEWCREATE TABLE pmap_alnhsp ( aln_id integer NOT NULL, hsp_id integer NOT NULL ); DROP TABLE unison.pmap_alnhsp; unisonunisonfalse9m00TABLE pmap_alnhspCOMMENTVCOMMENT ON TABLE pmap_alnhsp IS 'groups protein-to-genome PMAP HSPs into alignments'; unisonunisonfalse2568n00COLUMN pmap_alnhsp.aln_idCOMMENTICOMMENT ON COLUMN pmap_alnhsp.aln_id IS 'pmap_aln alignment identifier'; unisonunisonfalse2568o00 pmap_alnhspACLREVOKE ALL ON TABLE pmap_alnhsp FROM PUBLIC; REVOKE ALL ON TABLE pmap_alnhsp FROM unison; GRANT ALL ON TABLE pmap_alnhsp TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pmap_alnhsp TO loader; GRANT SELECT ON TABLE pmap_alnhsp TO PUBLIC; unisonunisonfalse2568 1259309732pmap_hsp_hsp_id_seqSEQUENCEuCREATE SEQUENCE pmap_hsp_hsp_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; *DROP SEQUENCE unison.pmap_hsp_hsp_id_seq; unisonunisonfalse9p00pmap_hsp_hsp_id_seq SEQUENCE SET;SELECT pg_catalog.setval('pmap_hsp_hsp_id_seq', 1, false); unisonunisonfalse2841q00pmap_hsp_hsp_id_seqACLREVOKE ALL ON SEQUENCE pmap_hsp_hsp_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pmap_hsp_hsp_id_seq FROM unison; GRANT ALL ON SEQUENCE pmap_hsp_hsp_id_seq TO unison; GRANT UPDATE ON SEQUENCE pmap_hsp_hsp_id_seq TO loader; unisonunisonfalse2841 1259308345pmap_hspTABLEqCREATE TABLE pmap_hsp ( hsp_id integer DEFAULT nextval('pmap_hsp_hsp_id_seq'::regclass) NOT NULL, chr text NOT NULL, strand character(1) NOT NULL, genasm_id integer NOT NULL, gstart integer NOT NULL, gstop integer NOT NULL, pseq_id integer NOT NULL, pstart integer NOT NULL, pstop integer NOT NULL, params_id integer NOT NULL ); DROP TABLE unison.pmap_hsp; unisonunisonfalse34239r00TABLE pmap_hspCOMMENT9COMMENT ON TABLE pmap_hsp IS 'protein to dna PMAP HSPs'; unisonunisonfalse2569s00COLUMN pmap_hsp.chrCOMMENTVCOMMENT ON COLUMN pmap_hsp.chr IS 'chromosome (e.g. 1..22,M,U,X,Y for homo sapiens)'; unisonunisonfalse2569t00COLUMN pmap_hsp.strandCOMMENT=COMMENT ON COLUMN pmap_hsp.strand IS 'genomic strand (+/-)'; unisonunisonfalse2569u00COLUMN pmap_hsp.genasm_idCOMMENT_COMMENT ON COLUMN pmap_hsp.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse2569v00COLUMN pmap_hsp.gstartCOMMENTcCOMMENT ON COLUMN pmap_hsp.gstart IS 'start of HSP on genome (1-based, +1 frame, gstop > gstart)'; unisonunisonfalse2569w00COLUMN pmap_hsp.gstopCOMMENTaCOMMENT ON COLUMN pmap_hsp.gstop IS 'stop of HSP on genome (1-based, +1 frame, gstop > gstart)'; unisonunisonfalse2569x00COLUMN pmap_hsp.pseq_idCOMMENTaCOMMENT ON COLUMN pmap_hsp.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2569y00COLUMN pmap_hsp.pstartCOMMENTJCOMMENT ON COLUMN pmap_hsp.pstart IS 'start of HSP on protein (1-based)'; unisonunisonfalse2569z00COLUMN pmap_hsp.pstopCOMMENTHCOMMENT ON COLUMN pmap_hsp.pstop IS 'stop of HSP on protein (1-based)'; unisonunisonfalse2569{00COLUMN pmap_hsp.params_idCOMMENT]COMMENT ON COLUMN pmap_hsp.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2569|00pmap_hspACLREVOKE ALL ON TABLE pmap_hsp FROM PUBLIC; REVOKE ALL ON TABLE pmap_hsp FROM unison; GRANT ALL ON TABLE pmap_hsp TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pmap_hsp TO loader; GRANT SELECT ON TABLE pmap_hsp TO PUBLIC; unisonunisonfalse2569> 1259308606pmap_vVIEW"CREATE VIEW pmap_v AS SELECT a.params_id, a.genasm_id, h.pseq_id, ah.aln_id, min(h.pstart) AS pstart, max(h.pstop) AS pstop, count(*) AS exons, sum(((h.pstop - h.pstart) + 1)) AS aln_length, ((((sum(((h.pstop - h.pstart) + 1)))::double precision / (q.len)::double precision) * (100)::double precision))::integer AS pct_cov, a.ident, ((((a.ident)::double precision / (sum(((h.pstop - h.pstart) + 1)))::double precision) * (100)::double precision))::integer AS pct_ident, h.chr, h.strand, min(h.gstart) AS gstart, max(h.gstop) AS gstop FROM (((pmap_hsp h JOIN pmap_alnhsp ah ON ((h.hsp_id = ah.hsp_id))) JOIN pmap_aln a ON ((ah.aln_id = a.aln_id))) JOIN pseq q ON ((h.pseq_id = q.pseq_id))) GROUP BY h.pseq_id, a.params_id, a.genasm_id, ah.aln_id, h.chr, h.strand, a.ident, q.len ORDER BY h.pseq_id, ((((sum(((h.pstop - h.pstart) + 1)))::double precision / (q.len)::double precision) * (100)::double precision))::integer DESC, ((((a.ident)::double precision / (sum(((h.pstop - h.pstart) + 1)))::double precision) * (100)::double precision))::integer DESC; DROP VIEW unison.pmap_v; unisonunisonfalse29809}00 VIEW pmap_vCOMMENTPCOMMENT ON VIEW pmap_v IS 'view of pmap alignments with calculated statistics'; unisonunisonfalse2622~00COLUMN pmap_v.params_idCOMMENT[COMMENT ON COLUMN pmap_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse262200COLUMN pmap_v.genasm_idCOMMENT]COMMENT ON COLUMN pmap_v.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse262200COLUMN pmap_v.pseq_idCOMMENT_COMMENT ON COLUMN pmap_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse262200COLUMN pmap_v.aln_idCOMMENTDCOMMENT ON COLUMN pmap_v.aln_id IS 'pmap_aln alignment identifier'; unisonunisonfalse262200COLUMN pmap_v.pstartCOMMENTMCOMMENT ON COLUMN pmap_v.pstart IS 'start of alignment in protein sequence'; unisonunisonfalse262200COLUMN pmap_v.pstopCOMMENTKCOMMENT ON COLUMN pmap_v.pstop IS 'stop of alignment in protein sequence'; unisonunisonfalse262200COLUMN pmap_v.exonsCOMMENT5COMMENT ON COLUMN pmap_v.exons IS 'number of exons'; unisonunisonfalse262200COLUMN pmap_v.aln_lengthCOMMENT>COMMENT ON COLUMN pmap_v.aln_length IS 'length of alignment'; unisonunisonfalse262200COLUMN pmap_v.pct_covCOMMENT8COMMENT ON COLUMN pmap_v.pct_cov IS 'percent coverage'; unisonunisonfalse262200COLUMN pmap_v.pct_identCOMMENT:COMMENT ON COLUMN pmap_v.pct_ident IS 'percent identity'; unisonunisonfalse262200COLUMN pmap_v.chrCOMMENT.COMMENT ON COLUMN pmap_v.chr IS 'chromosome'; unisonunisonfalse262200COLUMN pmap_v.strandCOMMENTFCOMMENT ON COLUMN pmap_v.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse262200COLUMN pmap_v.gstartCOMMENTKCOMMENT ON COLUMN pmap_v.gstart IS 'genomic start position on chromosome'; unisonunisonfalse262200COLUMN pmap_v.gstopCOMMENTICOMMENT ON COLUMN pmap_v.gstop IS 'genomic stop position on chromosome'; unisonunisonfalse262200pmap_vACLREVOKE ALL ON TABLE pmap_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_v FROM unison; GRANT ALL ON TABLE pmap_v TO unison; GRANT SELECT ON TABLE pmap_v TO PUBLIC; unisonunisonfalse2622 1259309198 pmap_best_vVIEWCREATE VIEW pmap_best_v AS SELECT m.params_id, m.genasm_id, m.pseq_id, m.pct_cov, m.pct_ident, m.aln_id, m.pstart, m.pstop, m.exons, m.aln_length, m.ident, m.chr, m.strand, m.gstart, m.gstop FROM (pmap_v m NATURAL JOIN (SELECT DISTINCT ON (pmap_v.pseq_id, pmap_v.genasm_id, pmap_v.params_id) pmap_v.pseq_id, pmap_v.genasm_id, pmap_v.params_id, pmap_v.pct_cov, pmap_v.pct_ident FROM pmap_v ORDER BY pmap_v.pseq_id, pmap_v.genasm_id, pmap_v.params_id, pmap_v.pct_cov DESC, pmap_v.pct_ident DESC) x); DROP VIEW unison.pmap_best_v; unisonunisonfalse3053900VIEW pmap_best_vCOMMENTfCOMMENT ON VIEW pmap_best_v IS 'best pmap alignments; possibly degenerate -- see pmap_unambiguous_v'; unisonunisonfalse274200 pmap_best_vACLREVOKE ALL ON TABLE pmap_best_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_best_v FROM unison; GRANT ALL ON TABLE pmap_best_v TO unison; GRANT SELECT ON TABLE pmap_best_v TO PUBLIC; unisonunisonfalse2742 1259309203pmap_ambiguous_vVIEWICREATE VIEW pmap_ambiguous_v AS SELECT pmap_best_v.params_id, pmap_best_v.genasm_id, pmap_best_v.pseq_id, pmap_best_v.pct_cov, pmap_best_v.pct_ident, pmap_best_v.aln_id, pmap_best_v.pstart, pmap_best_v.pstop, pmap_best_v.exons, pmap_best_v.aln_length, pmap_best_v.ident, pmap_best_v.chr, pmap_best_v.strand, pmap_best_v.gstart, pmap_best_v.gstop FROM pmap_best_v GROUP BY pmap_best_v.params_id, pmap_best_v.genasm_id, pmap_best_v.pseq_id, pmap_best_v.aln_id, pmap_best_v.pct_cov, pmap_best_v.pct_ident, pmap_best_v.pstart, pmap_best_v.pstop, pmap_best_v.exons, pmap_best_v.aln_length, pmap_best_v.ident, pmap_best_v.chr, pmap_best_v.strand, pmap_best_v.gstart, pmap_best_v.gstop HAVING (count(DISTINCT (((((pmap_best_v.params_id)::text || '-'::text) || (pmap_best_v.genasm_id)::text) || '-'::text) || (pmap_best_v.pseq_id)::text)) > 1); #DROP VIEW unison.pmap_ambiguous_v; unisonunisonfalse3054900VIEW pmap_ambiguous_vCOMMENTACOMMENT ON VIEW pmap_ambiguous_v IS 'ambiguous pmap alignments'; unisonunisonfalse274300pmap_ambiguous_vACLREVOKE ALL ON TABLE pmap_ambiguous_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_ambiguous_v FROM unison; GRANT ALL ON TABLE pmap_ambiguous_v TO unison; GRANT SELECT ON TABLE pmap_ambiguous_v TO PUBLIC; unisonunisonfalse2743G 1259308656pmap_gg_representative_mvTABLECREATE TABLE pmap_gg_representative_mv ( genasm_id integer, params_id integer, chr text, strand character(1), q_pseq_id integer, q_gstart integer, q_gstop integer, t_pseq_id integer, t_gstart integer, t_gstop integer, pannotation_id integer, origin_id integer, origin text, alias text, descr text, unqid integer, proid integer, dnaid integer, link_url text ); -DROP TABLE unison.pmap_gg_representative_mv; unisonunisonfalse900pmap_gg_representative_mvACLREVOKE ALL ON TABLE pmap_gg_representative_mv FROM PUBLIC; REVOKE ALL ON TABLE pmap_gg_representative_mv FROM unison; GRANT ALL ON TABLE pmap_gg_representative_mv TO unison; GRANT SELECT ON TABLE pmap_gg_representative_mv TO PUBLIC; unisonunisonfalse2631 1259309207pmap_unambiguous_overlaps_mvTABLECREATE TABLE pmap_unambiguous_overlaps_mv ( genasm_id integer, params_id integer, chr text, strand character(1), q_pseq_id integer, q_gstart integer, q_gstop integer, t_pseq_id integer, t_gstart integer, t_gstop integer ); 0DROP TABLE unison.pmap_unambiguous_overlaps_mv; unisonunisonfalse900"TABLE pmap_unambiguous_overlaps_mvCOMMENTCOMMENT ON TABLE pmap_unambiguous_overlaps_mv IS 'materialized view of overlaps between protein sequences with unambiguous alignments to genomes'; unisonunisonfalse274400-COLUMN pmap_unambiguous_overlaps_mv.genasm_idCOMMENTsCOMMENT ON COLUMN pmap_unambiguous_overlaps_mv.genasm_id IS 'genome assembly identifier -- see genasm(genasm_id)'; unisonunisonfalse274400-COLUMN pmap_unambiguous_overlaps_mv.params_idCOMMENTqCOMMENT ON COLUMN pmap_unambiguous_overlaps_mv.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse274400'COLUMN pmap_unambiguous_overlaps_mv.chrCOMMENTDCOMMENT ON COLUMN pmap_unambiguous_overlaps_mv.chr IS 'chromosome'; unisonunisonfalse274400*COLUMN pmap_unambiguous_overlaps_mv.strandCOMMENT\COMMENT ON COLUMN pmap_unambiguous_overlaps_mv.strand IS 'genomic strand (''+'' or ''-'')'; unisonunisonfalse274400-COLUMN pmap_unambiguous_overlaps_mv.q_pseq_idCOMMENTMCOMMENT ON COLUMN pmap_unambiguous_overlaps_mv.q_pseq_id IS 'query pseq_id'; unisonunisonfalse274400-COLUMN pmap_unambiguous_overlaps_mv.t_pseq_idCOMMENTNCOMMENT ON COLUMN pmap_unambiguous_overlaps_mv.t_pseq_id IS 'target pseq_id'; unisonunisonfalse274400,COLUMN pmap_unambiguous_overlaps_mv.t_gstartCOMMENT_COMMENT ON COLUMN pmap_unambiguous_overlaps_mv.t_gstart IS 'genomic start of target sequence'; unisonunisonfalse274400+COLUMN pmap_unambiguous_overlaps_mv.t_gstopCOMMENT]COMMENT ON COLUMN pmap_unambiguous_overlaps_mv.t_gstop IS 'genomic stop of target sequence'; unisonunisonfalse274400pmap_unambiguous_overlaps_mvACLREVOKE ALL ON TABLE pmap_unambiguous_overlaps_mv FROM PUBLIC; REVOKE ALL ON TABLE pmap_unambiguous_overlaps_mv FROM unison; GRANT ALL ON TABLE pmap_unambiguous_overlaps_mv TO unison; GRANT SELECT ON TABLE pmap_unambiguous_overlaps_mv TO PUBLIC; unisonunisonfalse2744 1259309213pmap_gg_representative_vVIEWRCREATE VIEW pmap_gg_representative_v AS SELECT DISTINCT ON (o.genasm_id, o.params_id, o.q_pseq_id) o.genasm_id, o.params_id, o.chr, o.strand, o.q_pseq_id, o.q_gstart, o.q_gstop, o.t_pseq_id, o.t_gstart, o.t_gstop, tca.pannotation_id, tca.origin_id, tca.origin, tca.alias, tca.descr, gg.unqid, gg.proid, gg.dnaid, tca.link_url FROM ((pmap_unambiguous_overlaps_mv o JOIN current_annotations_sorted_v tca ON ((o.t_pseq_id = tca.pseq_id))) JOIN pseq_sst_v gg ON ((o.t_pseq_id = gg.pseq_id))) WHERE (tca.origin_id = origin_id('GenenGenes'::text)) ORDER BY o.genasm_id, o.params_id, o.q_pseq_id; +DROP VIEW unison.pmap_gg_representative_v; unisonunisonfalse3055900VIEW pmap_gg_representative_vCOMMENT|COMMENT ON VIEW pmap_gg_representative_v IS 'GenenGenes identifiers for q_pseq_id based on unambiguous genomic alignments'; unisonunisonfalse274500pmap_gg_representative_vACLREVOKE ALL ON TABLE pmap_gg_representative_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_gg_representative_v FROM unison; GRANT ALL ON TABLE pmap_gg_representative_v TO unison; GRANT SELECT ON TABLE pmap_gg_representative_v TO PUBLIC; unisonunisonfalse2745E 1259308644pmap_locus_representative_mvTABLE~CREATE TABLE pmap_locus_representative_mv ( genasm_id integer, params_id integer, chr text, strand character(1), q_pseq_id integer, q_gstart integer, q_gstop integer, t_pseq_id integer, t_gstart integer, t_gstop integer, pannotation_id integer, origin_id integer, origin text, alias text, descr text, link_url text ); 0DROP TABLE unison.pmap_locus_representative_mv; unisonunisonfalse900"TABLE pmap_locus_representative_mvCOMMENT^COMMENT ON TABLE pmap_locus_representative_mv IS 'mat view of pmap_genomic_representative_v'; unisonunisonfalse262900pmap_locus_representative_mvACLREVOKE ALL ON TABLE pmap_locus_representative_mv FROM PUBLIC; REVOKE ALL ON TABLE pmap_locus_representative_mv FROM unison; GRANT ALL ON TABLE pmap_locus_representative_mv TO unison; GRANT SELECT ON TABLE pmap_locus_representative_mv TO PUBLIC; unisonunisonfalse2629 1259309218pmap_locus_representative_vVIEWCREATE VIEW pmap_locus_representative_v AS SELECT DISTINCT ON (o.genasm_id, o.params_id, o.q_pseq_id) o.genasm_id, o.params_id, o.chr, o.strand, o.q_pseq_id, o.q_gstart, o.q_gstop, o.t_pseq_id, o.t_gstart, o.t_gstop, tba.pannotation_id, tba.origin_id, tba.origin, tba.alias, tba.descr, tba.link_url FROM ((pmap_unambiguous_overlaps_mv o JOIN best_annotation_mv qba ON ((o.q_pseq_id = qba.pseq_id))) JOIN best_annotation_mv tba ON ((o.t_pseq_id = tba.pseq_id))) WHERE ((tba.ann_pref <= qba.ann_pref) OR (qba.ann_pref IS NULL)) ORDER BY o.genasm_id, o.params_id, o.q_pseq_id, tba.ann_pref, (strpos(tba.alias, '_'::text) = 0), tba.alias; .DROP VIEW unison.pmap_locus_representative_v; unisonunisonfalse3056900 VIEW pmap_locus_representative_vCOMMENTCOMMENT ON VIEW pmap_locus_representative_v IS 'unambiguously "better" (lower ann_pref) sequence that overlaps query on genome'; unisonunisonfalse274600pmap_locus_representative_vACLREVOKE ALL ON TABLE pmap_locus_representative_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_locus_representative_v FROM unison; GRANT ALL ON TABLE pmap_locus_representative_v TO unison; GRANT SELECT ON TABLE pmap_locus_representative_v TO PUBLIC; unisonunisonfalse2746 1259309223pmap_mvTABLEMCREATE TABLE pmap_mv ( params_id integer, genasm_id integer, pseq_id integer, aln_id integer, pstart integer, pstop integer, exons bigint, aln_length bigint, pct_cov integer, ident integer, pct_ident integer, chr text, strand character(1), gstart integer, gstop integer ); DROP TABLE unison.pmap_mv; unisonunisonfalse900pmap_mvACLREVOKE ALL ON TABLE pmap_mv FROM PUBLIC; REVOKE ALL ON TABLE pmap_mv FROM unison; GRANT ALL ON TABLE pmap_mv TO unison; GRANT SELECT ON TABLE pmap_mv TO PUBLIC; unisonunisonfalse2747 1259309229 pmap_pfam_mvTABLEZCREATE TABLE pmap_pfam_mv ( pmap_params_id integer, genasm_id integer, aln_id integer, pstart integer, pstop integer, chr text, strand character(1), gstart integer, gstop integer, feature_type text, params_id integer, params_name text, pseq_id integer, start integer, stop integer, score integer, eval double precision, origin_id integer, origin text, pmodel_id integer, feature text, acc text, descr text, details text, digest text, link_url text, pfam_start integer, pfam_stop integer ); DROP TABLE unison.pmap_pfam_mv; unisonunisonfalse900 pmap_pfam_mvACLREVOKE ALL ON TABLE pmap_pfam_mv FROM PUBLIC; REVOKE ALL ON TABLE pmap_pfam_mv FROM unison; GRANT ALL ON TABLE pmap_pfam_mv TO unison; GRANT SELECT ON TABLE pmap_pfam_mv TO PUBLIC; unisonunisonfalse2748 1259309235pmap_unambiguous_mvTABLEYCREATE TABLE pmap_unambiguous_mv ( params_id integer, genasm_id integer, pseq_id integer, pct_cov integer, pct_ident integer, aln_id integer, pstart integer, pstop integer, exons bigint, aln_length bigint, ident integer, chr text, strand character(1), gstart integer, gstop integer ); 'DROP TABLE unison.pmap_unambiguous_mv; unisonunisonfalse900TABLE pmap_unambiguous_mvCOMMENTICOMMENT ON TABLE pmap_unambiguous_mv IS 'matview of pmap_unambiguous_v'; unisonunisonfalse274900pmap_unambiguous_mvACLREVOKE ALL ON TABLE pmap_unambiguous_mv FROM PUBLIC; REVOKE ALL ON TABLE pmap_unambiguous_mv FROM unison; GRANT ALL ON TABLE pmap_unambiguous_mv TO unison; GRANT SELECT ON TABLE pmap_unambiguous_mv TO PUBLIC; unisonunisonfalse2749 1259309241 pmap_pfam_vVIEWCREATE VIEW pmap_pfam_v AS SELECT g.params_id AS pmap_params_id, g.genasm_id, g.aln_id, g.pstart, g.pstop, g.chr, g.strand, g.gstart, g.gstop, f.feature_type, f.params_id, f.params_name, f.pseq_id, f.start, f.stop, f.score, f.eval, f.origin_id, f.origin, f.pmodel_id, f.feature, f.acc, f.descr, f.details, f.digest, f.link_url, (SELECT ((e.gstart + ((f.start - e.pstart) * 3)) - 1) FROM (pmap_alnhsp ah JOIN pmap_hsp e ON ((e.hsp_id = ah.hsp_id))) WHERE ((g.aln_id = ah.aln_id) AND ((f.start >= e.pstart) AND (f.start <= e.pstop)))) AS pfam_start, (SELECT ((e.gstart + ((f.stop - e.pstart) * 3)) - 1) FROM (pmap_alnhsp ah JOIN pmap_hsp e ON ((e.hsp_id = ah.hsp_id))) WHERE ((g.aln_id = ah.aln_id) AND ((f.stop >= e.pstart) AND (f.stop <= e.pstop)))) AS pfam_stop FROM (pseq_features_pfam_v f JOIN pmap_unambiguous_mv g ON ((g.pseq_id = f.pseq_id))) WHERE (g.params_id = (SELECT run.params_id FROM run WHERE (run.run_id = preferred_run_id_by_pftype('PMAP'::text)))) ORDER BY f.pseq_id, f.start; DROP VIEW unison.pmap_pfam_v; unisonunisonfalse3057900 pmap_pfam_vACLREVOKE ALL ON TABLE pmap_pfam_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_pfam_v FROM unison; GRANT ALL ON TABLE pmap_pfam_v TO unison; GRANT SELECT ON TABLE pmap_pfam_v TO PUBLIC; unisonunisonfalse2750.1255308589genasm_id(text)FUNCTION&CREATE FUNCTION genasm_id(text) RETURNS integer AS $_$ DECLARE V_id integer; BEGIN select into V_id genasm_id from genasm where upper(name)=upper($1); IF NOT FOUND THEN RAISE WARNING 'genasm % not found', $1; RETURN NULL; END IF; return V_id; END; $_$ LANGUAGE plpgsql; &DROP FUNCTION unison.genasm_id(text); unisonunisonfalse9129300FUNCTION genasm_id(text)COMMENTTCOMMENT ON FUNCTION genasm_id(text) IS 'returns genasm_id for a given genasm name'; unisonunisonfalse46 1259309246 pmap_tmhmm_vVIEWCREATE VIEW pmap_tmhmm_v AS SELECT g.params_id AS pmap_params_id, g.genasm_id, g.aln_id, g.pstart, g.pstop, g.chr, g.strand, g.gstart, g.gstop, f.pfeature_id, f.pseq_id, f.pftype_id, f.start, f.stop, f.params_id, f.type, (SELECT ((e.gstart + ((f.start - e.pstart) * 3)) - 1) FROM (pmap_alnhsp ah JOIN pmap_hsp e ON ((e.hsp_id = ah.hsp_id))) WHERE ((g.aln_id = ah.aln_id) AND ((f.start >= e.pstart) AND (f.start <= e.pstop)))) AS region_gstart, (SELECT ((e.gstart + ((f.stop - e.pstart) * 3)) - 1) FROM (pmap_alnhsp ah JOIN pmap_hsp e ON ((e.hsp_id = ah.hsp_id))) WHERE ((g.aln_id = ah.aln_id) AND ((f.stop >= e.pstart) AND (f.stop <= e.pstop)))) AS region_gstop FROM (pftmhmm f JOIN pmap_unambiguous_mv g ON ((g.pseq_id = f.pseq_id))) WHERE ((g.params_id = (SELECT run.params_id FROM run WHERE (run.run_id = preferred_run_id_by_pftype('PMAP'::text)))) AND (g.genasm_id = genasm_id('NHGD-36'::text))); DROP VIEW unison.pmap_tmhmm_v; unisonunisonfalse3058900 pmap_tmhmm_vACLREVOKE ALL ON TABLE pmap_tmhmm_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_tmhmm_v FROM unison; GRANT ALL ON TABLE pmap_tmhmm_v TO unison; GRANT SELECT ON TABLE pmap_tmhmm_v TO PUBLIC; unisonunisonfalse2751 1259309251pmap_unambiguous_overlaps_vVIEW.CREATE VIEW pmap_unambiguous_overlaps_v AS SELECT q.genasm_id, q.params_id, q.chr, q.strand, q.pseq_id AS q_pseq_id, q.gstart AS q_gstart, q.gstop AS q_gstop, t.pseq_id AS t_pseq_id, t.gstart AS t_gstart, t.gstop AS t_gstop FROM (pmap_unambiguous_mv q JOIN pmap_unambiguous_mv t ON (((((((q.params_id = t.params_id) AND (q.genasm_id = t.genasm_id)) AND (q.chr = t.chr)) AND (q.strand = t.strand)) AND (t.gstart <= q.gstop)) AND (t.gstop >= q.gstart)))) WHERE ((((q.pct_ident >= 90) AND (t.pct_ident >= 90)) AND (q.pct_cov >= 90)) AND (t.pct_cov >= 90)); .DROP VIEW unison.pmap_unambiguous_overlaps_v; unisonunisonfalse3059900pmap_unambiguous_overlaps_vACLREVOKE ALL ON TABLE pmap_unambiguous_overlaps_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_unambiguous_overlaps_v FROM unison; GRANT ALL ON TABLE pmap_unambiguous_overlaps_v TO unison; GRANT SELECT ON TABLE pmap_unambiguous_overlaps_v TO PUBLIC; unisonunisonfalse2752 1259309255pmap_unambiguous_vVIEWKCREATE VIEW pmap_unambiguous_v AS SELECT pmap_best_v.params_id, pmap_best_v.genasm_id, pmap_best_v.pseq_id, pmap_best_v.pct_cov, pmap_best_v.pct_ident, pmap_best_v.aln_id, pmap_best_v.pstart, pmap_best_v.pstop, pmap_best_v.exons, pmap_best_v.aln_length, pmap_best_v.ident, pmap_best_v.chr, pmap_best_v.strand, pmap_best_v.gstart, pmap_best_v.gstop FROM pmap_best_v GROUP BY pmap_best_v.params_id, pmap_best_v.genasm_id, pmap_best_v.pseq_id, pmap_best_v.aln_id, pmap_best_v.pct_cov, pmap_best_v.pct_ident, pmap_best_v.pstart, pmap_best_v.pstop, pmap_best_v.exons, pmap_best_v.aln_length, pmap_best_v.ident, pmap_best_v.chr, pmap_best_v.strand, pmap_best_v.gstart, pmap_best_v.gstop HAVING (count(DISTINCT (((((pmap_best_v.params_id)::text || '-'::text) || (pmap_best_v.genasm_id)::text) || '-'::text) || (pmap_best_v.pseq_id)::text)) = 1); %DROP VIEW unison.pmap_unambiguous_v; unisonunisonfalse3060900VIEW pmap_unambiguous_vCOMMENTECOMMENT ON VIEW pmap_unambiguous_v IS 'unambiguous pmap alignments'; unisonunisonfalse275300pmap_unambiguous_vACLREVOKE ALL ON TABLE pmap_unambiguous_v FROM PUBLIC; REVOKE ALL ON TABLE pmap_unambiguous_v FROM unison; GRANT ALL ON TABLE pmap_unambiguous_v TO unison; GRANT SELECT ON TABLE pmap_unambiguous_v TO PUBLIC; unisonunisonfalse2753 1259309259 pmodel2goTABLEtCREATE TABLE pmodel2go ( pmodel_id integer NOT NULL, go_id integer NOT NULL, reference text NOT NULL ); DROP TABLE unison.pmodel2go; unisonunisonfalse900TABLE pmodel2goCOMMENTFCOMMENT ON TABLE pmodel2go IS 'GO assignments to models; see gong.*'; unisonunisonfalse275400COLUMN pmodel2go.pmodel_idCOMMENTLCOMMENT ON COLUMN pmodel2go.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse275400 pmodel2goACLREVOKE ALL ON TABLE pmodel2go FROM PUBLIC; REVOKE ALL ON TABLE pmodel2go FROM unison; GRANT ALL ON TABLE pmodel2go TO unison; GRANT SELECT ON TABLE pmodel2go TO PUBLIC; unisonunisonfalse2754 1259307843pmsm_pmprospectTABLE2CREATE TABLE pmsm_pmprospect ( ) INHERITS (pmsm); #DROP TABLE unison.pmsm_pmprospect; unisonunisonfalse2480900TABLE pmsm_pmprospectCOMMENT[COMMENT ON TABLE pmsm_pmprospect IS 'pmsm for pmprospect (inherits from pmsm, which see)'; unisonunisonfalse248100#COLUMN pmsm_pmprospect.pmodelset_idCOMMENTqCOMMENT ON COLUMN pmsm_pmprospect.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse248100 COLUMN pmsm_pmprospect.pmodel_idCOMMENTRCOMMENT ON COLUMN pmsm_pmprospect.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse248100pmsm_pmprospectACLREVOKE ALL ON TABLE pmsm_pmprospect FROM PUBLIC; REVOKE ALL ON TABLE pmsm_pmprospect FROM unison; GRANT ALL ON TABLE pmsm_pmprospect TO unison; GRANT SELECT ON TABLE pmsm_pmprospect TO PUBLIC; unisonunisonfalse2481 1259309265 pmsm_pmpssmTABLE.CREATE TABLE pmsm_pmpssm ( ) INHERITS (pmsm); DROP TABLE unison.pmsm_pmpssm; unisonunisonfalse9248000TABLE pmsm_pmpssmCOMMENTSCOMMENT ON TABLE pmsm_pmpssm IS 'pmsm for pmpssm (inherits from pmsm, which see)'; unisonunisonfalse275500COLUMN pmsm_pmpssm.pmodelset_idCOMMENTmCOMMENT ON COLUMN pmsm_pmpssm.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse275500COLUMN pmsm_pmpssm.pmodel_idCOMMENTNCOMMENT ON COLUMN pmsm_pmpssm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse275500 pmsm_pmpssmACLREVOKE ALL ON TABLE pmsm_pmpssm FROM PUBLIC; REVOKE ALL ON TABLE pmsm_pmpssm FROM unison; GRANT ALL ON TABLE pmsm_pmpssm TO unison; GRANT SELECT ON TABLE pmsm_pmpssm TO PUBLIC; unisonunisonfalse2755 1259309268pmodelset_summary_vVIEWCREATE VIEW pmodelset_summary_v AS SELECT ms.pmodelset_id, ms.name, (SELECT count(*) AS count FROM pmsm_pmhmm msm WHERE (msm.pmodelset_id = ms.pmodelset_id)) AS hmms, (SELECT count(*) AS count FROM pmsm_pmpssm msm WHERE (msm.pmodelset_id = ms.pmodelset_id)) AS pssms, (SELECT count(*) AS count FROM pmsm_pmprospect msm WHERE (msm.pmodelset_id = ms.pmodelset_id)) AS templates FROM pmodelset ms ORDER BY ms.pmodelset_id; &DROP VIEW unison.pmodelset_summary_v; unisonunisonfalse3061900VIEW pmodelset_summary_vCOMMENTwCOMMENT ON VIEW pmodelset_summary_v IS 'summary of modelsets and # of models for hmms, pssms, and prospect templates'; unisonunisonfalse275600'COLUMN pmodelset_summary_v.pmodelset_idCOMMENTuCOMMENT ON COLUMN pmodelset_summary_v.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse275600COLUMN pmodelset_summary_v.nameCOMMENT?COMMENT ON COLUMN pmodelset_summary_v.name IS 'modelset name'; unisonunisonfalse275600pmodelset_summary_vACLREVOKE ALL ON TABLE pmodelset_summary_v FROM PUBLIC; REVOKE ALL ON TABLE pmodelset_summary_v FROM unison; GRANT ALL ON TABLE pmodelset_summary_v TO unison; GRANT SELECT ON TABLE pmodelset_summary_v TO PUBLIC; unisonunisonfalse2756 1259309272pmodelsetsummaryVIEWCREATE VIEW pmodelsetsummary AS SELECT count(pmsm.pmodel_id) AS count, pmodelset.pmodelset_id, pmodelset.name FROM (pmodelset NATURAL LEFT JOIN pmsm) GROUP BY pmodelset.pmodelset_id, pmodelset.name ORDER BY pmodelset.pmodelset_id; #DROP VIEW unison.pmodelsetsummary; unisonunisonfalse3062900$COLUMN pmodelsetsummary.pmodelset_idCOMMENTrCOMMENT ON COLUMN pmodelsetsummary.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse275700COLUMN pmodelsetsummary.nameCOMMENT<COMMENT ON COLUMN pmodelsetsummary.name IS 'modelset name'; unisonunisonfalse275700pmodelsetsummaryACLREVOKE ALL ON TABLE pmodelsetsummary FROM PUBLIC; REVOKE ALL ON TABLE pmodelsetsummary FROM unison; GRANT ALL ON TABLE pmodelsetsummary TO unison; GRANT INSERT,UPDATE ON TABLE pmodelsetsummary TO loader; GRANT SELECT ON TABLE pmodelsetsummary TO PUBLIC; unisonunisonfalse2757 1259309276pmpssmTABLEJCREATE TABLE pmpssm ( md5 character(32) NOT NULL ) INHERITS (pmodel); DROP TABLE unison.pmpssm; unisonunisonfalse3476347734782484900 TABLE pmpssmCOMMENThCOMMENT ON TABLE pmpssm IS 'Position Specific Scoring Matrix models (e.g., structure based profiles) '; unisonunisonfalse275800COLUMN pmpssm.pmodel_idCOMMENTICOMMENT ON COLUMN pmpssm.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse275800COLUMN pmpssm.origin_idCOMMENTTCOMMENT ON COLUMN pmpssm.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse275800COLUMN pmpssm.accCOMMENTHCOMMENT ON COLUMN pmpssm.acc IS 'model accession from source database'; unisonunisonfalse275800COLUMN pmpssm.addedCOMMENT@COMMENT ON COLUMN pmpssm.added IS 'when this data was created'; unisonunisonfalse275800COLUMN pmpssm.descrCOMMENT6COMMENT ON COLUMN pmpssm.descr IS 'PSSM description'; unisonunisonfalse275800pmpssmACLREVOKE ALL ON TABLE pmpssm FROM PUBLIC; REVOKE ALL ON TABLE pmpssm FROM unison; GRANT ALL ON TABLE pmpssm TO unison; GRANT INSERT,UPDATE ON TABLE pmpssm TO loader; GRANT SELECT ON TABLE pmpssm TO PUBLIC; unisonunisonfalse2758 1259309284 pmsm_pmhmm_vVIEW>CREATE VIEW pmsm_pmhmm_v AS SELECT ms.name AS modelset, ms.pmodelset_id, m.origin_id, o.origin, m.pmodel_id, m.acc, m.name, m.descr FROM (((pmsm_pmhmm msm JOIN pmodelset ms ON ((msm.pmodelset_id = ms.pmodelset_id))) JOIN pmhmm m ON ((msm.pmodel_id = m.pmodel_id))) JOIN origin o ON ((m.origin_id = o.origin_id))); DROP VIEW unison.pmsm_pmhmm_v; unisonunisonfalse3063900VIEW pmsm_pmhmm_vCOMMENTXCOMMENT ON VIEW pmsm_pmhmm_v IS 'HMMs in modelsets, with set, model, and origin names'; unisonunisonfalse275900 pmsm_pmhmm_vACLREVOKE ALL ON TABLE pmsm_pmhmm_v FROM PUBLIC; REVOKE ALL ON TABLE pmsm_pmhmm_v FROM unison; GRANT ALL ON TABLE pmsm_pmhmm_v TO unison; GRANT SELECT ON TABLE pmsm_pmhmm_v TO PUBLIC; unisonunisonfalse2759 1259308142 pmsm_pmregexpTABLE0CREATE TABLE pmsm_pmregexp ( ) INHERITS (pmsm); !DROP TABLE unison.pmsm_pmregexp; unisonunisonfalse2480900TABLE pmsm_pmregexpCOMMENTWCOMMENT ON TABLE pmsm_pmregexp IS 'pmsm for pmregexp (inherits from pmsm, which see)'; unisonunisonfalse253300!COLUMN pmsm_pmregexp.pmodelset_idCOMMENToCOMMENT ON COLUMN pmsm_pmregexp.pmodelset_id IS 'protein model set identifier -- see pmodelset(pmodelset_id)'; unisonunisonfalse253300COLUMN pmsm_pmregexp.pmodel_idCOMMENTPCOMMENT ON COLUMN pmsm_pmregexp.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse253300 pmsm_pmregexpACLREVOKE ALL ON TABLE pmsm_pmregexp FROM PUBLIC; REVOKE ALL ON TABLE pmsm_pmregexp FROM unison; GRANT ALL ON TABLE pmsm_pmregexp TO unison; GRANT SELECT ON TABLE pmsm_pmregexp TO PUBLIC; unisonunisonfalse2533 1259309289pnoteTABLECREATE TABLE pnote ( pseq_id integer NOT NULL, added timestamp with time zone DEFAULT timenow() NOT NULL, login text DEFAULT "current_user"() NOT NULL, note text NOT NULL ); DROP TABLE unison.pnote; unisonunisonfalse34793480900 TABLE pnoteCOMMENT@COMMENT ON TABLE pnote IS 'user-added notations for sequences'; unisonunisonfalse276000COLUMN pnote.pseq_idCOMMENT^COMMENT ON COLUMN pnote.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse276000COLUMN pnote.addedCOMMENT?COMMENT ON COLUMN pnote.added IS 'when this data was created'; unisonunisonfalse276000pnoteACLREVOKE ALL ON TABLE pnote FROM PUBLIC; REVOKE ALL ON TABLE pnote FROM unison; GRANT ALL ON TABLE pnote TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE pnote TO loader; GRANT SELECT,INSERT ON TABLE pnote TO PUBLIC; unisonunisonfalse2760 1259309297poriginVIEWCREATE VIEW porigin AS SELECT origin.origin_id, origin.origin, origin.url, origin.descr, origin.ann_pref, origin.last_updated, origin.data_url, origin.is_public, origin.link_url, origin.version FROM origin; DROP VIEW unison.porigin; unisonunisonfalse3064900poriginACLREVOKE ALL ON TABLE porigin FROM PUBLIC; REVOKE ALL ON TABLE porigin FROM unison; GRANT ALL ON TABLE porigin TO unison; GRANT SELECT ON TABLE porigin TO PUBLIC; unisonunisonfalse276141255308687seq_len(integer)FUNCTIONCREATE FUNCTION seq_len(q integer, OUT len integer) RETURNS integer AS $_$select len from unison.pseq where pseq_id=$1$_$ LANGUAGE sql IMMUTABLE STRICT; :DROP FUNCTION unison.seq_len(q integer, OUT len integer); unisonunisonfalse9M 1259308688 psdisorderTABLECREATE TABLE psdisorder ( pseq_id integer NOT NULL, params_id integer NOT NULL, probs real[] NOT NULL, CONSTRAINT prob_vector_seq_size_mismatch CHECK (((array_lower(probs, 1) = 1) AND (array_upper(probs, 1) = seq_len(pseq_id)))) ); DROP TABLE unison.psdisorder; unisonunisonfalse3425900 psdisorderACLREVOKE ALL ON TABLE psdisorder FROM PUBLIC; REVOKE ALL ON TABLE psdisorder FROM unison; GRANT ALL ON TABLE psdisorder TO unison; GRANT INSERT ON TABLE psdisorder TO loader; GRANT SELECT ON TABLE psdisorder TO PUBLIC; unisonunisonfalse2637 1259309301pseq2goTABLECREATE TABLE pseq2go ( pseq_id integer NOT NULL, go_id integer NOT NULL, reference text NOT NULL, evidence text NOT NULL, origin_id integer ); DROP TABLE unison.pseq2go; unisonunisonfalse900 TABLE pseq2goCOMMENTOCOMMENT ON TABLE pseq2go IS 'GO sequence assignments; see also gong.* tables'; unisonunisonfalse276200COLUMN pseq2go.pseq_idCOMMENT=COMMENT ON COLUMN pseq2go.pseq_id IS 'fk into pseq.pseq_id'; unisonunisonfalse276200COLUMN pseq2go.go_idCOMMENT?COMMENT ON COLUMN pseq2go.go_id IS 'GO id, fk into gong.node'; unisonunisonfalse276200COLUMN pseq2go.referenceCOMMENTJCOMMENT ON COLUMN pseq2go.reference IS 'how this GO assignment was made'; unisonunisonfalse276200COLUMN pseq2go.evidenceCOMMENT:COMMENT ON COLUMN pseq2go.evidence IS 'GO evidence code'; unisonunisonfalse276200COLUMN pseq2go.origin_idCOMMENTUCOMMENT ON COLUMN pseq2go.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse276200pseq2goACLREVOKE ALL ON TABLE pseq2go FROM PUBLIC; REVOKE ALL ON TABLE pseq2go FROM unison; GRANT ALL ON TABLE pseq2go TO unison; GRANT SELECT ON TABLE pseq2go TO PUBLIC; unisonunisonfalse2762? 1259308611 cytoband_hg18TABLECREATE TABLE cytoband_hg18 ( chr text NOT NULL, gstart integer NOT NULL, gstop integer NOT NULL, band text NOT NULL, stain text NOT NULL, genasm_id integer ); %DROP TABLE unison_aux.cytoband_hg18;  unison_auxunisonfalse1200TABLE cytoband_hg18COMMENTNCOMMENT ON TABLE cytoband_hg18 IS 'Cytobands on human chromosomes from ucsc';  unison_auxunisonfalse262300COLUMN cytoband_hg18.chrCOMMENTJCOMMENT ON COLUMN cytoband_hg18.chr IS 'chromosome (e.g. 1..22,M,U,X,Y)';  unison_auxunisonfalse262300COLUMN cytoband_hg18.gstartCOMMENTiCOMMENT ON COLUMN cytoband_hg18.gstart IS 'start of band on genome (1-based, +1 frame, gstop > gstart)';  unison_auxunisonfalse262300COLUMN cytoband_hg18.gstopCOMMENTgCOMMENT ON COLUMN cytoband_hg18.gstop IS 'stop of band on genome (1-based, +1 frame, gstop > gstart)';  unison_auxunisonfalse262300COLUMN cytoband_hg18.bandCOMMENT@COMMENT ON COLUMN cytoband_hg18.band IS 'name of the cytoband';  unison_auxunisonfalse262300COLUMN cytoband_hg18.stainCOMMENT6COMMENT ON COLUMN cytoband_hg18.stain IS 'gie stain';  unison_auxunisonfalse262300 cytoband_hg18ACLREVOKE ALL ON TABLE cytoband_hg18 FROM PUBLIC; REVOKE ALL ON TABLE cytoband_hg18 FROM unison; GRANT ALL ON TABLE cytoband_hg18 TO unison; GRANT SELECT ON TABLE cytoband_hg18 TO PUBLIC;  unison_auxunisonfalse2623@ 1259308617pseq_cytoband_vVIEWCREATE VIEW pseq_cytoband_v AS SELECT p.params_id, p.pseq_id, p.chr, c.band, c.stain FROM (pmap_v p JOIN unison_aux.cytoband_hg18 c ON ((c.chr = ('chr'::text || p.chr)))) WHERE (((p.genasm_id = genasm_id('NHGD-36'::text)) AND (p.gstart >= c.gstart)) AND (p.gstop <= c.gstop)); "DROP VIEW unison.pseq_cytoband_v; unisonunisonfalse2981900pseq_cytoband_vACLREVOKE ALL ON TABLE pseq_cytoband_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_cytoband_v FROM unison; GRANT ALL ON TABLE pseq_cytoband_v TO unison; GRANT SELECT ON TABLE pseq_cytoband_v TO PUBLIC; unisonunisonfalse262481255308232+domain_digest(integer, integer, text, text)FUNCTIONCREATE FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text) RETURNS text AS $$BEGIN SELECT INTO digest name || '(' || pstart || '-' || pstop || COALESCE(';'||NULLIF(note,''),'') || ')'; END;$$ LANGUAGE plpgsql IMMUTABLE STRICT; jDROP FUNCTION unison.domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text); unisonunisonfalse1293900\FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text)COMMENTCOMMENT ON FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text) IS 'formatted domain summary, like start-stop:domain(note)'; unisonunisonfalse5600+domain_digest(integer, integer, text, text)ACLREVOKE ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text) FROM PUBLIC; REVOKE ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text) FROM unison; GRANT ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text) TO unison; GRANT ALL ON FUNCTION domain_digest(pstart integer, pstop integer, name text, note text, OUT digest text) TO PUBLIC; unisonunisonfalse56 1259309307pseq_features_bigpi_vVIEWRCREATE VIEW pseq_features_bigpi_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, f.score, (f.pvalue)::double precision AS eval, NULL::integer AS origin_id, NULL::text AS origin, NULL::integer AS pmodel_id, 'GPI Anchor'::text AS feature, NULL::text AS acc, NULL::text AS descr, ((('site='::text || (f.site_no)::text) || '; quality='::text) || (f.quality)::text) AS details, domain_digest(f.start, f.stop, 'GPI'::text, (f.quality)::text) AS digest, NULL::text AS link_url FROM (((pfbigpi f JOIN params p ON ((f.params_id = p.params_id))) JOIN run r ON ((r.params_id = p.params_id))) JOIN pftype ft ON ((ft.preferred_run_id = r.run_id))) WHERE ((ft.name = 'BIG-PI'::text) AND ((((f.quality = 'A'::bpchar) OR (f.quality = 'B'::bpchar)) OR (f.quality = 'C'::bpchar)) OR (f.quality = 'D'::bpchar))); (DROP VIEW unison.pseq_features_bigpi_v; unisonunisonfalse3065900VIEW pseq_features_bigpi_vCOMMENTOCOMMENT ON VIEW pseq_features_bigpi_v IS 'current Big-PI neural net features'; unisonunisonfalse276300)COLUMN pseq_features_bigpi_v.feature_typeCOMMENT`COMMENT ON COLUMN pseq_features_bigpi_v.feature_type IS 'type of features (always ''BIG-PI'')'; unisonunisonfalse276300&COLUMN pseq_features_bigpi_v.params_idCOMMENTjCOMMENT ON COLUMN pseq_features_bigpi_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse276300(COLUMN pseq_features_bigpi_v.params_nameCOMMENTaCOMMENT ON COLUMN pseq_features_bigpi_v.params_name IS 'parameter set name -- see params(name)'; unisonunisonfalse276300$COLUMN pseq_features_bigpi_v.pseq_idCOMMENTnCOMMENT ON COLUMN pseq_features_bigpi_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse276300"COLUMN pseq_features_bigpi_v.startCOMMENT\COMMENT ON COLUMN pseq_features_bigpi_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse276300!COLUMN pseq_features_bigpi_v.stopCOMMENTZCOMMENT ON COLUMN pseq_features_bigpi_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse276300"COLUMN pseq_features_bigpi_v.scoreCOMMENTMCOMMENT ON COLUMN pseq_features_bigpi_v.score IS 'algorithm-specific score'; unisonunisonfalse276300!COLUMN pseq_features_bigpi_v.evalCOMMENTECOMMENT ON COLUMN pseq_features_bigpi_v.eval IS 'expectation value'; unisonunisonfalse276300&COLUMN pseq_features_bigpi_v.pmodel_idCOMMENTXCOMMENT ON COLUMN pseq_features_bigpi_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse276300$COLUMN pseq_features_bigpi_v.featureCOMMENT^COMMENT ON COLUMN pseq_features_bigpi_v.feature IS 'name of feature (always ''GPI Anchor'')'; unisonunisonfalse276300"COLUMN pseq_features_bigpi_v.descrCOMMENT;COMMENT ON COLUMN pseq_features_bigpi_v.descr IS 'unused'; unisonunisonfalse276300$COLUMN pseq_features_bigpi_v.detailsCOMMENTICOMMENT ON COLUMN pseq_features_bigpi_v.details IS 'prediction details'; unisonunisonfalse276300%COLUMN pseq_features_bigpi_v.link_urlCOMMENTJCOMMENT ON COLUMN pseq_features_bigpi_v.link_url IS 'URL to source data'; unisonunisonfalse276300pseq_features_bigpi_vACL REVOKE ALL ON TABLE pseq_features_bigpi_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_bigpi_v FROM unison; GRANT ALL ON TABLE pseq_features_bigpi_v TO unison; GRANT ALL ON TABLE pseq_features_bigpi_v TO rkh; GRANT SELECT ON TABLE pseq_features_bigpi_v TO PUBLIC; unisonunisonfalse2763L 1259308682pseq_features_hmm_vVIEWCREATE VIEW pseq_features_hmm_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, f.score, f.eval, m.origin_id, o.origin, f.pmodel_id, m.name AS feature, m.acc, m.descr, NULL::text AS details, domain_digest(f.start, f.stop, m.name, f.score, f.eval) AS digest, link_url(m.origin_id, m.acc) AS link_url FROM (((((pahmm f JOIN pmhmm m ON ((f.pmodel_id = m.pmodel_id))) JOIN origin o ON ((m.origin_id = o.origin_id))) JOIN params p ON ((f.params_id = p.params_id))) JOIN run r ON ((r.params_id = p.params_id))) JOIN pftype ft ON ((ft.preferred_run_id = r.run_id))) WHERE (((ft.name = 'HMM'::text) AND (m.is_current IS TRUE)) AND (f.eval < (1)::double precision)); &DROP VIEW unison.pseq_features_hmm_v; unisonunisonfalse2987900VIEW pseq_features_hmm_vCOMMENT?COMMENT ON VIEW pseq_features_hmm_v IS 'current HMM features'; unisonunisonfalse263600'COLUMN pseq_features_hmm_v.feature_typeCOMMENT[COMMENT ON COLUMN pseq_features_hmm_v.feature_type IS 'type of features (always ''HMM'')'; unisonunisonfalse263600$COLUMN pseq_features_hmm_v.params_idCOMMENThCOMMENT ON COLUMN pseq_features_hmm_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse263600&COLUMN pseq_features_hmm_v.params_nameCOMMENT_COMMENT ON COLUMN pseq_features_hmm_v.params_name IS 'parameter set name -- see params(name)'; unisonunisonfalse263600"COLUMN pseq_features_hmm_v.pseq_idCOMMENTlCOMMENT ON COLUMN pseq_features_hmm_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse263600 COLUMN pseq_features_hmm_v.startCOMMENTZCOMMENT ON COLUMN pseq_features_hmm_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse263600COLUMN pseq_features_hmm_v.stopCOMMENTXCOMMENT ON COLUMN pseq_features_hmm_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse263600 COLUMN pseq_features_hmm_v.scoreCOMMENTKCOMMENT ON COLUMN pseq_features_hmm_v.score IS 'algorithm-specific score'; unisonunisonfalse263600COLUMN pseq_features_hmm_v.evalCOMMENTCCOMMENT ON COLUMN pseq_features_hmm_v.eval IS 'expectation value'; unisonunisonfalse263600$COLUMN pseq_features_hmm_v.pmodel_idCOMMENTVCOMMENT ON COLUMN pseq_features_hmm_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse263600"COLUMN pseq_features_hmm_v.featureCOMMENTPCOMMENT ON COLUMN pseq_features_hmm_v.feature IS 'name of feature (Pfam name)'; unisonunisonfalse263600 COLUMN pseq_features_hmm_v.descrCOMMENTBCOMMENT ON COLUMN pseq_features_hmm_v.descr IS 'HMM description'; unisonunisonfalse263600"COLUMN pseq_features_hmm_v.detailsCOMMENTGCOMMENT ON COLUMN pseq_features_hmm_v.details IS 'prediction details'; unisonunisonfalse263600#COLUMN pseq_features_hmm_v.link_urlCOMMENTHCOMMENT ON COLUMN pseq_features_hmm_v.link_url IS 'URL to source data'; unisonunisonfalse263600pseq_features_hmm_vACLREVOKE ALL ON TABLE pseq_features_hmm_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_hmm_v FROM unison; GRANT ALL ON TABLE pseq_features_hmm_v TO unison; GRANT ALL ON TABLE pseq_features_hmm_v TO rkh; GRANT SELECT ON TABLE pseq_features_hmm_v TO PUBLIC; unisonunisonfalse2636<1255309312aa_1_to_3(text)FUNCTIONzCREATE FUNCTION aa_1_to_3(text) RETURNS text AS $_$ select case $1 when 'A' then 'Ala' when 'B' then 'Bas' when 'C' then 'Cys' when 'D' then 'Asp' when 'E' then 'Glu' when 'F' then 'Phe' when 'G' then 'Gly' when 'H' then 'His' when 'I' then 'Iso' when 'K' then 'Lys' when 'L' then 'Leu' when 'M' then 'Met' when 'N' then 'Asn' when 'P' then 'Pro' when 'Q' then 'Gln' when 'R' then 'Arg' when 'S' then 'Ser' when 'T' then 'Thr' when 'V' then 'Val' when 'W' then 'Trp' when 'X' then 'Any' when 'Y' then 'Tyr' when 'Z' then 'Aci' -- when '*' then 'Stp' else '???' end; $_$ LANGUAGE sql IMMUTABLE STRICT; &DROP FUNCTION unison.aa_1_to_3(text); unisonunisonfalse900aa_1_to_3(text)ACLREVOKE ALL ON FUNCTION aa_1_to_3(text) FROM PUBLIC; REVOKE ALL ON FUNCTION aa_1_to_3(text) FROM unison; GRANT ALL ON FUNCTION aa_1_to_3(text) TO unison; GRANT ALL ON FUNCTION aa_1_to_3(text) TO PUBLIC; unisonunisonfalse60=1255309313"domain_digest(integer, text, text)FUNCTIONCREATE FUNCTION domain_digest(pstart integer, name text, note text, OUT digest text) RETURNS text AS $$BEGIN SELECT INTO digest name || '(' || pstart || COALESCE(';'||NULLIF(note,''),'') || ')'; END;$$ LANGUAGE plpgsql IMMUTABLE; [DROP FUNCTION unison.domain_digest(pstart integer, name text, note text, OUT digest text); unisonunisonfalse1293900MFUNCTION domain_digest(pstart integer, name text, note text, OUT digest text)COMMENTCOMMENT ON FUNCTION domain_digest(pstart integer, name text, note text, OUT digest text) IS 'formatted domain summary, like start:domain(note)'; unisonunisonfalse6100"domain_digest(integer, text, text)ACLREVOKE ALL ON FUNCTION domain_digest(pstart integer, name text, note text, OUT digest text) FROM PUBLIC; REVOKE ALL ON FUNCTION domain_digest(pstart integer, name text, note text, OUT digest text) FROM unison; GRANT ALL ON FUNCTION domain_digest(pstart integer, name text, note text, OUT digest text) TO unison; GRANT ALL ON FUNCTION domain_digest(pstart integer, name text, note text, OUT digest text) TO PUBLIC; unisonunisonfalse61 1259309314pseq_features_netphos_vVIEWCREATE VIEW pseq_features_netphos_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.pos AS start, f.pos AS stop, f.max_prob AS score, NULL::double precision AS eval, NULL::integer AS origin_id, NULL::text AS origin, NULL::integer AS pmodel_id, ('p'::text || aa_1_to_3(substr(q.seq, f.pos, 1))) AS feature, NULL::text AS acc, ((('predicted phospho-'::text || aa_1_to_3(substr(q.seq, f.pos, 1))) || '; '::text) || f.kinases) AS descr, NULL::text AS details, domain_digest(f.pos, ('p'::text || aa_1_to_3(substr(q.seq, f.pos, 1))), (f.max_prob)::text) AS digest, NULL::text AS link_url FROM ((((pfnetphos_site_predictions_v f JOIN pseq q ON ((f.pseq_id = q.pseq_id))) JOIN params p ON ((f.params_id = p.params_id))) JOIN run r ON ((r.params_id = p.params_id))) JOIN pftype ft ON ((ft.preferred_run_id = r.run_id))) WHERE ((ft.name = 'netphos'::text) AND (f.max_prob >= (0.5)::double precision)); *DROP VIEW unison.pseq_features_netphos_v; unisonunisonfalse3066900pseq_features_netphos_vACLREVOKE ALL ON TABLE pseq_features_netphos_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_netphos_v FROM unison; GRANT ALL ON TABLE pseq_features_netphos_v TO unison; GRANT SELECT ON TABLE pseq_features_netphos_v TO PUBLIC; unisonunisonfalse2764 1259309319pseq_features_prosite_vVIEW1CREATE VIEW pseq_features_prosite_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, NULL::smallint AS score, NULL::double precision AS eval, m.origin_id, o.origin, f.pmodel_id, m.name AS feature, m.acc, m.descr, NULL::text AS details, domain_digest(f.start, f.stop, m.name, NULL::text) AS digest, link_url(m.origin_id, m.acc) AS link_url FROM ((((((pfregexp f JOIN pmregexp m ON ((f.pmodel_id = m.pmodel_id))) JOIN pmsm_pmregexp ms ON ((ms.pmodel_id = m.pmodel_id))) JOIN origin o ON ((m.origin_id = o.origin_id))) JOIN params p ON ((f.params_id = p.params_id))) JOIN pftype ft ON ((p.pftype_id = ft.pftype_id))) JOIN run r ON (((r.params_id = f.params_id) AND (r.pmodelset_id = ms.pmodelset_id)))) WHERE (r.run_id = preferred_run_id_by_pftype('regexp'::text)); *DROP VIEW unison.pseq_features_prosite_v; unisonunisonfalse3067900pseq_features_prosite_vACLREVOKE ALL ON TABLE pseq_features_prosite_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_prosite_v FROM unison; GRANT ALL ON TABLE pseq_features_prosite_v TO unison; GRANT SELECT ON TABLE pseq_features_prosite_v TO PUBLIC; unisonunisonfalse2765 1259309324pseq_features_regexp_vVIEWCREATE VIEW pseq_features_regexp_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, NULL::smallint AS score, NULL::double precision AS eval, m.origin_id, o.origin, f.pmodel_id, m.name AS feature, m.acc, m.descr, NULL::text AS details, domain_digest(f.start, f.stop, m.name, NULL::text) AS digest, link_url(m.origin_id, m.acc) AS link_url FROM (((((pfregexp f JOIN pmregexp m ON ((f.pmodel_id = m.pmodel_id))) JOIN origin o ON ((m.origin_id = o.origin_id))) JOIN params p ON ((f.params_id = p.params_id))) JOIN run r ON ((r.params_id = p.params_id))) JOIN pftype ft ON ((ft.preferred_run_id = r.run_id))) WHERE (ft.name = 'regexp'::text); )DROP VIEW unison.pseq_features_regexp_v; unisonunisonfalse3068900VIEW pseq_features_regexp_vCOMMENTQCOMMENT ON VIEW pseq_features_regexp_v IS 'current regular expression features'; unisonunisonfalse276600*COLUMN pseq_features_regexp_v.feature_typeCOMMENTaCOMMENT ON COLUMN pseq_features_regexp_v.feature_type IS 'type of features (always ''regexp'')'; unisonunisonfalse276600'COLUMN pseq_features_regexp_v.params_idCOMMENTkCOMMENT ON COLUMN pseq_features_regexp_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse276600)COLUMN pseq_features_regexp_v.params_nameCOMMENTbCOMMENT ON COLUMN pseq_features_regexp_v.params_name IS 'parameter set name -- see params(name)'; unisonunisonfalse2766 00%COLUMN pseq_features_regexp_v.pseq_idCOMMENToCOMMENT ON COLUMN pseq_features_regexp_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2766 00#COLUMN pseq_features_regexp_v.startCOMMENT]COMMENT ON COLUMN pseq_features_regexp_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse2766 00"COLUMN pseq_features_regexp_v.stopCOMMENT[COMMENT ON COLUMN pseq_features_regexp_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2766 00#COLUMN pseq_features_regexp_v.scoreCOMMENTNCOMMENT ON COLUMN pseq_features_regexp_v.score IS 'algorithm-specific score'; unisonunisonfalse2766 00"COLUMN pseq_features_regexp_v.evalCOMMENTFCOMMENT ON COLUMN pseq_features_regexp_v.eval IS 'expectation value'; unisonunisonfalse276600'COLUMN pseq_features_regexp_v.pmodel_idCOMMENTYCOMMENT ON COLUMN pseq_features_regexp_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse276600%COLUMN pseq_features_regexp_v.featureCOMMENTTCOMMENT ON COLUMN pseq_features_regexp_v.feature IS 'name of feature (motif name)'; unisonunisonfalse276600#COLUMN pseq_features_regexp_v.descrCOMMENTGCOMMENT ON COLUMN pseq_features_regexp_v.descr IS 'motif description'; unisonunisonfalse276600%COLUMN pseq_features_regexp_v.detailsCOMMENTJCOMMENT ON COLUMN pseq_features_regexp_v.details IS 'prediction details'; unisonunisonfalse276600&COLUMN pseq_features_regexp_v.link_urlCOMMENTKCOMMENT ON COLUMN pseq_features_regexp_v.link_url IS 'URL to source data'; unisonunisonfalse276600pseq_features_regexp_vACLREVOKE ALL ON TABLE pseq_features_regexp_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_regexp_v FROM unison; GRANT ALL ON TABLE pseq_features_regexp_v TO unison; GRANT ALL ON TABLE pseq_features_regexp_v TO rkh; GRANT SELECT ON TABLE pseq_features_regexp_v TO PUBLIC; unisonunisonfalse2766;1255309329pdb_seq_pos(text, text)FUNCTION/CREATE FUNCTION pdb_seq_pos(text, text) RETURNS integer AS $_$DECLARE V_id text; BEGIN select into V_id seq_pos from pdb.residue where pdbc=$1 and res_id=$2; IF NOT FOUND THEN RAISE WARNING 'pdbc ''%'' res_id ''%'' not found', $1,$2; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql; .DROP FUNCTION unison.pdb_seq_pos(text, text); unisonunisonfalse9129300pdb_seq_pos(text, text)ACLREVOKE ALL ON FUNCTION pdb_seq_pos(text, text) FROM PUBLIC; REVOKE ALL ON FUNCTION pdb_seq_pos(text, text) FROM unison; GRANT ALL ON FUNCTION pdb_seq_pos(text, text) TO unison; GRANT ALL ON FUNCTION pdb_seq_pos(text, text) TO PUBLIC; unisonunisonfalse59 1259309330scop_vVIEWCREATE VIEW scop_v AS SELECT c.sid, c.pdb, c.sccs AS scop_id, e.descr AS species, d.descr AS domain, f.descr AS family, s.descr AS superfamily, fo.descr AS fold, cl.descr AS class, dom.chain, dom.start, dom.stop FROM (((((((scop.cla c JOIN scop.des f ON ((c.fa = f.sunid))) JOIN scop.des s ON ((c.sf = s.sunid))) JOIN scop.des d ON ((c.dm = d.sunid))) JOIN scop.des e ON ((c.sp = e.sunid))) JOIN scop.des fo ON ((c.cf = fo.sunid))) JOIN scop.des cl ON ((c.cl = cl.sunid))) JOIN scop.dom dom ON ((dom.sid = c.sid))); DROP VIEW unison.scop_v; unisonunisonfalse3069900scop_vACLREVOKE ALL ON TABLE scop_v FROM PUBLIC; REVOKE ALL ON TABLE scop_v FROM unison; GRANT ALL ON TABLE scop_v TO unison; GRANT SELECT ON TABLE scop_v TO PUBLIC; unisonunisonfalse2767 1259309335pseq_features_scop_vVIEWCREATE VIEW pseq_features_scop_v AS SELECT 'SCOP'::text AS feature_type, NULL::integer AS params_id, NULL::text AS params_name, a.q_pseq_id AS pseq_id, (SELECT CASE WHEN (b.start IS NOT NULL) THEN (a.q_start + int4larger(0, (pdb_seq_pos(a.pdbc, (b.start)::text) - a.t_start))) ELSE a.q_start END AS "case") AS start, (SELECT CASE WHEN (b.stop IS NOT NULL) THEN (a.q_start + (int4smaller(a.t_stop, pdb_seq_pos(a.pdbc, (b.stop)::text)) - a.t_start)) ELSE a.q_stop END AS "case") AS stop, a.score, a.eval, NULL::integer AS pmodel_id, b.scop_id AS acc, b.family AS feature, ((((('Classification='::text || b.class) || ', '::text) || b.fold) || ', '::text) || b.superfamily) AS descr, ((((b.sid || ', '::text) || b.domain) || ', '::text) || b.species) AS details, NULL::text AS link_url FROM (papseq_pdbcs_mv a JOIN scop_v b ON ((a.pdbc = ((b.pdb)::text || (b.chain)::text)))) WHERE ((((b.start IS NOT NULL) AND (pdb_seq_pos(a.pdbc, (b.stop)::text) >= a.t_start)) AND (pdb_seq_pos(a.pdbc, (b.start)::text) <= a.t_stop)) OR (b.start IS NULL)); 'DROP VIEW unison.pseq_features_scop_v; unisonunisonfalse3070900pseq_features_scop_vACLREVOKE ALL ON TABLE pseq_features_scop_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_scop_v FROM unison; GRANT ALL ON TABLE pseq_features_scop_v TO unison; GRANT SELECT ON TABLE pseq_features_scop_v TO PUBLIC; unisonunisonfalse2768 1259308256pseq_features_signalpnn_vVIEWCREATE VIEW pseq_features_signalpnn_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, f.d_score AS score, NULL::double precision AS eval, NULL::integer AS origin_id, NULL::text AS origin, NULL::integer AS pmodel_id, 'SS'::text AS feature, NULL::text AS acc, 'signal sequence'::text AS descr, NULL::text AS details, domain_digest(f.start, f.stop, 'SS'::text, (f.d_score)::text) AS digest, NULL::text AS link_url FROM (((pfsignalpnn f JOIN params p ON ((f.params_id = p.params_id))) JOIN run r ON ((r.params_id = p.params_id))) JOIN pftype ft ON ((ft.preferred_run_id = r.run_id))) WHERE ((ft.name = 'SignalP'::text) AND (f.signal_peptide = true)); ,DROP VIEW unison.pseq_features_signalpnn_v; unisonunisonfalse2933900VIEW pseq_features_signalpnn_vCOMMENTTCOMMENT ON VIEW pseq_features_signalpnn_v IS 'current SignalP neural net features'; unisonunisonfalse255300-COLUMN pseq_features_signalpnn_v.feature_typeCOMMENTeCOMMENT ON COLUMN pseq_features_signalpnn_v.feature_type IS 'type of features (always ''SignalP'')'; unisonunisonfalse255300*COLUMN pseq_features_signalpnn_v.params_idCOMMENTnCOMMENT ON COLUMN pseq_features_signalpnn_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse255300,COLUMN pseq_features_signalpnn_v.params_nameCOMMENTeCOMMENT ON COLUMN pseq_features_signalpnn_v.params_name IS 'parameter set name -- see params(name)'; unisonunisonfalse255300(COLUMN pseq_features_signalpnn_v.pseq_idCOMMENTrCOMMENT ON COLUMN pseq_features_signalpnn_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse255300&COLUMN pseq_features_signalpnn_v.startCOMMENT`COMMENT ON COLUMN pseq_features_signalpnn_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse255300%COLUMN pseq_features_signalpnn_v.stopCOMMENT^COMMENT ON COLUMN pseq_features_signalpnn_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse255300&COLUMN pseq_features_signalpnn_v.scoreCOMMENTQCOMMENT ON COLUMN pseq_features_signalpnn_v.score IS 'algorithm-specific score'; unisonunisonfalse255300%COLUMN pseq_features_signalpnn_v.evalCOMMENTICOMMENT ON COLUMN pseq_features_signalpnn_v.eval IS 'expectation value'; unisonunisonfalse2553 00*COLUMN pseq_features_signalpnn_v.pmodel_idCOMMENT\COMMENT ON COLUMN pseq_features_signalpnn_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2553!00(COLUMN pseq_features_signalpnn_v.featureCOMMENTZCOMMENT ON COLUMN pseq_features_signalpnn_v.feature IS 'name of feature (always ''SS'')'; unisonunisonfalse2553"00&COLUMN pseq_features_signalpnn_v.descrCOMMENT?COMMENT ON COLUMN pseq_features_signalpnn_v.descr IS 'unused'; unisonunisonfalse2553#00(COLUMN pseq_features_signalpnn_v.detailsCOMMENTMCOMMENT ON COLUMN pseq_features_signalpnn_v.details IS 'prediction details'; unisonunisonfalse2553$00)COLUMN pseq_features_signalpnn_v.link_urlCOMMENTNCOMMENT ON COLUMN pseq_features_signalpnn_v.link_url IS 'URL to source data'; unisonunisonfalse2553%00pseq_features_signalpnn_vACLREVOKE ALL ON TABLE pseq_features_signalpnn_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_signalpnn_v FROM unison; GRANT ALL ON TABLE pseq_features_signalpnn_v TO unison; GRANT ALL ON TABLE pseq_features_signalpnn_v TO rkh; GRANT SELECT ON TABLE pseq_features_signalpnn_v TO PUBLIC; unisonunisonfalse2553 1259308261pseq_features_tmhmm_vVIEWCREATE VIEW pseq_features_tmhmm_v AS SELECT ft.name AS feature_type, f.params_id, p.name AS params_name, f.pseq_id, f.start, f.stop, NULL::smallint AS score, NULL::double precision AS eval, NULL::integer AS origin_id, NULL::text AS origin, NULL::integer AS pmodel_id, 'TM'::text AS feature, NULL::text AS acc, 'transmembrane domain'::text AS descr, NULL::text AS details, domain_digest(f.start, f.stop, 'TM'::text, NULL::text) AS digest, NULL::text AS link_url FROM (((pftmhmm f JOIN params p ON ((f.params_id = p.params_id))) JOIN run r ON ((r.params_id = p.params_id))) JOIN pftype ft ON ((ft.preferred_run_id = r.run_id))) WHERE ((ft.name = 'TMHMM'::text) AND ((f.type = 'M'::bpchar) OR (f.type = 'N'::bpchar))); (DROP VIEW unison.pseq_features_tmhmm_v; unisonunisonfalse29349&00VIEW pseq_features_tmhmm_vCOMMENTCCOMMENT ON VIEW pseq_features_tmhmm_v IS 'current TMHMM features'; unisonunisonfalse2554'00)COLUMN pseq_features_tmhmm_v.feature_typeCOMMENT_COMMENT ON COLUMN pseq_features_tmhmm_v.feature_type IS 'type of features (always ''TMHMM'')'; unisonunisonfalse2554(00&COLUMN pseq_features_tmhmm_v.params_idCOMMENTjCOMMENT ON COLUMN pseq_features_tmhmm_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse2554)00(COLUMN pseq_features_tmhmm_v.params_nameCOMMENTaCOMMENT ON COLUMN pseq_features_tmhmm_v.params_name IS 'parameter set name -- see params(name)'; unisonunisonfalse2554*00$COLUMN pseq_features_tmhmm_v.pseq_idCOMMENTnCOMMENT ON COLUMN pseq_features_tmhmm_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2554+00"COLUMN pseq_features_tmhmm_v.startCOMMENT\COMMENT ON COLUMN pseq_features_tmhmm_v.start IS 'start of prediction in protein sequence'; unisonunisonfalse2554,00!COLUMN pseq_features_tmhmm_v.stopCOMMENTZCOMMENT ON COLUMN pseq_features_tmhmm_v.stop IS 'stop of prediction in protein sequence'; unisonunisonfalse2554-00"COLUMN pseq_features_tmhmm_v.scoreCOMMENTMCOMMENT ON COLUMN pseq_features_tmhmm_v.score IS 'algorithm-specific score'; unisonunisonfalse2554.00!COLUMN pseq_features_tmhmm_v.evalCOMMENTECOMMENT ON COLUMN pseq_features_tmhmm_v.eval IS 'expectation value'; unisonunisonfalse2554/00&COLUMN pseq_features_tmhmm_v.pmodel_idCOMMENTXCOMMENT ON COLUMN pseq_features_tmhmm_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse2554000$COLUMN pseq_features_tmhmm_v.featureCOMMENTVCOMMENT ON COLUMN pseq_features_tmhmm_v.feature IS 'name of feature (always ''TM'')'; unisonunisonfalse2554100"COLUMN pseq_features_tmhmm_v.descrCOMMENT;COMMENT ON COLUMN pseq_features_tmhmm_v.descr IS 'unused'; unisonunisonfalse2554200$COLUMN pseq_features_tmhmm_v.detailsCOMMENTICOMMENT ON COLUMN pseq_features_tmhmm_v.details IS 'prediction details'; unisonunisonfalse2554300%COLUMN pseq_features_tmhmm_v.link_urlCOMMENTJCOMMENT ON COLUMN pseq_features_tmhmm_v.link_url IS 'URL to source data'; unisonunisonfalse2554400pseq_features_tmhmm_vACL REVOKE ALL ON TABLE pseq_features_tmhmm_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_tmhmm_v FROM unison; GRANT ALL ON TABLE pseq_features_tmhmm_v TO unison; GRANT ALL ON TABLE pseq_features_tmhmm_v TO rkh; GRANT SELECT ON TABLE pseq_features_tmhmm_v TO PUBLIC; unisonunisonfalse2554 1259308266!pseq_features_tmhmm_excl_signal_vVIEW+CREATE VIEW pseq_features_tmhmm_excl_signal_v AS SELECT tm.feature_type, tm.params_id, tm.params_name, tm.pseq_id, tm.start, tm.stop, tm.score, tm.eval, NULL::integer AS origin_id, NULL::text AS origin, tm.pmodel_id, tm.feature, tm.acc, tm.descr, tm.details, tm.digest, tm.link_url FROM (pseq_features_tmhmm_v tm JOIN run r ON ((r.params_id = tm.params_id))) WHERE ((r.run_id = preferred_run_id_by_pftype('TMHMM'::text)) AND (NOT (EXISTS (SELECT ss.pfeature_id, ss.pseq_id, ss.pftype_id, ss.start, ss.stop, ss.params_id, ss.d_score, ss.signal_peptide FROM (pfsignalpnn ss JOIN run r ON ((r.params_id = ss.params_id))) WHERE (((((ss.pseq_id = tm.pseq_id) AND (r.run_id = preferred_run_id_by_pftype('SignalP'::text))) AND (ss.signal_peptide = true)) AND (ss.stop >= tm.start)) AND (ss.start <= tm.stop)))))); 4DROP VIEW unison.pseq_features_tmhmm_excl_signal_v; unisonunisonfalse29359500&VIEW pseq_features_tmhmm_excl_signal_vCOMMENT{COMMENT ON VIEW pseq_features_tmhmm_excl_signal_v IS 'current TMHMM features that do not overlap a SignalP NN prediction'; unisonunisonfalse2555600!pseq_features_tmhmm_excl_signal_vACLFREVOKE ALL ON TABLE pseq_features_tmhmm_excl_signal_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_tmhmm_excl_signal_v FROM unison; GRANT ALL ON TABLE pseq_features_tmhmm_excl_signal_v TO unison; GRANT ALL ON TABLE pseq_features_tmhmm_excl_signal_v TO rkh; GRANT SELECT ON TABLE pseq_features_tmhmm_excl_signal_v TO PUBLIC; unisonunisonfalse2555 1259309340pseq_features_vVIEW CREATE VIEW pseq_features_v AS (((SELECT pseq_features_bigpi_v.feature_type, pseq_features_bigpi_v.params_id, pseq_features_bigpi_v.params_name, pseq_features_bigpi_v.pseq_id, pseq_features_bigpi_v.start, pseq_features_bigpi_v.stop, pseq_features_bigpi_v.score, pseq_features_bigpi_v.eval, pseq_features_bigpi_v.origin_id, pseq_features_bigpi_v.origin, pseq_features_bigpi_v.pmodel_id, pseq_features_bigpi_v.feature, pseq_features_bigpi_v.acc, pseq_features_bigpi_v.descr, pseq_features_bigpi_v.details, pseq_features_bigpi_v.digest, pseq_features_bigpi_v.link_url FROM pseq_features_bigpi_v UNION ALL SELECT pseq_features_pfam_v.feature_type, pseq_features_pfam_v.params_id, pseq_features_pfam_v.params_name, pseq_features_pfam_v.pseq_id, pseq_features_pfam_v.start, pseq_features_pfam_v.stop, pseq_features_pfam_v.score, pseq_features_pfam_v.eval, pseq_features_pfam_v.origin_id, pseq_features_pfam_v.origin, pseq_features_pfam_v.pmodel_id, pseq_features_pfam_v.feature, pseq_features_pfam_v.acc, pseq_features_pfam_v.descr, pseq_features_pfam_v.details, pseq_features_pfam_v.digest, pseq_features_pfam_v.link_url FROM pseq_features_pfam_v) UNION ALL SELECT pseq_features_prosite_v.feature_type, pseq_features_prosite_v.params_id, pseq_features_prosite_v.params_name, pseq_features_prosite_v.pseq_id, pseq_features_prosite_v.start, pseq_features_prosite_v.stop, pseq_features_prosite_v.score, pseq_features_prosite_v.eval, pseq_features_prosite_v.origin_id, pseq_features_prosite_v.origin, pseq_features_prosite_v.pmodel_id, pseq_features_prosite_v.feature, pseq_features_prosite_v.acc, pseq_features_prosite_v.descr, pseq_features_prosite_v.details, pseq_features_prosite_v.digest, pseq_features_prosite_v.link_url FROM pseq_features_prosite_v) UNION ALL SELECT pseq_features_signalpnn_v.feature_type, pseq_features_signalpnn_v.params_id, pseq_features_signalpnn_v.params_name, pseq_features_signalpnn_v.pseq_id, pseq_features_signalpnn_v.start, pseq_features_signalpnn_v.stop, pseq_features_signalpnn_v.score, pseq_features_signalpnn_v.eval, pseq_features_signalpnn_v.origin_id, pseq_features_signalpnn_v.origin, pseq_features_signalpnn_v.pmodel_id, pseq_features_signalpnn_v.feature, pseq_features_signalpnn_v.acc, pseq_features_signalpnn_v.descr, pseq_features_signalpnn_v.details, pseq_features_signalpnn_v.digest, pseq_features_signalpnn_v.link_url FROM pseq_features_signalpnn_v) UNION ALL SELECT pseq_features_tmhmm_v.feature_type, pseq_features_tmhmm_v.params_id, pseq_features_tmhmm_v.params_name, pseq_features_tmhmm_v.pseq_id, pseq_features_tmhmm_v.start, pseq_features_tmhmm_v.stop, pseq_features_tmhmm_v.score, pseq_features_tmhmm_v.eval, pseq_features_tmhmm_v.origin_id, pseq_features_tmhmm_v.origin, pseq_features_tmhmm_v.pmodel_id, pseq_features_tmhmm_v.feature, pseq_features_tmhmm_v.acc, pseq_features_tmhmm_v.descr, pseq_features_tmhmm_v.details, pseq_features_tmhmm_v.digest, pseq_features_tmhmm_v.link_url FROM pseq_features_tmhmm_v ORDER BY 4, 5, 6; "DROP VIEW unison.pseq_features_v; unisonunisonfalse30719700VIEW pseq_features_vCOMMENT<COMMENT ON VIEW pseq_features_v IS 'most current features'; unisonunisonfalse2769800#COLUMN pseq_features_v.feature_typeCOMMENTPCOMMENT ON COLUMN pseq_features_v.feature_type IS 'type of prediction feature'; unisonunisonfalse2769900 COLUMN pseq_features_v.params_idCOMMENTGCOMMENT ON COLUMN pseq_features_v.params_id IS 'Unison parameter set'; unisonunisonfalse2769:00"COLUMN pseq_features_v.params_nameCOMMENTGCOMMENT ON COLUMN pseq_features_v.params_name IS 'parameter set name'; unisonunisonfalse2769;00COLUMN pseq_features_v.pseq_idCOMMENT?COMMENT ON COLUMN pseq_features_v.pseq_id IS 'Unison pseq_id'; unisonunisonfalse2769<00COLUMN pseq_features_v.startCOMMENTJCOMMENT ON COLUMN pseq_features_v.start IS 'starting residue of feature'; unisonunisonfalse2769=00COLUMN pseq_features_v.stopCOMMENTICOMMENT ON COLUMN pseq_features_v.stop IS 'starting residue of feature'; unisonunisonfalse2769>00COLUMN pseq_features_v.scoreCOMMENTWCOMMENT ON COLUMN pseq_features_v.score IS 'raw score of prediction, where available'; unisonunisonfalse2769?00COLUMN pseq_features_v.evalCOMMENT]COMMENT ON COLUMN pseq_features_v.eval IS 'evalue or pvalue of prediction, where available'; unisonunisonfalse2769@00 COLUMN pseq_features_v.pmodel_idCOMMENTQCOMMENT ON COLUMN pseq_features_v.pmodel_id IS 'Unison unique protein model id'; unisonunisonfalse2769A00COLUMN pseq_features_v.featureCOMMENT=COMMENT ON COLUMN pseq_features_v.feature IS 'feature name'; unisonunisonfalse2769B00COLUMN pseq_features_v.accCOMMENTQCOMMENT ON COLUMN pseq_features_v.acc IS 'model accession in external database'; unisonunisonfalse2769C00COLUMN pseq_features_v.descrCOMMENT@COMMENT ON COLUMN pseq_features_v.descr IS 'model description'; unisonunisonfalse2769D00COLUMN pseq_features_v.detailsCOMMENTNCOMMENT ON COLUMN pseq_features_v.details IS 'additional prediction details'; unisonunisonfalse2769E00COLUMN pseq_features_v.link_urlCOMMENTTCOMMENT ON COLUMN pseq_features_v.link_url IS 'link to model in external database'; unisonunisonfalse2769F00pseq_features_vACLREVOKE ALL ON TABLE pseq_features_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_features_v FROM unison; GRANT ALL ON TABLE pseq_features_v TO unison; GRANT ALL ON TABLE pseq_features_v TO rkh; GRANT SELECT ON TABLE pseq_features_v TO PUBLIC; unisonunisonfalse2769A 1259308621 pseq_gene_mvTABLECREATE TABLE pseq_gene_mv ( pseq_id integer, alias text, descr text, tax_id integer, gene_id integer, symbol text ); DROP TABLE unison.pseq_gene_mv; unisonunisonfalse9G00TABLE pseq_gene_mvCOMMENTPCOMMENT ON TABLE pseq_gene_mv IS 'materialized view of pseq_gene_v, which see'; unisonunisonfalse2625H00 pseq_gene_mvACLREVOKE ALL ON TABLE pseq_gene_mv FROM PUBLIC; REVOKE ALL ON TABLE pseq_gene_mv FROM unison; GRANT ALL ON TABLE pseq_gene_mv TO unison; GRANT SELECT ON TABLE pseq_gene_mv TO PUBLIC; unisonunisonfalse2625 1259309345 pseq_gene_vVIEWCREATE VIEW pseq_gene_v AS SELECT DISTINCT sa.pseq_id, ao.alias, ao.descr, ao.tax_id, ga.gene_id, gi.symbol FROM (((pseq_pannotation sa JOIN pannotation ao ON (((sa.pannotation_id = ao.pannotation_id) AND (ao.origin_id = origin_id('RefSeq'::text))))) JOIN ncbi.gene2accession ga ON (((ao.alias = ga.pro_acc) AND (ao.tax_id = ga.tax_id)))) JOIN ncbi.gene_info gi ON ((gi.gene_id = ga.gene_id))) ORDER BY sa.pseq_id, ao.tax_id, ga.gene_id, ao.alias, ao.descr, gi.symbol; DROP VIEW unison.pseq_gene_v; unisonunisonfalse30729I00 pseq_gene_vACLREVOKE ALL ON TABLE pseq_gene_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_gene_v FROM unison; GRANT ALL ON TABLE pseq_gene_v TO unison; GRANT SELECT ON TABLE pseq_gene_v TO PUBLIC; unisonunisonfalse2770 1259309350pseq_generif_vVIEWCREATE VIEW pseq_generif_v AS SELECT b.q_pseq_id, b.t_pseq_id, b.pct_ident, g.alias, g.tax_id, t.gs, t.latin, g.descr, r.pubmed_ids, r.last_update, r.generif FROM ((((SELECT blasts_v.q_pseq_id, blasts_v.t_pseq_id, blasts_v.pct_ident FROM blasts_v UNION ALL SELECT blasts_v.q_pseq_id, blasts_v.q_pseq_id, 100 FROM blasts_v) b JOIN pseq_gene_mv g ON ((b.t_pseq_id = g.pseq_id))) LEFT JOIN tax.spspec t ON ((g.tax_id = t.tax_id))) JOIN ncbi.generif r ON ((g.gene_id = r.gene_id))); !DROP VIEW unison.pseq_generif_v; unisonunisonfalse30739J00pseq_generif_vACLREVOKE ALL ON TABLE pseq_generif_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_generif_v FROM unison; GRANT ALL ON TABLE pseq_generif_v TO unison; GRANT SELECT ON TABLE pseq_generif_v TO PUBLIC; unisonunisonfalse2771 1259309738pset_pset_id_seqSEQUENCErCREATE SEQUENCE pset_pset_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 'DROP SEQUENCE unison.pset_pset_id_seq; unisonunisonfalse9K00pset_pset_id_seq SEQUENCE SET8SELECT pg_catalog.setval('pset_pset_id_seq', 1, false); unisonunisonfalse2844L00pset_pset_id_seqACLREVOKE ALL ON SEQUENCE pset_pset_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE pset_pset_id_seq FROM unison; GRANT ALL ON SEQUENCE pset_pset_id_seq TO unison; GRANT UPDATE ON SEQUENCE pset_pset_id_seq TO loader; unisonunisonfalse2844 1259307876psetTABLECREATE TABLE pset ( pset_id integer DEFAULT nextval('pset_pset_id_seq'::regclass) NOT NULL, name text NOT NULL, descr text, def text ); DROP TABLE unison.pset; unisonunisonfalse33229M00 TABLE psetCOMMENTBCOMMENT ON TABLE pset IS 'set name and id for sets of sequences'; unisonunisonfalse2488N00COLUMN pset.pset_idCOMMENTXCOMMENT ON COLUMN pset.pset_id IS 'unique identifier for set; <0 are for special uses'; unisonunisonfalse2488O00COLUMN pset.nameCOMMENTDCOMMENT ON COLUMN pset.name IS 'unique name for this sequence set'; unisonunisonfalse2488P00COLUMN pset.descrCOMMENTDCOMMENT ON COLUMN pset.descr IS 'freetext description of this set'; unisonunisonfalse2488Q00psetACLREVOKE ALL ON TABLE pset FROM PUBLIC; REVOKE ALL ON TABLE pset FROM unison; GRANT ALL ON TABLE pset TO unison; GRANT INSERT,UPDATE ON TABLE pset TO loader; GRANT SELECT ON TABLE pset TO PUBLIC; unisonunisonfalse2488 1259309355pseq_id_sets_vVIEWCREATE VIEW pseq_id_sets_v AS SELECT x.pseq_id, as_set((((x.name || '('::text) || (x.pset_id)::text) || ')'::text)) AS sets FROM (SELECT ss.pseq_id, s.name, s.pset_id FROM (pseqset ss JOIN pset s ON ((ss.pset_id = s.pset_id))) ORDER BY ss.pseq_id, s.name) x GROUP BY x.pseq_id; !DROP VIEW unison.pseq_id_sets_v; unisonunisonfalse30749R00VIEW pseq_id_sets_vCOMMENTPCOMMENT ON VIEW pseq_id_sets_v IS 'summary of sets to which a pseq_id belongs'; unisonunisonfalse2772S00COLUMN pseq_id_sets_v.pseq_idCOMMENTgCOMMENT ON COLUMN pseq_id_sets_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2772T00pseq_id_sets_vACLREVOKE ALL ON TABLE pseq_id_sets_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_id_sets_v FROM unison; GRANT ALL ON TABLE pseq_id_sets_v TO unison; GRANT SELECT ON TABLE pseq_id_sets_v TO PUBLIC; unisonunisonfalse2772B 1259308627 pseq_probe_mvTABLEYCREATE TABLE pseq_probe_mv ( pseq_id integer, params_id integer, genasm_id integer, genasm text, chr text, pseq_strand character(1), pseq_gstart integer, pseq_gstop integer, chip_id integer, chip text, probe_id text, probe_strand character(1), probe_gstart integer, probe_gstop integer ); !DROP TABLE unison.pseq_probe_mv; unisonunisonfalse9U00 pseq_probe_mvACLREVOKE ALL ON TABLE pseq_probe_mv FROM PUBLIC; REVOKE ALL ON TABLE pseq_probe_mv FROM unison; GRANT ALL ON TABLE pseq_probe_mv TO unison; GRANT SELECT ON TABLE pseq_probe_mv TO PUBLIC; unisonunisonfalse2626 1259309359 pseq_probe_vVIEWCREATE VIEW pseq_probe_v AS SELECT p.pseq_id, p.params_id, p.genasm_id, g.name AS genasm, p.chr, p.strand AS pseq_strand, p.gstart AS pseq_gstart, p.gstop AS pseq_gstop, m.chip_id, m.name AS chip, m.probe_id, m.strand AS probe_strand, m.gstart AS probe_gstart, m.gstop AS probe_gstop FROM ((pmap_v p JOIN marray.chip_probe_v m ON (((((p.genasm_id = m.genasm_id) AND (p.chr = m.chr)) AND (m.gstart >= p.gstart)) AND (m.gstop <= p.gstop)))) JOIN genasm g ON ((g.genasm_id = p.genasm_id))); DROP VIEW unison.pseq_probe_v; unisonunisonfalse30759V00VIEW pseq_probe_vCOMMENTKCOMMENT ON VIEW pseq_probe_v IS 'overlapping pseqs and microarray probes'; unisonunisonfalse2773W00 pseq_probe_vACLREVOKE ALL ON TABLE pseq_probe_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_probe_v FROM unison; GRANT ALL ON TABLE pseq_probe_v TO unison; GRANT SELECT ON TABLE pseq_probe_v TO PUBLIC; unisonunisonfalse2773:1255309364a280(text, text)FUNCTIONCREATE FUNCTION a280(text, text) RETURNS real AS $_$ DECLARE ans float; BEGIN select INTO ans A280($1,$2,'f'); return ans; END$_$ LANGUAGE plpgsql; 'DROP FUNCTION unison.a280(text, text); unisonunisonfalse1293991255309365 mol_wt(text)FUNCTIONCREATE FUNCTION mol_wt(text) RETURNS real AS $_X$ #$Id$ # http://www.expasy.org/tools/pi_tool-doc.html # Protein Mw can be calculated by # the addition of average isotopic masses of amino acids (zwitter ion) in the protein # and the average isotopic mass of one water molecule. #from EMBOSS/share/EMBOSS/data/Eamino.dat my %weights = ( A => 71.0786, B => 114.5960, # They are for proteins with full reduced cysteine residues. If all # cysteines are oxidized to cystine, use # a value of 60 for C C => 103.1386, D => 115.0884, E => 129.1152, F => 147.1762, G => 57.0518, H => 137.1408, I => 113.1590, K => 128.1736, L => 113.1590, # If met gets oxidised to the sulphoxide replace by 147.1926 M => 131.1926, N => 114.1036, P => 97.1164, Q => 128.1304, R => 156.1870, S => 87.0780, T => 101.1048, U => 150.038, #not in EMBOSS V => 99.1322, W => 186.2128, X => 144.0000, Y => 163.1756, Z => 128.6228 ); $_ = shift; if(length($_) <= 0) { elog(WARNING, "sequence length <= 0 ") ; return 0; } my $mol_wt =18.015; #mass of one water molecule foreach my $aa(split //, $_) { if(not defined $weights{uc($aa)}) { elog(WARNING, "Unexpedted amino acid ".$aa) ; next; } $mol_wt += $weights{uc($aa)}; } return $mol_wt; $_X$ LANGUAGE plperl IMMUTABLE STRICT; #DROP FUNCTION unison.mol_wt(text); unisonunisonfalse12919X00FUNCTION mol_wt(text)COMMENT^COMMENT ON FUNCTION mol_wt(text) IS 'returns the molecular weight of the protein in daltons'; unisonunisonfalse57Y00 mol_wt(text)ACLREVOKE ALL ON FUNCTION mol_wt(text) FROM PUBLIC; REVOKE ALL ON FUNCTION mol_wt(text) FROM unison; GRANT ALL ON FUNCTION mol_wt(text) TO unison; GRANT ALL ON FUNCTION mol_wt(text) TO PUBLIC; unisonunisonfalse57F1255309366pi(text, text)FUNCTION2 CREATE FUNCTION pi(text, text) RETURNS real AS $_X$ # pK values from the DTASelect program from Scripps # http://fields.scripps.edu/DTASelect my %pK_params; $pK_params{dtaselect} = { N_term => 8.0, K => 10.0, # Lys R => 12.0, # Arg H => 6.5, # His D => 4.4, # Asp E => 4.4, # Glu C => 8.5, # Cys Y => 10.0, # Tyr C_term => 3.1 }; # pK values from the iep program from EMBOSS # http://www.hgmp.mrc.ac.uk/Software/EMBOSS/ $pK_params{emboss} = { N_term => 8.6, K => 10.8, # Lys R => 12.5, # Arg H => 6.5, # His D => 3.9, # Asp E => 4.1, # Glu C => 8.5, # Cys Y => 10.1, # Tyr C_term => 3.6 }; my $seq = shift; if(length($seq) <= 0) { elog(WARNING, "sequence length <= 0") ; return -1; } my $params = shift; elog(ERROR, "pK params $params does not exist options are 'emboss' and 'dtaselect'\n") if(not defined $pK_params{$params}); my $pKset = $pK_params{$params}; my $places = 2; #decimal places my $count = _count_charged_residues( $seq ); return _calculate_iep($pKset,$places,$seq,$count); sub _calculate_iep { my( $pK, $places, $seq, $count ) = @_; my $pH = 7.0; my $step = 3.5; my $last_charge = 0.0; my $format = "%.${places}f"; my $count = _count_charged_residues($seq); while(1){ my $charge = _calculate_charge_at_pH( $pH, $pK, $count ); last if sprintf($format,$charge) == sprintf($format,$last_charge); $charge > 0 ? ( $pH += $step ) : ( $pH -= $step ); $step /= 2.0; $last_charge = $charge; } return sprintf( $format, $pH ); } sub _count_charged_residues { my $seq = shift; my $count; for ( qw( K R H D E C Y ) ){ # charged AAs $count->{$_}++ while $seq =~ /$_/ig; } return $count; } # its the sum of all the partial charges for the # termini and all of the charged aa s! sub _calculate_charge_at_pH { my( $pH, $pK, $count ) = @_; my $charge = _partial_charge( $pK->{N_term}, $pH ) + $count->{K} * _partial_charge( $pK->{K}, $pH ) + $count->{R} * _partial_charge( $pK->{R}, $pH ) + $count->{H} * _partial_charge( $pK->{H}, $pH ) - $count->{D} * _partial_charge( $pH, $pK->{D} ) - $count->{E} * _partial_charge( $pH, $pK->{E} ) - $count->{C} * _partial_charge( $pH, $pK->{C} ) - $count->{Y} * _partial_charge( $pH, $pK->{Y} ) - _partial_charge( $pH, $pK->{C_term} ); return $charge; } # Concentration Ratio is 10**(pK - pH) for positive groups # and 10**(pH - pK) for negative groups sub _partial_charge { my $cr = 10 ** ( $_[0] - $_[1] ); return $cr / ( $cr + 1 ); } $_X$ LANGUAGE plperl IMMUTABLE STRICT; %DROP FUNCTION unison.pi(text, text); unisonunisonfalse91291Z00FUNCTION pi(text, text)COMMENTxCOMMENT ON FUNCTION pi(text, text) IS 'returns the theoretical isoelectric point of a protein, try pI(seq,''emboss'')'; unisonunisonfalse70[00pi(text, text)ACLREVOKE ALL ON FUNCTION pi(text, text) FROM PUBLIC; REVOKE ALL ON FUNCTION pi(text, text) FROM unison; GRANT ALL ON FUNCTION pi(text, text) TO unison; GRANT ALL ON FUNCTION pi(text, text) TO PUBLIC; unisonunisonfalse70 1259309367 pseq_prop_vVIEWCREATE VIEW pseq_prop_v AS SELECT pseq.pseq_id, mol_wt(pseq.seq) AS mol_wt, pi(pseq.seq, 'emboss'::text) AS pi, a280(pseq.seq, 'emboss'::text) AS a280 FROM pseq; DROP VIEW unison.pseq_prop_v; unisonunisonfalse30769\00 pseq_prop_vACLREVOKE ALL ON TABLE pseq_prop_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_prop_v FROM unison; GRANT ALL ON TABLE pseq_prop_v TO unison; GRANT SELECT ON TABLE pseq_prop_v TO PUBLIC; unisonunisonfalse2774 1259309371ptmTABLECREATE TABLE ptm ( ptm_type_id integer NOT NULL, alias text NOT NULL, descr text, start integer NOT NULL, stop integer, expt boolean DEFAULT false NOT NULL ); DROP TABLE unison_aux.ptm;  unison_auxunisonfalse348112]00ptmACLREVOKE ALL ON TABLE ptm FROM PUBLIC; REVOKE ALL ON TABLE ptm FROM unison; GRANT ALL ON TABLE ptm TO unison; GRANT SELECT ON TABLE ptm TO PUBLIC;  unison_auxunisonfalse2775 1259309378 pseq_ptm_vVIEWCREATE VIEW pseq_ptm_v AS SELECT a.pseq_id, p.ptm_type_id, p.alias, p.descr, p.start, p.stop, p.expt FROM (current_annotations_mv a JOIN unison_aux.ptm p ON ((a.alias = p.alias))) WHERE (a.origin_id = origin_id('UniProtKB/Swiss-Prot'::text)); DROP VIEW unison.pseq_ptm_v; unisonunisonfalse30779^00 pseq_ptm_vACLREVOKE ALL ON TABLE pseq_ptm_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_ptm_v FROM unison; GRANT ALL ON TABLE pseq_ptm_v TO unison; GRANT SELECT ON TABLE pseq_ptm_v TO PUBLIC; unisonunisonfalse2776 1259309382pseq_set_membershipVIEWCREATE VIEW pseq_set_membership AS SELECT x.pseq_id, count(x.name) AS "#sets", as_set(x.name) AS sets FROM (SELECT qs.pseq_id, s.name FROM (pseqset qs JOIN pset s ON ((qs.pset_id = s.pset_id))) WHERE (qs.pset_id > 0) ORDER BY s.name) x GROUP BY x.pseq_id ORDER BY x.pseq_id; &DROP VIEW unison.pseq_set_membership; unisonunisonfalse30789_00VIEW pseq_set_membershipCOMMENTICOMMENT ON VIEW pseq_set_membership IS 'sets to which sequences belong'; unisonunisonfalse2777`00"COLUMN pseq_set_membership.pseq_idCOMMENTlCOMMENT ON COLUMN pseq_set_membership.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2777a00pseq_set_membershipACLREVOKE ALL ON TABLE pseq_set_membership FROM PUBLIC; REVOKE ALL ON TABLE pseq_set_membership FROM unison; GRANT ALL ON TABLE pseq_set_membership TO unison; GRANT SELECT ON TABLE pseq_set_membership TO PUBLIC; unisonunisonfalse2777 1259309386sp_varTABLECREATE TABLE sp_var ( sp_id character(6) NOT NULL, start_pos integer NOT NULL, end_pos integer NOT NULL, original_aa text NOT NULL, variant_aa text NOT NULL, descr text, var_id character(10) ); DROP TABLE unison.sp_var; unisonunisonfalse9b00 TABLE sp_varCOMMENT@COMMENT ON TABLE sp_var IS 'EXPERIMENTAL! Swiss-Prot variants'; unisonunisonfalse2778c00sp_varACLREVOKE ALL ON TABLE sp_var FROM PUBLIC; REVOKE ALL ON TABLE sp_var FROM unison; GRANT ALL ON TABLE sp_var TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE sp_var TO loader; GRANT SELECT ON TABLE sp_var TO PUBLIC; unisonunisonfalse2778 1259309392 pseq_sp_var_vVIEWCREATE VIEW pseq_sp_var_v AS SELECT a.pseq_id, s.sp_id, s.start_pos, s.end_pos, s.original_aa, s.variant_aa, s.descr, s.var_id FROM palias a, sp_var s WHERE ((a.origin_id = origin_id('UniProtKB/Swiss-Prot'::text)) AND (a.alias = (s.sp_id)::text)); DROP VIEW unison.pseq_sp_var_v; unisonunisonfalse30799d00COLUMN pseq_sp_var_v.pseq_idCOMMENTfCOMMENT ON COLUMN pseq_sp_var_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2779e00 pseq_sp_var_vACLREVOKE ALL ON TABLE pseq_sp_var_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_sp_var_v FROM unison; GRANT ALL ON TABLE pseq_sp_var_v TO unison; GRANT SELECT ON TABLE pseq_sp_var_v TO PUBLIC; unisonunisonfalse2779 1259309396pseq_template_vVIEWQCREATE VIEW pseq_template_v AS SELECT papseq_pdbcs_mv.q_pseq_id, papseq_pdbcs_mv.t_pseq_id, papseq_pdbcs_mv.q_start, papseq_pdbcs_mv.q_stop, papseq_pdbcs_mv.t_start, papseq_pdbcs_mv.t_stop, papseq_pdbcs_mv.pct_ident, papseq_pdbcs_mv.len, papseq_pdbcs_mv.gaps, round((papseq_pdbcs_mv.pct_coverage)::double precision) AS pct_coverage, papseq_pdbcs_mv.eval, papseq_pdbcs_mv.score, 'blast'::text AS method, papseq_pdbcs_mv.pdbc AS template, papseq_pdbcs_mv.descr FROM papseq_pdbcs_mv papseq_pdbcs_mv ORDER BY papseq_pdbcs_mv.eval, round((papseq_pdbcs_mv.pct_coverage)::double precision) DESC; "DROP VIEW unison.pseq_template_v; unisonunisonfalse30809f00 COLUMN pseq_template_v.q_pseq_idCOMMENT@COMMENT ON COLUMN pseq_template_v.q_pseq_id IS 'query pseq_id'; unisonunisonfalse2780g00 COLUMN pseq_template_v.t_pseq_idCOMMENTACOMMENT ON COLUMN pseq_template_v.t_pseq_id IS 'target pseq_id'; unisonunisonfalse2780h00COLUMN pseq_template_v.q_startCOMMENTLCOMMENT ON COLUMN pseq_template_v.q_start IS 'start position in q_pseq_id'; unisonunisonfalse2780i00COLUMN pseq_template_v.q_stopCOMMENTJCOMMENT ON COLUMN pseq_template_v.q_stop IS 'stop position in q_pseq_id'; unisonunisonfalse2780j00COLUMN pseq_template_v.t_startCOMMENTQCOMMENT ON COLUMN pseq_template_v.t_start IS 'start position in target pseq_id'; unisonunisonfalse2780k00COLUMN pseq_template_v.t_stopCOMMENTOCOMMENT ON COLUMN pseq_template_v.t_stop IS 'stop position in target pseq_id'; unisonunisonfalse2780l00 COLUMN pseq_template_v.pct_identCOMMENTCCOMMENT ON COLUMN pseq_template_v.pct_ident IS 'percent identity'; unisonunisonfalse2780m00#COLUMN pseq_template_v.pct_coverageCOMMENTFCOMMENT ON COLUMN pseq_template_v.pct_coverage IS 'percent coverage'; unisonunisonfalse2780n00COLUMN pseq_template_v.evalCOMMENT?COMMENT ON COLUMN pseq_template_v.eval IS 'expectation value'; unisonunisonfalse2780o00COLUMN pseq_template_v.scoreCOMMENTGCOMMENT ON COLUMN pseq_template_v.score IS 'algorithm-specific score'; unisonunisonfalse2780p00pseq_template_vACLREVOKE ALL ON TABLE pseq_template_v FROM PUBLIC; REVOKE ALL ON TABLE pseq_template_v FROM unison; GRANT ALL ON TABLE pseq_template_v TO unison; GRANT SELECT ON TABLE pseq_template_v TO PUBLIC; unisonunisonfalse2780 1259309400 pseqaliasVIEWCREATE VIEW pseqalias AS SELECT pseq_pannotation.pannotation_id, pseq_pannotation.pseq_id, pseq_pannotation.ref_pseq_id, pseq_pannotation.added, pseq_pannotation.version, pseq_pannotation.is_current FROM pseq_pannotation; DROP VIEW unison.pseqalias; unisonunisonfalse30819q00VIEW pseqaliasCOMMENTKCOMMENT ON VIEW pseqalias IS 'DEPRECATED -- use pseq_pannotation instead'; unisonunisonfalse2781r00 pseqaliasACLREVOKE ALL ON TABLE pseqalias FROM PUBLIC; REVOKE ALL ON TABLE pseqalias FROM unison; GRANT ALL ON TABLE pseqalias TO unison; GRANT SELECT ON TABLE pseqalias TO PUBLIC; unisonunisonfalse2781 1259309404pseqset_patented_dvVIEWCREATE VIEW pseqset_patented_dv AS SELECT DISTINCT patents_v.pseq_id FROM patents_sorted_v patents_v ORDER BY patents_v.pseq_id; &DROP VIEW unison.pseqset_patented_dv; unisonunisonfalse30829s00"COLUMN pseqset_patented_dv.pseq_idCOMMENTlCOMMENT ON COLUMN pseqset_patented_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2782t00pseqset_patented_dvACLREVOKE ALL ON TABLE pseqset_patented_dv FROM PUBLIC; REVOKE ALL ON TABLE pseqset_patented_dv FROM unison; GRANT ALL ON TABLE pseqset_patented_dv TO unison; GRANT SELECT ON TABLE pseqset_patented_dv TO PUBLIC; unisonunisonfalse2782,1255308587best_annotation(integer)FUNCTIONCREATE FUNCTION best_annotation(integer) RETURNS text AS $_$select origin_alias_descr_fmt(origin,alias,descr) from best_annotation_mv where pseq_id=$1 ORDER BY tax_id <> 9606$_$ LANGUAGE sql; /DROP FUNCTION unison.best_annotation(integer); unisonunisonfalse9u00!FUNCTION best_annotation(integer)COMMENTCOMMENT ON FUNCTION best_annotation(integer) IS '"best" annotation for given pseq_id. NOTE: from materialized view, which may be stale.'; unisonunisonfalse44>1255309408pseq_species(integer)FUNCTIONSCREATE FUNCTION pseq_species(integer) RETURNS text AS $_$ DECLARE v_pseq_id alias for $1; rv text; BEGIN select into rv as_set(distinct tax.tax_id2gs(tax_id)) from pseq_pannotation natural join pannotation where pseq_id=v_pseq_id and is_current=TRUE group by pseq_id; return rv; END;$_$ LANGUAGE plpgsql STABLE STRICT; ,DROP FUNCTION unison.pseq_species(integer); unisonunisonfalse12939 1259309409 pseqsummary_vVIEWCREATE VIEW pseqsummary_v AS SELECT pseq.pseq_id, pseq.len, pseq_species(pseq.pseq_id) AS species, best_annotation(pseq.pseq_id) AS "best-guess annotation" FROM pseq; DROP VIEW unison.pseqsummary_v; unisonunisonfalse30839v00COLUMN pseqsummary_v.pseq_idCOMMENTfCOMMENT ON COLUMN pseqsummary_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2783w00 pseqsummary_vACLREVOKE ALL ON TABLE pseqsummary_v FROM PUBLIC; REVOKE ALL ON TABLE pseqsummary_v FROM unison; GRANT ALL ON TABLE pseqsummary_v TO unison; GRANT SELECT ON TABLE pseqsummary_v TO PUBLIC; unisonunisonfalse2783 1259309413pset_bacterial_dvVIEWCREATE VIEW pset_bacterial_dv AS SELECT a.pseq_id FROM (palias a JOIN tax.spspec t ON ((a.tax_id = t.tax_id))) WHERE (t.k = 'B'::bpchar); $DROP VIEW unison.pset_bacterial_dv; unisonunisonfalse30849x00 COLUMN pset_bacterial_dv.pseq_idCOMMENTjCOMMENT ON COLUMN pset_bacterial_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2784y00pset_bacterial_dvACLREVOKE ALL ON TABLE pset_bacterial_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_bacterial_dv FROM unison; GRANT ALL ON TABLE pset_bacterial_dv TO unison; GRANT SELECT ON TABLE pset_bacterial_dv TO PUBLIC; unisonunisonfalse2784 1259309417 pset_blast_dvVIEWCREATE VIEW pset_blast_dv AS SELECT current_annotations_unsorted_v.pseq_id FROM current_annotations_v current_annotations_unsorted_v WHERE (current_annotations_unsorted_v.ann_pref < 50000); DROP VIEW unison.pset_blast_dv; unisonunisonfalse30859z00VIEW pset_blast_dvCOMMENTACOMMENT ON VIEW pset_blast_dv IS 'defining view for pset BLAST'; unisonunisonfalse2785{00COLUMN pset_blast_dv.pseq_idCOMMENTfCOMMENT ON COLUMN pset_blast_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse2785|00 pset_blast_dvACLREVOKE ALL ON TABLE pset_blast_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_blast_dv FROM unison; GRANT ALL ON TABLE pset_blast_dv TO unison; GRANT SELECT ON TABLE pset_blast_dv TO PUBLIC; unisonunisonfalse2785 1259309421 pset_counts_vVIEWCREATE VIEW pset_counts_v AS SELECT c.count, c.pset_id, s.name, s.descr FROM ((SELECT count(*) AS count, pseqset.pset_id FROM pseqset GROUP BY pseqset.pset_id) c JOIN pset s ON ((c.pset_id = s.pset_id))) ORDER BY c.pset_id; DROP VIEW unison.pset_counts_v; unisonunisonfalse30869}00VIEW pset_counts_vCOMMENTUCOMMENT ON VIEW pset_counts_v IS 'psets with # of (distinct) sequences in each set'; unisonunisonfalse2786~00COLUMN pset_counts_v.pset_idCOMMENTcCOMMENT ON COLUMN pset_counts_v.pset_id IS 'protein sequence set identifier -- see pset(pset_id)'; unisonunisonfalse278600COLUMN pset_counts_v.nameCOMMENT4COMMENT ON COLUMN pset_counts_v.name IS 'set name'; unisonunisonfalse278600COLUMN pset_counts_v.descrCOMMENT<COMMENT ON COLUMN pset_counts_v.descr IS 'set description'; unisonunisonfalse278600 pset_counts_vACLREVOKE ALL ON TABLE pset_counts_v FROM PUBLIC; REVOKE ALL ON TABLE pset_counts_v FROM unison; GRANT ALL ON TABLE pset_counts_v TO unison; GRANT SELECT ON TABLE pset_counts_v TO PUBLIC; unisonunisonfalse2786 1259309425pset_criteria_vVIEWCREATE VIEW pset_criteria_v AS SELECT ca.pseq_id, ca.origin_id, ca.origin, ca.ann_pref, ca.pannotation_id, ca.tax_id, ca.k, ca.gs, ca.latin, ca.common, ca.alias, ca.descr, ca.added, ca.link_url, q.len FROM (current_annotations_v ca JOIN pseq q ON ((ca.pseq_id = q.pseq_id))); "DROP VIEW unison.pset_criteria_v; unisonunisonfalse3087900COLUMN pset_criteria_v.pseq_idCOMMENThCOMMENT ON COLUMN pset_criteria_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse278700 COLUMN pset_criteria_v.origin_idCOMMENT]COMMENT ON COLUMN pset_criteria_v.origin_id IS 'origin identifier -- see origin(origin_id)'; unisonunisonfalse278700COLUMN pset_criteria_v.originCOMMENT[COMMENT ON COLUMN pset_criteria_v.origin IS 'origin of sequence -- see origin(origin_id)'; unisonunisonfalse278700COLUMN pset_criteria_v.ann_prefCOMMENTdCOMMENT ON COLUMN pset_criteria_v.ann_pref IS 'annotation preference for the origin of this alias'; unisonunisonfalse278700%COLUMN pset_criteria_v.pannotation_idCOMMENTlCOMMENT ON COLUMN pset_criteria_v.pannotation_id IS 'annotation identifier -- see paliasorigin(palias_id)'; unisonunisonfalse278700COLUMN pset_criteria_v.tax_idCOMMENTHCOMMENT ON COLUMN pset_criteria_v.tax_id IS 'NCBI taxonomy identifier'; unisonunisonfalse278700COLUMN pset_criteria_v.kCOMMENTqCOMMENT ON COLUMN pset_criteria_v.k IS 'Swiss-Prot kingdom code (A=archea; B=bacteria; E=eukaryota; V=viruses)'; unisonunisonfalse278700COLUMN pset_criteria_v.gsCOMMENTqCOMMENT ON COLUMN pset_criteria_v.gs IS 'Swiss-Prot genus-species code (e.g., ''HUMAN'', ''BRARE'', ''BOVIN'')'; unisonunisonfalse278700COLUMN pset_criteria_v.latinCOMMENTFCOMMENT ON COLUMN pset_criteria_v.latin IS 'Latin genus and species'; unisonunisonfalse278700COLUMN pset_criteria_v.commonCOMMENTECOMMENT ON COLUMN pset_criteria_v.common IS 'common taxonomic name'; unisonunisonfalse278700COLUMN pset_criteria_v.aliasCOMMENTECOMMENT ON COLUMN pset_criteria_v.alias IS 'alias for the sequence'; unisonunisonfalse278700COLUMN pset_criteria_v.descrCOMMENT>COMMENT ON COLUMN pset_criteria_v.descr IS 'set description'; unisonunisonfalse278700COLUMN pset_criteria_v.addedCOMMENTICOMMENT ON COLUMN pset_criteria_v.added IS 'when this data was created'; unisonunisonfalse278700COLUMN pset_criteria_v.link_urlCOMMENTDCOMMENT ON COLUMN pset_criteria_v.link_url IS 'URL to source data'; unisonunisonfalse278700pset_criteria_vACLREVOKE ALL ON TABLE pset_criteria_v FROM PUBLIC; REVOKE ALL ON TABLE pset_criteria_v FROM unison; GRANT ALL ON TABLE pset_criteria_v TO unison; GRANT SELECT ON TABLE pset_criteria_v TO PUBLIC; unisonunisonfalse2787 1259309429pset_patented_98_dvVIEWCREATE VIEW pset_patented_98_dv AS SELECT DISTINCT b.t_pseq_id AS pseq_id FROM (blasts_v b JOIN pseqset s ON ((b.q_pseq_id = s.pseq_id))) WHERE (s.pset_id = pset_id('patented'::text)) ORDER BY b.t_pseq_id; &DROP VIEW unison.pset_patented_98_dv; unisonunisonfalse3088900"COLUMN pset_patented_98_dv.pseq_idCOMMENTlCOMMENT ON COLUMN pset_patented_98_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse278800pset_patented_98_dvACLREVOKE ALL ON TABLE pset_patented_98_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_patented_98_dv FROM unison; GRANT ALL ON TABLE pset_patented_98_dv TO unison; GRANT SELECT ON TABLE pset_patented_98_dv TO PUBLIC; unisonunisonfalse2788 1259309433 pset_unia_dvVIEW-CREATE VIEW pset_unia_dv AS SELECT DISTINCT pset_criteria_v.pseq_id FROM pset_criteria_v WHERE ((((pset_criteria_v.ann_pref < 10000) AND (pset_criteria_v.tax_id = tax.gs2tax_id('HUMAN'::text))) AND (pset_criteria_v.len >= 100)) AND (pset_criteria_v.len <= 1000)) ORDER BY pset_criteria_v.pseq_id; DROP VIEW unison.pset_unia_dv; unisonunisonfalse3089900COLUMN pset_unia_dv.pseq_idCOMMENTeCOMMENT ON COLUMN pset_unia_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse278900 pset_unia_dvACLREVOKE ALL ON TABLE pset_unia_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_unia_dv FROM unison; GRANT ALL ON TABLE pset_unia_dv TO unison; GRANT SELECT ON TABLE pset_unia_dv TO PUBLIC; unisonunisonfalse2789 1259309437 pset_runa_dvVIEWCREATE VIEW pset_runa_dv AS SELECT pset_unia_dv.pseq_id FROM pset_unia_dv UNION SELECT pseq_gene_v.pseq_id FROM _deprecated_pseq_gene_v pseq_gene_v WHERE (pseq_gene_v.tax_id = tax.gs2tax_id('HUMAN'::text)); DROP VIEW unison.pset_runa_dv; unisonunisonfalse30909 1259309441 pset_unib_dvVIEW)CREATE VIEW pset_unib_dv AS SELECT DISTINCT pset_criteria_v.pseq_id FROM pset_criteria_v WHERE ((pset_criteria_v.ann_pref < 20000) AND ((((pset_criteria_v.tax_id = tax.gs2tax_id('HUMAN'::text)) AND (pset_criteria_v.len >= 100)) AND (pset_criteria_v.len <= 2000)) OR (((((pset_criteria_v.tax_id = tax.gs2tax_id('MOUSE'::text)) OR (pset_criteria_v.tax_id = tax.gs2tax_id('RAT'::text))) OR (pset_criteria_v.tax_id = tax.gs2tax_id('PANTR'::text))) AND (pset_criteria_v.len >= 100)) AND (pset_criteria_v.len <= 1000)))) ORDER BY pset_criteria_v.pseq_id; DROP VIEW unison.pset_unib_dv; unisonunisonfalse3091900COLUMN pset_unib_dv.pseq_idCOMMENTeCOMMENT ON COLUMN pset_unib_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse279100 pset_unib_dvACLREVOKE ALL ON TABLE pset_unib_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_unib_dv FROM unison; GRANT ALL ON TABLE pset_unib_dv TO unison; GRANT SELECT ON TABLE pset_unib_dv TO PUBLIC; unisonunisonfalse2791 1259309445 pset_runb_dvVIEWCREATE VIEW pset_runb_dv AS SELECT pset_runa_dv.pseq_id FROM pset_runa_dv UNION SELECT pset_unib_dv.pseq_id FROM pset_unib_dv; DROP VIEW unison.pset_runb_dv; unisonunisonfalse30929 1259309449pset_unic_dv_v2VIEWCREATE VIEW pset_unic_dv_v2 AS SELECT DISTINCT pset_criteria_v.pseq_id FROM pset_criteria_v WHERE (((pset_criteria_v.ann_pref <= 50000) AND (pset_criteria_v.tax_id = ANY (ARRAY[tax.gs2tax_id('HUMAN'::text), tax.gs2tax_id('MOUSE'::text), tax.gs2tax_id('PANTR'::text)]))) OR ((pset_criteria_v.ann_pref <= 25000) AND (pset_criteria_v.tax_id = ANY (ARRAY[tax.gs2tax_id('ANOGA'::text), tax.gs2tax_id('BOVIN'::text), tax.gs2tax_id('CAEEL'::text), tax.gs2tax_id('CANFA'::text), tax.gs2tax_id('CHICK'::text), tax.gs2tax_id('DANRE'::text), tax.gs2tax_id('DROME'::text), tax.gs2tax_id('FELCA'::text), tax.gs2tax_id('FUGRU'::text), tax.gs2tax_id('MACFU'::text), tax.gs2tax_id('MACMU'::text), tax.gs2tax_id('PANPA'::text), tax.gs2tax_id('RAT'::text), tax.gs2tax_id('TETFL'::text), tax.gs2tax_id('RABIT'::text), tax.gs2tax_id('YEAST'::text), tax.gs2tax_id('XENTR'::text)])))) ORDER BY pset_criteria_v.pseq_id; "DROP VIEW unison.pset_unic_dv_v2; unisonunisonfalse30939 1259309453 pset_unic_dvVIEWUCREATE VIEW pset_unic_dv AS SELECT pset_unic_dv_v2.pseq_id FROM pset_unic_dv_v2; DROP VIEW unison.pset_unic_dv; unisonunisonfalse3094900COLUMN pset_unic_dv.pseq_idCOMMENTeCOMMENT ON COLUMN pset_unic_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse279400 pset_unic_dvACLREVOKE ALL ON TABLE pset_unic_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_unic_dv FROM unison; GRANT ALL ON TABLE pset_unic_dv TO unison; GRANT SELECT ON TABLE pset_unic_dv TO PUBLIC; unisonunisonfalse2794 1259309457 pset_runc_dvVIEWCREATE VIEW pset_runc_dv AS SELECT pset_runb_dv.pseq_id FROM pset_runb_dv UNION SELECT pset_unic_dv.pseq_id FROM pset_unic_dv; DROP VIEW unison.pset_runc_dv; unisonunisonfalse30959 1259309461pset_rungga_dvVIEWCREATE VIEW pset_rungga_dv AS SELECT current_annotations_v.pseq_id FROM current_annotations_sorted_v current_annotations_v WHERE (current_annotations_v.origin_id = origin_id('GenenGenes auto'::text)); !DROP VIEW unison.pset_rungga_dv; unisonunisonfalse3096900COLUMN pset_rungga_dv.pseq_idCOMMENTgCOMMENT ON COLUMN pset_rungga_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse279600pset_rungga_dvACLREVOKE ALL ON TABLE pset_rungga_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_rungga_dv FROM unison; GRANT ALL ON TABLE pset_rungga_dv TO unison; GRANT SELECT ON TABLE pset_rungga_dv TO PUBLIC; unisonunisonfalse2796 1259309465pset_unic_dv_v0VIEWuCREATE VIEW pset_unic_dv_v0 AS SELECT DISTINCT pset_criteria_v.pseq_id FROM pset_criteria_v WHERE ((((pset_criteria_v.ann_pref < 50000) AND (pset_criteria_v.tax_id = ANY (ARRAY[tax.gs2tax_id('ANOGA'::text), tax.gs2tax_id('BOVIN'::text), tax.gs2tax_id('CAEEL'::text), tax.gs2tax_id('CANFA'::text), tax.gs2tax_id('CHICK'::text), tax.gs2tax_id('DANRE'::text), tax.gs2tax_id('DROME'::text), tax.gs2tax_id('FELCA'::text), tax.gs2tax_id('FUGRU'::text), tax.gs2tax_id('HUMAN'::text), tax.gs2tax_id('MACFU'::text), tax.gs2tax_id('MACMU'::text), tax.gs2tax_id('MOUSE'::text), tax.gs2tax_id('PANPA'::text), tax.gs2tax_id('PANTR'::text), tax.gs2tax_id('RAT'::text), tax.gs2tax_id('TETFL'::text), tax.gs2tax_id('RABIT'::text), tax.gs2tax_id('YEAST'::text), tax.gs2tax_id('XENTR'::text)]))) AND (pset_criteria_v.len >= 100)) AND (pset_criteria_v.len <= 5000)) ORDER BY pset_criteria_v.pseq_id; "DROP VIEW unison.pset_unic_dv_v0; unisonunisonfalse30979 1259309469pset_unic_dv_v1VIEW.CREATE VIEW pset_unic_dv_v1 AS SELECT DISTINCT pset_criteria_v.pseq_id FROM pset_criteria_v WHERE ((pset_criteria_v.ann_pref <= 50000) OR (pset_criteria_v.tax_id = ANY (ARRAY[tax.gs2tax_id('ANOGA'::text), tax.gs2tax_id('BOVIN'::text), tax.gs2tax_id('CAEEL'::text), tax.gs2tax_id('CANFA'::text), tax.gs2tax_id('CHICK'::text), tax.gs2tax_id('DANRE'::text), tax.gs2tax_id('DROME'::text), tax.gs2tax_id('FELCA'::text), tax.gs2tax_id('FUGRU'::text), tax.gs2tax_id('HUMAN'::text), tax.gs2tax_id('MACFU'::text), tax.gs2tax_id('MACMU'::text), tax.gs2tax_id('MOUSE'::text), tax.gs2tax_id('PANPA'::text), tax.gs2tax_id('PANTR'::text), tax.gs2tax_id('RAT'::text), tax.gs2tax_id('TETFL'::text), tax.gs2tax_id('RABIT'::text), tax.gs2tax_id('YEAST'::text), tax.gs2tax_id('XENTR'::text)]))) ORDER BY pset_criteria_v.pseq_id; "DROP VIEW unison.pset_unic_dv_v1; unisonunisonfalse30989 1259309473pset_unic_dv_v3VIEWCREATE VIEW pset_unic_dv_v3 AS SELECT DISTINCT pset_criteria_v.pseq_id FROM pset_criteria_v WHERE (((pset_criteria_v.ann_pref <= 15000) OR ((pset_criteria_v.ann_pref <= 50000) AND (pset_criteria_v.tax_id = ANY (ARRAY[tax.gs2tax_id('HUMAN'::text), tax.gs2tax_id('MOUSE'::text), tax.gs2tax_id('PANTR'::text)])))) OR ((pset_criteria_v.ann_pref <= 25000) AND (pset_criteria_v.tax_id = ANY (ARRAY[tax.gs2tax_id('ANOGA'::text), tax.gs2tax_id('BOVIN'::text), tax.gs2tax_id('CAEEL'::text), tax.gs2tax_id('CANFA'::text), tax.gs2tax_id('CHICK'::text), tax.gs2tax_id('DANRE'::text), tax.gs2tax_id('DROME'::text), tax.gs2tax_id('FELCA'::text), tax.gs2tax_id('FUGRU'::text), tax.gs2tax_id('MACFU'::text), tax.gs2tax_id('MACMU'::text), tax.gs2tax_id('PANPA'::text), tax.gs2tax_id('RAT'::text), tax.gs2tax_id('TETFL'::text), tax.gs2tax_id('RABIT'::text), tax.gs2tax_id('YEAST'::text), tax.gs2tax_id('XENTR'::text)])))) ORDER BY pset_criteria_v.pseq_id; "DROP VIEW unison.pset_unic_dv_v3; unisonunisonfalse30999 1259309477pset_uptodate_dvVIEW]CREATE VIEW pset_uptodate_dv AS SELECT current_annotations_v.pseq_id FROM current_annotations_sorted_v current_annotations_v WHERE (((((current_annotations_v.origin_id = origin_id('UniProt'::text)) OR (current_annotations_v.origin_id = origin_id('Refseq'::text))) OR (current_annotations_v.origin_id = origin_id('Geneseq'::text))) OR (current_annotations_v.origin_id = origin_id('GenenGenes'::text))) AND (((current_annotations_v.tax_id = tax.gs2tax_id('HUMAN'::text)) OR (current_annotations_v.tax_id = tax.gs2tax_id('MOUSE'::text))) OR (current_annotations_v.tax_id = tax.gs2tax_id('RAT'::text)))); #DROP VIEW unison.pset_uptodate_dv; unisonunisonfalse3100900COLUMN pset_uptodate_dv.pseq_idCOMMENTiCOMMENT ON COLUMN pset_uptodate_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse280000pset_uptodate_dvACLREVOKE ALL ON TABLE pset_uptodate_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_uptodate_dv FROM unison; GRANT ALL ON TABLE pset_uptodate_dv TO unison; GRANT SELECT ON TABLE pset_uptodate_dv TO PUBLIC; unisonunisonfalse2800 1259309481pset_vVIEWpCREATE VIEW pset_v AS SELECT pset.pset_id, pset.name, pset.descr, pset.def FROM pset ORDER BY pset.pset_id; DROP VIEW unison.pset_v; unisonunisonfalse3101900COLUMN pset_v.pset_idCOMMENT\COMMENT ON COLUMN pset_v.pset_id IS 'protein sequence set identifier -- see pset(pset_id)'; unisonunisonfalse280100COLUMN pset_v.nameCOMMENT-COMMENT ON COLUMN pset_v.name IS 'set name'; unisonunisonfalse280100COLUMN pset_v.descrCOMMENT5COMMENT ON COLUMN pset_v.descr IS 'set description'; unisonunisonfalse280100pset_vACLREVOKE ALL ON TABLE pset_v FROM PUBLIC; REVOKE ALL ON TABLE pset_v FROM unison; GRANT ALL ON TABLE pset_v TO unison; GRANT SELECT ON TABLE pset_v TO PUBLIC; unisonunisonfalse2801 1259309485 pset_viral_dvVIEWCREATE VIEW pset_viral_dv AS SELECT a.pseq_id FROM (palias a JOIN tax.spspec t ON ((a.tax_id = t.tax_id))) WHERE (t.k = 'V'::bpchar); DROP VIEW unison.pset_viral_dv; unisonunisonfalse3102900COLUMN pset_viral_dv.pseq_idCOMMENTfCOMMENT ON COLUMN pset_viral_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse280200 pset_viral_dvACLREVOKE ALL ON TABLE pset_viral_dv FROM PUBLIC; REVOKE ALL ON TABLE pset_viral_dv FROM unison; GRANT ALL ON TABLE pset_viral_dv TO unison; GRANT SELECT ON TABLE pset_viral_dv TO PUBLIC; unisonunisonfalse2802 1259309489 psetsummaryVIEWCREATE VIEW psetsummary AS SELECT count(pseqset.pseq_id) AS count, pset.pset_id, pset.name, pset.descr FROM (pset NATURAL LEFT JOIN pseqset) GROUP BY pset.pset_id, pset.name, pset.descr ORDER BY pset.pset_id; DROP VIEW unison.psetsummary; unisonunisonfalse3103900COLUMN psetsummary.pset_idCOMMENTaCOMMENT ON COLUMN psetsummary.pset_id IS 'protein sequence set identifier -- see pset(pset_id)'; unisonunisonfalse280300COLUMN psetsummary.nameCOMMENT2COMMENT ON COLUMN psetsummary.name IS 'set name'; unisonunisonfalse280300COLUMN psetsummary.descrCOMMENT:COMMENT ON COLUMN psetsummary.descr IS 'set description'; unisonunisonfalse280300 psetsummaryACLREVOKE ALL ON TABLE psetsummary FROM PUBLIC; REVOKE ALL ON TABLE psetsummary FROM unison; GRANT ALL ON TABLE psetsummary TO unison; GRANT INSERT,UPDATE ON TABLE psetsummary TO loader; GRANT SELECT ON TABLE psetsummary TO PUBLIC; unisonunisonfalse2803 1259309493psipredTABLECREATE TABLE psipred ( prediction text NOT NULL, confidence text NOT NULL, pseq_id integer NOT NULL, h_confidence text, e_confidence text, c_confidence text, params_id integer NOT NULL ); DROP TABLE unison.psipred; unisonunisonfalse900 TABLE psipredCOMMENTNCOMMENT ON TABLE psipred IS 'Psipred secondary structure prediction results'; unisonunisonfalse280400COLUMN psipred.pseq_idCOMMENT`COMMENT ON COLUMN psipred.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse280400COLUMN psipred.params_idCOMMENT\COMMENT ON COLUMN psipred.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse280400psipredACLREVOKE ALL ON TABLE psipred FROM PUBLIC; REVOKE ALL ON TABLE psipred FROM unison; GRANT ALL ON TABLE psipred TO unison; GRANT INSERT,DELETE,UPDATE ON TABLE psipred TO loader; GRANT SELECT ON TABLE psipred TO PUBLIC; unisonunisonfalse2804 1259308312 psprotcompTABLECREATE TABLE psprotcomp ( pseq_id integer NOT NULL, params_id integer NOT NULL, sim_psloc_id integer NOT NULL, sim_score real, sim_db text, sim_target_ac text, nn_psloc_id integer NOT NULL, nn_score real NOT NULL, int_psloc_id integer NOT NULL, int_score real NOT NULL, int_membrane boolean DEFAULT false NOT NULL, int_nuc_score real NOT NULL, int_pm_score real NOT NULL, int_ext_score real NOT NULL, int_cyt_score real NOT NULL, int_mit_score real NOT NULL, int_er_score real NOT NULL, int_per_score real NOT NULL, int_lys_score real NOT NULL, int_gol_score real NOT NULL, features text, result_block text NOT NULL ); DROP TABLE unison.psprotcomp; unisonunisonfalse3420900TABLE psprotcompCOMMENTACOMMENT ON TABLE psprotcomp IS 'Softberry protcomp predictions'; unisonunisonfalse256300COLUMN psprotcomp.pseq_idCOMMENTcCOMMENT ON COLUMN psprotcomp.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse256300COLUMN psprotcomp.params_idCOMMENT_COMMENT ON COLUMN psprotcomp.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse256300COLUMN psprotcomp.sim_psloc_idCOMMENTYCOMMENT ON COLUMN psprotcomp.sim_psloc_id IS 'similarity-based localization identifier'; unisonunisonfalse256300COLUMN psprotcomp.sim_scoreCOMMENTOCOMMENT ON COLUMN psprotcomp.sim_score IS 'similarity-based prediction score'; unisonunisonfalse256300COLUMN psprotcomp.sim_dbCOMMENTVCOMMENT ON COLUMN psprotcomp.sim_db IS 'source database similarity-based prediction'; unisonunisonfalse256300COLUMN psprotcomp.sim_target_acCOMMENTjCOMMENT ON COLUMN psprotcomp.sim_target_ac IS 'similarity-based prediction target accession (in sim_db)'; unisonunisonfalse256300COLUMN psprotcomp.nn_psloc_idCOMMENTUCOMMENT ON COLUMN psprotcomp.nn_psloc_id IS 'neural net localization prediction id'; unisonunisonfalse256300COLUMN psprotcomp.nn_scoreCOMMENTJCOMMENT ON COLUMN psprotcomp.nn_score IS 'neural net localization score'; unisonunisonfalse256300COLUMN psprotcomp.int_psloc_idCOMMENTZCOMMENT ON COLUMN psprotcomp.int_psloc_id IS 'localization based on best integral score'; unisonunisonfalse256300COLUMN psprotcomp.int_scoreCOMMENTACOMMENT ON COLUMN psprotcomp.int_score IS 'best integral score'; unisonunisonfalse256300COLUMN psprotcomp.int_membraneCOMMENTMCOMMENT ON COLUMN psprotcomp.int_membrane IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_nuc_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_nuc_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_pm_scoreCOMMENTMCOMMENT ON COLUMN psprotcomp.int_pm_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_ext_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_ext_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_cyt_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_cyt_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_mit_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_mit_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_er_scoreCOMMENTMCOMMENT ON COLUMN psprotcomp.int_er_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_per_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_per_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_lys_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_lys_score IS 'component ''integral'' score'; unisonunisonfalse256300COLUMN psprotcomp.int_gol_scoreCOMMENTNCOMMENT ON COLUMN psprotcomp.int_gol_score IS 'component ''integral'' score'; unisonunisonfalse256300 psprotcompACLREVOKE ALL ON TABLE psprotcomp FROM PUBLIC; REVOKE ALL ON TABLE psprotcomp FROM unison; GRANT ALL ON TABLE psprotcomp TO unison; GRANT INSERT ON TABLE psprotcomp TO loader; GRANT SELECT ON TABLE psprotcomp TO PUBLIC; unisonunisonfalse2563 1259309740 psprotcomp_location_psloc_id_seqSEQUENCECREATE SEQUENCE psprotcomp_location_psloc_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 7DROP SEQUENCE unison.psprotcomp_location_psloc_id_seq; unisonunisonfalse900 psprotcomp_location_psloc_id_seq SEQUENCE SETHSELECT pg_catalog.setval('psprotcomp_location_psloc_id_seq', 1, false); unisonunisonfalse284500 psprotcomp_location_psloc_id_seqACLREVOKE ALL ON SEQUENCE psprotcomp_location_psloc_id_seq FROM PUBLIC; REVOKE ALL ON SEQUENCE psprotcomp_location_psloc_id_seq FROM unison; GRANT ALL ON SEQUENCE psprotcomp_location_psloc_id_seq TO unison; GRANT UPDATE ON SEQUENCE psprotcomp_location_psloc_id_seq TO loader; unisonunisonfalse2845 1259308319psprotcomp_locationTABLECREATE TABLE psprotcomp_location ( psloc_id integer DEFAULT nextval('psprotcomp_location_psloc_id_seq'::regclass) NOT NULL, location text NOT NULL ); 'DROP TABLE unison.psprotcomp_location; unisonunisonfalse3421900TABLE psprotcomp_locationCOMMENTXCOMMENT ON TABLE psprotcomp_location IS 'lookup table for protcomp cellular locations'; unisonunisonfalse256400psprotcomp_locationACLREVOKE ALL ON TABLE psprotcomp_location FROM PUBLIC; REVOKE ALL ON TABLE psprotcomp_location FROM unison; GRANT ALL ON TABLE psprotcomp_location TO unison; GRANT SELECT ON TABLE psprotcomp_location TO PUBLIC; unisonunisonfalse2564 1259308325 psprotcomp_vVIEWCREATE VIEW psprotcomp_v AS SELECT pc.pseq_id, pc.params_id, pc.sim_psloc_id, sl.location AS sim_loc, pc.sim_db, pc.sim_target_ac, pc.sim_score, pc.nn_psloc_id, nl.location AS nn_loc, pc.nn_score, pc.int_psloc_id, il.location AS int_loc, pc.int_score FROM (((psprotcomp pc JOIN psprotcomp_location sl ON ((sl.psloc_id = pc.sim_psloc_id))) JOIN psprotcomp_location nl ON ((nl.psloc_id = pc.nn_psloc_id))) JOIN psprotcomp_location il ON ((il.psloc_id = pc.int_psloc_id))); DROP VIEW unison.psprotcomp_v; unisonunisonfalse2941900VIEW psprotcomp_vCOMMENT9COMMENT ON VIEW psprotcomp_v IS 'protcomp summary view'; unisonunisonfalse256500COLUMN psprotcomp_v.pseq_idCOMMENTeCOMMENT ON COLUMN psprotcomp_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse256500COLUMN psprotcomp_v.params_idCOMMENTaCOMMENT ON COLUMN psprotcomp_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse256500 COLUMN psprotcomp_v.sim_psloc_idCOMMENT[COMMENT ON COLUMN psprotcomp_v.sim_psloc_id IS 'similarity-based localization identifier'; unisonunisonfalse256500COLUMN psprotcomp_v.sim_locCOMMENTKCOMMENT ON COLUMN psprotcomp_v.sim_loc IS 'similarity-based localization'; unisonunisonfalse256500COLUMN psprotcomp_v.sim_dbCOMMENT\COMMENT ON COLUMN psprotcomp_v.sim_db IS 'source database for similarity-based prediction'; unisonunisonfalse256500!COLUMN psprotcomp_v.sim_target_acCOMMENTlCOMMENT ON COLUMN psprotcomp_v.sim_target_ac IS 'similarity-based prediction target accession (in sim_db)'; unisonunisonfalse256500COLUMN psprotcomp_v.sim_scoreCOMMENTQCOMMENT ON COLUMN psprotcomp_v.sim_score IS 'similarity-based prediction score'; unisonunisonfalse256500COLUMN psprotcomp_v.nn_psloc_idCOMMENTWCOMMENT ON COLUMN psprotcomp_v.nn_psloc_id IS 'neural net localization prediction id'; unisonunisonfalse256500COLUMN psprotcomp_v.nn_locCOMMENTOCOMMENT ON COLUMN psprotcomp_v.nn_loc IS 'neural net localization prediction'; unisonunisonfalse256500COLUMN psprotcomp_v.nn_scoreCOMMENTLCOMMENT ON COLUMN psprotcomp_v.nn_score IS 'neural net localization score'; unisonunisonfalse256500 COLUMN psprotcomp_v.int_psloc_idCOMMENT\COMMENT ON COLUMN psprotcomp_v.int_psloc_id IS 'localization based on best integral score'; unisonunisonfalse256500COLUMN psprotcomp_v.int_locCOMMENTJCOMMENT ON COLUMN psprotcomp_v.int_loc IS 'component ''integral'' score'; unisonunisonfalse256500COLUMN psprotcomp_v.int_scoreCOMMENTCCOMMENT ON COLUMN psprotcomp_v.int_score IS 'best integral score'; unisonunisonfalse256500 psprotcomp_vACLREVOKE ALL ON TABLE psprotcomp_v FROM PUBLIC; REVOKE ALL ON TABLE psprotcomp_v FROM unison; GRANT ALL ON TABLE psprotcomp_v TO unison; GRANT SELECT ON TABLE psprotcomp_v TO PUBLIC; unisonunisonfalse2565 1259308330psprotcomp_reliable_vVIEWCREATE VIEW psprotcomp_reliable_v AS SELECT pc.pseq_id, pc.params_id, pc.sim_psloc_id AS psloc_id, pc.sim_loc AS loc, 'sequence similarity' AS method, pc.sim_target_ac AS details FROM psprotcomp_v pc WHERE (pc.sim_psloc_id <> 0) UNION ALL SELECT pc.pseq_id, pc.params_id, pc.nn_psloc_id AS psloc_id, pc.nn_loc AS loc, 'nn & integral agreement' AS method, NULL::unknown AS details FROM psprotcomp_v pc WHERE ((pc.sim_psloc_id = 0) AND (pc.int_psloc_id = pc.nn_psloc_id)); (DROP VIEW unison.psprotcomp_reliable_v; unisonunisonfalse2942900VIEW psprotcomp_reliable_vCOMMENTJCOMMENT ON VIEW psprotcomp_reliable_v IS 'reliable protcomp predictions'; unisonunisonfalse256600$COLUMN psprotcomp_reliable_v.pseq_idCOMMENTnCOMMENT ON COLUMN psprotcomp_reliable_v.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse256600&COLUMN psprotcomp_reliable_v.params_idCOMMENTjCOMMENT ON COLUMN psprotcomp_reliable_v.params_id IS 'parameter set identifier -- see params(params_id)'; unisonunisonfalse256600psprotcomp_reliable_vACLREVOKE ALL ON TABLE psprotcomp_reliable_v FROM PUBLIC; REVOKE ALL ON TABLE psprotcomp_reliable_v FROM unison; GRANT ALL ON TABLE psprotcomp_reliable_v TO unison; GRANT SELECT ON TABLE psprotcomp_reliable_v TO PUBLIC; unisonunisonfalse2566 1259309499public_pseq_ids_dvVIEW CREATE VIEW public_pseq_ids_dv AS SELECT DISTINCT sa.pseq_id FROM ((origin o JOIN pannotation ao ON ((o.origin_id = ao.origin_id))) JOIN pseq_pannotation sa ON ((ao.pannotation_id = sa.pannotation_id))) WHERE (o.is_public AND sa.is_current) ORDER BY sa.pseq_id; %DROP VIEW unison.public_pseq_ids_dv; unisonunisonfalse3104900VIEW public_pseq_ids_dvCOMMENTGCOMMENT ON VIEW public_pseq_ids_dv IS 'public pseq_ids; see pset 150'; unisonunisonfalse280500!COLUMN public_pseq_ids_dv.pseq_idCOMMENTkCOMMENT ON COLUMN public_pseq_ids_dv.pseq_id IS 'unique protein sequence identifier -- see pseq(pseq_id)'; unisonunisonfalse280500public_pseq_ids_dvACLREVOKE ALL ON TABLE public_pseq_ids_dv FROM PUBLIC; REVOKE ALL ON TABLE public_pseq_ids_dv FROM unison; GRANT ALL ON TABLE public_pseq_ids_dv TO unison; GRANT SELECT ON TABLE public_pseq_ids_dv TO PUBLIC; unisonunisonfalse2805 1259309503 run_history_vVIEWCREATE VIEW run_history_v AS SELECT r.run_id, h.pseq_id, r.params_id, p.name AS params, p.commandline, r.pmodelset_id, m.name AS modelset, to_char(h.ran_on, 'YYYY-MM-DD HH24:MI'::text) AS ran_on, h.failed FROM (((run_history h JOIN run r ON ((r.run_id = h.run_id))) JOIN params p ON ((r.params_id = p.params_id))) LEFT JOIN pmodelset m ON ((r.pmodelset_id = m.pmodelset_id))) ORDER BY h.pseq_id, p.name, m.name; DROP VIEW unison.run_history_v; unisonunisonfalse3105900VIEW run_history_vCOMMENTdCOMMENT ON VIEW run_history_v IS 'history of analyses by sequence and run (=)'; unisonunisonfalse280600 run_history_vACLREVOKE ALL ON TABLE run_history_v FROM PUBLIC; REVOKE ALL ON TABLE run_history_v FROM unison; GRANT ALL ON TABLE run_history_v TO unison; GRANT SELECT ON TABLE run_history_v TO PUBLIC; unisonunisonfalse2806 1259309508run_vVIEWCREATE VIEW run_v AS SELECT r.run_id, r.params_id, p.name AS params, r.pmodelset_id, m.name AS modelset FROM ((run r JOIN params p ON ((r.params_id = p.params_id))) LEFT JOIN pmodelset m ON ((r.pmodelset_id = m.pmodelset_id))); DROP VIEW unison.run_v; unisonunisonfalse3106900run_vACLREVOKE ALL ON TABLE run_v FROM PUBLIC; REVOKE ALL ON TABLE run_v FROM unison; GRANT ALL ON TABLE run_v TO unison; GRANT SELECT ON TABLE run_v TO PUBLIC; unisonunisonfalse2807?1255309512get_scopid(text)FUNCTIONCREATE FUNCTION get_scopid(text) RETURNS text AS $_$ DECLARE arg alias for $1; ret text; pos text; BEGIN ret=arg; --add d at the beginning if it doesnt exist already IF substring(ret from 1 for 1) != 'd' THEN ret := 'd'||ret; END IF; IF ret ~ '_[A-Z]$' THEN ret := overlay(ret placing '' from length(ret)-1 for 1); END IF; ret := rpad(ret, 7, '_'); return lower(ret); END; $_$ LANGUAGE plpgsql IMMUTABLE; 'DROP FUNCTION unison.get_scopid(text); unisonunisonfalse91293 1259309513 scop_pmodel_vVIEWCREATE VIEW scop_pmodel_v AS SELECT c.sid, c.pdb, c.sccs, c.sp, d.descr, p.pmodel_id FROM pmprospect p, (scop.cla c JOIN scop.des d ON ((c.dm = d.sunid))) WHERE (c.sid = get_scopid(p.acc)); DROP VIEW unison.scop_pmodel_v; unisonunisonfalse3107900COLUMN scop_pmodel_v.pmodel_idCOMMENTPCOMMENT ON COLUMN scop_pmodel_v.pmodel_id IS 'unique protein model identifier'; unisonunisonfalse280800 scop_pmodel_vACLREVOKE ALL ON TABLE scop_pmodel_v FROM PUBLIC; REVOKE ALL ON TABLE scop_pmodel_v FROM unison; GRANT ALL ON TABLE scop_pmodel_v TO unison; GRANT SELECT ON TABLE scop_pmodel_v TO PUBLIC; unisonunisonfalse2808 1259309517 tm_kunitz_cvVIEW6CREATE VIEW tm_kunitz_cv AS SELECT DISTINCT ON (a.pseq_id) a.pseq_id, (SELECT pftmhmm_tm_count_v.count FROM pftmhmm_tm_count_v WHERE (pftmhmm_tm_count_v.pseq_id = a.pseq_id)) AS "#TM", ea.patented AS pat, ea."patented98%" AS pat98, a.eval FROM ((pahmm a JOIN extended_annotation_v ea ON ((a.pseq_id = ea.pseq_id))) JOIN run r ON ((r.params_id = a.params_id))) WHERE (((r.run_id = preferred_run_id_by_pftype('HMM'::text)) AND (a.pmodel_id IN (SELECT hmm_pmodel_id('Kunitz_BPTI'::text) AS hmm_pmodel_id))) AND (a.eval < (1)::double precision)) ORDER BY a.pseq_id; DROP VIEW unison.tm_kunitz_cv; unisonunisonfalse3108900 tm_kunitz_cvACLREVOKE ALL ON TABLE tm_kunitz_cv FROM PUBLIC; REVOKE ALL ON TABLE tm_kunitz_cv FROM unison; GRANT ALL ON TABLE tm_kunitz_cv TO unison; GRANT SELECT ON TABLE tm_kunitz_cv TO PUBLIC; unisonunisonfalse2809 1259309522 userprefsTABLECREATE TABLE userprefs ( usesysid integer NOT NULL, show_tips boolean DEFAULT true NOT NULL, show_sql boolean DEFAULT true NOT NULL ); DROP TABLE unison.userprefs; unisonunisonfalse34823483900TABLE userprefsCOMMENTDCOMMENT ON TABLE userprefs IS 'user preferences for web interface'; unisonunisonfalse281000 userprefsACLREVOKE ALL ON TABLE userprefs FROM PUBLIC; REVOKE ALL ON TABLE userprefs FROM unison; GRANT ALL ON TABLE userprefs TO unison; GRANT SELECT ON TABLE userprefs TO PUBLIC; unisonunisonfalse2810 1259309527hugoTABLECREATE TABLE hugo ( hgnc_id integer NOT NULL, approved_symbold text NOT NULL, approved_name text NOT NULL, status text NOT NULL, locus_type text NOT NULL, previous_symbols text, previous_names text, aliases text, chromosome text, date_approved text, date_modified text, date_name_changed text, accession_numbers text, enzyme_ids text, entrez_gene_id text, mgd_id text, specialist_db_links text, pubmed_ids text, refseq_ids text, gene_family_name text, gdb_id_md text, entrez_gene_id_md text, omim_id_md text, refseq_md text, uniprot_id_md text ); DROP TABLE unison_aux.hugo;  unison_auxunisonfalse1200 TABLE hugoCOMMENTJCOMMENT ON TABLE hugo IS 'Human Genome Organization official gene names';  unison_auxunisonfalse281100COLUMN hugo.hgnc_idCOMMENT-COMMENT ON COLUMN hugo.hgnc_id IS 'HGNC ID';  unison_auxunisonfalse281100COLUMN hugo.approved_symboldCOMMENT>COMMENT ON COLUMN hugo.approved_symbold IS 'Approved Symbol';  unison_auxunisonfalse281100COLUMN hugo.approved_nameCOMMENT9COMMENT ON COLUMN hugo.approved_name IS 'Approved Name';  unison_auxunisonfalse281100COLUMN hugo.statusCOMMENT+COMMENT ON COLUMN hugo.status IS 'Status';  unison_auxunisonfalse281100COLUMN hugo.locus_typeCOMMENT3COMMENT ON COLUMN hugo.locus_type IS 'Locus Type';  unison_auxunisonfalse281100COLUMN hugo.previous_symbolsCOMMENT?COMMENT ON COLUMN hugo.previous_symbols IS 'Previous Symbols';  unison_auxunisonfalse281100COLUMN hugo.previous_namesCOMMENT;COMMENT ON COLUMN hugo.previous_names IS 'Previous Names';  unison_auxunisonfalse281100COLUMN hugo.aliasesCOMMENT-COMMENT ON COLUMN hugo.aliases IS 'Aliases';  unison_auxunisonfalse281100COLUMN hugo.chromosomeCOMMENT3COMMENT ON COLUMN hugo.chromosome IS 'Chromosome';  unison_auxunisonfalse281100COLUMN hugo.date_approvedCOMMENT9COMMENT ON COLUMN hugo.date_approved IS 'Date Approved';  unison_auxunisonfalse281100COLUMN hugo.date_modifiedCOMMENT9COMMENT ON COLUMN hugo.date_modified IS 'Date Modified';  unison_auxunisonfalse281100COLUMN hugo.date_name_changedCOMMENTACOMMENT ON COLUMN hugo.date_name_changed IS 'Date Name Changed';  unison_auxunisonfalse281100COLUMN hugo.accession_numbersCOMMENTACOMMENT ON COLUMN hugo.accession_numbers IS 'Accession Numbers';  unison_auxunisonfalse281100COLUMN hugo.enzyme_idsCOMMENT3COMMENT ON COLUMN hugo.enzyme_ids IS 'Enzyme IDs';  unison_auxunisonfalse281100COLUMN hugo.entrez_gene_idCOMMENT;COMMENT ON COLUMN hugo.entrez_gene_id IS 'Entrez Gene ID';  unison_auxunisonfalse281100COLUMN hugo.mgd_idCOMMENT+COMMENT ON COLUMN hugo.mgd_id IS 'MGD ID';  unison_auxunisonfalse281100COLUMN hugo.specialist_db_linksCOMMENT:COMMENT ON COLUMN hugo.specialist_db_links IS 'Misc IDs';  unison_auxunisonfalse281100COLUMN hugo.pubmed_idsCOMMENT3COMMENT ON COLUMN hugo.pubmed_ids IS 'Pubmed IDs';  unison_auxunisonfalse281100COLUMN hugo.refseq_idsCOMMENT3COMMENT ON COLUMN hugo.refseq_ids IS 'RefSeq IDs';  unison_auxunisonfalse281100COLUMN hugo.gene_family_nameCOMMENT?COMMENT ON COLUMN hugo.gene_family_name IS 'Gene Family Name';  unison_auxunisonfalse281100COLUMN hugo.gdb_id_mdCOMMENT<COMMENT ON COLUMN hugo.gdb_id_md IS 'GDB ID (mapped data)';  unison_auxunisonfalse281100COLUMN hugo.entrez_gene_id_mdCOMMENTLCOMMENT ON COLUMN hugo.entrez_gene_id_md IS 'Entrez Gene ID (mapped data)';  unison_auxunisonfalse281100COLUMN hugo.omim_id_mdCOMMENT>COMMENT ON COLUMN hugo.omim_id_md IS 'OMIM ID (mapped data)';  unison_auxunisonfalse281100COLUMN hugo.refseq_mdCOMMENT<COMMENT ON COLUMN hugo.refseq_md IS 'RefSeq (mapped data)';  unison_auxunisonfalse281100COLUMN hugo.uniprot_id_mdCOMMENTDCOMMENT ON COLUMN hugo.uniprot_id_md IS 'UniProt ID (mapped data)';  unison_auxunisonfalse281100hugoACLREVOKE ALL ON TABLE hugo FROM PUBLIC; REVOKE ALL ON TABLE hugo FROM unison; GRANT ALL ON TABLE hugo TO unison; GRANT SELECT ON TABLE hugo TO PUBLIC;  unison_auxunisonfalse2811 1259309744ptm_type_ptm_type_id_seqSEQUENCEzCREATE SEQUENCE ptm_type_ptm_type_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; 3DROP SEQUENCE unison_aux.ptm_type_ptm_type_id_seq;  unison_auxunisonfalse1200ptm_type_ptm_type_id_seq SEQUENCE SET@SELECT pg_catalog.setval('ptm_type_ptm_type_id_seq', 1, false);  unison_auxunisonfalse2847 1259309533ptm_typeTABLECREATE TABLE ptm_type ( ptm_type_id integer DEFAULT nextval('ptm_type_ptm_type_id_seq'::regclass) NOT NULL, origin_id integer NOT NULL, ptm_type text NOT NULL, acc text, target text NOT NULL, pos_mod_aa text, pos_mod_pp text, correction_formula text, mass_diff_isotopic double precision, mass_diff_avg double precision, cellular_location text, keyword text ); DROP TABLE unison_aux.ptm_type;  unison_auxunisonfalse34841200ptm_typeACLREVOKE ALL ON TABLE ptm_type FROM PUBLIC; REVOKE ALL ON TABLE ptm_type FROM unison; GRANT ALL ON TABLE ptm_type TO unison; GRANT SELECT ON TABLE ptm_type TO PUBLIC;  unison_auxunisonfalse2812@1255309539 acc2id(text)FUNCTION6CREATE FUNCTION acc2id(text) RETURNS integer AS $_$ DECLARE acc alias for $1; pos integer; BEGIN pos := strpos($1,':'); if pos is null then raise exception 'oops.. doesn''t look like a GO Accession (GO:12345)'; return null; end if; return substr(acc,pos+1)::integer; END$_$ LANGUAGE plpgsql; !DROP FUNCTION gong.acc2id(text); gongunisonfalse111293A1255309540id2acc(integer)FUNCTIONqCREATE FUNCTION id2acc(integer) RETURNS text AS $_X$return sprintf("GO:%06d",$_[0])$_X$ LANGUAGE plperl; $DROP FUNCTION gong.id2acc(integer); gongunisonfalse129111#1255308181 descriptor_origin_id(text, text)FUNCTION1CREATE FUNCTION descriptor_origin_id(text, text) RETURNS SETOF integer AS $_$ DECLARE V_id integer; BEGIN FOR V_id IN select descriptor_origin_id from descriptor_origin where type = $1 and upper(origin) = upper($2) LOOP return NEXT V_id; END LOOP; RETURN; END;$_$ LANGUAGE plpgsql; 4DROP FUNCTION pdb.descriptor_origin_id(text, text); pdbunisonfalse15129300 descriptor_origin_id(text, text)ACLREVOKE ALL ON FUNCTION descriptor_origin_id(text, text) FROM PUBLIC; REVOKE ALL ON FUNCTION descriptor_origin_id(text, text) FROM unison; GRANT ALL ON FUNCTION descriptor_origin_id(text, text) TO unison; GRANT ALL ON FUNCTION descriptor_origin_id(text, text) TO PUBLIC; pdbunisonfalse35B1255309541&descriptor_origin_id(text, text, text)FUNCTION]CREATE FUNCTION descriptor_origin_id(text, text, text) RETURNS integer AS $_$ DECLARE V_id integer; BEGIN IF $3 is NULL THEN select into V_id descriptor_origin_id from descriptor_origin where type = $1 and upper(origin) = upper($2) and version is NULL; ELSE select into V_id descriptor_origin_id from descriptor_origin where type = $1 and upper(origin) = upper($2) and version = $3; END IF; IF NOT FOUND THEN RAISE WARNING 'descriptor type ''%'' from origin ''%'' version ''%'' not found', $1,$2,$3; RETURN NULL; END IF; return V_id; END; $_$ LANGUAGE plpgsql IMMUTABLE; :DROP FUNCTION pdb.descriptor_origin_id(text, text, text); pdbunisonfalse12931500&descriptor_origin_id(text, text, text)ACL&REVOKE ALL ON FUNCTION descriptor_origin_id(text, text, text) FROM PUBLIC; REVOKE ALL ON FUNCTION descriptor_origin_id(text, text, text) FROM unison; GRANT ALL ON FUNCTION descriptor_origin_id(text, text, text) TO unison; GRANT ALL ON FUNCTION descriptor_origin_id(text, text, text) TO PUBLIC; pdbunisonfalse66C1255309542descriptor_origin_id(text)FUNCTION CREATE FUNCTION descriptor_origin_id(text) RETURNS SETOF integer AS $_$ DECLARE V_id integer; BEGIN FOR V_id IN select descriptor_origin_id from descriptor_origin where type = $1 LOOP return NEXT V_id; END LOOP; RETURN; END;$_$ LANGUAGE plpgsql; .DROP FUNCTION pdb.descriptor_origin_id(text); pdbunisonfalse12931500descriptor_origin_id(text)ACLREVOKE ALL ON FUNCTION descriptor_origin_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION descriptor_origin_id(text) FROM unison; GRANT ALL ON FUNCTION descriptor_origin_id(text) TO unison; GRANT ALL ON FUNCTION descriptor_origin_id(text) TO PUBLIC; pdbunisonfalse67D1255309543;descriptor_origin_si_descriptor_origin_id(text, text, text)FUNCTIONCREATE FUNCTION descriptor_origin_si_descriptor_origin_id(text, text, text) RETURNS integer AS $_$ DECLARE t alias for $1; o alias for $2; -- origin v alias for $3; rv integer; BEGIN if v is null then select into rv descriptor_origin_id from descriptor_origin where type = t and upper(origin) = upper(o) and version is NULL; else select into rv descriptor_origin_id from descriptor_origin where type = t and upper(origin) = upper(o) and version = v; end if; if found then return rv; end if; insert into descriptor_origin(type,origin,version) values (t,o,v); if v is null then select into rv descriptor_origin_id from descriptor_origin where type = t and upper(origin) = upper(o) and version is NULL; else select into rv descriptor_origin_id from descriptor_origin where type = t and upper(origin) = upper(o) and version = v; end if; return rv; END;$_$ LANGUAGE plpgsql; ODROP FUNCTION pdb.descriptor_origin_si_descriptor_origin_id(text, text, text); pdbunisonfalse12931500DFUNCTION descriptor_origin_si_descriptor_origin_id(text, text, text)COMMENTCOMMENT ON FUNCTION descriptor_origin_si_descriptor_origin_id(text, text, text) IS 'select/insert a descriptor_origin_id from descriptor_origin, returns decsriptor_origin_id'; pdbunisonfalse68E1255309544residue_atomres_trigger()FUNCTIONzCREATE FUNCTION residue_atomres_trigger() RETURNS trigger AS $$ DECLARE BEGIN IF new.atom_res IS null or new.atom_res = '' THEN IF new.res_id IS not null or new.res_id != '' THEN RAISE EXCEPTION 'res_id is not null when atom_res is null for pdbc = % and seqpos = %',new.pdbc,new.seq_pos; RETURN NULL; END IF; END IF; IF new.res_id IS null or new.res_id = '' THEN IF new.atom_res IS not null or new.atom_res != '' THEN RAISE EXCEPTION 'atom_res is not null when res_id is null for pdbc = % and seqpos = %',new.pdbc,new.seq_pos; RETURN NULL; END IF; END IF; RETURN new; END;$$ LANGUAGE plpgsql; -DROP FUNCTION pdb.residue_atomres_trigger(); pdbunisonfalse151293O1255309545%pk_references(text, text, text, text)FUNCTIONCREATE FUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text) RETURNS SETOF record AS $$ DECLARE v_fkinfo record; v_sql text; v_countrow record; v_total integer = 0; v_rc integer; BEGIN -- for...in...execute is the only way to get the results of a dynamic query -- This construct is used several times below -- check pgtools.foreign_keys to see whether n.r.c is really a PK at all -- twould be better to chech pg_constraint for contype=p SELECT into v_sql 'SELECT count(*) from pgtools.foreign_keys' ||' WHERE pk_namespace='''||nsp||''' AND pk_relation='''||rel||''' AND pk_column='''||col||''''; FOR v_countrow IN EXECUTE v_sql LOOP v_rc = v_countrow.count; END LOOP; IF v_rc = 0 THEN RAISE EXCEPTION '%.%.% is not a primary key or has no foreign key references',nsp,rel,col; END IF; -- ensure that expr matches anything in the PK column v_rc = 0; SELECT INTO v_sql 'SELECT count(*) FROM '||nsp||'.'||rel||' WHERE '||col||' '||expr; FOR v_countrow IN EXECUTE v_sql LOOP v_rc = v_countrow.count; END LOOP; IF v_rc = 0 THEN RAISE WARNING '`% %'' doesn''t match any rows in %.%',col,expr,nsp,rel; END IF; -- loop over all nsp.rel.col referents to this PK, counting the number of hits per expr FOR v_fkinfo IN SELECT * from pgtools.foreign_keys WHERE pk_namespace=nsp AND pk_relation=rel AND pk_column=col LOOP SELECT INTO v_sql 'SELECT count(*) as n,''' ||v_fkinfo.fk_namespace||'.'||v_fkinfo.fk_relation||'.'||v_fkinfo.fk_column||''' as fk_referent' ||' from '||v_fkinfo.fk_namespace||'.'||v_fkinfo.fk_relation ||' where '||v_fkinfo.fk_column||' '||expr||';'; FOR v_countrow IN EXECUTE v_sql LOOP n = v_countrow.n; fk_referent = v_countrow.fk_referent; v_total = v_total+n; RETURN NEXT; END LOOP; END LOOP; -- return total too n = v_total; fk_referent = 'total'; RETURN NEXT; END; $$ LANGUAGE plpgsql; sDROP FUNCTION pgutils.pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text); pgutilsrkhfalse12931600dFUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text)COMMENTCOMMENT ON FUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text) IS 'count number of rows in all tables which reference the column specified by nsp($1),rel($2),col($3) and match expr($4)'; pgutilsrkhfalse7900%pk_references(text, text, text, text)ACLREVOKE ALL ON FUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text) FROM PUBLIC; REVOKE ALL ON FUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text) FROM rkh; GRANT ALL ON FUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text) TO rkh; GRANT ALL ON FUNCTION pk_references(nsp text, rel text, col text, expr text, OUT n integer, OUT fk_referent text) TO PUBLIC; pgutilsrkhfalse79Q1255309546pk_references(text, text)FUNCTIONCREATE FUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text) RETURNS SETOF record AS $$ DECLARE v_nsp text; v_rel text; v_col text; v_row record; BEGIN v_nsp = split_part(nrc,'.',1); v_rel = split_part(nrc,'.',2); v_col = split_part(nrc,'.',3); FOR v_row IN SELECT * FROM pgtools.pk_references(v_nsp,v_rel,v_col,expr) LOOP n=v_row.n; fk_referent=v_row.fk_referent; RETURN NEXT; END LOOP; END; $$ LANGUAGE plpgsql; _DROP FUNCTION pgutils.pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text); pgutilsrkhfalse16129300PFUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text)COMMENTCOMMENT ON FUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text) IS 'count number of rows in all tables which reference the nsp.rel.col($1) and match expr($4)'; pgutilsrkhfalse8100pk_references(text, text)ACLREVOKE ALL ON FUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text) FROM PUBLIC; REVOKE ALL ON FUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text) FROM rkh; GRANT ALL ON FUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text) TO rkh; GRANT ALL ON FUNCTION pk_references(nrc text, expr text, OUT n integer, OUT fk_referent text) TO PUBLIC; pgutilsrkhfalse81G1255309547sprintf(text, text, text)FUNCTIONCREATE FUNCTION sprintf(text, text, text) RETURNS text AS $_$ my ($string, $args, $delim) = @_; my $delsplit = defined $delim ? qr{\Q$delim} : qr{\s+}; return sprintf($string, (split $delsplit, $args)); $_$ LANGUAGE plperl; 1DROP FUNCTION pgutils.sprintf(text, text, text); pgutilsrkhfalse12911600"FUNCTION sprintf(text, text, text)COMMENTyCOMMENT ON FUNCTION sprintf(text, text, text) IS 'sprintf(fmt,argstring,dlm): format dlm-delimited argstring using fmt'; pgutilsrkhfalse71H1255309548sprintf(text, text)FUNCTIONpCREATE FUNCTION sprintf(text, text) RETURNS text AS $_$ SELECT sprintf($1,$2,null); $_$ LANGUAGE sql; +DROP FUNCTION pgutils.sprintf(text, text); pgutilsrkhfalse16 00FUNCTION sprintf(text, text)COMMENTwCOMMENT ON FUNCTION sprintf(text, text) IS 'sprintf(fmt,argstring): format whitespace-delimited argstring using fmt'; pgutilsrkhfalse72I1255309549spspec_name(integer)FUNCTIONCREATE FUNCTION spspec_name(integer) RETURNS text AS $_$ DECLARE v_id alias for $1; rv text; BEGIN select into rv name from tax.spspec where id=v_id; return rv; END;$_$ LANGUAGE plpgsql; (DROP FUNCTION tax.spspec_name(integer); taxunisonfalse12938J1255309550_clean_regexp(text)FUNCTIONCREATE FUNCTION _clean_regexp(text) RETURNS text AS $_X$ $_ = shift; my $NOT_RT_BRACKET = qr([^\]]); # flatten nested [] e.g., [A[BC]D[EF]FG] -> ABCDEFFG while (s/\[($NOT_RT_BRACKET*)\[($NOT_RT_BRACKET*)\]/[\1\2/) { die("complement operator ('^') is not allowed inside nested regexps ") if $2 =~ m/\^/; }; # eliminate redundancies in [] sets e.g., A[BBC]D -> A[BC]D # postgresql 7.x requires plperlu, 8.x may use plperl # WARNING: - is intepreted literally, i.e., ranges aren't supported s& \[($NOT_RT_BRACKET+)\] & my %aa = map {$_=>1} split(//,$1); my @aa = sort keys %aa; my $comp = 0; if ($aa[$#aa] eq '^') { $comp++; pop(@aa); } # pop '^' '[' . ($comp?'^':'') . join("",@aa) . ']'; &egx; return $_; $_X$ LANGUAGE plperlu IMMUTABLE STRICT; *DROP FUNCTION unison._clean_regexp(text); unisonunisonfalse12929 00FUNCTION _clean_regexp(text)COMMENTJCOMMENT ON FUNCTION _clean_regexp(text) IS 'reformat regular expression'; unisonunisonfalse74S1255309551_dblast_species(text)FUNCTIONCREATE FUNCTION _dblast_species(text) RETURNS text AS $_$select postgres.plregex($1,E'/^.* - (.+?)\\.?\$/$1/'::TEXT)$_$ LANGUAGE sql IMMUTABLE STRICT; ,DROP FUNCTION unison._dblast_species(text); unisonunisonfalse9 00_dblast_species(text)ACLREVOKE ALL ON FUNCTION _dblast_species(text) FROM PUBLIC; REVOKE ALL ON FUNCTION _dblast_species(text) FROM unison; GRANT ALL ON FUNCTION _dblast_species(text) TO unison; GRANT ALL ON FUNCTION _dblast_species(text) TO PUBLIC; unisonunisonfalse83R1255309552 _defline_agg_finalfunc(anyarray)FUNCTION|CREATE FUNCTION _defline_agg_finalfunc(anyarray) RETURNS text AS $_$select array_to_string($1,'')$_$ LANGUAGE sql; 7DROP FUNCTION unison._defline_agg_finalfunc(anyarray); unisonunisonfalse9 00 _defline_agg_finalfunc(anyarray)ACLREVOKE ALL ON FUNCTION _defline_agg_finalfunc(anyarray) FROM PUBLIC; REVOKE ALL ON FUNCTION _defline_agg_finalfunc(anyarray) FROM unison; GRANT ALL ON FUNCTION _defline_agg_finalfunc(anyarray) TO unison; GRANT ALL ON FUNCTION _defline_agg_finalfunc(anyarray) TO PUBLIC; unisonunisonfalse82L1255309553_expand_aa_sets(text)FUNCTIONUCREATE FUNCTION _expand_aa_sets(text) RETURNS text AS $_X$ # http://www.dur.ac.uk/biological.sciences/Bioinformatics/aminoacids.htm # http://www.ncbi.nlm.nih.gov/Class/MLACourse/Modules/MolBioReview/iupac_aa_abbreviations.html # http://www.ncbi.nlm.nih.gov/projects/collab/FT/index.html#7.5.3 # Expasy References: # 1) Thomas E. Creighton (1993) "Proteins." W.H. Freeman and Company, New York. 2nd Edition. # 2) Richards, F.M. (1974) J. Mol.Biol. 82:1-14. [Van-der-Waals radii of amino acids] $_ = shift; # IUPAC ambiguities ## Ambiguity codes are included in their own expansions so that ## they match themselves in sequences which contain ambiguities. s/B/[BDN]/g; s/Z/[ZEQ]/g; s/X/[ACDEFGHIKLMNPQRSTVWYUBZX]/g; # amino acid sets s/<(?:basic|\+)>/[HKR]/g; s/<(?:acidic|-)>/[DE]/g; s/<(?:neutral|0)>/[ACFGILMNPQSTUVWY]/g; s/<(?:polar|p)>/[NQST]/g; s/<(?:hphobic|o)>/[AIFLMVWY]/g; s/<(?:aromatic|r)>/[FWY]/g; s/<(?:small|s)>/[AGS]/g; s/<(?:medium|m)>/[CDEHILMNPQTUV]/g; # U~C s/<(?:large|l)>/[FKRWY]/g; s/<(.*)>/!!$1!!/g; # unrecognized sets return $_; $_X$ LANGUAGE plperl IMMUTABLE STRICT; ,DROP FUNCTION unison._expand_aa_sets(text); unisonunisonfalse91291 00FUNCTION _expand_aa_sets(text)COMMENTSCOMMENT ON FUNCTION _expand_aa_sets(text) IS 'INTERNAL; see expand_aa_sets(text)'; unisonunisonfalse7600_expand_aa_sets(text)ACLREVOKE ALL ON FUNCTION _expand_aa_sets(text) FROM PUBLIC; REVOKE ALL ON FUNCTION _expand_aa_sets(text) FROM unison; GRANT ALL ON FUNCTION _expand_aa_sets(text) TO unison; GRANT ALL ON FUNCTION _expand_aa_sets(text) TO PUBLIC; unisonunisonfalse76P1255309554_geneseq_species(text)FUNCTIONCREATE FUNCTION _geneseq_species(text) RETURNS text AS $_$select postgres.plregex($1,E'/^.*\\[OS: ([^\\]+]+)\\]/$1/'::TEXT)$_$ LANGUAGE sql IMMUTABLE STRICT; -DROP FUNCTION unison._geneseq_species(text); unisonunisonfalse900_geneseq_species(text)ACLREVOKE ALL ON FUNCTION _geneseq_species(text) FROM PUBLIC; REVOKE ALL ON FUNCTION _geneseq_species(text) FROM unison; GRANT ALL ON FUNCTION _geneseq_species(text) TO unison; GRANT ALL ON FUNCTION _geneseq_species(text) TO PUBLIC; unisonunisonfalse801255307813$_legacy_best_alias(integer, boolean)FUNCTIONCREATE FUNCTION _legacy_best_alias(integer, boolean) RETURNS text AS $_$ BEGIN perform warn('best_alias(integer,boolean) is deprecated; use best_alias(integer) instead.'); return best_alias($1); END; $_$ LANGUAGE plpgsql IMMUTABLE STRICT; ;DROP FUNCTION unison._legacy_best_alias(integer, boolean); unisonunisonfalse9129300-FUNCTION _legacy_best_alias(integer, boolean)COMMENTOCOMMENT ON FUNCTION _legacy_best_alias(integer, boolean) IS 'same as best_OA'; unisonunisonfalse31K1255309555_nr_species(text)FUNCTIONCREATE FUNCTION _nr_species(text) RETURNS text AS $_$select postgres.plregex($1,E'/^.+\\[(.+)\\].*/$1/'::TEXT)$_$ LANGUAGE sql IMMUTABLE STRICT; (DROP FUNCTION unison._nr_species(text); unisonunisonfalse900_nr_species(text)ACLREVOKE ALL ON FUNCTION _nr_species(text) FROM PUBLIC; REVOKE ALL ON FUNCTION _nr_species(text) FROM unison; GRANT ALL ON FUNCTION _nr_species(text) TO unison; GRANT ALL ON FUNCTION _nr_species(text) TO PUBLIC; unisonunisonfalse75M1255309556"_pseq_md5len_lookup(text, integer)FUNCTIONRCREATE FUNCTION _pseq_md5len_lookup(text, integer) RETURNS integer AS $_$ DECLARE c refcursor; rv integer; BEGIN open c for execute 'select pseq_id from pseq where ' || ' md5=' || quote_literal($1) || ' and ' || ' len=' || quote_literal($2) ; fetch c into rv; close c; return rv; end;$_$ LANGUAGE plpgsql STABLE STRICT; 9DROP FUNCTION unison._pseq_md5len_lookup(text, integer); unisonunisonfalse91293N1255309557_pseq_seq_lookup(text)FUNCTIONCREATE FUNCTION _pseq_seq_lookup(text) RETURNS integer AS $_$ BEGIN return _pseq_md5len_lookup(md5($1),length($1)); END;$_$ LANGUAGE plpgsql STABLE STRICT; -DROP FUNCTION unison._pseq_seq_lookup(text); unisonunisonfalse91293T1255309558 _publicize()FUNCTIONCREATE FUNCTION _publicize() RETURNS void AS $_$ DECLARE v_row record; BEGIN IF current_database() !~ '-public$' THEN RAISE EXCEPTION 'publicize(): database must be named "csb-public"'; END IF; RAISE WARNING '%: BEGINNING MASSIVE DELETE OF PROPRIETARY DATA.', timeofday(); FOR v_row IN SELECT origin,origin_id FROM origin WHERE is_public=FALSE ORDER BY origin_id LOOP RAISE NOTICE '%: deleting results for ''%'' (origin_id=%)', timeofday(), v_row.origin, v_row.origin_id; DELETE FROM pannotation WHERE origin_id=v_row.origin_id; DELETE FROM origin WHERE origin_id=v_row.origin_id; END LOOP; FOR v_row IN SELECT name,params_id FROM params WHERE is_public=FALSE ORDER BY params_id LOOP RAISE NOTICE '%: deleting results for ''%'' (params_id=%)', timeofday(), v_row.name, v_row.params_id; DELETE FROM pahmm WHERE params_id=v_row.params_id; DELETE FROM paprospect WHERE params_id=v_row.params_id; DELETE FROM params WHERE params_id=v_row.params_id; END LOOP; RAISE NOTICE 'deleting sequences NOT in pset_id=150'; DELETE FROM pseq WHERE pseq_id NOT IN (SELECT pseq_id FROM pseqset WHERE pset_id=150); SELECT meta_update_kv('publicized at',NOW()); RAISE NOTICE '%: Done. You should VACUUM ANALYZE VERBOSE.', timeofday(); RETURN; END;$_$ LANGUAGE plpgsql; #DROP FUNCTION unison._publicize(); unisonunisonfalse1293900FUNCTION _publicize()COMMENTCOMMENT ON FUNCTION _publicize() IS 'DANGER: This function deletes all proprietary data. It may only be run in a database named csb-public.'; unisonunisonfalse84W1255309559_refseq_species(text)FUNCTIONCREATE FUNCTION _refseq_species(text) RETURNS text AS $_$select postgres.plregex($1,E'/^.+\\[(.+)\\]/$1/'::TEXT)$_$ LANGUAGE sql IMMUTABLE STRICT; ,DROP FUNCTION unison._refseq_species(text); unisonunisonfalse900_refseq_species(text)ACLREVOKE ALL ON FUNCTION _refseq_species(text) FROM PUBLIC; REVOKE ALL ON FUNCTION _refseq_species(text) FROM unison; GRANT ALL ON FUNCTION _refseq_species(text) TO unison; GRANT ALL ON FUNCTION _refseq_species(text) TO PUBLIC; unisonunisonfalse87X1255309560_seqhash_no_cleaning(text)FUNCTIONCREATE FUNCTION _seqhash_no_cleaning(text) RETURNS text AS $_$DECLARE S text; BEGIN return ( md5($1) || length($1) ); END$_$ LANGUAGE plpgsql IMMUTABLE STRICT; 1DROP FUNCTION unison._seqhash_no_cleaning(text); unisonunisonfalse1293900_seqhash_no_cleaning(text)ACLREVOKE ALL ON FUNCTION _seqhash_no_cleaning(text) FROM PUBLIC; REVOKE ALL ON FUNCTION _seqhash_no_cleaning(text) FROM unison; GRANT ALL ON FUNCTION _seqhash_no_cleaning(text) TO unison; GRANT ALL ON FUNCTION _seqhash_no_cleaning(text) TO PUBLIC; unisonunisonfalse881255309561a280(text, text, boolean)FUNCTIONDCREATE FUNCTION a280(text, text, boolean) RETURNS real AS $_X$ my %ec_params; #EMBOSS/share/EMBOSS/data/Eamino.dat $ec_params{emboss} = { eY => 1280, eW => 5690, eC => 60 }; #Pace et al $ec_params{pace} = { eY => 1490, eW => 5500, eC => 125 }; my $seq = shift; if(length($seq) <= 0) { elog(WARNING, "sequence length <= 0") ; return -1; } my $params = shift; elog(ERROR, "extinction coefficents set $params does not exist options are 'emboss' (Gill and von Hippel (1989) _Anal_Biochem_ 182 319-326) and 'Pace' (Pace et. al. Protein Science 1995)\n") if(not defined $ec_params{$params}); my $all_cystines = shift; my $count = count_TyrTrp_residues($seq); my $ans= (($count->{Y} * $ec_params{$params}{eY}) + ($count->{W} * $ec_params{$params}{eW}) ); $ans += int($count->{C}/2) * $ec_params{$params}{eC} if($all_cystines eq 't'); return $ans; sub count_TyrTrp_residues { my $seq = shift; my $count; for ( qw( Y W C) ){ # Tyrosine and Trptophan AAs $count->{$_}++ while $seq =~ /$_/ig; } return $count; } $_X$ LANGUAGE plperl IMMUTABLE STRICT; 0DROP FUNCTION unison.a280(text, text, boolean); unisonunisonfalse1291900"FUNCTION a280(text, text, boolean)COMMENTnCOMMENT ON FUNCTION a280(text, text, boolean) IS 'returns the molar Extinction Coefficient of a protein in '; unisonunisonfalse19900a280(text, text, boolean)ACLREVOKE ALL ON FUNCTION a280(text, text, boolean) FROM PUBLIC; REVOKE ALL ON FUNCTION a280(text, text, boolean) FROM unison; GRANT ALL ON FUNCTION a280(text, text, boolean) TO unison; GRANT ALL ON FUNCTION a280(text, text, boolean) TO PUBLIC; unisonunisonfalse199U1255309562 a280(text)FUNCTIONCREATE FUNCTION a280(text) RETURNS real AS $_$ DECLARE ans float; BEGIN select INTO ans A280($1,'emboss','f'); return ans; END$_$ LANGUAGE plpgsql; !DROP FUNCTION unison.a280(text); unisonunisonfalse12939V1255309563aa_3_to_1(text)FUNCTIONaCREATE FUNCTION aa_3_to_1(text) RETURNS text AS $_$ select case $1 when 'Ala' then 'A' when 'Bas' then 'B' when 'Cys' then 'C' when 'Asp' then 'D' when 'Glu' then 'E' when 'Phe' then 'F' when 'Gly' then 'G' when 'His' then 'H' when 'Iso' then 'I' when 'Lys' then 'K' when 'Leu' then 'L' when 'Met' then 'M' when 'Asn' then 'N' when 'Pro' then 'P' when 'Gln' then 'Q' when 'Arg' then 'R' when 'Ser' then 'S' when 'Thr' then 'T' when 'Val' then 'V' when 'Trp' then 'W' when 'Any' then 'X' when 'Tyr' then 'Y' when 'Aci' then 'Z' else '?' end; $_$ LANGUAGE sql IMMUTABLE STRICT; &DROP FUNCTION unison.aa_3_to_1(text); unisonunisonfalse900aa_3_to_1(text)ACLREVOKE ALL ON FUNCTION aa_3_to_1(text) FROM PUBLIC; REVOKE ALL ON FUNCTION aa_3_to_1(text) FROM unison; GRANT ALL ON FUNCTION aa_3_to_1(text) TO unison; GRANT ALL ON FUNCTION aa_3_to_1(text) TO PUBLIC; unisonunisonfalse86Y1255309564add_soa(text, text, text)FUNCTIONCREATE FUNCTION add_soa(text, text, text) RETURNS integer AS $_$ DECLARE S alias for $1; -- sequence O alias for $2; -- origin A alias for $3; -- alias si integer; -- pseq_id oi integer; -- origin_id BEGIN si := si_pseq_id(S); oi := si_origin_id(O); insert into palias (pseq_id,origin_id,alias) values (si,oi,A); return si; END;$_$ LANGUAGE plpgsql STRICT; 0DROP FUNCTION unison.add_soa(text, text, text); unisonunisonfalse1293900"FUNCTION add_soa(text, text, text)COMMENTCOMMENT ON FUNCTION add_soa(text, text, text) IS 'add tuple, using existing ids when available, returns pseq_id'; unisonunisonfalse8912553095658assign_annotation(integer, integer, text, text, integer)FUNCTIONaCREATE FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer) RETURNS integer AS $$ DECLARE rv integer; rec record; BEGIN -- insert/fetch the origin/alias/descr/tax_id annotation SELECT INTO v_pannotation_id ins_pannotation( v_origin_id, v_alias, v_descr, v_tax_id ); -- fetch the most recent pseq_pannotation entry for this pannotation_id, if any SELECT INTO rec * FROM pseq_pannotation WHERE pannotation_id=v_pannotation_id ORDER BY version DESC LIMIT 1; IF NOT FOUND THEN -- No pseq_pannotation entry exists for this pannotation_id. -- The pannotation row was probably just created above. RAISE DEBUG 'assigning new pannotation_id % to pseq_id %, version %', v_pannotation_id, v_pseq_id, 1; INSERT INTO pseq_pannotation ( pannotation_id, pseq_id ) VALUES ( v_pannotation_id, v_pseq_id ); RETURN; END IF; -- pannotation_id is currently assigned to some sequence RAISE DEBUG 'pannotation_id %: pseq_id=%, version=%, is_current=%, added=%', rec.pannotation_id, rec.pseq_id, rec.version, rec.is_current, rec.added; IF v_pseq_id != rec.pseq_id THEN RAISE DEBUG ' reassigning pannotation_id to pseq_id=%', v_pseq_id; UPDATE pseq_pannotation SET is_current = FALSE WHERE pannotation_id = v_pannotation_id; INSERT INTO pseq_pannotation ( pannotation_id, pseq_id, version ) VALUES ( v_pannotation_id, v_pseq_id, rec.version+1 ); ELSEIF rec.is_current = FALSE THEN -- rec.pseq_id = v_pseq_id, but the assignment's been deprecated. -- Instead of making a new row, revive this deprecated assignment. -- WARNING: added=rec.added practically ensures that the row is unique RAISE DEBUG ' pseq_id unchanged; resuscitating pannotation_id'; UPDATE pseq_pannotation SET is_current = TRUE WHERE pannotation_id = v_pannotation_id AND pseq_id = v_pseq_id AND added = rec.added; ELSEIF v_pseq_id=rec.pseq_id AND rec.is_current=TRUE THEN -- do nothing RAISE DEBUG ' no pseq_pannotation change required.'; ELSE RAISE EXCEPTION 'Logic error -- contact Reece'; END IF; RETURN; END; $$ LANGUAGE plpgsql; DROP FUNCTION unison.assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer); unisonunisonfalse1293900FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer)COMMENTvCOMMENT ON FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer) IS ': create/fetch row in paliasorigin, and then create/fetch in pseqalias, deprecating an existing assignment if necessary'; unisonunisonfalse197008assign_annotation(integer, integer, text, text, integer)ACLREVOKE ALL ON FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer) FROM PUBLIC; REVOKE ALL ON FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer) FROM unison; GRANT ALL ON FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer) TO unison; GRANT ALL ON FUNCTION assign_annotation(v_pseq_id integer, v_origin_id integer, v_alias text, v_descr text, v_tax_id integer, OUT v_pannotation_id integer) TO PUBLIC; unisonunisonfalse197Z1255309566Dassign_p2gblataln(text, integer, integer, integer, integer, integer)FUNCTIONfCREATE FUNCTION assign_p2gblataln(text, integer, integer, integer, integer, integer) RETURNS integer AS $_$ DECLARE v_hsp_str ALIAS FOR $1; v_ident ALIAS FOR $2; v_pgap_cnt ALIAS FOR $3; v_pgap_bases ALIAS FOR $4; v_ggap_cnt ALIAS FOR $5; v_ggap_bases ALIAS FOR $6; v_p2gblataln_id integer; v_p2gblataln_ids integer[]; low integer; high integer; rec RECORD; BEGIN -- check whether hsp_str is already in the database SELECT INTO v_p2gblataln_id p2gblataln_id FROM p2gblataln WHERE hsp_str=v_hsp_str; IF v_p2gblataln_id is null THEN SELECT INTO v_p2gblataln_id nextval('unison.p2gblataln_p2gblataln_id_seq'::text); INSERT INTO p2gblataln (p2gblataln_id, hsp_str, ident, pgap_cnt, pgap_bases, ggap_cnt, ggap_bases) VALUES (v_p2gblataln_id, v_hsp_str, v_ident, v_pgap_cnt, v_pgap_bases, v_ggap_cnt, v_ggap_bases); END IF; -- insert into p2gblatalnhsp table (let the unique indices deal with redudancies SELECT INTO v_p2gblataln_ids hsp_str_to_hsp_ids( v_hsp_str ); low := replace(split_part(array_dims(v_p2gblataln_ids),':',1),'[','')::int; high := replace(split_part(array_dims(v_p2gblataln_ids),':',2),']','')::int; FOR i IN low..high LOOP INSERT INTO p2gblatalnhsp (p2gblataln_id, p2gblathsp_id) VALUES (v_p2gblataln_id, v_p2gblataln_ids[i]); END LOOP; return v_p2gblataln_id; END; $_$ LANGUAGE plpgsql; [DROP FUNCTION unison.assign_p2gblataln(text, integer, integer, integer, integer, integer); unisonunisonfalse9129300MFUNCTION assign_p2gblataln(text, integer, integer, integer, integer, integer)COMMENTCOMMENT ON FUNCTION assign_p2gblataln(text, integer, integer, integer, integer, integer) IS 'insert protein-to-genome BLAT alignments'; unisonunisonfalse90+1255308586best_alias(integer)FUNCTIONCREATE FUNCTION best_alias(integer) RETURNS text AS $_$select origin_alias_fmt(origin,alias) from best_annotation_mv where pseq_id=$1;$_$ LANGUAGE sql; *DROP FUNCTION unison.best_alias(integer); unisonunisonfalse900FUNCTION best_alias(integer)COMMENTCOMMENT ON FUNCTION best_alias(integer) IS '"best" alias for given pseq_id. NOTE: from materialized view, which may be stale.'; unisonunisonfalse43[1255309567best_alias(integer, integer)FUNCTIONCREATE FUNCTION best_alias(integer, integer) RETURNS text AS $_$select origin_alias_fmt(origin,alias) from best_annotation_mv where pseq_id=$1 and tax_id=$2$_$ LANGUAGE sql; 3DROP FUNCTION unison.best_alias(integer, integer); unisonunisonfalse9\1255309568best_alias(integer, text)FUNCTIONCREATE FUNCTION best_alias(integer, text) RETURNS text AS $_$select origin_alias_fmt(origin,alias) from best_annotation_mv where pseq_id=$1 and tax_id=gs2tax_id($2)$_$ LANGUAGE sql; 0DROP FUNCTION unison.best_alias(integer, text); unisonunisonfalse9]1255309569!best_annotation(integer, integer)FUNCTIONCREATE FUNCTION best_annotation(integer, integer) RETURNS text AS $_$select origin_alias_descr_fmt(origin,alias,descr) from best_annotation_mv where pseq_id=$1 and tax_id=$2;$_$ LANGUAGE sql; 8DROP FUNCTION unison.best_annotation(integer, integer); unisonunisonfalse9^1255309570best_annotation(integer, text)FUNCTIONCREATE FUNCTION best_annotation(integer, text) RETURNS text AS $_$select origin_alias_descr_fmt(origin,alias,descr) from best_annotation_mv where pseq_id=$1 and tax_id=gs2tax_id($2);$_$ LANGUAGE sql; 5DROP FUNCTION unison.best_annotation(integer, text); unisonunisonfalse9_1255309571'check_public_acl(name, name, character)FUNCTIONCREATE FUNCTION check_public_acl(name, name, character) RETURNS boolean AS $_$ DECLARE acl text; rec record; BEGIN IF ( $3 NOT IN ( 'w','r','a','R','x','t' ) ) THEN RAISE EXCEPTION 'mode flags must use single letter from "arwRxt"'; END IF; SELECT INTO rec perms FROM table_perms_v WHERE schemaname = $1 AND tablename = $2; IF NOT FOUND THEN RAISE EXCEPTION 'Did not find any schema name "%", relation named "%".', $1, $2; END IF; acl := rec.perms; IF acl IS NULL THEN RETURN 'f'; END IF; IF acl ~ ( ',=[rwaRxt]*' || $3 ) /* public */ THEN RETURN 't'; END IF; RETURN 'f'; END; $_$ LANGUAGE plpgsql; >DROP FUNCTION unison.check_public_acl(name, name, character); unisonunisonfalse91293`1255309572+check_public_perms(name, name, character[])FUNCTIONCREATE FUNCTION check_public_perms(name, name, character[]) RETURNS boolean AS $_$ DECLARE schema alias for $1; table alias for $2; privs alias for $3; acl text; rec record; i integer; BEGIN -- check if the input array has the right permission letters FOR i IN array_lower(privs, 1)..array_upper(privs, 1) LOOP IF ( privs[i] NOT IN ( 'w','r','a','d','R','x','t' ) ) THEN RAISE EXCEPTION 'mode flags must use single letter from "arwdRxt"'; END IF; END LOOP; SELECT INTO rec perms FROM table_perms_v WHERE schemaname = schema AND tablename = table; IF NOT FOUND THEN RAISE EXCEPTION 'Did not find any schema name "%", relation named "%".', schema, table; END IF; acl := rec.perms; IF acl IS NULL THEN RETURN false; END IF; FOR i IN array_lower(privs, 1)..array_upper(privs, 1) LOOP IF acl ~ ( ',=[rwadRxt]*' || privs[i] ) /* public */ THEN RETURN true; END IF; END LOOP; RETURN false; END; $_$ LANGUAGE plpgsql; BDROP FUNCTION unison.check_public_perms(name, name, character[]); unisonunisonfalse12939004FUNCTION check_public_perms(name, name, character[])COMMENTCOMMENT ON FUNCTION check_public_perms(name, name, character[]) IS 'check_public_perms ( , , ) returns true if public has any of the permissions listed in the char[] array'; unisonunisonfalse96a1255309573+check_user_acl(name, name, name, character)FUNCTIONCREATE FUNCTION check_user_acl(name, name, name, character) RETURNS boolean AS $_$ DECLARE user alias for $1; schema alias for $2; table alias for $3; perm alias for $4; acl text; rec record; BEGIN IF ( perm NOT IN ( 'w','r','a','R','x','t','d' ) ) THEN RAISE EXCEPTION 'mode flags must use single letter from "rwadRxt"'; END IF; SELECT INTO rec tableowner, tablename, schemaname, perms, usesuper FROM table_perms_v, pg_user WHERE schemaname = schema AND tablename = table; IF NOT FOUND THEN RAISE EXCEPTION 'Did not find any user named "%" or schema named "%" or relation named "%".', user,schema,table; END IF; IF rec.tableowner = user OR rec.usesuper THEN RETURN 't'; END IF; acl := rec.perms; IF acl IS NULL THEN RETURN 'f'; END IF; IF acl ~ ( user || '=[rwadRxt]*' || perm) /* user */ THEN RETURN 't'; END IF; RETURN 'f'; END; $_$ LANGUAGE plpgsql; BDROP FUNCTION unison.check_user_acl(name, name, name, character); unisonunisonfalse12939b1255309574/check_user_perms(name, name, name, character[])FUNCTIONCREATE FUNCTION check_user_perms(name, name, name, character[]) RETURNS boolean AS $_$ DECLARE user alias for $1; schema alias for $2; table alias for $3; privs alias for $4; acl text; rec record; i integer; BEGIN -- check if the input array has the right permission letters FOR i IN array_lower(privs, 1)..array_upper(privs, 1) LOOP IF ( privs[i] NOT IN ( 'w','r','a','R','x','t','d' ) ) THEN RAISE EXCEPTION 'mode flags must use single letter from "rwadRxt"'; END IF; END LOOP; SELECT INTO rec tableowner, tablename, schemaname, perms, usesuper FROM table_perms_v, pg_user WHERE schemaname = schema AND tablename = table; IF NOT FOUND THEN RAISE EXCEPTION 'Did not find either a schema named "%" or a table named "%".', schema,table; END IF; IF rec.tableowner = user OR rec.usesuper THEN RETURN true; END IF; acl := rec.perms; IF acl IS NULL THEN RETURN false; END IF; FOR i IN array_lower(privs, 1)..array_upper(privs, 1) LOOP IF acl ~ ( user || '=[rwadRxt]*' || privs[i]) /* user */ THEN RETURN true; END IF; END LOOP; RETURN false; END; $_$ LANGUAGE plpgsql; FDROP FUNCTION unison.check_user_perms(name, name, name, character[]); unisonunisonfalse12939008FUNCTION check_user_perms(name, name, name, character[])COMMENTCOMMENT ON FUNCTION check_user_perms(name, name, name, character[]) IS 'check_user_perms ( , , , ) returns true if the user has any of the permissions listed in the char[] array'; unisonunisonfalse98c1255309575chr2locus(text)FUNCTIONCREATE FUNCTION chr2locus(text) RETURNS real AS $_X$$_[0] =~ m/^([XYME])$/ ? return 100+ord($1) : $_[0];$_X$ LANGUAGE plperl IMMUTABLE; &DROP FUNCTION unison.chr2locus(text); unisonunisonfalse91291d1255309576chr2locus(text, integer)FUNCTIONCREATE FUNCTION chr2locus(text, integer) RETURNS real AS $_X$return ($_[0] =~ m/^([XYME])$/ ? 100+ord($1) : $_[0]) . "." . $_[1];$_X$ LANGUAGE plperl IMMUTABLE; /DROP FUNCTION unison.chr2locus(text, integer); unisonunisonfalse91291e1255309577clean_sequence(text)FUNCTIONCREATE FUNCTION clean_sequence(text) RETURNS text AS $_$ my $x = shift; $x =~ s/[^-\*ABCDEFGHIKLMNPQRSTUVWXYZ]//g; $x =~ s/\*+$//; return $x; $_$ LANGUAGE plperl IMMUTABLE STRICT; +DROP FUNCTION unison.clean_sequence(text); unisonunisonfalse12919f1255309578'current_params_id_by_pftype_id(integer)FUNCTIONaCREATE FUNCTION current_params_id_by_pftype_id(integer) RETURNS integer AS $_$BEGIN RAISE EXCEPTION 'current_params_id_by_pftype_id was deprecated on 2006-01-31; use preferred_params_id_by_pftype(text) or preferred_params_id_by_pftype_id(integer) instead'; return preferred_params_id_by_pftype_id($1); END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; >DROP FUNCTION unison.current_params_id_by_pftype_id(integer); unisonunisonfalse91293000FUNCTION current_params_id_by_pftype_id(integer)COMMENTCOMMENT ON FUNCTION current_params_id_by_pftype_id(integer) IS 'returns current/preferred params_id for a given feature type'; unisonunisonfalse102 00'current_params_id_by_pftype_id(integer)ACL*REVOKE ALL ON FUNCTION current_params_id_by_pftype_id(integer) FROM PUBLIC; REVOKE ALL ON FUNCTION current_params_id_by_pftype_id(integer) FROM unison; GRANT ALL ON FUNCTION current_params_id_by_pftype_id(integer) TO unison; GRANT ALL ON FUNCTION current_params_id_by_pftype_id(integer) TO PUBLIC; unisonunisonfalse102g1255309579current_usesysid()FUNCTIONCREATE FUNCTION current_usesysid() RETURNS integer AS $$select usesysid from pg_user where usename=current_user;$$ LANGUAGE sql STABLE STRICT; )DROP FUNCTION unison.current_usesysid(); unisonunisonfalse9-1255308588domain_digests(integer)FUNCTIONCREATE FUNCTION domain_digests(integer) RETURNS text AS $_$ select as_set(digest) as domain_digests from (select * from pseq_features_v where pseq_id=$1 order by start,stop) X $_$ LANGUAGE sql STRICT COST 20000; .DROP FUNCTION unison.domain_digests(integer); unisonunisonfalse9!00 FUNCTION domain_digests(integer)COMMENTZCOMMENT ON FUNCTION domain_digests(integer) IS 'domain digests in N-to-C terminus order'; unisonunisonfalse45"00domain_digests(integer)ACLREVOKE ALL ON FUNCTION domain_digests(integer) FROM PUBLIC; REVOKE ALL ON FUNCTION domain_digests(integer) FROM unison; GRANT ALL ON FUNCTION domain_digests(integer) TO unison; GRANT ALL ON FUNCTION domain_digests(integer) TO PUBLIC; unisonunisonfalse45h1255309580expand_aa_sets(text)FUNCTIONCREATE FUNCTION expand_aa_sets(text) RETURNS text AS $_$select _clean_regexp(_expand_aa_sets($1))$_$ LANGUAGE sql IMMUTABLE STRICT; +DROP FUNCTION unison.expand_aa_sets(text); unisonunisonfalse9#00FUNCTION expand_aa_sets(text)COMMENTjCOMMENT ON FUNCTION expand_aa_sets(text) IS 'expand sets of amino acids represented in the given string'; unisonunisonfalse104$00expand_aa_sets(text)ACLREVOKE ALL ON FUNCTION expand_aa_sets(text) FROM PUBLIC; REVOKE ALL ON FUNCTION expand_aa_sets(text) FROM unison; GRANT ALL ON FUNCTION expand_aa_sets(text) TO unison; GRANT ALL ON FUNCTION expand_aa_sets(text) TO PUBLIC; unisonunisonfalse104i1255309581get_current_users(name, name)FUNCTIONXCREATE FUNCTION get_current_users(name, name) RETURNS name[] AS $_$ declare schema alias for $1; table alias for $2; current_users name[] = '{}'; pguser record; acl text; user text; rec record; begin for pguser in select usename from pg_user LOOP for rec in select perms FROM table_perms_v WHERE schemaname = schema AND tablename = table LOOP acl := rec.perms; user := pguser.usename||'='; IF acl ~ user THEN current_users = array_append(current_users,pguser.usename); EXIT; END IF; END LOOP; END LOOP; RETURN current_users; end; $_$ LANGUAGE plpgsql; 4DROP FUNCTION unison.get_current_users(name, name); unisonunisonfalse91293%00&FUNCTION get_current_users(name, name)COMMENTCOMMENT ON FUNCTION get_current_users(name, name) IS 'get_current_users(, ) returns a name[] array of current users of the input schema,table'; unisonunisonfalse105j1255309582-get_pannotation_pannotation_id(integer, text)FUNCTIONCREATE FUNCTION get_pannotation_pannotation_id(integer, text) RETURNS integer AS $_$ DECLARE v_origin_id ALIAS FOR $1; v_alias ALIAS FOR $2; rec record; v_pannotation_id integer; BEGIN -- check whether pannotation exists: if yes, then return pannotation_id, otherwise return null RAISE DEBUG 'select * from pseq_pannotationorigin where origin_id=% and alias=%',v_origin_id,v_alias; select into rec * from pannotation where origin_id=v_origin_id and alias=v_alias; IF found THEN RAISE DEBUG 'record exists for this alias and origin: %', rec.pannotation_id; v_pannotation_id := rec.pannotation_id; END IF; return v_pannotation_id; END; $_$ LANGUAGE plpgsql; DDROP FUNCTION unison.get_pannotation_pannotation_id(integer, text); unisonunisonfalse12939&006FUNCTION get_pannotation_pannotation_id(integer, text)COMMENTCOMMENT ON FUNCTION get_pannotation_pannotation_id(integer, text) IS 'retrieve the palias_id for a given origin_id and alias'; unisonunisonfalse106k1255309583#get_run_timestamp(integer, integer)FUNCTION,CREATE FUNCTION get_run_timestamp(integer, integer) RETURNS timestamp with time zone AS $_$ DECLARE q alias for $1; r alias for $2; z timestamp; BEGIN select into z ran_on from run_history where pseq_id=q and run_id=r; return z; END; $_$ LANGUAGE plpgsql; :DROP FUNCTION unison.get_run_timestamp(integer, integer); unisonunisonfalse12939'00,FUNCTION get_run_timestamp(integer, integer)COMMENTCOMMENT ON FUNCTION get_run_timestamp(integer, integer) IS 'for the given pseq_id and run_id, returns the ran_on timestamp from run_history'; unisonunisonfalse107l1255309584gseq_iu_trigger()FUNCTIONzCREATE FUNCTION gseq_iu_trigger() RETURNS trigger AS $$ DECLARE oldmd5 text; BEGIN oldmd5 := md5(new.seq); new.seq := clean_sequence(new.seq); new.md5 := md5(new.seq); if oldmd5 != new.md5 then raise notice 'gseq_id % modified during insert.',new.gseq_id; end if; new.len := length(new.seq); return new; END; $$ LANGUAGE plpgsql; (DROP FUNCTION unison.gseq_iu_trigger(); unisonunisonfalse12939m1255309585has_iupac_ambiguity_aa(text)FUNCTIONCREATE FUNCTION has_iupac_ambiguity_aa(text) RETURNS boolean AS $_$select $1 ~ '[BXZ]'$_$ LANGUAGE sql IMMUTABLE STRICT; 3DROP FUNCTION unison.has_iupac_ambiguity_aa(text); unisonunisonfalse9(00%FUNCTION has_iupac_ambiguity_aa(text)COMMENTqCOMMENT ON FUNCTION has_iupac_ambiguity_aa(text) IS 'sequence contains IUPAC ambiguity (B=[DE], Z=[NQ], X=any)'; unisonunisonfalse109)00has_iupac_ambiguity_aa(text)ACLREVOKE ALL ON FUNCTION has_iupac_ambiguity_aa(text) FROM PUBLIC; REVOKE ALL ON FUNCTION has_iupac_ambiguity_aa(text) FROM unison; GRANT ALL ON FUNCTION has_iupac_ambiguity_aa(text) TO unison; GRANT ALL ON FUNCTION has_iupac_ambiguity_aa(text) TO PUBLIC; unisonunisonfalse109n1255309586has_iupac_gap_aa(text)FUNCTIONwCREATE FUNCTION has_iupac_gap_aa(text) RETURNS boolean AS $_$select $1 ~ '-'$_$ LANGUAGE sql IMMUTABLE STRICT; -DROP FUNCTION unison.has_iupac_gap_aa(text); unisonunisonfalse9*00FUNCTION has_iupac_gap_aa(text)COMMENTPCOMMENT ON FUNCTION has_iupac_gap_aa(text) IS 'sequence contains an IUPAC gap'; unisonunisonfalse110+00has_iupac_gap_aa(text)ACLREVOKE ALL ON FUNCTION has_iupac_gap_aa(text) FROM PUBLIC; REVOKE ALL ON FUNCTION has_iupac_gap_aa(text) FROM unison; GRANT ALL ON FUNCTION has_iupac_gap_aa(text) TO unison; GRANT ALL ON FUNCTION has_iupac_gap_aa(text) TO PUBLIC; unisonunisonfalse110o1255309587has_iupac_stop_aa(text)FUNCTIONzCREATE FUNCTION has_iupac_stop_aa(text) RETURNS boolean AS $_$select $1 ~ '\\*'$_$ LANGUAGE sql IMMUTABLE STRICT; .DROP FUNCTION unison.has_iupac_stop_aa(text); unisonunisonfalse9,00 FUNCTION has_iupac_stop_aa(text)COMMENTRCOMMENT ON FUNCTION has_iupac_stop_aa(text) IS 'sequence contains an IUPAC stop'; unisonunisonfalse111-00has_iupac_stop_aa(text)ACLREVOKE ALL ON FUNCTION has_iupac_stop_aa(text) FROM PUBLIC; REVOKE ALL ON FUNCTION has_iupac_stop_aa(text) FROM unison; GRANT ALL ON FUNCTION has_iupac_stop_aa(text) TO unison; GRANT ALL ON FUNCTION has_iupac_stop_aa(text) TO PUBLIC; unisonunisonfalse111p1255309588has_non_iupac_aa(text)FUNCTIONCREATE FUNCTION has_non_iupac_aa(text) RETURNS boolean AS $_$select $1 ~ '[^-*ACDEFGHIKLMNPQRSTVWYUBZX]'$_$ LANGUAGE sql IMMUTABLE STRICT; -DROP FUNCTION unison.has_non_iupac_aa(text); unisonunisonfalse9.00FUNCTION has_non_iupac_aa(text)COMMENTCOMMENT ON FUNCTION has_non_iupac_aa(text) IS 'sequence has non-IUPAC symbols (selenocysteine, gaps, stops, and ambiguities okay)'; unisonunisonfalse112/00has_non_iupac_aa(text)ACLREVOKE ALL ON FUNCTION has_non_iupac_aa(text) FROM PUBLIC; REVOKE ALL ON FUNCTION has_non_iupac_aa(text) FROM unison; GRANT ALL ON FUNCTION has_non_iupac_aa(text) TO unison; GRANT ALL ON FUNCTION has_non_iupac_aa(text) TO PUBLIC; unisonunisonfalse112q1255309589 has_only_iupac_aa_ungapped(text)FUNCTIONCREATE FUNCTION has_only_iupac_aa_ungapped(text) RETURNS boolean AS $_$select $1 !~ '[^ACDEFGHIKLMNPQRSTVWYUBZX]'$_$ LANGUAGE sql IMMUTABLE STRICT; 7DROP FUNCTION unison.has_only_iupac_aa_ungapped(text); unisonunisonfalse9000)FUNCTION has_only_iupac_aa_ungapped(text)COMMENT|COMMENT ON FUNCTION has_only_iupac_aa_ungapped(text) IS 'ungapped sequence contains only IUPAC amino acids or ambiguities'; unisonunisonfalse113100 has_only_iupac_aa_ungapped(text)ACLREVOKE ALL ON FUNCTION has_only_iupac_aa_ungapped(text) FROM PUBLIC; REVOKE ALL ON FUNCTION has_only_iupac_aa_ungapped(text) FROM unison; GRANT ALL ON FUNCTION has_only_iupac_aa_ungapped(text) TO unison; GRANT ALL ON FUNCTION has_only_iupac_aa_ungapped(text) TO PUBLIC; unisonunisonfalse113r1255309590$has_only_iupac_std_aa_ungapped(text)FUNCTIONCREATE FUNCTION has_only_iupac_std_aa_ungapped(text) RETURNS boolean AS $_$select $1 !~ '[^ACDEFGHIKLMNPQRSTVWY]'$_$ LANGUAGE sql IMMUTABLE STRICT; ;DROP FUNCTION unison.has_only_iupac_std_aa_ungapped(text); unisonunisonfalse9200-FUNCTION has_only_iupac_std_aa_ungapped(text)COMMENTCOMMENT ON FUNCTION has_only_iupac_std_aa_ungapped(text) IS 'ungapped sequence contains only the standard 20 IUPAC amino acids'; unisonunisonfalse114300$has_only_iupac_std_aa_ungapped(text)ACLREVOKE ALL ON FUNCTION has_only_iupac_std_aa_ungapped(text) FROM PUBLIC; REVOKE ALL ON FUNCTION has_only_iupac_std_aa_ungapped(text) FROM unison; GRANT ALL ON FUNCTION has_only_iupac_std_aa_ungapped(text) TO unison; GRANT ALL ON FUNCTION has_only_iupac_std_aa_ungapped(text) TO PUBLIC; unisonunisonfalse114s1255309591hmm_pmodel_id(text, integer)FUNCTIONCREATE FUNCTION hmm_pmodel_id(text, integer) RETURNS integer AS $_$DECLARE V_id integer; BEGIN perform * from origin where origin_id=$2; IF NOT FOUND THEN RAISE EXCEPTION 'origin_id ''%'' not found', $2; END IF; select into V_id pmodel_id from pmhmm where upper(acc)=upper($1) and origin_id=$2; IF NOT FOUND THEN RAISE WARNING 'model ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql; 3DROP FUNCTION unison.hmm_pmodel_id(text, integer); unisonunisonfalse91293t1255309592hsp_coverage(integer)FUNCTIONCREATE FUNCTION hsp_coverage(integer) RETURNS double precision AS $_$ declare v_pfeature_id alias for $1; v_pct_hsp_coverage float; v_pseq_id integer; v_t_pseq_id integer; q_seq_len integer; t_seq_len integer; shorter_len integer; longer_len integer; rec record; begin -- get the papseq record for this pfeature_id select into rec * from papseq where pfeature_id=v_pfeature_id; IF not found THEN RAISE EXCEPTION 'no record pfeature_id=%',v_pfeature_id; END IF; -- get the pseq_id for the target select into v_t_pseq_id pseq_id from pmpseq where pmodel_id=rec.pmodel_id; IF v_t_pseq_id is null THEN RAISE EXCEPTION 'no pseq_id for pmodel_id=%',rec.pmodel_id; END IF; -- get sequence lengths for derived values select into q_seq_len len from pseq where pseq_id=rec.pseq_id; select into t_seq_len len from pseq where pseq_id=v_t_pseq_id; IF q_seq_len is null or q_seq_len = 0 THEN RAISE EXCEPTION 'length for pseq_id=% is null or zero',rec.pseq_id; ELSIF t_seq_len is null or t_seq_len = 0 THEN RAISE EXCEPTION 'length for pseq_id=% is null or zero',v_t_pseq_id; END IF; -- calculate derived values IF q_seq_len > t_seq_len THEN shorter_len := t_seq_len; longer_len := q_seq_len; ELSE shorter_len := q_seq_len; longer_len := t_seq_len; END IF; v_pct_hsp_coverage := ( rec.len::real / shorter_len::real ) * 100.0; return v_pct_hsp_coverage; end; $_$ LANGUAGE plpgsql; ,DROP FUNCTION unison.hsp_coverage(integer); unisonunisonfalse91293u1255309593hsp_ids_to_hsp_str(integer[])FUNCTIONCREATE FUNCTION hsp_ids_to_hsp_str(integer[]) RETURNS text AS $_$ DECLARE hsp_ids ALIAS FOR $1; hsp_str text; low integer; high integer; BEGIN -- get bounds of hsp_ids array for looping low := replace(split_part(array_dims(hsp_ids),':',1),'[','')::int; high := replace(split_part(array_dims(hsp_ids),':',2),']','')::int; hsp_str := hsp_ids[1]; FOR i IN low+1..high LOOP hsp_str := hsp_str || ':' || hsp_ids[i]; END LOOP; return hsp_str; END; $_$ LANGUAGE plpgsql; 4DROP FUNCTION unison.hsp_ids_to_hsp_str(integer[]); unisonunisonfalse91293400&FUNCTION hsp_ids_to_hsp_str(integer[])COMMENT]COMMENT ON FUNCTION hsp_ids_to_hsp_str(integer[]) IS 'serialize an array of p2gblathsp_ids'; unisonunisonfalse117v1255309594hsp_str_to_hsp_ids(text)FUNCTIONCREATE FUNCTION hsp_str_to_hsp_ids(text) RETURNS integer[] AS $_$ DECLARE hsp_str ALIAS FOR $1; hsp_ids int[]; BEGIN SELECT INTO hsp_ids split(hsp_str,':'); RETURN hsp_ids; END; $_$ LANGUAGE plpgsql; /DROP FUNCTION unison.hsp_str_to_hsp_ids(text); unisonunisonfalse12939500!FUNCTION hsp_str_to_hsp_ids(text)COMMENTiCOMMENT ON FUNCTION hsp_str_to_hsp_ids(text) IS 'deserialize a hsp_str into an array of p2gblathsp_ids'; unisonunisonfalse118w1255309595 init_db()FUNCTIONCREATE FUNCTION init_db() RETURNS void AS $_$ DECLARE v_db text; cmd text; BEGIN SELECT INTO v_db current_database(); SELECT INTO cmd 'ALTER DATABASE "' || v_db || '" SET search_path="$user", unison, pdb, gong, scop, tax, public'; RAISE NOTICE '%', cmd; EXECUTE cmd; SELECT INTO cmd 'ALTER DATABASE "' || v_db || '" SET statement_timeout=1800000'; RAISE NOTICE '%', cmd; EXECUTE cmd; END; $_$ LANGUAGE plpgsql; DROP FUNCTION unison.init_db(); unisonunisonfalse12939x1255309596Ains_last_run(integer, integer, integer, timestamp with time zone)FUNCTIONCREATE FUNCTION ins_last_run(integer, integer, integer, timestamp with time zone) RETURNS void AS $_$ DECLARE v_pseq_id ALIAS FOR $1; v_pftype_id ALIAS FOR $2; v_params_id ALIAS FOR $3; v_last_run ALIAS FOR $4; rec record; BEGIN -- check whether last_run exists for this pseq_id, pftype_id, params_id tuple -- RAISE INFO 'select * into rec from last_run where pseq_id=% and pftype_id=% and params_id=%', v_pseq_id, v_pftype_id, v_params_id; select into rec * from last_run where pseq_id=v_pseq_id and pftype_id=v_pftype_id and params_id=v_params_id; IF found THEN -- RAISE INFO 'update set last_run=% where pseq_id=% and pftype_id=% and params_id=%', v_last_run, v_pseq_id, v_pftype_id, v_params_id; update last_run set last_run=v_last_run where pseq_id=v_pseq_id and pftype_id=v_pftype_id and params_id=v_params_id; ELSE -- RAISE INFO 'insert into last_run (pseq_id, pftype_id, params_id, last_run) values (%,%,%,%)',v_pseq_id, v_pftype_id, v_params_id, v_last_run; insert into last_run (pseq_id, pftype_id, params_id, last_run) values (v_pseq_id, v_pftype_id, v_params_id, v_last_run); END IF; return; END; $_$ LANGUAGE plpgsql; XDROP FUNCTION unison.ins_last_run(integer, integer, integer, timestamp with time zone); unisonunisonfalse12939600JFUNCTION ins_last_run(integer, integer, integer, timestamp with time zone)COMMENTzCOMMENT ON FUNCTION ins_last_run(integer, integer, integer, timestamp with time zone) IS 'create/update last_run record'; unisonunisonfalse120y1255309597Sins_p2gblathsp(integer, text, boolean, integer, integer, integer, integer, integer)FUNCTION>CREATE FUNCTION ins_p2gblathsp(integer, text, boolean, integer, integer, integer, integer, integer) RETURNS integer AS $_$ DECLARE v_genasm_id ALIAS FOR $1; v_chr ALIAS FOR $2; v_plus_strand ALIAS FOR $3; v_gstart ALIAS FOR $4; v_gstop ALIAS FOR $5; v_pseq_id ALIAS FOR $6; v_pstart ALIAS FOR $7; v_pstop ALIAS FOR $8; v_p2gblathsp_id integer; rec RECORD; BEGIN -- check whether HSP already loaded SELECT INTO v_p2gblathsp_id p2gblathsp_id FROM p2gblathsp WHERE genasm_id=v_genasm_id AND chr=v_chr AND plus_strand=v_plus_strand AND gstart=v_gstart AND gstop=v_gstop AND pseq_id=v_pseq_id AND pstart=v_pstart AND pstop=v_pstop; IF v_p2gblathsp_id is null THEN SELECT INTO v_p2gblathsp_id nextval('unison.p2gblathsp_p2gblathsp_id_seq'::text); INSERT INTO p2gblathsp (p2gblathsp_id,genasm_id,chr,plus_strand,gstart,gstop,pseq_id,pstart,pstop) VALUES (v_p2gblathsp_id,v_genasm_id,v_chr,v_plus_strand,v_gstart,v_gstop,v_pseq_id,v_pstart,v_pstop); END IF; return v_p2gblathsp_id; END; $_$ LANGUAGE plpgsql; jDROP FUNCTION unison.ins_p2gblathsp(integer, text, boolean, integer, integer, integer, integer, integer); unisonunisonfalse91293700\FUNCTION ins_p2gblathsp(integer, text, boolean, integer, integer, integer, integer, integer)COMMENTCOMMENT ON FUNCTION ins_p2gblathsp(integer, text, boolean, integer, integer, integer, integer, integer) IS 'insert protein-to-genome BLAT HSPs'; unisonunisonfalse1211255309598-ins_pannotation(integer, text, text, integer)FUNCTIONYCREATE FUNCTION ins_pannotation(integer, text, text, integer) RETURNS integer AS $_$ DECLARE v_origin_id ALIAS FOR $1; v_alias ALIAS FOR $2; v_descr ALIAS FOR $3; v_tax_id ALIAS FOR $4; v_pannotation_id integer; BEGIN -- check whether pannotation exists: if yes, then return pannotation_id, otherwise enter a new record RAISE DEBUG 'select into v_pannotation_id get_pannotation_pannotation_id( %, % )', v_origin_id, v_alias; select into v_pannotation_id get_pannotation_pannotation_id( v_origin_id, v_alias ); IF v_pannotation_id is null THEN select into v_pannotation_id nextval('pannotation_pannotation_id_seq'); RAISE DEBUG 'executing insert into pannotation (pannotation_id, origin_id, alias, descr, tax_id) values (%, %, %, %, %)',v_pannotation_id, v_origin_id, v_alias, v_descr, v_tax_id; insert into pannotation (pannotation_id, origin_id, alias, descr, tax_id) values (v_pannotation_id, v_origin_id, v_alias, v_descr, v_tax_id); ELSE RAISE DEBUG 'record exists for this alias and origin: pannotation_id %', v_pannotation_id; UPDATE pannotation SET descr=v_descr,tax_id=v_tax_id WHERE pannotation_id=v_pannotation_id AND ( (descr !=v_descr OR (descr IS NULL AND v_descr IS NOT NULL) OR (descr IS NOT NULL AND v_descr IS NULL)) OR (tax_id!=v_tax_id OR (tax_id IS NULL AND v_tax_id IS NOT NULL) OR (tax_id IS NOT NULL AND v_tax_id IS NULL)) ); IF FOUND THEN RAISE DEBUG 'ins_pannotation: description, tax_id, or both differ from existing entry and were updated for pannotation_id %', v_pannotation_id; END IF; END IF; return v_pannotation_id; END; $_$ LANGUAGE plpgsql; DDROP FUNCTION unison.ins_pannotation(integer, text, text, integer); unisonunisonfalse129398006FUNCTION ins_pannotation(integer, text, text, integer)COMMENTCOMMENT ON FUNCTION ins_pannotation(integer, text, text, integer) IS 'create a new paliasorigin record or return known palias_id'; unisonunisonfalse196900-ins_pannotation(integer, text, text, integer)ACLBREVOKE ALL ON FUNCTION ins_pannotation(integer, text, text, integer) FROM PUBLIC; REVOKE ALL ON FUNCTION ins_pannotation(integer, text, text, integer) FROM unison; GRANT ALL ON FUNCTION ins_pannotation(integer, text, text, integer) TO unison; GRANT ALL ON FUNCTION ins_pannotation(integer, text, text, integer) TO PUBLIC; unisonunisonfalse196z1255309599Zins_pmap_aln(text, integer, integer, integer, integer, integer, integer, integer, integer)FUNCTION'CREATE FUNCTION ins_pmap_aln(text, integer, integer, integer, integer, integer, integer, integer, integer) RETURNS integer AS $_$ DECLARE v_hsp_str ALIAS FOR $1; v_pseq_id ALIAS FOR $2; v_ident ALIAS FOR $3; v_pgap_cnt ALIAS FOR $4; v_pgap_bases ALIAS FOR $5; v_ggap_cnt ALIAS FOR $6; v_ggap_bases ALIAS FOR $7; v_params_id ALIAS FOR $8; v_genasm_id ALIAS FOR $9; v_aln_id integer; v_hsp_ids integer[]; low integer; high integer; rec RECORD; BEGIN IF length(v_hsp_str) = 0 THEN RAISE EXCEPTION 'Length hsp_str cannot be 0'; END IF; -- check whether hsp_str is already in the database SELECT INTO v_aln_id aln_id FROM pmap_aln WHERE hsp_str=v_hsp_str; IF v_aln_id is null THEN SELECT INTO v_aln_id nextval('pmap_aln_aln_id_seq'::text); -- insert into pmap_alnhsp table (let the unique indices deal with redudancies SELECT INTO v_hsp_ids hsp_str_to_hsp_ids( v_hsp_str ); low := replace(split_part(array_dims(v_hsp_ids),':',1),'[','')::int; high := replace(split_part(array_dims(v_hsp_ids),':',2),']','')::int; FOR i IN low..high LOOP INSERT INTO pmap_alnhsp (aln_id, hsp_id) VALUES (v_aln_id, v_hsp_ids[i]); END LOOP; INSERT INTO pmap_aln (aln_id, ident, pgap_cnt, pgap_bases, ggap_cnt, ggap_bases, params_id, genasm_id, pseq_id) VALUES (v_aln_id, v_ident, v_pgap_cnt, v_pgap_bases, v_ggap_cnt, v_ggap_bases, v_params_id, v_genasm_id, v_pseq_id); ELSE RAISE EXCEPTION 'the hsps already exists, aln_id is %',v_aln_id; END IF; RETURN v_aln_id; END; $_$ LANGUAGE plpgsql; qDROP FUNCTION unison.ins_pmap_aln(text, integer, integer, integer, integer, integer, integer, integer, integer); unisonunisonfalse91293:00cFUNCTION ins_pmap_aln(text, integer, integer, integer, integer, integer, integer, integer, integer)COMMENTCOMMENT ON FUNCTION ins_pmap_aln(text, integer, integer, integer, integer, integer, integer, integer, integer) IS 'insert protein-to-genome PMAP alignments'; unisonunisonfalse122{1255309600\ins_pmap_hsp(integer, text, character, integer, integer, integer, integer, integer, integer)FUNCTION4CREATE FUNCTION ins_pmap_hsp(integer, text, character, integer, integer, integer, integer, integer, integer) RETURNS integer AS $_$ DECLARE v_genasm_id ALIAS FOR $1; v_chr ALIAS FOR $2; v_strand ALIAS FOR $3; v_gstart ALIAS FOR $4; v_gstop ALIAS FOR $5; v_pseq_id ALIAS FOR $6; v_pstart ALIAS FOR $7; v_pstop ALIAS FOR $8; v_params_id ALIAS FOR $9; v_hsp_id integer; rec RECORD; BEGIN -- check whether HSP already loaded SELECT INTO v_hsp_id hsp_id FROM pmap_hsp WHERE chr=v_chr AND strand=v_strand AND gstart=v_gstart AND gstop=v_gstop AND pseq_id=v_pseq_id AND pstart=v_pstart AND pstop=v_pstop AND genasm_id=v_genasm_id AND params_id=v_params_id; IF v_hsp_id is null THEN SELECT INTO v_hsp_id nextval('pmap_hsp_hsp_id_seq'::text); INSERT INTO pmap_hsp (hsp_id,genasm_id,chr,strand,gstart,gstop,pseq_id,pstart,pstop,params_id) VALUES (v_hsp_id,v_genasm_id,v_chr,v_strand,v_gstart,v_gstop,v_pseq_id,v_pstart,v_pstop,v_params_id); END IF; RETURN v_hsp_id; END; $_$ LANGUAGE plpgsql; sDROP FUNCTION unison.ins_pmap_hsp(integer, text, character, integer, integer, integer, integer, integer, integer); unisonunisonfalse912931255309601link_url(text, text)FUNCTIONCREATE FUNCTION link_url(text, text) RETURNS text AS $_$select link_url(origin_id($1),$2)$_$ LANGUAGE sql IMMUTABLE STRICT; +DROP FUNCTION unison.link_url(text, text); unisonunisonfalse9;00FUNCTION link_url(text, text)COMMENT^COMMENT ON FUNCTION link_url(text, text) IS 'create URL to the origin $1 for alias/query $2'; unisonunisonfalse131<00link_url(text, text)ACLREVOKE ALL ON FUNCTION link_url(text, text) FROM PUBLIC; REVOKE ALL ON FUNCTION link_url(text, text) FROM unison; GRANT ALL ON FUNCTION link_url(text, text) TO unison; GRANT ALL ON FUNCTION link_url(text, text) TO PUBLIC; unisonunisonfalse1311255309602'locus_fmt(text, text, integer, integer)FUNCTION CREATE FUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer) RETURNS text AS $$BEGIN return coalesce(chr::text,'?')||coalesce(str::text,'?')||':'||coalesce(gstart::text,'?')||'-'||coalesce(gstop::text,'?'); END;$$ LANGUAGE plpgsql IMMUTABLE; SDROP FUNCTION unison.locus_fmt(chr text, str text, gstart integer, gstop integer); unisonunisonfalse12939=00EFUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer)COMMENTCOMMENT ON FUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer) IS 'standard format for genomic locus information, i.e., :-'; unisonunisonfalse130>00'locus_fmt(text, text, integer, integer)ACL~REVOKE ALL ON FUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer) FROM PUBLIC; REVOKE ALL ON FUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer) FROM unison; GRANT ALL ON FUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer) TO unison; GRANT ALL ON FUNCTION locus_fmt(chr text, str text, gstart integer, gstop integer) TO PUBLIC; unisonunisonfalse130|1255309603make_csb_read_only()FUNCTIONiCREATE FUNCTION make_csb_read_only() RETURNS boolean AS $$ declare schemas name[] := '{unison,scop,gong,tax}'; dbname name; i integer := 0; n integer := 0; ret bool := false; begin select into dbname current_database(); IF dbname != 'csb' THEN RAISE EXCEPTION 'This operation is restricted for the CSB database'; END IF; FOR i IN array_lower(schemas, 1)..array_upper(schemas, 1) LOOP select into ret make_schema_read_only(schemas[i]); IF ret = true THEN n := n + 1; END IF; END LOOP; IF n = array_upper(schemas, 1) THEN return true; END IF; return false; end;$$ LANGUAGE plpgsql; +DROP FUNCTION unison.make_csb_read_only(); unisonunisonfalse12939?00FUNCTION make_csb_read_only()COMMENTCOMMENT ON FUNCTION make_csb_read_only() IS 'make_csb_read_only() runs make_schema_read_only for each schema in the current database and returns true if make_schema_read_only is successful for all schemas'; unisonunisonfalse124}1255309604make_schema_read_only(name)FUNCTIONCREATE FUNCTION make_schema_read_only(name) RETURNS boolean AS $_$ declare schema alias for $1; table_schema record; num_tables integer; ret bool; n integer := 0; begin select into num_tables COUNT(*) from table_perms_v where schemaname = schema; IF num_tables = 0 THEN RAISE EXCEPTION '% tables found in % schema',num_tables,schema; END IF; FOR table_schema in select tablename from table_perms_v where schemaname = schema LOOP select into ret make_table_read_only(schema,table_schema.tablename); IF ret = true THEN n := n + 1; END IF; END LOOP; IF n = num_tables THEN return true; END IF; return false; end;$_$ LANGUAGE plpgsql; 2DROP FUNCTION unison.make_schema_read_only(name); unisonunisonfalse12939@00$FUNCTION make_schema_read_only(name)COMMENTCOMMENT ON FUNCTION make_schema_read_only(name) IS 'make_schema_read_only() runs make_table_read_only for each table in the input schema and returns true if make_table_read_only is successful for all tables'; unisonunisonfalse125~1255309605 make_table_read_only(name, name)FUNCTIONCREATE FUNCTION make_table_read_only(name, name) RETURNS boolean AS $_$ declare schema alias for $1; table alias for $2; perm_letter char[] := '{w,a,d,x,t,R}'; var boolean; users name[]; i integer; begin -- all users select into users get_current_users(schema,table); FOR i IN array_lower(users, 1)..array_upper(users, 1) LOOP IF check_user_perms(users[i],schema,table,perm_letter) THEN EXECUTE 'REVOKE UPDATE, INSERT, DELETE, REFERENCES, TRIGGER, RULE ON '|| schema||'.'||table ||' FROM ' || users[i]; END IF; END LOOP; -- public IF check_public_perms(schema,table,perm_letter) THEN EXECUTE 'REVOKE UPDATE, INSERT, DELETE, REFERENCES, TRIGGER, RULE ON '|| schema||'.'||table ||' FROM PUBLIC'; END IF; return true; end;$_$ LANGUAGE plpgsql; 7DROP FUNCTION unison.make_table_read_only(name, name); unisonunisonfalse12939A00)FUNCTION make_table_read_only(name, name)COMMENTCOMMENT ON FUNCTION make_table_read_only(name, name) IS 'make_table_read_only(,) checks and revokes wadxRt permissions for each user and public'; unisonunisonfalse1261255309606md5_to_pseq_id(text)FUNCTIONCREATE FUNCTION md5_to_pseq_id(md5 text, OUT pseq_id integer) RETURNS integer AS $_$SELECT pseq_id FROM pseq WHERE md5=$1$_$ LANGUAGE sql IMMUTABLE STRICT; DDROP FUNCTION unison.md5_to_pseq_id(md5 text, OUT pseq_id integer); unisonunisonfalse91255309607meta_stats_distinct()FUNCTIONCREATE FUNCTION meta_stats_distinct() RETURNS void AS $$ DECLARE n integer; r record; BEGIN return; END;$$ LANGUAGE plpgsql STABLE; ,DROP FUNCTION unison.meta_stats_distinct(); unisonunisonfalse12939B00FUNCTION meta_stats_distinct()COMMENT^COMMENT ON FUNCTION meta_stats_distinct() IS 'count number of sequences unique to an origin'; unisonunisonfalse1281255309608meta_stats_unique()FUNCTIONCREATE FUNCTION meta_stats_unique() RETURNS void AS $$ DECLARE n integer; r record; BEGIN return; END;$$ LANGUAGE plpgsql STABLE; *DROP FUNCTION unison.meta_stats_unique(); unisonunisonfalse912931255309609meta_stats_update()FUNCTION CREATE FUNCTION meta_stats_update() RETURNS void AS $$ DECLARE n integer; r record; ts timestamp with time zone; BEGIN ts:=now(); raise notice 'meta_stats_update: started %',ts; -- sequence stats -- select into n count(*) from pseq; -- perform meta_update_kv('unique sequences',n); -- select into n count(*) from pseq where added>=now()-'30 days'::interval; -- perform meta_update_kv('new sequences in last 30 days',n); -- select into n count(*) from pseq where added>=now()-'60 days'::interval; -- perform meta_update_kv('new sequences in last 60 days',n); -- select into n count(*) from pseq where added>=now()-'180 days'::interval; -- perform meta_update_kv('new sequences in last 180 days',n); -- -- -- alias and origin stats -- select into n count(*) from palias; -- perform meta_update_kv('aliases',n); -- select into n count(distinct tax_id) from palias; -- perform meta_update_kv('species',n); -- number of distinct sequences in an origin and -- number of distinct sequences unique to an origin FOR r IN select origin_id,origin from origin where ann_pref is not null LOOP create temp table in_r as select distinct pseq_id from palias where origin_id=r.origin_id limit 10000; select into n count(*) from in_r; perform meta_update_kv('distinct sequences in '||r.origin ,n); create temp table not_in_r as select pseq_id from in_r except select pseq_id from palias where origin_id!=r.origin_id limit 1000; select into n count(*) from not_in_r; -- this is faster (I think): -- select into n count(distinct pseq_id) from palias a1 where a1.origin_id=r.origin_id -- and not exists (select * from palias a2 where a2.pseq_id=a1.pseq_id and a2.origin_id!=a1.origin_id); -- perform meta_update_kv('distinct sequences unique to '||r.origin ,n); drop table in_r; drop table not_in_r; END LOOP; -- pfeatures select into n count(*) from pfeature; perform meta_update_kv('protein features',n); -- prospect features drop table counts; create temp table counts as select pseq_id,count(pfeature_id) from paprospect2 where params_id=1 group by pseq_id; select into n sum(count) from counts; perform meta_update_kv('threading alignments',n); select into n count(distinct pseq_id) from counts; perform meta_update_kv('threaded sequences',n); select count(pseq_id) from counts where count!=(select max(count) from counts); perform meta_update_kv('incompletely threaded sequences',n); -- hmm features drop table counts; create temp table counts as select pseq_id,count(pfeature_id) from pahmm group by pseq_id; select into n sum(count) from counts; perform meta_update_kv('HMM alignments',n); select into n count(distinct pseq_id) from counts; perform meta_update_kv('HMM-aligned sequences',n); -- pssm features drop table counts; create temp table counts as select pseq_id,count(pfeature_id) from papssm group by pseq_id; select into n sum(count) from counts; perform meta_update_kv('PSSM alignments',n); select into n count(distinct pseq_id) from counts; perform meta_update_kv('PSSM-aligned sequences',n); -- papseq features drop table counts; create temp table counts as select pseq_id,count(pfeature_id) from papseq group by pseq_id; select into n sum(count) from counts; perform meta_update_kv('BLAST alignments',n); select into n count(distinct pseq_id) from counts; perform meta_update_kv('BLAST-aligned sequences',n); perform meta_update_kv('stats timestamp',now()); ts:=now(); raise notice 'meta_stats_update: finished %',ts; return; END;$$ LANGUAGE plpgsql STABLE; *DROP FUNCTION unison.meta_stats_update(); unisonunisonfalse91293C00FUNCTION meta_stats_update()COMMENTQCOMMENT ON FUNCTION meta_stats_update() IS 'update database statistics in meta'; unisonunisonfalse1321255309610meta_update_kv(text, text)FUNCTIONCREATE FUNCTION meta_update_kv(text, text) RETURNS void AS $_$ BEGIN delete from meta where key=$1; insert into meta (key,value) values ($1,$2); raise notice 'meta_update_kv: % = %',$1,$2; return; END;$_$ LANGUAGE plpgsql; 1DROP FUNCTION unison.meta_update_kv(text, text); unisonunisonfalse91293D00#FUNCTION meta_update_kv(text, text)COMMENTXCOMMENT ON FUNCTION meta_update_kv(text, text) IS 'replacement insert into meta table'; unisonunisonfalse1331255309611 notice(text)FUNCTIONCREATE FUNCTION notice(text) RETURNS void AS $_$ DECLARE msg text; BEGIN msg:=$1; RAISE notice '%', msg; return; END;$_$ LANGUAGE plpgsql STRICT; #DROP FUNCTION unison.notice(text); unisonunisonfalse912931255309612(origin_alias_descr_fmt(text, text, text)FUNCTIONCREATE FUNCTION origin_alias_descr_fmt(text, text, text) RETURNS text AS $_$select $1 || ':' || $2 || ' (' || coalesce($3, 'No description available') || ')' ;$_$ LANGUAGE sql IMMUTABLE; ?DROP FUNCTION unison.origin_alias_descr_fmt(text, text, text); unisonunisonfalse9E001FUNCTION origin_alias_descr_fmt(text, text, text)COMMENTCOMMENT ON FUNCTION origin_alias_descr_fmt(text, text, text) IS 'canonical format for origin, alias, and description, like this: : ()'; unisonunisonfalse1351255309613origin_si_origin_id(text)FUNCTIONqCREATE FUNCTION origin_si_origin_id(text) RETURNS integer AS $_$ DECLARE O alias for $1; -- origin rv integer; BEGIN select into rv origin_id from origin where upper(origin) = upper(O); if found then return rv; end if; insert into origin (origin) values (O); select into rv origin_id from origin where origin = O; return rv; END;$_$ LANGUAGE plpgsql; 0DROP FUNCTION unison.origin_si_origin_id(text); unisonunisonfalse91293F00"FUNCTION origin_si_origin_id(text)COMMENTrCOMMENT ON FUNCTION origin_si_origin_id(text) IS 'select/insert a origin_id from origin text, returns origin_id'; unisonunisonfalse1361255309614#ortholog(integer, integer, integer)FUNCTIONCREATE FUNCTION ortholog(integer, integer, integer) RETURNS integer AS $_$ DECLARE v_pseq_id ALIAS FOR $1; v_tax_id_from ALIAS FOR $2; v_tax_id_to ALIAS FOR $3; rv integer; BEGIN SELECT b.pseq_id INTO rv FROM homologene a, homologene b WHERE a.pseq_id=v_pseq_id AND a.tax_id=v_tax_id_from AND b.hid=a.hid AND b.pseq_id!=a.pseq_id AND b.tax_id=v_tax_id_to; return rv; END;$_$ LANGUAGE plpgsql; :DROP FUNCTION unison.ortholog(integer, integer, integer); unisonunisonfalse91293G00,FUNCTION ortholog(integer, integer, integer)COMMENTCOMMENT ON FUNCTION ortholog(integer, integer, integer) IS 'returns ortholog pseq_id given pseq_id, tax_id of the given pseq_id, and tax_id of the desired pseq_id'; unisonunisonfalse1371255309615palias_oa_fmt(integer)FUNCTIONCREATE FUNCTION palias_oa_fmt(integer) RETURNS text AS $_$select origin_alias_fmt(O.origin,AO.alias) from pannotation AO join origin O on O.origin_id=AO.origin_id where AO.pannotation_id=$1$_$ LANGUAGE sql IMMUTABLE STRICT; -DROP FUNCTION unison.palias_oa_fmt(integer); unisonunisonfalse9H00FUNCTION palias_oa_fmt(integer)COMMENTXCOMMENT ON FUNCTION palias_oa_fmt(integer) IS 'origin_alias_fmt() for given palias_id'; unisonunisonfalse1381255309616palias_oad_fmt(integer)FUNCTIONCREATE FUNCTION palias_oad_fmt(integer) RETURNS text AS $_$select origin_alias_descr_fmt(O.origin,AO.alias,AO.descr) from pannotation AO join origin O on O.origin_id=AO.origin_id where AO.pannotation_id=$1$_$ LANGUAGE sql IMMUTABLE STRICT; .DROP FUNCTION unison.palias_oad_fmt(integer); unisonunisonfalse9I00 FUNCTION palias_oad_fmt(integer)COMMENT_COMMENT ON FUNCTION palias_oad_fmt(integer) IS 'origin_alias_descr_fmt() for given palias_id'; unisonunisonfalse1391255309617pannotation_iu_trigger()FUNCTIONCREATE FUNCTION pannotation_iu_trigger() RETURNS trigger AS $$BEGIN new.descr_tsv = to_tsvector(new.descr); END;$$ LANGUAGE plpgsql; /DROP FUNCTION unison.pannotation_iu_trigger(); unisonunisonfalse912931255309618paprospect_create_indices()FUNCTION;CREATE FUNCTION paprospect_create_indices() RETURNS void AS $$ BEGIN create index paprospect_gap_idx on paprospect (gap); raise notice 'created paprospect_gap_idx'; create index paprospect_mutation_idx on paprospect (mutation); raise notice 'created paprospect_mutation_idx'; create index paprospect_nalign_idx on paprospect (nalign); raise notice 'created paprospect_nalign_idx'; create index paprospect_nident_idx on paprospect (nident); raise notice 'created paprospect_nident_idx'; create index paprospect_pairwise_idx on paprospect (pairwise); raise notice 'created paprospect_pairwise_idx'; create index paprospect_quality_idx on paprospect (quality); raise notice 'created paprospect_quality_idx'; create index paprospect_raw_idx on paprospect (raw); raise notice 'created paprospect_raw_idx'; create index paprospect_rgyr_idx on paprospect (rgyr); raise notice 'created paprospect_rgyr_idx'; create index paprospect_singleton_idx on paprospect (singleton); raise notice 'created paprospect_singleton_idx'; create index paprospect_ssfit_idx on paprospect (ssfit); raise notice 'created paprospect_ssfit_idx'; create index paprospect_start_idx on paprospect (start); raise notice 'created paprospect_start_idx'; create index paprospect_stop_idx on paprospect (stop); raise notice 'created paprospect_stop_idx'; create index paprospect_svm_idx on paprospect (svm); raise notice 'created paprospect_svm_idx'; create index paprospect_zscore_idx on paprospect (zscore); raise notice 'created paprospect_zscore_idx'; return; END;$$ LANGUAGE plpgsql STABLE; 2DROP FUNCTION unison.paprospect_create_indices(); unisonunisonfalse91293J00$FUNCTION paprospect_create_indices()COMMENTxCOMMENT ON FUNCTION paprospect_create_indices() IS 'create non-integrity indicies on paprospect; WARNING: takes hours'; unisonunisonfalse1411255309619paprospect_drop_indices()FUNCTIONPCREATE FUNCTION paprospect_drop_indices() RETURNS void AS $$ BEGIN drop index paprospect_gap_idx; drop index paprospect_mutation_idx; drop index paprospect_nalign_idx; drop index paprospect_nident_idx; drop index paprospect_pairwise_idx; drop index paprospect_quality_idx; drop index paprospect_raw_idx; drop index paprospect_rgyr_idx; drop index paprospect_singleton_idx; drop index paprospect_ssfit_idx; drop index paprospect_start_idx; drop index paprospect_stop_idx; drop index paprospect_svm_idx; drop index paprospect_zscore_idx; return; END;$$ LANGUAGE plpgsql; 0DROP FUNCTION unison.paprospect_drop_indices(); unisonunisonfalse91293K00"FUNCTION paprospect_drop_indices()COMMENTaCOMMENT ON FUNCTION paprospect_drop_indices() IS 'drops non-integrity indicies from paprospect'; unisonunisonfalse1421255309620paprospect_i_trigger()FUNCTIONCREATE FUNCTION paprospect_i_trigger() RETURNS trigger AS $$BEGIN NEW.pftype_id=pftype_id('Prospect'); return new; END;$$ LANGUAGE plpgsql; -DROP FUNCTION unison.paprospect_i_trigger(); unisonunisonfalse912931255309621papseq_iu_trigger()FUNCTION]CREATE FUNCTION papseq_iu_trigger() RETURNS trigger AS $$ declare t_pseq_id integer; q_seq_len integer; t_seq_len integer; shorter_len integer; longer_len integer; begin -- get the pftype_id NEW.pftype_id=pftype_id('blast'); IF NEW.pftype_id is null THEN RAISE EXCEPTION 'no pftype_id for name="blast"'; END IF; -- get the t_pseq_id given the pmodel_id select into t_pseq_id pseq_id from pmpseq where pmodel_id=new.pmodel_id; IF t_pseq_id is null THEN RAISE EXCEPTION 'no pseq_id for pmodel_id=%',new.pmodel_id; END IF; -- get sequence lengths for derived values select into q_seq_len len from pseq where pseq_id=new.pseq_id; IF q_seq_len is null or q_seq_len = 0 THEN RAISE EXCEPTION 'length for pseq_id=% is null or zero',new.pseq_id; END IF; select into t_seq_len len from pseq where pseq_id=t_pseq_id; IF t_seq_len is null or t_seq_len = 0 THEN RAISE EXCEPTION 'length for pseq_id=% is null or zero',t_pseq_id; END IF; -- calculate derived values IF q_seq_len > t_seq_len THEN shorter_len := t_seq_len; longer_len := q_seq_len; ELSE shorter_len := q_seq_len; longer_len := t_seq_len; END IF; new.pct_hsp_coverage := ( new.len::real / shorter_len::real ) * 100.0; new.pct_coverage := ( shorter_len::real / longer_len::real ) * 100.0; return new; end; $$ LANGUAGE plpgsql; *DROP FUNCTION unison.papseq_iu_trigger(); unisonunisonfalse91293L00FUNCTION papseq_iu_trigger()COMMENTaCOMMENT ON FUNCTION papseq_iu_trigger() IS 'calculate derived values for inserting into papseq'; unisonunisonfalse1441255309622papssm_create_indices()FUNCTIONxCREATE FUNCTION papssm_create_indices() RETURNS void AS $$ BEGIN create index papssm_eval_idx on papssm(eval); raise notice 'created papssm_eval_idx'; create index papssm_len_idx on papssm(len); raise notice 'created papssm_len_idx'; create index papssm_score_idx on papssm(score); raise notice 'created papssm_score_idx'; create index papssm_ident_idx on papssm(ident); raise notice 'created papssm_ident_idx'; create index papssm_pos_idx on papssm(pos); raise notice 'created papssm_pos_idx'; create index papssm_gap_idx on papssm(gap); raise notice 'created papssm_gap_idx'; return; END;$$ LANGUAGE plpgsql; .DROP FUNCTION unison.papssm_create_indices(); unisonunisonfalse912931255309623papssm_drop_indices()FUNCTIONCREATE FUNCTION papssm_drop_indices() RETURNS void AS $$ BEGIN drop index papssm_eval_idx; drop index papssm_len_idx; drop index papssm_score_idx; drop index papssm_ident_idx; drop index papssm_pos_idx; drop index papssm_gap_idx; return; END;$$ LANGUAGE plpgsql; ,DROP FUNCTION unison.papssm_drop_indices(); unisonunisonfalse912931255309624papssm_iu_trigger()FUNCTIONCREATE FUNCTION papssm_iu_trigger() RETURNS trigger AS $$BEGIN new.pftype_id = pftype_id( 'PSSM' ); return new; END;$$ LANGUAGE plpgsql; *DROP FUNCTION unison.papssm_iu_trigger(); unisonunisonfalse912931255309625params_id_exists(integer)FUNCTIONCREATE FUNCTION params_id_exists(integer) RETURNS boolean AS $_$ BEGIN perform * from params where params_id=$1; return FOUND; END; $_$ LANGUAGE plpgsql IMMUTABLE STRICT; 0DROP FUNCTION unison.params_id_exists(integer); unisonunisonfalse91293M00"FUNCTION params_id_exists(integer)COMMENTTCOMMENT ON FUNCTION params_id_exists(integer) IS 'return true if params_id exists'; unisonunisonfalse1481255309626perftest_iu_trigger_fx()FUNCTIONCREATE FUNCTION perftest_iu_trigger_fx() RETURNS trigger AS $$ BEGIN NEW.pg_version = substring(NEW.pg_version_str from E'^PostgreSQL (\\S+) '); RETURN NEW; END; $$ LANGUAGE plpgsql; /DROP FUNCTION unison.perftest_iu_trigger_fx(); unisonunisonfalse912931255309627pfbigpi_site_trigger()FUNCTIONCREATE FUNCTION pfbigpi_site_trigger() RETURNS trigger AS $$ begin new.stop := new.start; return new; end; $$ LANGUAGE plpgsql; -DROP FUNCTION unison.pfbigpi_site_trigger(); unisonunisonfalse91293N00FUNCTION pfbigpi_site_trigger()COMMENTJCOMMENT ON FUNCTION pfbigpi_site_trigger() IS 'sets stop equal to start'; unisonunisonfalse1501255309628pfsignalphmm_pred(text)FUNCTIONWCREATE FUNCTION pfsignalphmm_pred(text) RETURNS integer AS $_$ DECLARE V_id integer; BEGIN select into V_id pfsignalphmm_pred_id from pfsignalphmm_pred where upper(prediction)=upper($1); IF NOT FOUND THEN RAISE WARNING 'prediction % not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; .DROP FUNCTION unison.pfsignalphmm_pred(text); unisonunisonfalse12939O00pfsignalphmm_pred(text)ACLREVOKE ALL ON FUNCTION pfsignalphmm_pred(text) FROM PUBLIC; REVOKE ALL ON FUNCTION pfsignalphmm_pred(text) FROM unison; GRANT ALL ON FUNCTION pfsignalphmm_pred(text) TO unison; GRANT ALL ON FUNCTION pfsignalphmm_pred(text) TO PUBLIC; unisonunisonfalse1511255309629pi(text)FUNCTIONCREATE FUNCTION pi(text) RETURNS real AS $_$ DECLARE ans float; BEGIN select INTO ans pI($1,'emboss'); return ans; END$_$ LANGUAGE plpgsql; DROP FUNCTION unison.pi(text); unisonunisonfalse129391255309630pmap_hsp_str_trigger()FUNCTIONCREATE FUNCTION pmap_hsp_str_trigger() RETURNS trigger AS $$ declare hsp RECORD; v_hsp_str text := ''; begin select into v_hsp_str as_set(hsp_id) from (select hsp_id from pmap_alnhsp where aln_id=new.aln_id order by hsp_id) X; IF length(v_hsp_str) = 0 THEN RAISE EXCEPTION 'Could not construct hsp_str for %',new.aln_id; END IF; new.hsp_str=v_hsp_str; return new; end; $$ LANGUAGE plpgsql; -DROP FUNCTION unison.pmap_hsp_str_trigger(); unisonunisonfalse12939P00FUNCTION pmap_hsp_str_trigger()COMMENTbCOMMENT ON FUNCTION pmap_hsp_str_trigger() IS 'calculate hsp_str before inserting into pmap_aln'; unisonunisonfalse1531255309631lpmhmm_si_pmodel_id(integer, text, text, text, integer, integer, integer, real, real, real, real, real, real)FUNCTION'CREATE FUNCTION pmhmm_si_pmodel_id(integer, text, text, text, integer, integer, integer, real, real, real, real, real, real) RETURNS integer AS $_$ DECLARE rv integer; hmm_origin_id alias for $1; hmm_name alias for $2; hmm_acc alias for $3; hmm_descr alias for $4; hmm_len alias for $5; hmm_nseq alias for $6; hmm_cksum alias for $7; hmm_ga_seq alias for $8; hmm_ga_dom alias for $9; hmm_tc_seq alias for $10; hmm_tc_dom alias for $11; hmm_nc_seq alias for $12; hmm_nc_dom alias for $13; BEGIN rv := hmm_pmodel_id(hmm_acc,hmm_origin_id); if rv is NULL then select into rv nextval('pmodel_pmodel_id_seq'); insert into pmhmm (pmodel_id,origin_id,name,acc,descr,len,nseq,cksum,ga_seq,ga_dom,tc_seq,tc_dom,nc_seq,nc_dom) values ( rv,hmm_origin_id,hmm_name,hmm_acc,hmm_descr,hmm_len,hmm_nseq,hmm_cksum,hmm_ga_seq,hmm_ga_dom,hmm_tc_seq,hmm_tc_dom,hmm_nc_seq,hmm_nc_dom); else update pmhmm set name=hmm_name,descr=hmm_descr,len=hmm_len,nseq=hmm_nseq,cksum=hmm_cksum,ga_seq=hmm_ga_seq,ga_dom=hmm_ga_dom,tc_seq=hmm_tc_seq,tc_dom=hmm_tc_dom,nc_seq=hmm_nc_seq,nc_dom=hmm_nc_dom where pmodel_id=rv; end if; return rv; END;$_$ LANGUAGE plpgsql; DROP FUNCTION unison.pmhmm_si_pmodel_id(integer, text, text, text, integer, integer, integer, real, real, real, real, real, real); unisonunisonfalse12939Q00uFUNCTION pmhmm_si_pmodel_id(integer, text, text, text, integer, integer, integer, real, real, real, real, real, real)COMMENTCOMMENT ON FUNCTION pmhmm_si_pmodel_id(integer, text, text, text, integer, integer, integer, real, real, real, real, real, real) IS 'select/insert a pmodel_id from pmhmm, returns pmodel_id'; unisonunisonfalse1541255309632pmodel_id_exists(integer)FUNCTIONCREATE FUNCTION pmodel_id_exists(integer) RETURNS boolean AS $_$ BEGIN perform * from pmodel where pmodel_id=$1; return FOUND; END; $_$ LANGUAGE plpgsql IMMUTABLE STRICT; 0DROP FUNCTION unison.pmodel_id_exists(integer); unisonunisonfalse91293R00"FUNCTION pmodel_id_exists(integer)COMMENToCOMMENT ON FUNCTION pmodel_id_exists(integer) IS 'return true if pmodel_id exists pmodel or subclass thereof'; unisonunisonfalse1551255309633pmodelset_id_exists(integer)FUNCTIONCREATE FUNCTION pmodelset_id_exists(integer) RETURNS boolean AS $_$ BEGIN perform * from pmodelset where pmodelset_id=$1; return FOUND; END; $_$ LANGUAGE plpgsql IMMUTABLE STRICT; 3DROP FUNCTION unison.pmodelset_id_exists(integer); unisonunisonfalse91293S00%FUNCTION pmodelset_id_exists(integer)COMMENTZCOMMENT ON FUNCTION pmodelset_id_exists(integer) IS 'return true if pmodelset_id exists'; unisonunisonfalse1561255309634pmodelset_immutable_trigger()FUNCTIONCREATE FUNCTION pmodelset_immutable_trigger() RETURNS trigger AS $$ declare v_locked boolean; v_pmodelset_id integer; begin --check if this set is locked IF (TG_OP = 'DELETE') THEN select into v_locked locked from pmodelset where pmodelset_id=old.pmodelset_id; IF v_locked is TRUE THEN RAISE EXCEPTION 'pmodelset_id % is locked for deletes',old.pmodelset_id; END IF; return old; ELSIF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN select into v_locked locked from pmodelset where pmodelset_id=new.pmodelset_id; IF v_locked is TRUE THEN RAISE EXCEPTION 'pmodelset_id % is locked for inserts/updates',new.pmodelset_id; END IF; return new; END IF; end;$$ LANGUAGE plpgsql; 4DROP FUNCTION unison.pmodelset_immutable_trigger(); unisonunisonfalse129391255309635pmodelset_si_pmodelset_id(text)FUNCTIONCREATE FUNCTION pmodelset_si_pmodelset_id(text) RETURNS integer AS $_$ DECLARE M alias for $1; -- pmodelset rv integer; BEGIN select into rv pmodelset_id from pmodelset where upper(name) = upper(M); if found then return rv; end if; insert into pmodelset (name) values (M); select into rv pmodelset_id from pmodelset where name = M; return rv; END;$_$ LANGUAGE plpgsql; 6DROP FUNCTION unison.pmodelset_si_pmodelset_id(text); unisonunisonfalse12939T00(FUNCTION pmodelset_si_pmodelset_id(text)COMMENT|COMMENT ON FUNCTION pmodelset_si_pmodelset_id(text) IS 'select/insert a pmodelset_id from pmodelset, returns pmodelset_id'; unisonunisonfalse1581255309636pmpseq_iu_trigger()FUNCTIONCREATE FUNCTION pmpseq_iu_trigger() RETURNS trigger AS $$ declare v_best_pannotation_id integer; begin -- get the best pannotation_id for this pseq_id select into v_best_pannotation_id best_pannotation_id(new.pseq_id,true); IF v_best_pannotation_id is null THEN RAISE EXCEPTION 'no best_pannotation_id for pseq_id=%',new.pseq_id; END IF; select into new.origin_id,new.name origin_id,alias from palias where pannotation_id=v_best_pannotation_id; return new; end; $$ LANGUAGE plpgsql; *DROP FUNCTION unison.pmpseq_iu_trigger(); unisonunisonfalse91293U00FUNCTION pmpseq_iu_trigger()COMMENTaCOMMENT ON FUNCTION pmpseq_iu_trigger() IS 'calculate derived values for inserting into pmpseq'; unisonunisonfalse15912553096376pmregexp_si_pmodel_id(integer, text, text, text, text)FUNCTIONCREATE FUNCTION pmregexp_si_pmodel_id(integer, text, text, text, text) RETURNS integer AS $_$ DECLARE rv integer; BEGIN select into rv pmodel_id from pmregexp where regexp=$5 and origin_id=$1; if rv is NULL then select into rv nextval('pmodel_pmodel_id_seq'); insert into pmregexp (pmodel_id,origin_id,acc,name,descr,regexp) values ( rv,$1,$2,$3,$4,$5); end if; return rv; END;$_$ LANGUAGE plpgsql; MDROP FUNCTION unison.pmregexp_si_pmodel_id(integer, text, text, text, text); unisonunisonfalse12939V00?FUNCTION pmregexp_si_pmodel_id(integer, text, text, text, text)COMMENTCOMMENT ON FUNCTION pmregexp_si_pmodel_id(integer, text, text, text, text) IS 'select/insert a pmodel_id from pmregexp, returns pmodel_id'; unisonunisonfalse1601255309638pmregexp_u_trigger()FUNCTIONCREATE FUNCTION pmregexp_u_trigger() RETURNS trigger AS $$BEGIN IF OLD.regexp!=NEW.regexp THEN RAISE EXCEPTION 'pmodel_id % (%): regular expressions are immutable', OLD.pmodel_id,OLD.acc; END IF; return NEW; END;$$ LANGUAGE plpgsql; +DROP FUNCTION unison.pmregexp_u_trigger(); unisonunisonfalse912931255309639pnote_iu_trigger()FUNCTIONCREATE FUNCTION pnote_iu_trigger() RETURNS trigger AS $$BEGIN new.login := current_user; new.added = now(); return new; END;$$ LANGUAGE plpgsql; )DROP FUNCTION unison.pnote_iu_trigger(); unisonunisonfalse129391255309640porigin_id(text)FUNCTIONCREATE FUNCTION porigin_id(text) RETURNS integer AS $_$ BEGIN raise warning 'porigin_id() deprecated on 2006-06-26; use origin_id() instead'; return origin_id($1); END; $_$ LANGUAGE plpgsql STRICT; 'DROP FUNCTION unison.porigin_id(text); unisonunisonfalse91293W00FUNCTION porigin_id(text)COMMENTGCOMMENT ON FUNCTION porigin_id(text) IS 'DEPRECATED; use origin_id()'; unisonunisonfalse170X00porigin_id(text)ACLREVOKE ALL ON FUNCTION porigin_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION porigin_id(text) FROM unison; GRANT ALL ON FUNCTION porigin_id(text) TO unison; GRANT ALL ON FUNCTION porigin_id(text) TO PUBLIC; unisonunisonfalse1701255309641pseq_after_i_trigger()FUNCTIONCREATE FUNCTION pseq_after_i_trigger() RETURNS trigger AS $$ BEGIN PERFORM assign_annotation(NEW.pseq_id, origin_id('MD5'), md5(NEW.seq), NULL, NULL); RETURN NEW; END; $$ LANGUAGE plpgsql; -DROP FUNCTION unison.pseq_after_i_trigger(); unisonunisonfalse129391255309642pseq_genasm_params_trigger()FUNCTIONjCREATE FUNCTION pseq_genasm_params_trigger() RETURNS trigger AS $$ declare hsp RECORD; begin -- get pseq,genasm,params from hps for this alignment FOR hsp IN select h.genasm_id,h.pseq_id,h.params_id from pmap_hsp h join pmap_alnhsp a on a.hsp_id=h.hsp_id and a.aln_id=new.aln_id LOOP IF hsp.genasm_id != new.genasm_id OR hsp.pseq_id != new.pseq_id OR hsp.params_id != new.params_id THEN RAISE NOTICE '% % %',hsp.genasm_id,hsp.pseq_id,hsp.params_id; RAISE EXCEPTION 'genasm, pseq params mismatch for aln %',new.aln_id; END IF; END LOOP; return new; end; $$ LANGUAGE plpgsql; 3DROP FUNCTION unison.pseq_genasm_params_trigger(); unisonunisonfalse91293Y00%FUNCTION pseq_genasm_params_trigger()COMMENTCOMMENT ON FUNCTION pseq_genasm_params_trigger() IS 'makes sure pseq_id, genasm_id and params_id are consistant between aln and hsp'; unisonunisonfalse1641255309643pseq_i_pseq_id(text)FUNCTIONCREATE FUNCTION pseq_i_pseq_id(text) RETURNS integer AS $_$ DECLARE S alias for $1; rv integer; BEGIN select into rv nextval('pseq_pseq_id_seq'); insert into pseq (pseq_id,seq) values (rv,S); return rv; END;$_$ LANGUAGE plpgsql; +DROP FUNCTION unison.pseq_i_pseq_id(text); unisonunisonfalse912931255309644pseq_id_from_sequence(text)FUNCTIONCREATE FUNCTION pseq_id_from_sequence(text) RETURNS integer AS $_$select _pseq_seq_lookup(clean_sequence($1))$_$ LANGUAGE sql IMMUTABLE STRICT; 2DROP FUNCTION unison.pseq_id_from_sequence(text); unisonunisonfalse9Z00$FUNCTION pseq_id_from_sequence(text)COMMENTCOMMENT ON FUNCTION pseq_id_from_sequence(text) IS 'return pseq_id for sequence; sequence is made canonical by clean_sequence'; unisonunisonfalse171[00pseq_id_from_sequence(text)ACLREVOKE ALL ON FUNCTION pseq_id_from_sequence(text) FROM PUBLIC; REVOKE ALL ON FUNCTION pseq_id_from_sequence(text) FROM unison; GRANT ALL ON FUNCTION pseq_id_from_sequence(text) TO unison; GRANT ALL ON FUNCTION pseq_id_from_sequence(text) TO PUBLIC; unisonunisonfalse17171255309142pseq_id_sequence(integer)FUNCTIONCREATE FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text) RETURNS text AS $_$select seq from pseq where pseq_id=$1$_$ LANGUAGE sql IMMUTABLE STRICT; KDROP FUNCTION unison.pseq_id_sequence(pseq_id integer, OUT sequence text); unisonunisonfalse9\00=FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text)COMMENTrCOMMENT ON FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text) IS 'returns sequence for given pseq_id'; unisonunisonfalse55]00pseq_id_sequence(integer)ACL^REVOKE ALL ON FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text) FROM PUBLIC; REVOKE ALL ON FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text) FROM unison; GRANT ALL ON FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text) TO unison; GRANT ALL ON FUNCTION pseq_id_sequence(pseq_id integer, OUT sequence text) TO PUBLIC; unisonunisonfalse551255309645pseq_iu_trigger()FUNCTION*CREATE FUNCTION pseq_iu_trigger() RETURNS trigger AS $$ declare orig_md5 text; begin -- compute the incoming sequence's md5 so that we can warn about changes orig_md5 := md5(new.seq); -- remove whitespace and bogus chars, and upcase sequence new.seq := clean_sequence(new.seq); -- modifying sequences is prohibited -- if tg_op = 'UPDATE' and old.seq != new.seq then if tg_op = 'UPDATE' then if old.seq != new.seq then raise exception 'pseq sequences may not be altered'; end if; end if; -- compute the md5 and length of the "cleaned" sequence new.md5 := md5(new.seq); new.len := length(new.seq); -- warn (and proceed) if the sequence was modified by clean_sequence if orig_md5 != new.md5 then raise notice 'pseq_id % modified during insert.',new.pseq_id; end if; -- fatal if sequences have non-IUPAC chars IF has_non_iupac_aa(new.seq) THEN raise exception 'pseq_id % contains non standard amino acids.',new.pseq_id; END IF; -- warn if sequence contains gaps or ambiguities IF has_iupac_gap_aa(new.seq) THEN raise notice 'pseq_id % contains gaps.',new.pseq_id; END IF; IF has_iupac_ambiguity_aa(new.seq) THEN raise notice 'pseq_id % contains ambiguity amino acids.',new.pseq_id; END IF; RETURN new; end;$$ LANGUAGE plpgsql; (DROP FUNCTION unison.pseq_iu_trigger(); unisonunisonfalse1293921255308643%pseq_locus(integer, integer, integer)FUNCTIONCREATE FUNCTION pseq_locus(integer, integer, integer) RETURNS text AS $_$select locus_fmt(chr,strand,gstart,gstop) from pmap_unambiguous_mv where pseq_id=$1 and genasm_id=$2 and params_id=$3;$_$ LANGUAGE sql IMMUTABLE STRICT; <DROP FUNCTION unison.pseq_locus(integer, integer, integer); unisonunisonfalse9^00.FUNCTION pseq_locus(integer, integer, integer)COMMENTCOMMENT ON FUNCTION pseq_locus(integer, integer, integer) IS 'unambiguous genomic location of pseq_id on given genome with given params; NULL if alignment is ambiguous or not available'; unisonunisonfalse50_00%pseq_locus(integer, integer, integer)ACL"REVOKE ALL ON FUNCTION pseq_locus(integer, integer, integer) FROM PUBLIC; REVOKE ALL ON FUNCTION pseq_locus(integer, integer, integer) FROM unison; GRANT ALL ON FUNCTION pseq_locus(integer, integer, integer) TO unison; GRANT ALL ON FUNCTION pseq_locus(integer, integer, integer) TO PUBLIC; unisonunisonfalse5001255308591pseq_locus_human(integer)FUNCTIONCREATE FUNCTION pseq_locus_human(integer) RETURNS text AS $_$select * from pseq_locus($1,3,48)$_$ LANGUAGE sql IMMUTABLE STRICT; 0DROP FUNCTION unison.pseq_locus_human(integer); unisonunisonfalse91255309646)pseq_locus_rep(integer, integer, integer)FUNCTIONCREATE FUNCTION pseq_locus_rep(integer, integer, integer) RETURNS integer AS $_$select t_pseq_id from pmap_locus_representative_mv where q_pseq_id=$1 and genasm_id=$2 and params_id=$3;$_$ LANGUAGE sql IMMUTABLE STRICT; @DROP FUNCTION unison.pseq_locus_rep(integer, integer, integer); unisonunisonfalse91255309647pseq_si_pseq_id(text)FUNCTIONtCREATE FUNCTION pseq_si_pseq_id(text) RETURNS integer AS $_$ DECLARE S text; rv integer; Smd5 text; BEGIN S := clean_sequence($1); Smd5 := md5(S); rv := _pseq_seq_lookup( S ); if rv is NULL then select into rv pseq_i_pseq_id( S ); end if; return rv; END;$_$ LANGUAGE plpgsql; ,DROP FUNCTION unison.pseq_si_pseq_id(text); unisonunisonfalse12939`00FUNCTION pseq_si_pseq_id(text)COMMENTgCOMMENT ON FUNCTION pseq_si_pseq_id(text) IS 'select/insert a pseq_id from sequence, returns pseq_id'; unisonunisonfalse168(1255308302psloc_id(text)FUNCTIONNCREATE FUNCTION psloc_id(text) RETURNS integer AS $_$ DECLARE V_id integer; BEGIN select into V_id psloc_id from psprotcomp_location where upper(location)=upper($1); IF NOT FOUND THEN RAISE WARNING 'cellular location ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql IMMUTABLE STRICT; %DROP FUNCTION unison.psloc_id(text); unisonunisonfalse12939a00FUNCTION psloc_id(text)COMMENTXCOMMENT ON FUNCTION psloc_id(text) IS 'returns psloc_id for a given cellular location'; unisonunisonfalse40b00psloc_id(text)ACLREVOKE ALL ON FUNCTION psloc_id(text) FROM PUBLIC; REVOKE ALL ON FUNCTION psloc_id(text) FROM unison; GRANT ALL ON FUNCTION psloc_id(text) TO unison; GRANT ALL ON FUNCTION psloc_id(text) TO PUBLIC; unisonunisonfalse401255309648pstr_get_pstr_id(text)FUNCTIONCREATE FUNCTION pstr_get_pstr_id(text) RETURNS integer AS $_$ DECLARE rv integer; BEGIN select into rv pstr_id from pstr where pdbc = upper($1); return rv; END;$_$ LANGUAGE plpgsql; -DROP FUNCTION unison.pstr_get_pstr_id(text); unisonunisonfalse12939c00FUNCTION pstr_get_pstr_id(text)COMMENTWCOMMENT ON FUNCTION pstr_get_pstr_id(text) IS 'return pstr_id for pdbc (pdb + chain)'; unisonunisonfalse1691255309649 publicize()FUNCTION CREATE FUNCTION publicize() RETURNS void AS $$ DECLARE v_row record; BEGIN if current_database() != 'csb-public' then RAISE EXCEPTION 'publicize(): database must be named "csb-public"'; end if; RAISE WARNING '%: BEGINNING MASSIVE DELETE OF PROPRIETARY DATA.', timeofday(); FOR v_row IN SELECT origin,origin_id FROM origin WHERE is_public=FALSE ORDER BY origin_id LOOP RAISE NOTICE '%: deleting results for ''%'' (origin_id=%)', timeofday(), v_row.origin, v_row.origin_id; DELETE FROM pannotation WHERE origin_id=v_row.origin_id; DELETE FROM origin WHERE origin_id=v_row.origin_id; END LOOP; FOR v_row IN SELECT name,params_id FROM params WHERE is_public=FALSE ORDER BY params_id LOOP RAISE NOTICE '%: deleting results for ''%'' (params_id=%)', timeofday(), v_row.name, v_row.params_id; DELETE FROM pahmm WHERE params_id=v_row.params_id; DELETE FROM paprospect WHERE params_id=v_row.params_id; DELETE FROM params WHERE params_id=v_row.params_id; END LOOP; RAISE NOTICE 'deleting sequences NOT in pset_id=150'; DELETE FROM pseq WHERE pseq_id NOT IN (SELECT pseq_id FROM pseqset WHERE pset_id=150); select meta_update_kv('publicized at',now()); RAISE NOTICE '%: Done. You should VACUUM ANALYZE VERBOSE.', timeofday(); RETURN; END;$$ LANGUAGE plpgsql; "DROP FUNCTION unison.publicize(); unisonunisonfalse12939d00FUNCTION publicize()COMMENTCOMMENT ON FUNCTION publicize() IS 'DANGER: This function deletes all proprietary data. It may only be run in a database named csb-public.'; unisonunisonfalse1721255309650randseq(integer)FUNCTIONCREATE FUNCTION randseq(integer) RETURNS text AS $_X$my $A="ACDEFGHIKLMNPQRSTVWY"; my $s=""; $s.=substr($A,rand(length($A)),1) for 1..$_[0]; return $s;$_X$ LANGUAGE plperl; 'DROP FUNCTION unison.randseq(integer); unisonunisonfalse129191255309651 release()FUNCTIONCREATE FUNCTION release() RETURNS void AS $$ BEGIN perform meta_update_kv('release timestamp',now()); perform meta_update_kv('release',to_char(now(), 'YYYY-MM-DD') ); return; END;$$ LANGUAGE plpgsql; DROP FUNCTION unison.release(); unisonunisonfalse91293e00FUNCTION release()COMMENTPCOMMENT ON FUNCTION release() IS 'perform final operations for unison release'; unisonunisonfalse17411255308592representative_pseq_id(integer)FUNCTIONCREATE FUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer) RETURNS integer AS $_$select representative_pseq_id($1,3,48)$_$ LANGUAGE sql IMMUTABLE STRICT; UDROP FUNCTION unison.representative_pseq_id(q_pseq_id integer, OUT pseq_id integer); unisonunisonfalse9f00GFUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer)COMMENTCOMMENT ON FUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer) IS 'return "best" representative pseq_id for given pseq_id using current human genasm_id and params_id'; unisonunisonfalse49g00representative_pseq_id(integer)ACLREVOKE ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer) FROM PUBLIC; REVOKE ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer) FROM unison; GRANT ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer) TO unison; GRANT ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, OUT pseq_id integer) TO PUBLIC; unisonunisonfalse4912553096521representative_pseq_id(integer, integer, integer)FUNCTION(CREATE FUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer) RETURNS integer AS $_$select t_pseq_id as pseq_id from pmap_locus_representative_mv where q_pseq_id=$1 and genasm_id=$2 and params_id=$3$_$ LANGUAGE sql IMMUTABLE STRICT; {DROP FUNCTION unison.representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer); unisonunisonfalse9h00mFUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer)COMMENTCOMMENT ON FUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer) IS 'return "best" representative pseq_id for given pseq_id, genasm_id, params_id'; unisonunisonfalse175i001representative_pseq_id(integer, integer, integer)ACLREVOKE ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer) FROM PUBLIC; REVOKE ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer) FROM unison; GRANT ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer) TO unison; GRANT ALL ON FUNCTION representative_pseq_id(q_pseq_id integer, genasm_id integer, params_id integer, OUT pseq_id integer) TO PUBLIC; unisonunisonfalse1751255309653residue_atomres_trigger()FUNCTIONzCREATE FUNCTION residue_atomres_trigger() RETURNS trigger AS $$ DECLARE BEGIN IF new.atom_res IS null or new.atom_res = '' THEN IF new.res_id IS not null or new.res_id != '' THEN RAISE EXCEPTION 'res_id is not null when atom_res is null for pdbc = % and seqpos = %',new.pdbc,new.seq_pos; RETURN NULL; END IF; END IF; IF new.res_id IS null or new.res_id = '' THEN IF new.atom_res IS not null or new.atom_res != '' THEN RAISE EXCEPTION 'atom_res is not null when res_id is null for pdbc = % and seqpos = %',new.pdbc,new.seq_pos; RETURN NULL; END IF; END IF; RETURN new; END;$$ LANGUAGE plpgsql; 0DROP FUNCTION unison.residue_atomres_trigger(); unisonunisonfalse912931255309654run_all_perftests(integer)FUNCTION' CREATE FUNCTION run_all_perftests(pid integer) RETURNS void AS $$ DECLARE pla perftest_platform%ROWTYPE; def perftest_def%ROWTYPE; res perftest_result%ROWTYPE; i smallint; t0 timestamp; t1 timestamp; td integer; sum_td integer; rows integer; rid integer; BEGIN SELECT INTO pla * FROM perftest_platform where platform_id = pid; IF NOT FOUND THEN RAISE EXCEPTION 'platform_id=%: NOT FOUND; aborting', pid; END IF; -- sanity checks to ensure that the user doesn't call us with an obviously bogus -- platform_id IF NOT pla.current THEN RAISE EXCEPTION 'platform_id=%: platform is not current; aborting', pid; END IF; IF pla.locked THEN RAISE EXCEPTION 'platform_id=%: platform is locked; aborting', pid; END IF; IF pla.pg_version_str != version() THEN RAISE EXCEPTION 'platform_id=% pg_version_str=% but version()=%; aborting', pid, pla.pg_version_str, version(); END IF; IF pla.ip != inet_server_addr() THEN RAISE EXCEPTION 'platform_id=% ip=% but inet_server_addr()=%; aborting', pid, pla.ip, inet_server_addr(); END IF; insert into perftest_run (platform_id,start_ts) values (pid,clock_timestamp()::timestamp); rid := lastval(); -- run_id from above insertion RAISE NOTICE '* running perftest for platform_id=% (%), run_id %', pid, pla.name, rid; FOR def IN SELECT * FROM perftest_def WHERE current ORDER BY ordr,def_id LOOP RAISE NOTICE 'def_id=% (%): %', def.def_id, def.name, def.sql; sum_td := 0; FOR i IN 1..def.n_runs LOOP -- run test t0 := clock_timestamp(); EXECUTE def.sql; GET DIAGNOSTICS rows = ROW_COUNT; t1 := clock_timestamp(); td := extract(milliseconds from t1-t0)::integer; IF i = 1 THEN res.n_rows = rows; IF rows < def.min_n_rows THEN RAISE WARNING 'def_id=%, #%: returned % rows; expected >%', def.def_id, i, rows, def.min_n_rows; END IF; ELSE IF rows != res.n_rows THEN RAISE WARNING 'def_id=%, #%: returned % rows; iteration 1 returned % rows', def.def_id, i, rows, res.n_rows; END IF; END IF; IF td > def.max_time THEN RAISE WARNING 'def_id=%, #%: time exceeded max_time (% ms > % ms)', def.def_id, i, td, def.max_time; END IF; res.times[i] = td; sum_td := sum_td + td; RAISE NOTICE ' #%: % rows, % ms', i, rows, td; END LOOP; res.avg_time = sum_td / def.n_runs; IF res.avg_time > def.max_avg_time THEN RAISE WARNING 'def_id=%: avg_time (% ms) exceeed max_av_time (% ms)', def.def_id, res.avg_time, def.max_time; END IF; res.def_id := def.def_id; res.run_id := rid; res.had_error := FALSE; INSERT INTO perftest_result(def_id,run_id,had_error,n_rows,times,avg_time) VALUES (res.def_id,res.run_id,res.had_error,res.n_rows,res.times,res.avg_time); END LOOP; update perftest_run set stop_ts=clock_timestamp()::timestamp where run_id=rid; END; $$ LANGUAGE plpgsql; 5DROP FUNCTION unison.run_all_perftests(pid integer); unisonunisonfalse912931255309655 seqhash(text)FUNCTIONCREATE FUNCTION seqhash(text) RETURNS text AS $_$DECLARE S text; BEGIN return ( _seqhash_no_cleaning( clean_sequence($1) ) ); END$_$ LANGUAGE plpgsql IMMUTABLE STRICT; $DROP FUNCTION unison.seqhash(text); unisonunisonfalse12939j00 seqhash(text)ACLREVOKE ALL ON FUNCTION seqhash(text) FROM PUBLIC; REVOKE ALL ON FUNCTION seqhash(text) FROM unison; GRANT ALL ON FUNCTION seqhash(text) TO unison; GRANT ALL ON FUNCTION seqhash(text) TO PUBLIC; unisonunisonfalse1781255309656sequence_ends(text, integer)FUNCTION:CREATE FUNCTION sequence_ends(text, integer) RETURNS text AS $_X$ my $seq = $_[0]; my $end_len = $_[1]; my $elipsis = '..'; return $seq if ( length($seq) <= $end_len + $end_len + length($elipsis) ); return substr($seq,0,$end_len) . $elipsis . substr($seq,-$end_len); $_X$ LANGUAGE plperl IMMUTABLE STRICT; 3DROP FUNCTION unison.sequence_ends(text, integer); unisonunisonfalse91291k00%FUNCTION sequence_ends(text, integer)COMMENTvCOMMENT ON FUNCTION sequence_ends(text, integer) IS 'returns first and last N chars of sequence, e.g., ACDEF..STVWY'; unisonunisonfalse179l00sequence_ends(text, integer)ACLREVOKE ALL ON FUNCTION sequence_ends(text, integer) FROM PUBLIC; REVOKE ALL ON FUNCTION sequence_ends(text, integer) FROM unison; GRANT ALL ON FUNCTION sequence_ends(text, integer) TO unison; GRANT ALL ON FUNCTION sequence_ends(text, integer) TO PUBLIC; unisonunisonfalse1791255309657 spdi_dna_pannotation_id(integer)FUNCTIONCREATE FUNCTION spdi_dna_pannotation_id(integer) RETURNS integer AS $_$ DECLARE q_id alias for $1; a_id integer; BEGIN select into a_id QA.pannotation_id from pseq_pannotation QA join pannotation OA on OA.pannotation_id=QA.pannotation_id where QA.pseq_id=q_id and QA.is_current=TRUE and OA.origin_id=origin_id('SPDI') and alias~'^DNA' limit 1; return a_id; END;$_$ LANGUAGE plpgsql STABLE STRICT; 7DROP FUNCTION unison.spdi_dna_pannotation_id(integer); unisonunisonfalse129391255309658spdi_pannotation_id(integer)FUNCTIONCREATE FUNCTION spdi_pannotation_id(integer) RETURNS integer AS $_$ DECLARE q_id alias for $1; a_id integer; BEGIN -- order by alias desc has the effect of preferring UNQ, then PRO, then DNA select into a_id QA.pannotation_id from pseq_pannotation QA join pannotation OA on OA.pannotation_id=QA.pannotation_id where QA.pseq_id=q_id and QA.is_current=TRUE and OA.origin_id=origin_id('GenenGenes') order by alias desc limit 1; return a_id; END;$_$ LANGUAGE plpgsql STABLE STRICT; 3DROP FUNCTION unison.spdi_pannotation_id(integer); unisonunisonfalse912931255309659 spdi_pro_pannotation_id(integer)FUNCTIONCREATE FUNCTION spdi_pro_pannotation_id(integer) RETURNS integer AS $_$ DECLARE q_id alias for $1; a_id integer; BEGIN select into a_id QA.pannotation_id from pseq_pannotation QA join pannotation OA on OA.pannotation_id=QA.pannotation_id where QA.pseq_id=q_id and QA.is_current=TRUE and OA.origin_id=origin_id('SPDI') and alias~'^PRO' limit 1; return a_id; END;$_$ LANGUAGE plpgsql STABLE STRICT; 7DROP FUNCTION unison.spdi_pro_pannotation_id(integer); unisonunisonfalse912931255309660 spdi_unq_pannotation_id(integer)FUNCTIONCREATE FUNCTION spdi_unq_pannotation_id(integer) RETURNS integer AS $_$ DECLARE q_id alias for $1; a_id integer; BEGIN select into a_id QA.pannotation_id from pseq_pannotation QA join pannotation OA on OA.pannotation_id=QA.pannotation_id where QA.pseq_id=q_id and QA.is_current=TRUE and OA.origin_id=origin_id('SPDI') and alias~'^UNQ' limit 1; return a_id; END;$_$ LANGUAGE plpgsql STABLE STRICT; 7DROP FUNCTION unison.spdi_unq_pannotation_id(integer); unisonunisonfalse129391255309661split(text, text)FUNCTION#CREATE FUNCTION split(text, text) RETURNS text[] AS $_$ DECLARE i int := 0; word text; result text := '{'; result_arr text[]; BEGIN LOOP i := i + 1; SELECT INTO word split_part($1, $2, i); IF word = '' THEN EXIT; END IF; IF i > 1 THEN result := result || ',"' || word || '"'; ELSE result := result || '"' || word || '"'; END IF; END LOOP; result := result || '}'; result_arr := result; RETURN result_arr; END $_$ LANGUAGE plpgsql; (DROP FUNCTION unison.split(text, text); unisonunisonfalse91293m00FUNCTION split(text, text)COMMENT]COMMENT ON FUNCTION split(text, text) IS 'split text into an array - similar to Perl split'; unisonunisonfalse1841255309662sprintf(text, text, text)FUNCTIONCREATE FUNCTION sprintf(text, text, text) RETURNS text AS $_$ my ($string, $args, $delim) = @_; my $delsplit = defined $delim ? qr{\Q$delim} : qr{\s+}; return sprintf($string, (split $delsplit, $args)); $_$ LANGUAGE plperl; 0DROP FUNCTION unison.sprintf(text, text, text); unisonunisonfalse91291n00"FUNCTION sprintf(text, text, text)COMMENTyCOMMENT ON FUNCTION sprintf(text, text, text) IS 'sprintf(fmt,argstring,dlm): format dlm-delimited argstring using fmt'; unisonunisonfalse1851255309663sprintf(text, text)FUNCTIONpCREATE FUNCTION sprintf(text, text) RETURNS text AS $_$ SELECT sprintf($1,$2,null); $_$ LANGUAGE sql; *DROP FUNCTION unison.sprintf(text, text); unisonunisonfalse9o00FUNCTION sprintf(text, text)COMMENTwCOMMENT ON FUNCTION sprintf(text, text) IS 'sprintf(fmt,argstring): format whitespace-delimited argstring using fmt'; unisonunisonfalse1861255309664*upd_run_history(integer, integer, boolean)FUNCTIONCREATE FUNCTION upd_run_history(integer, integer, boolean) RETURNS timestamp with time zone AS $_$ DECLARE q alias for $1; r alias for $2; f alias for $3; z timestamp; BEGIN z:=now(); update run_history set failed=f,ran_on=z where pseq_id=q and run_id=r; if not FOUND then -- update failed... tuple must not exist insert into run_history (pseq_id,run_id,failed,ran_on) values (q,r,f,z); end if; return z; END;$_$ LANGUAGE plpgsql; ADROP FUNCTION unison.upd_run_history(integer, integer, boolean); unisonunisonfalse12939p003FUNCTION upd_run_history(integer, integer, boolean)COMMENTCOMMENT ON FUNCTION upd_run_history(integer, integer, boolean) IS 'inserts/updates run_history for the given pseq_id,run_id,failed); returns timestamp'; unisonunisonfalse1871255309665!upd_run_history(integer, integer)FUNCTIONCREATE FUNCTION upd_run_history(integer, integer) RETURNS timestamp with time zone AS $_$BEGIN return upd_run_history($1,$2,NULL); END$_$ LANGUAGE plpgsql; 8DROP FUNCTION unison.upd_run_history(integer, integer); unisonunisonfalse91293q00*FUNCTION upd_run_history(integer, integer)COMMENToCOMMENT ON FUNCTION upd_run_history(integer, integer) IS 'equivalent to upd_run_history(pseq_id,run_id,NULL)'; unisonunisonfalse1881255309666update_pmodelset(integer)FUNCTIONcCREATE FUNCTION update_pmodelset(integer) RETURNS integer AS $_$ DECLARE v_pmodelset_id alias for $1; v_row record; v_pg_row record; v_cmd text; v_tmptblname text; v_nrows_del integer := 0; v_nrows_ins integer := 0; v_nrows_tot integer := 0; BEGIN -- ********************************* checklist ***************************************** -- check if the requested pmodelset_id exists SELECT INTO v_row pmodelset_id,name,descr,def,locked,pmsm_table FROM pmodelset WHERE pmodelset_id=v_pmodelset_id; IF NOT FOUND THEN RAISE EXCEPTION 'pmodelset_id=% does not exist', v_pmodelset_id; RETURN NULL; END IF; -- check if pmodelset is immutable (locked) IF v_row.locked IS TRUE THEN RAISE EXCEPTION '% set (pmodelset_id=%) is locked for updates.', v_row.name,v_pmodelset_id; RETURN NULL; END IF; -- check if an sql definition exists IF v_row.def IS NULL THEN RAISE EXCEPTION 'The definition for pmodelset_id=% is null.', v_pmodelset_id; RETURN NULL; END IF; -- check if the pmsm_pm* table is set IF v_row.pmsm_table IS NULL THEN RAISE EXCEPTION 'The pmsm_pm* table name for this set (pmodelset_id=%) is null.', v_pmodelset_id; RETURN NULL; END IF; -- check if the pmsm_pm* table exists SELECT INTO v_pg_row tablename FROM pg_tables where tablename=v_row.pmsm_table; IF NOT FOUND THEN RAISE EXCEPTION 'table=% does not exist', v_row.pmsm_table; RETURN NULL; END IF; -- ************************************************************************************** -- warn with name and id RAISE DEBUG '* % (pmodelset_id=%)', v_row.name, v_row.pmodelset_id; v_tmptblname := 'update_pmodelset_' || v_pmodelset_id || '_' || md5(now()::text||random()); -- materialize a temp table of the current set contents v_cmd := 'CREATE TEMP TABLE '||v_tmptblname||' AS SELECT DISTINCT pmodel_id FROM ('||v_row.def||') X'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_tot = ROW_COUNT; RAISE DEBUG '% rows in temp table', v_nrows_tot; -- delete obsolete models using an intermediate, indexed table v_cmd := 'CREATE TEMP TABLE '||v_tmptblname||'_del AS SELECT pmodel_id from '||v_row.pmsm_table||' where pmodelset_id='||v_pmodelset_id||' EXCEPT select pmodel_id from '||v_tmptblname; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'CREATE INDEX '||v_tmptblname||'_del_m_idx on '||v_tmptblname||'_del(pmodel_id)'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'ANALYZE '||v_tmptblname||'_del'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd:='DELETE FROM '||v_row.pmsm_table||' USING '||v_tmptblname||'_del D WHERE pmodelset_id='||v_pmodelset_id||' AND '||v_row.pmsm_table||'.pmodel_id=D.pmodel_id'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_del = ROW_COUNT; v_cmd:='DROP TABLE ' || v_tmptblname||'_del'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; -- add new models v_cmd:='INSERT INTO '||v_row.pmsm_table||' (pmodelset_id,pmodel_id) SELECT '||v_pmodelset_id||',pmodel_id FROM (SELECT pmodel_id FROM '||v_tmptblname||' EXCEPT SELECT pmodel_id FROM '||v_row.pmsm_table||' WHERE pmodelset_id='||v_pmodelset_id||') X'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_ins = ROW_COUNT; -- drop the temp table v_cmd:='DROP TABLE ' || v_tmptblname; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'SELECT pmodel_id FROM '||v_row.pmsm_table||' WHERE pmodelset_id = '||v_pmodelset_id; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_tot = ROW_COUNT; RAISE NOTICE ' % (pmodelset_id=%): % model deleted, % models added, % total', v_row.name, v_row.pmodelset_id, v_nrows_del, v_nrows_ins, v_nrows_tot; RETURN v_nrows_tot; END $_$ LANGUAGE plpgsql; 0DROP FUNCTION unison.update_pmodelset(integer); unisonunisonfalse91293r00"FUNCTION update_pmodelset(integer)COMMENTCOMMENT ON FUNCTION update_pmodelset(integer) IS 'update pmodelset for a specified pmodelset_id using the definition in pmodelset.def'; unisonunisonfalse200s00update_pmodelset(integer)ACLREVOKE ALL ON FUNCTION update_pmodelset(integer) FROM PUBLIC; REVOKE ALL ON FUNCTION update_pmodelset(integer) FROM unison; GRANT ALL ON FUNCTION update_pmodelset(integer) TO unison; GRANT ALL ON FUNCTION update_pmodelset(integer) TO PUBLIC; unisonunisonfalse2001255309667update_pset(integer)FUNCTION CREATE FUNCTION update_pset(integer) RETURNS integer AS $_$ DECLARE v_pset_id alias for $1; v_row record; v_cmd text; v_nrows_del integer; v_nrows_ins integer; v_nrows_tot integer; v_tmptblname text; BEGIN SELECT INTO v_row pset_id,name,def FROM pset WHERE pset_id=v_pset_id; IF NOT FOUND THEN RAISE EXCEPTION 'pset_id=% does not exist', v_pset_id; RETURN NULL; END IF; IF v_row.def IS NULL THEN RAISE EXCEPTION 'The set definition for pset_id=% is null.', v_pset_id; RETURN NULL; END IF; RAISE DEBUG '* % (pset_id=%)', v_row.name, v_row.pset_id; v_tmptblname := 'update_pset_' || v_pset_id || '_' || md5(now()::text||random()::text); -- materialize a temp table of the current set contents v_cmd := 'CREATE TEMP TABLE '||v_tmptblname||' AS SELECT DISTINCT pseq_id FROM ('||v_row.def||') X'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_tot = ROW_COUNT; RAISE DEBUG '% rows in temp table', v_nrows_tot; -- delete obsolete seqs using an intermediate, indexed table v_cmd := 'CREATE TEMP TABLE '||v_tmptblname||'_del AS SELECT pseq_id from pseqset where pset_id='||v_pset_id||' EXCEPT select pseq_id from '||v_tmptblname; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'CREATE INDEX '||v_tmptblname||'_del_q_idx on '||v_tmptblname||'_del(pseq_id)'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'ANALYZE '||v_tmptblname||'_del'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd:='DELETE FROM pseqset USING '||v_tmptblname||'_del D WHERE pset_id='||v_pset_id||' AND pseqset.pseq_id=D.pseq_id'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_del = ROW_COUNT; v_cmd:='DROP TABLE ' || v_tmptblname||'_del'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; -- add new seqs v_cmd:='INSERT INTO pseqset (pset_id,pseq_id) SELECT '||v_row.pset_id||',pseq_id FROM (SELECT pseq_id FROM '||v_tmptblname||' EXCEPT SELECT pseq_id FROM pseqset WHERE pset_id='||v_pset_id||') X'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_ins = ROW_COUNT; -- drop the temp table v_cmd:='DROP TABLE ' || v_tmptblname; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; SELECT INTO v_nrows_tot COUNT(*) FROM pseqset WHERE pset_id = v_pset_id; RAISE NOTICE ' % (pset_id=%): % sequences deleted, % sequences added, % total', v_row.name, v_row.pset_id, v_nrows_del, v_nrows_ins, v_nrows_tot; RETURN v_nrows_tot; END $_$ LANGUAGE plpgsql; +DROP FUNCTION unison.update_pset(integer); unisonunisonfalse91293t00FUNCTION update_pset(integer)COMMENTCOMMENT ON FUNCTION update_pset(integer) IS 'update pmodelset for a specified pmodelset_id using the definition in pmodelset.def'; unisonunisonfalse1891255309668update_pset_orig(integer)FUNCTION CREATE FUNCTION update_pset_orig(integer) RETURNS integer AS $_$ DECLARE v_pset_id alias for $1; v_row record; v_cmd text; v_nrows_del integer; v_nrows_ins integer; v_nrows_tot integer; v_tmptblname text; BEGIN SELECT INTO v_row pset_id,name,def FROM pset WHERE pset_id=v_pset_id; IF NOT FOUND THEN RAISE EXCEPTION 'pset_id=% does not exist', v_pset_id; RETURN NULL; END IF; IF v_row.def IS NULL THEN RAISE EXCEPTION 'The set definition for pset_id=% is null.', v_pset_id; RETURN NULL; END IF; RAISE DEBUG '* % (pset_id=%)', v_row.name, v_row.pset_id; -- populate a temp table of the current set contents v_tmptblname := 'update_pset_' || v_pset_id || '_' || substr(md5(now()||random(),1,10)); v_cmd := 'CREATE TEMP TABLE '||v_tmptblname||' AS SELECT DISTINCT pseq_id FROM ('||v_row.def||') X'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_tot = ROW_COUNT; RAISE DEBUG '% rows in temp table', v_nrows_tot; v_cmd := 'CREATE TEMP TABLE '||v_tmptblname||'_del AS SELECT pseq_id from pseqset where pset_id='||v_pset_id||' EXCEPT select pseq_id from '||v_tmptblname; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'CREATE INDEX '||v_tmptblname||'_del_q_idx on '||v_tmptblname||'_del(pseq_id)'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd := 'ANALYZE '||v_tmptblname||'_del'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; -- delete obsolete seqs v_cmd:='DELETE FROM pseqset USING '||v_tmptblname||'_del D WHERE pset_id='||v_pset_id||' AND pseqset.pseq_id=D.pseq_id'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_del = ROW_COUNT; -- add new seqs v_cmd:='INSERT INTO pseqset (pset_id,pseq_id) SELECT '||v_row.pset_id||',pseq_id FROM (SELECT pseq_id FROM '||v_tmptblname||' EXCEPT SELECT pseq_id FROM pseqset WHERE pset_id='||v_pset_id||') X'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; GET DIAGNOSTICS v_nrows_ins = ROW_COUNT; -- drop the temp tables v_cmd:='DROP TABLE ' || v_tmptblname; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; v_cmd:='DROP TABLE ' || v_tmptblname||'_del'; RAISE DEBUG '%', v_cmd; EXECUTE v_cmd; SELECT INTO v_nrows_tot COUNT(*) FROM pseqset WHERE pset_id = v_pset_id; RAISE NOTICE ' % (pset_id=%): % sequences deleted, % sequences added, % total', v_row.name, v_row.pset_id, v_nrows_del, v_nrows_ins, v_nrows_tot; RETURN v_nrows_tot; END $_$ LANGUAGE plpgsql; 0DROP FUNCTION unison.update_pset_orig(integer); unisonunisonfalse91293u00"FUNCTION update_pset_orig(integer)COMMENT|COMMENT ON FUNCTION update_pset_orig(integer) IS 'update pseqset for a specified pset_id using the definition in pset.def'; unisonunisonfalse1901255309669update_psets_extrinsic()FUNCTIONCREATE FUNCTION update_psets_extrinsic() RETURNS void AS $$ DECLARE v_row record; v_nseqs integer; BEGIN FOR v_row IN SELECT pset_id,name FROM pset WHERE pset_id between 100 and 199 order by pset_id LOOP SELECT INTO v_nseqs update_pset( v_row.pset_id ); RAISE NOTICE '% (pset_id=%): % sequences', v_row.name, v_row.pset_id, v_nseqs; END LOOP; RETURN; END; $$ LANGUAGE plpgsql; /DROP FUNCTION unison.update_psets_extrinsic(); unisonunisonfalse91293v00!FUNCTION update_psets_extrinsic()COMMENTqCOMMENT ON FUNCTION update_psets_extrinsic() IS 'update pseqset for set definitions based on computed features'; unisonunisonfalse1911255309670update_psets_intrinsic()FUNCTIONCREATE FUNCTION update_psets_intrinsic() RETURNS void AS $$ DECLARE v_row record; v_nseqs integer; BEGIN FOR v_row IN SELECT pset_id,name FROM pset WHERE pset_id between 1 and 99 order by pset_id LOOP SELECT INTO v_nseqs update_pset( v_row.pset_id ); RAISE NOTICE '% (pset_id=%): % sequences', v_row.name, v_row.pset_id, v_nseqs; END LOOP; RETURN; END; $$ LANGUAGE plpgsql; /DROP FUNCTION unison.update_psets_intrinsic(); unisonunisonfalse12939w00!FUNCTION update_psets_intrinsic()COMMENTCOMMENT ON FUNCTION update_psets_intrinsic() IS 'update pseqset for set definitions based on origin, alias, description, and tax_id'; unisonunisonfalse1921255309671update_tax_ids()FUNCTIONCREATE FUNCTION update_tax_ids() RETURNS void AS $$update pannotation set tax_id=inferred_tax_id from _infer_tax_id_changed_v where pannotation.pannotation_id=_infer_tax_id_changed_v.pannotation_id;$$ LANGUAGE sql; 'DROP FUNCTION unison.update_tax_ids(); unisonunisonfalse9x00FUNCTION update_tax_ids()COMMENTCOMMENT ON FUNCTION update_tax_ids() IS 'update paliasorigin.tax_id as necessary based on tax_ids inferred from origin, alias, and description'; unisonunisonfalse1931255309672 warn(text)FUNCTIONCREATE FUNCTION warn(text) RETURNS void AS $_$ DECLARE msg text; BEGIN msg:=$1; RAISE WARNING '%', msg; return; END;$_$ LANGUAGE plpgsql STRICT; !DROP FUNCTION unison.warn(text); unisonunisonfalse912931255309673ptm_type_id(text)FUNCTION+CREATE FUNCTION ptm_type_id(text) RETURNS integer AS $_$ DECLARE V_id integer; BEGIN select into V_id ptm_type_id from unison_aux.ptm_type where ptm_type = $1; IF NOT FOUND THEN RAISE WARNING 'ptm type ''%'' not found', $1; RETURN NULL; END IF; return V_id; END;$_$ LANGUAGE plpgsql; ,DROP FUNCTION unison_aux.ptm_type_id(text);  unison_auxunisonfalse1212931255309674array_accum(anyelement) AGGREGATErCREATE AGGREGATE array_accum(anyelement) ( SFUNC = array_append, STYPE = anyarray, INITCOND = '{}' ); /DROP AGGREGATE unison.array_accum(anyelement); unisonunisonfalse9y00array_accum(anyelement)ACLREVOKE ALL ON FUNCTION array_accum(anyelement) FROM PUBLIC; REVOKE ALL ON FUNCTION array_accum(anyelement) FROM unison; GRANT ALL ON FUNCTION array_accum(anyelement) TO unison; GRANT ALL ON FUNCTION array_accum(anyelement) TO PUBLIC; unisonunisonfalse12971255309675defline_agg(anyelement) AGGREGATECREATE AGGREGATE defline_agg(anyelement) ( SFUNC = array_append, STYPE = anyarray, INITCOND = '{}', FINALFUNC = _defline_agg_finalfunc ); /DROP AGGREGATE unison.defline_agg(anyelement); unisonunisonfalse982z00!AGGREGATE defline_agg(anyelement)COMMENTMCOMMENT ON AGGREGATE defline_agg(anyelement) IS 'Ctrl-A delimited deflines'; unisonunisonfalse1296 1259309676association_id_seqSEQUENCEtCREATE SEQUENCE association_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; %DROP SEQUENCE go.association_id_seq; gounisonfalse10{00association_id_seq SEQUENCE SET:SELECT pg_catalog.setval('association_id_seq', 1, false); gounisonfalse2813 1259309678 db_id_seqSEQUENCEkCREATE SEQUENCE db_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; DROP SEQUENCE go.db_id_seq; gounisonfalse10|00 db_id_seq SEQUENCE SET1SELECT pg_catalog.setval('db_id_seq', 1, false); gounisonfalse2814 1259309680 dbxref_id_seqSEQUENCEoCREATE SEQUENCE dbxref_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; DROP SEQUENCE go.dbxref_id_seq; gounisonfalse10}00 dbxref_id_seq SEQUENCE SET5SELECT pg_catalog.setval('dbxref_id_seq', 1, false); gounisonfalse2815 1259309682evidence_id_seqSEQUENCEqCREATE SEQUENCE evidence_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; "DROP SEQUENCE go.evidence_id_seq; gounisonfalse10~00evidence_id_seq SEQUENCE SET7SELECT pg_catalog.setval('evidence_id_seq', 1, false); gounisonfalse2816 1259309684gene_product_id_seqSEQUENCEuCREATE SEQUENCE gene_product_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; &DROP SEQUENCE go.gene_product_id_seq; gounisonfalse1000gene_product_id_seq SEQUENCE SET;SELECT pg_catalog.setval('gene_product_id_seq', 1, false); gounisonfalse2817 1259309686graph_path_id_seqSEQUENCEsCREATE SEQUENCE graph_path_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; $DROP SEQUENCE go.graph_path_id_seq; gounisonfalse1000graph_path_id_seq SEQUENCE SET9SELECT pg_catalog.setval('graph_path_id_seq', 1, false); gounisonfalse2818 1259309688 seq_id_seqSEQUENCElCREATE SEQUENCE seq_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; DROP SEQUENCE go.seq_id_seq; gounisonfalse1000 seq_id_seq SEQUENCE SET2SELECT pg_catalog.setval('seq_id_seq', 1, false); gounisonfalse2819 1259309690seq_property_id_seqSEQUENCEuCREATE SEQUENCE seq_property_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; &DROP SEQUENCE go.seq_property_id_seq; gounisonfalse1000seq_property_id_seq SEQUENCE SET;SELECT pg_catalog.setval('seq_property_id_seq', 1, false); gounisonfalse2820 1259309692species_id_seqSEQUENCEpCREATE SEQUENCE species_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; !DROP SEQUENCE go.species_id_seq; gounisonfalse1000species_id_seq SEQUENCE SET6SELECT pg_catalog.setval('species_id_seq', 1, false); gounisonfalse2821 1259309694term2term_id_seqSEQUENCErCREATE SEQUENCE term2term_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; #DROP SEQUENCE go.term2term_id_seq; gounisonfalse1000term2term_id_seq SEQUENCE SET8SELECT pg_catalog.setval('term2term_id_seq', 1, false); gounisonfalse2822 1259309696 term_id_seqSEQUENCEmCREATE SEQUENCE term_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; DROP SEQUENCE go.term_id_seq; gounisonfalse1000 term_id_seq SEQUENCE SET3SELECT pg_catalog.setval('term_id_seq', 1, false); gounisonfalse2823Q0307899 association TABLE DATAiCOPY association (id, term_id, gene_product_id, is_not, role_group, assocdate, source_db_id) FROM stdin; gounisonfalse2492tR0307905db TABLE DATALCOPY db (id, name, fullname, datatype, generic_url, url_syntax) FROM stdin; gounisonfalse2493S0307912dbxref TABLE DATAMCOPY dbxref (id, xref_key, xref_keytype, xref_dbname, xref_desc) FROM stdin; gounisonfalse2494T0307921evidence TABLE DATAICOPY evidence (id, code, association_id, dbxref_id, seq_acc) FROM stdin; gounisonfalse2495KU0307928evidence_dbxref TABLE DATA:COPY evidence_dbxref (evidence_id, dbxref_id) FROM stdin; gounisonfalse2496LV0307933 gene_product TABLE DATAVCOPY gene_product (id, symbol, dbxref_id, species_id, type_id, full_name) FROM stdin; gounisonfalse2497LW0307942gene_product_count TABLE DATARCOPY gene_product_count (term_id, code, speciesdbname, product_count) FROM stdin; gounisonfalse2498;LX0307948gene_product_property TABLE DATAUCOPY gene_product_property (gene_product_id, property_key, property_val) FROM stdin; gounisonfalse2499XLY0307953gene_product_seq TABLE DATALCOPY gene_product_seq (gene_product_id, seq_id, is_primary_seq) FROM stdin; gounisonfalse2500uLZ0307958gene_product_synonym TABLE DATAICOPY gene_product_synonym (gene_product_id, product_synonym) FROM stdin; gounisonfalse2501L[0307963 graph_path TABLE DATA?COPY graph_path (id, term1_id, term2_id, distance) FROM stdin; gounisonfalse2502L\0307970graph_path2term TABLE DATA@COPY graph_path2term (graph_path_id, term_id, rank) FROM stdin; gounisonfalse2503)]0307976 instance_data TABLE DATAKCOPY instance_data (release_name, release_type, release_notes) FROM stdin; gounisonfalse2504)^0307982seq TABLE DATAdCOPY seq (id, display_id, description, seq, seq_len, md5checksum, moltype, "timestamp") FROM stdin; gounisonfalse2505)_0307989 seq_dbxref TABLE DATA0COPY seq_dbxref (seq_id, dbxref_id) FROM stdin; gounisonfalse2506 )`0307994 seq_property TABLE DATAGCOPY seq_property (id, seq_id, property_key, property_val) FROM stdin; gounisonfalse25071 )a0308001 source_audit TABLE DATAGCOPY source_audit (source_path, source_type, source_mtime) FROM stdin; gounisonfalse2508N )b0308007species TABLE DATAYCOPY species (id, ncbi_taxa_id, common_name, lineage_string, genus, species) FROM stdin; gounisonfalse2509 )c0308014term TABLE DATAGCOPY term (id, name, term_type, acc, is_obsolete, is_root) FROM stdin; gounisonfalse2510 )d0308023 term2term TABLE DATAJCOPY term2term (id, relationship_type_id, term1_id, term2_id) FROM stdin; gounisonfalse2511+e0308030 term_audit TABLE DATA5COPY term_audit (term_id, term_loadtime) FROM stdin; gounisonfalse2512R-f0308034 term_dbxref TABLE DATAECOPY term_dbxref (term_id, dbxref_id, is_for_definition) FROM stdin; gounisonfalse2513ز-g0308040term_definition TABLE DATA`COPY term_definition (term_id, term_definition, dbxref_id, term_comment, reference) FROM stdin; gounisonfalse2514 0h0308048 term_synonym TABLE DATACCOPY term_synonym (term_id, term_synonym, acc_synonym) FROM stdin; gounisonfalse2515%6i0308052alias TABLE DATA0COPY alias (alias_id, alias, go_id) FROM stdin; gongunisonfalse25166j0308058 evidence_code TABLE DATA@COPY evidence_code (evidence_code, abbr_exp, descr) FROM stdin; gongunisonfalse2517Z9k0308064is_a TABLE DATA'COPY is_a (go_id1, go_id2) FROM stdin; gongunisonfalse2518F9l0308067node TABLE DATAJCOPY node (go_id, is_obsolete, alias_id, definition, comment) FROM stdin; gongunisonfalse2519C:m0308074part_of TABLE DATA*COPY part_of (go_id1, go_id2) FROM stdin; gongunisonfalse25206An0308081chip TABLE DATA9COPY chip (chip_id, name, current_origin_id) FROM stdin; marrayunisonfalse2522[Ao0308087probe TABLE DATAbCOPY probe (probe_id, chip_id, chr, strand, genasm_id, gstart, gstop, origin_id, md5) FROM stdin; marrayunisonfalse2523[A0308356gene2accession TABLE DATACOPY gene2accession (tax_id, gene_id, status, rna_acc, rna_gi, pro_acc, pro_gi, gen_acc, gen_gi, gen_start, gen_end, gen_orient, assembly) FROM stdin; ncbiunisonfalse2571gt0308362gene2go TABLE DATAbCOPY gene2go (tax_id, gene_id, go_id, evidence, qualifier, term, pubmed_id, category) FROM stdin; ncbiunisonfalse2572 0308368 gene2unigene TABLE DATA5COPY gene2unigene (gene_id, unigene_acc) FROM stdin; ncbiunisonfalse2573r 0308374 gene_info TABLE DATACOPY gene_info (tax_id, gene_id, symbol, locus_tag, synonyms, xrefs, chromosome, map_loc, descr, type, nom_auth_symbol, nom_auth, nom_status, other_desig, modification_date) FROM stdin; ncbiunisonfalse2574 2@ 0308380generif TABLE DATAMCOPY generif (tax_id, gene_id, pubmed_ids, last_update, generif) FROM stdin; ncbiunisonfalse2575{p0308098 homologene TABLE DATAICOPY homologene (hid, tax_id, gene_id, gene_symbol, gi, acc) FROM stdin; ncbiunisonfalse25250308386mim2gene TABLE DATA2COPY mim2gene (mim_id, gene_id, type) FROM stdin; ncbiunisonfalse25765 0308225chain TABLE DATA8COPY chain (pdbid, chainid, pdbc, name, ec) FROM stdin; pdbunisonfalse25482y0308169descriptor_origin TABLE DATAQCOPY descriptor_origin (descriptor_origin_id, type, origin, version) FROM stdin; pdbunisonfalse2538,%0308392ligand TABLE DATAaCOPY ligand (ligand_id, formula, formula_weight, last_modified, formal_charge, type) FROM stdin; pdbunisonfalse2577%0308398 ligand_atoms TABLE DATACOPY ligand_atoms (atom_id, ligand_id, type_symbol, alt_atom_id, formal_charge, aromatic, leaving_atom, ordinal, stereo_config) FROM stdin; pdbunisonfalse2578W0'0308404 ligand_bonds TABLE DATAnCOPY ligand_bonds (atom_id_1, atom_id_2, ligand_id, bond_order, ordinal, aromatic, stereo_config) FROM stdin; pdbunisonfalse2579+Kz0308175ligand_descriptors TABLE DATARCOPY ligand_descriptors (ligand_id, descriptor_origin_id, descriptor) FROM stdin; pdbunisonfalse2539El0308462 pdb_ligand TABLE DATA/COPY pdb_ligand (pdbid, ligand_id) FROM stdin; pdbunisonfalse25930308472residue TABLE DATADCOPY residue (pdbc, seq_pos, seq_res, atom_res, res_id) FROM stdin; pdbunisonfalse25956Ŋ0308478summary TABLE DATAjCOPY summary (pdbid, method, resolution, title, header, source, added, md5, r_factor, r_free) FROM stdin; pdbunisonfalse259680308544readme TABLE DATA!COPY readme (readme) FROM stdin; pgutilsrkhfalse2610Krv0308145cla TABLE DATAJCOPY cla (sunid, sid, pdb, def, sccs, cl, cf, sf, fa, dm, sp) FROM stdin; scopunisonfalse2534rI0307846des TABLE DATA8COPY des (sunid, level, sccs, sname, descr) FROM stdin; scopunisonfalse2482т}0308204dom TABLE DATA4COPY dom (sid, pdb, chain, start, stop) FROM stdin; scopunisonfalse2544n0308695hie TABLE DATA/COPY hie (sunid, psunid, children) FROM stdin; scopunisonfalse26380308701dna TABLE DATA,COPY dna (dnaid, is_primarydna) FROM stdin; sstunisonfalse2639I0308704fam TABLE DATA4COPY fam (famid, familyname, shortname) FROM stdin; sstunisonfalse2640%0308710pro TABLE DATA9COPY pro (proid, unqid, proname, formalname) FROM stdin; sstunisonfalse26410308716prodna TABLE DATA'COPY prodna (proid, dnaid) FROM stdin; sstunisonfalse26420308719 spdi_list TABLE DATANCOPY spdi_list (loc, gene, domains, genbank, unqid, proid, dnaid) FROM stdin; sstunisonfalse26430308725unq TABLE DATA(COPY unq (unqid, shortname) FROM stdin; sstunisonfalse26440308731 unqfamily TABLE DATA*COPY unqfamily (unqid, famid) FROM stdin; sstunisonfalse2645F0308734 unqproform TABLE DATA+COPY unqproform (unqid, proid) FROM stdin; sstunisonfalse2646|0308593v_trans TABLE DATA*COPY v_trans (dnaid, pseq_id) FROM stdin; sstunisonfalse2619L(0308596 v_unq2dna TABLE DATAECOPY v_unq2dna (dnaid, proid, unqid, unqname, shortname) FROM stdin; sstunisonfalse26205w0308151spspec TABLE DATAACOPY spspec (tax_id, k, gs, latin, common, synonyms) FROM stdin; taxunisonfalse2535[r0308793_readme TABLE DATA"COPY _readme (readme) FROM stdin; unisonunisonfalse2660U0308799_tasks TABLE DATA)COPY _tasks (run_order, sql) FROM stdin; unisonunisonfalse2661Be0308814aliasset TABLE DATASCOPY aliasset (aliasset_id, owner, descr, is_public, created, updated) FROM stdin; unisonunisonfalse2664e0308823aliasset_alias TABLE DATA>COPY aliasset_alias (aliasset_id, alias, pseq_id) FROM stdin; unisonunisonfalse2665e0308637best_annotation_mv TABLE DATACOPY best_annotation_mv (pseq_id, origin_id, origin, ann_pref, pannotation_id, tax_id, k, gs, latin, common, alias, descr, added, link_url) FROM stdin; unisonunisonfalse2628e0308882 canned_views TABLE DATABCOPY canned_views (cv_id, name, descr, sql, order_by) FROM stdin; unisonunisonfalse267880308841current_annotations_mv TABLE DATACOPY current_annotations_mv (pseq_id, origin_id, origin, ann_pref, pannotation_id, tax_id, k, gs, latin, common, alias, descr, added, link_url) FROM stdin; unisonunisonfalse2669P80308893ensembl_coordinates_mv TABLE DATACOPY ensembl_coordinates_mv (pseq_id, pannotation_id, origin_id, tax_id, method, genome, chr, gstart, gstop, strand) FROM stdin; unisonunisonfalse26801D0308903"ensembl_unambiguous_coordinates_mv TABLE DATACOPY ensembl_unambiguous_coordinates_mv (pseq_id, pannotation_id, origin_id, tax_id, method, genome, chr, gstart, gstop, strand) FROM stdin; unisonunisonfalse2682x0308163ensembl_unambiguous_overlaps_mv TABLE DATACOPY ensembl_unambiguous_overlaps_mv (genome, chr, strand, q_pseq_id, q_gstart, q_gstop, t_pseq_id, t_gstart, t_gstop) FROM stdin; unisonunisonfalse2537"4s0308927genasm TABLE DATA7COPY genasm (genasm_id, tax_id, name, url) FROM stdin; unisonunisonfalse2687a0308933gg_famid_pseq_id_mv TABLE DATA6COPY gg_famid_pseq_id_mv (famid, pseq_id) FROM stdin; unisonunisonfalse26880308847known_bcl2_overlaps_mv TABLE DATArCOPY known_bcl2_overlaps_mv (q_pseq_id, chr, strand, q_gstart, q_gstop, t_pseq_id, t_gstart, t_gstop) FROM stdin; unisonunisonfalse26700308985meta TABLE DATA#COPY meta (key, value) FROM stdin; unisonunisonfalse2700ޙ0308991mint TABLE DATACOPY mint (sprot_a, organism_a, short_label_a, role_a, modifications_a, mutations_a, bd_name_a, bd_range_a, bd_identification_method_a, bd_xref_a, hotspot_range_a, hotspot_identification_method_a, var_splice_xref_a, var_splice_name_a, endogenous_a, tagged_a, sprot_b, organism_b, short_label_b, role_b, modifications_b, mutations_b, bd_name_b, bd_range_b, bd_identification_method_b, bd_xref_b, hotspot_range_b, hotspot_identification_method_b, var_splice_xref, var_splice_name_b, endogenous_b, tagged_b, interaction_type, negation, kd, confidence_measure, confidence_value, target_modified_residues, comments, pmid, interaction_detection_method, participant_detection, vivo, other_ref) FROM stdin; unisonunisonfalse2701T0308650 ncbi_pseq_mv TABLE DATACOPY ncbi_pseq_mv (tax_id, gene_id, status, rna_acc, rna_gi, pro_acc, pro_gi, gen_acc, gen_gi, gen_start, gen_end, gen_orient, assembly, rna_acc_trunc, pro_acc_trunc, gen_acc_trunc, pseq_id) FROM stdin; unisonunisonfalse2630 q0308116origin TABLE DATAxCOPY origin (origin_id, origin, url, descr, ann_pref, last_updated, data_url, is_public, link_url, version) FROM stdin; unisonunisonfalse2529i=0307790 p2gblataln TABLE DATAhCOPY p2gblataln (p2gblataln_id, hsp_str, ident, pgap_cnt, pgap_bases, ggap_cnt, ggap_bases) FROM stdin; unisonunisonfalse2469i>0307796 p2gblatalnhsp TABLE DATA>COPY p2gblatalnhsp (p2gblataln_id, p2gblathsp_id) FROM stdin; unisonunisonfalse2470i?0307799 p2gblathsp TABLE DATApCOPY p2gblathsp (p2gblathsp_id, genasm_id, chr, plus_strand, gstart, gstop, pseq_id, pstart, pstop) FROM stdin; unisonunisonfalse2471iC0307823pahmm TABLE DATACOPY pahmm (pfeature_id, pseq_id, pftype_id, start, stop, params_id, pmodel_id, mstart, mstop, ident, sim, gaps, qgaps, tgaps, score, eval, len) FROM stdin; unisonunisonfalse2476iB0307820 palignment TABLE DATACOPY palignment (pfeature_id, pseq_id, pftype_id, start, stop, params_id, pmodel_id, mstart, mstop, ident, sim, gaps, qgaps, tgaps, score, eval, len) FROM stdin; unisonunisonfalse2475GKO0307882 pannotation TABLE DATAVCOPY pannotation (pannotation_id, origin_id, alias, descr, tax_id, added) FROM stdin; unisonunisonfalse2489GKF0307836 paprospect TABLE DATACOPY paprospect (pfeature_id, pseq_id, pftype_id, start, stop, params_id, pmodel_id, nident, nalign, raw, mutation, singleton, pairwise, gap, ssfit, zscore, svm, rgyr) FROM stdin; unisonunisonfalse2479hdW{0308187papseq TABLE DATACOPY papseq (pfeature_id, pseq_id, pftype_id, start, stop, params_id, pmodel_id, mstart, mstop, ident, sim, gaps, qgaps, tgaps, score, eval, len, pct_ident, pct_hsp_coverage, pct_coverage) FROM stdin; unisonunisonfalse2541dW~0308210papseq_pdbcs_mv TABLE DATACOPY papseq_pdbcs_mv (q_pseq_id, q_start, q_stop, t_pseq_id, t_start, t_stop, pdbc, descr, tax_id, ident, sim, gaps, q_gaps, t_gaps, score, eval, len, pct_ident, pct_coverage) FROM stdin; unisonunisonfalse2545ͬP0309056papssm TABLE DATACOPY papssm (pfeature_id, pseq_id, pftype_id, start, stop, params_id, pmodel_id, mstart, mstop, ident, sim, gaps, qgaps, tgaps, score, eval, len) FROM stdin; unisonunisonfalse2716R0308234params TABLE DATA[COPY params (params_id, name, commandline, added, pftype_id, is_public, descr) FROM stdin; unisonunisonfalse2549R0309077pcluster TABLE DATA]COPY pcluster (pcluster_id, genasm_id, gstart, gstop, chr, plus_strand, created) FROM stdin; unisonunisonfalse2721_%R0309084pcluster_member TABLE DATAGCOPY pcluster_member (pcluster_id, pseq_id, gstart, gstop) FROM stdin; unisonunisonfalse2722Lc0309087 perftest_def TABLE DATAmCOPY perftest_def (def_id, current, ordr, name, sql, n_runs, min_n_rows, max_time, max_avg_time) FROM stdin; unisonunisonfalse27239 0309100perftest_platform TABLE DATACOPY perftest_platform (platform_id, name, date, current, locked, mac, ip, uname_s, uname_n, uname_r, uname_m, ram_gb, fs_type, pg_version_str, pg_version) FROM stdin; unisonunisonfalse2724v!0309109perftest_result TABLE DATAVCOPY perftest_result (def_id, run_id, had_error, n_rows, times, avg_time) FROM stdin; unisonunisonfalse2725"0309117 perftest_run TABLE DATAQCOPY perftest_run (run_id, platform_id, start_ts, stop_ts, comments) FROM stdin; unisonunisonfalse2726R#0309123 pfantigenic TABLE DATAgCOPY pfantigenic (pfeature_id, pseq_id, pftype_id, start, stop, params_id, score, max_pos) FROM stdin; unisonunisonfalse2727#0309131pfbigpi TABLE DATAtCOPY pfbigpi (pfeature_id, pseq_id, pftype_id, start, stop, params_id, site_no, quality, score, pvalue) FROM stdin; unisonunisonfalse2729G{A0307815pfeature TABLE DATATCOPY pfeature (pfeature_id, pseq_id, pftype_id, start, stop, params_id) FROM stdin; unisonunisonfalse2473?Wˬ0309143 pfnetphos TABLE DATAcCOPY pfnetphos (pfeature_id, pseq_id, pftype_id, start, stop, params_id, prob, kinase) FROM stdin; unisonunisonfalse2731\Wˬ0309157 pfpepcoil TABLE DATAbCOPY pfpepcoil (pfeature_id, pseq_id, pftype_id, start, stop, params_id, score, prob) FROM stdin; unisonunisonfalse2733YE0309162 pfpsipred TABLE DATA[COPY pfpsipred (pfeature_id, pseq_id, pftype_id, start, stop, params_id, type) FROM stdin; unisonunisonfalse273474D0307827pfregexp TABLE DATA_COPY pfregexp (pfeature_id, pseq_id, pftype_id, start, stop, params_id, pmodel_id) FROM stdin; unisonunisonfalse2477i0309167pfseg TABLE DATAXCOPY pfseg (pfeature_id, pseq_id, pftype_id, start, stop, params_id, score) FROM stdin; unisonunisonfalse2735z0309171 pfsigcleave TABLE DATA^COPY pfsigcleave (pfeature_id, pseq_id, pftype_id, start, stop, params_id, score) FROM stdin; unisonunisonfalse27360309175 pfsignalphmm TABLE DATACOPY pfsignalphmm (pfeature_id, pseq_id, pftype_id, start, stop, params_id, sig_anchor_prob, max_cleavage_prob, sig_peptide_prob, pfsignalphmm_pred_id) FROM stdin; unisonunisonfalse27370309180pfsignalphmm_pred TABLE DATAFCOPY pfsignalphmm_pred (pfsignalphmm_pred_id, prediction) FROM stdin; unisonunisonfalse2738M0308242 pfsignalpnn TABLE DATApCOPY pfsignalpnn (pfeature_id, pseq_id, pftype_id, start, stop, params_id, d_score, signal_peptide) FROM stdin; unisonunisonfalse2550mME0307831 pftmdetect TABLE DATAbCOPY pftmdetect (pfeature_id, pseq_id, pftype_id, start, stop, params_id, prob, type) FROM stdin; unisonunisonfalse2478`0308216pftmhmm TABLE DATAYCOPY pftmhmm (pfeature_id, pseq_id, pftype_id, start, stop, params_id, type) FROM stdin; unisonunisonfalse25460308247pftype TABLE DATACCOPY pftype (pftype_id, name, descr, preferred_run_id) FROM stdin; unisonunisonfalse2551?V0308336pmap_aln TABLE DATA~COPY pmap_aln (aln_id, hsp_str, ident, pgap_cnt, pgap_bases, ggap_cnt, ggap_bases, genasm_id, pseq_id, params_id) FROM stdin; unisonunisonfalse2567FAV0308342 pmap_alnhsp TABLE DATA.COPY pmap_alnhsp (aln_id, hsp_id) FROM stdin; unisonunisonfalse2568K20308656pmap_gg_representative_mv TABLE DATACOPY pmap_gg_representative_mv (genasm_id, params_id, chr, strand, q_pseq_id, q_gstart, q_gstop, t_pseq_id, t_gstart, t_gstop, pannotation_id, origin_id, origin, alias, descr, unqid, proid, dnaid, link_url) FROM stdin; unisonunisonfalse26310308345pmap_hsp TABLE DATAmCOPY pmap_hsp (hsp_id, chr, strand, genasm_id, gstart, gstop, pseq_id, pstart, pstop, params_id) FROM stdin; unisonunisonfalse25690308644pmap_locus_representative_mv TABLE DATACOPY pmap_locus_representative_mv (genasm_id, params_id, chr, strand, q_pseq_id, q_gstart, q_gstop, t_pseq_id, t_gstart, t_gstop, pannotation_id, origin_id, origin, alias, descr, link_url) FROM stdin; unisonunisonfalse2629/0309223pmap_mv TABLE DATACOPY pmap_mv (params_id, genasm_id, pseq_id, aln_id, pstart, pstop, exons, aln_length, pct_cov, ident, pct_ident, chr, strand, gstart, gstop) FROM stdin; unisonunisonfalse274700309229 pmap_pfam_mv TABLE DATACOPY pmap_pfam_mv (pmap_params_id, genasm_id, aln_id, pstart, pstop, chr, strand, gstart, gstop, feature_type, params_id, params_name, pseq_id, start, stop, score, eval, origin_id, origin, pmodel_id, feature, acc, descr, details, digest, link_url, pfam_start, pfam_stop) FROM stdin; unisonunisonfalse2748<50309235pmap_unambiguous_mv TABLE DATACOPY pmap_unambiguous_mv (params_id, genasm_id, pseq_id, pct_cov, pct_ident, aln_id, pstart, pstop, exons, aln_length, ident, chr, strand, gstart, gstop) FROM stdin; unisonunisonfalse2749ȧ0309207pmap_unambiguous_overlaps_mv TABLE DATACOPY pmap_unambiguous_overlaps_mv (genasm_id, params_id, chr, strand, q_pseq_id, q_gstart, q_gstop, t_pseq_id, t_gstart, t_gstop) FROM stdin; unisonunisonfalse2744-L0307865pmhmm TABLE DATACOPY pmhmm (pmodel_id, origin_id, acc, added, descr, is_current, name, len, nseq, cksum, ga_seq, ga_dom, tc_seq, tc_dom, nc_seq, nc_dom) FROM stdin; unisonunisonfalse2486j K0307855pmodel TABLE DATANCOPY pmodel (pmodel_id, origin_id, acc, added, descr, is_current) FROM stdin; unisonunisonfalse2484[ 0309259 pmodel2go TABLE DATA9COPY pmodel2go (pmodel_id, go_id, reference) FROM stdin; unisonunisonfalse2754$[ r0308123 pmodelset TABLE DATAhCOPY pmodelset (pmodelset_id, name, descr, pmsm_table, def, locked, last_updated, data_url) FROM stdin; unisonunisonfalse2530I 0308277 pmprospect TABLE DATAhCOPY pmprospect (pmodel_id, origin_id, acc, added, descr, is_current, pseq_id, len, ncores) FROM stdin; unisonunisonfalse2557 J0307852pmprospect_scop_mv TABLE DATA7COPY pmprospect_scop_mv (pmodel_id, sunid) FROM stdin; unisonunisonfalse2483 |0308191pmpseq TABLE DATAWCOPY pmpseq (pmodel_id, origin_id, acc, added, descr, is_current, pseq_id) FROM stdin; unisonunisonfalse2542õ 0309276pmpssm TABLE DATASCOPY pmpssm (pmodel_id, origin_id, acc, added, descr, is_current, md5) FROM stdin; unisonunisonfalse2758NZs0308131pmregexp TABLE DATA^COPY pmregexp (pmodel_id, origin_id, acc, added, descr, is_current, regexp, name) FROM stdin; unisonunisonfalse2531g`G0307840pmsm TABLE DATA0COPY pmsm (pmodelset_id, pmodel_id) FROM stdin; unisonunisonfalse2480p]at0308139 pmsm_pmhmm TABLE DATA6COPY pmsm_pmhmm (pmodelset_id, pmodel_id) FROM stdin; unisonunisonfalse2532]aH0307843pmsm_pmprospect TABLE DATA;COPY pmsm_pmprospect (pmodelset_id, pmodel_id) FROM stdin; unisonunisonfalse2481qc0309265 pmsm_pmpssm TABLE DATA7COPY pmsm_pmpssm (pmodelset_id, pmodel_id) FROM stdin; unisonunisonfalse27552qcu0308142 pmsm_pmregexp TABLE DATA9COPY pmsm_pmregexp (pmodelset_id, pmodel_id) FROM stdin; unisonunisonfalse2533Oqc0309289pnote TABLE DATA5COPY pnote (pseq_id, added, login, note) FROM stdin; unisonunisonfalse2760c0308688 psdisorder TABLE DATA8COPY psdisorder (pseq_id, params_id, probs) FROM stdin; unisonunisonfalse2637c@0307805pseq TABLE DATA6COPY pseq (pseq_id, seq, len, md5, added) FROM stdin; unisonunisonfalse24720309301pseq2go TABLE DATAJCOPY pseq2go (pseq_id, go_id, reference, evidence, origin_id) FROM stdin; unisonunisonfalse27625B0308621 pseq_gene_mv TABLE DATAOCOPY pseq_gene_mv (pseq_id, alias, descr, tax_id, gene_id, symbol) FROM stdin; unisonunisonfalse2625FP0307889pseq_pannotation TABLE DATAeCOPY pseq_pannotation (pannotation_id, pseq_id, ref_pseq_id, added, version, is_current) FROM stdin; unisonunisonfalse2490p0308627 pseq_probe_mv TABLE DATACOPY pseq_probe_mv (pseq_id, params_id, genasm_id, genasm, chr, pseq_strand, pseq_gstart, pseq_gstop, chip_id, chip, probe_id, probe_strand, probe_gstart, probe_gstop) FROM stdin; unisonunisonfalse2626zM0307873pseqset TABLE DATA,COPY pseqset (pset_id, pseq_id) FROM stdin; unisonunisonfalse2487":N0307876pset TABLE DATA2COPY pset (pset_id, name, descr, def) FROM stdin; unisonunisonfalse2488!w0309493psipred TABLE DATApCOPY psipred (prediction, confidence, pseq_id, h_confidence, e_confidence, c_confidence, params_id) FROM stdin; unisonunisonfalse2804w0308312 psprotcomp TABLE DATA<COPY psprotcomp (pseq_id, params_id, sim_psloc_id, sim_score, sim_db, sim_target_ac, nn_psloc_id, nn_score, int_psloc_id, int_score, int_membrane, int_nuc_score, int_pm_score, int_ext_score, int_cyt_score, int_mit_score, int_er_score, int_per_score, int_lys_score, int_gol_score, features, result_block) FROM stdin; unisonunisonfalse2563DXH0308319psprotcomp_location TABLE DATA:COPY psprotcomp_location (psloc_id, location) FROM stdin; unisonunisonfalse2564aXH0308253run TABLE DATA7COPY run (run_id, params_id, pmodelset_id) FROM stdin; unisonunisonfalse2552XH0308303 run_history TABLE DATA?COPY run_history (pseq_id, ran_on, failed, run_id) FROM stdin; unisonunisonfalse2561YH0309386sp_var TABLE DATA\COPY sp_var (sp_id, start_pos, end_pos, original_aa, variant_aa, descr, var_id) FROM stdin; unisonunisonfalse2778Z0309522 userprefs TABLE DATA;COPY userprefs (usesysid, show_tips, show_sql) FROM stdin; unisonunisonfalse28100`0308611 cytoband_hg18 TABLE DATALCOPY cytoband_hg18 (chr, gstart, gstop, band, stain, genasm_id) FROM stdin; unison_auxunisonfalse26230`0309527hugo TABLE DATAwCOPY hugo (hgnc_id, approved_symbold, approved_name, status, locus_type, previous_symbols, previous_names, aliases, chromosome, date_approved, date_modified, date_name_changed, accession_numbers, enzyme_ids, entrez_gene_id, mgd_id, specialist_db_links, pubmed_ids, refseq_ids, gene_family_name, gdb_id_md, entrez_gene_id_md, omim_id_md, refseq_md, uniprot_id_md) FROM stdin; unison_auxunisonfalse2811II`0309371ptm TABLE DATADCOPY ptm (ptm_type_id, alias, descr, start, stop, expt) FROM stdin; unison_auxunisonfalse2775 {0309533ptm_type TABLE DATACOPY ptm_type (ptm_type_id, origin_id, ptm_type, acc, target, pos_mod_aa, pos_mod_pp, correction_formula, mass_diff_isotopic, mass_diff_avg, cellular_location, keyword) FROM stdin; unison_auxunisonfalse2812܆ 2606457439association_pkey CONSTRAINTSALTER TABLE ONLY association ADD CONSTRAINT association_pkey PRIMARY KEY (id); BALTER TABLE ONLY go.association DROP CONSTRAINT association_pkey; gounisonfalse24922492 2606457441db_pkey CONSTRAINTAALTER TABLE ONLY db ADD CONSTRAINT db_pkey PRIMARY KEY (id); 0ALTER TABLE ONLY go.db DROP CONSTRAINT db_pkey; gounisonfalse24932493 2606457443 dbxref_pkey CONSTRAINTIALTER TABLE ONLY dbxref ADD CONSTRAINT dbxref_pkey PRIMARY KEY (id); 8ALTER TABLE ONLY go.dbxref DROP CONSTRAINT dbxref_pkey; gounisonfalse249424942606457445 evidence_pkey CONSTRAINTMALTER TABLE ONLY evidence ADD CONSTRAINT evidence_pkey PRIMARY KEY (id); <ALTER TABLE ONLY go.evidence DROP CONSTRAINT evidence_pkey; gounisonfalse249524952606457447gene_product_pkey CONSTRAINTUALTER TABLE ONLY gene_product ADD CONSTRAINT gene_product_pkey PRIMARY KEY (id); DALTER TABLE ONLY go.gene_product DROP CONSTRAINT gene_product_pkey; gounisonfalse249724972606457449gene_product_synonym_pkey CONSTRAINTALTER TABLE ONLY gene_product_synonym ADD CONSTRAINT gene_product_synonym_pkey PRIMARY KEY (gene_product_id, product_synonym); TALTER TABLE ONLY go.gene_product_synonym DROP CONSTRAINT gene_product_synonym_pkey; gounisonfalse250125012501(2606457451graph_path_pkey CONSTRAINTQALTER TABLE ONLY graph_path ADD CONSTRAINT graph_path_pkey PRIMARY KEY (id); @ALTER TABLE ONLY go.graph_path DROP CONSTRAINT graph_path_pkey; gounisonfalse2502250212606457453seq_dbxref_pkey CONSTRAINT`ALTER TABLE ONLY seq_dbxref ADD CONSTRAINT seq_dbxref_pkey PRIMARY KEY (seq_id, dbxref_id); @ALTER TABLE ONLY go.seq_dbxref DROP CONSTRAINT seq_dbxref_pkey; gounisonfalse250625062506/2606457455seq_pkey CONSTRAINTCALTER TABLE ONLY seq ADD CONSTRAINT seq_pkey PRIMARY KEY (id); 2ALTER TABLE ONLY go.seq DROP CONSTRAINT seq_pkey; gounisonfalse2505250572606457457seq_property_pkey CONSTRAINTUALTER TABLE ONLY seq_property ADD CONSTRAINT seq_property_pkey PRIMARY KEY (id); DALTER TABLE ONLY go.seq_property DROP CONSTRAINT seq_property_pkey; gounisonfalse25072507E2606457459 species_pkey CONSTRAINTKALTER TABLE ONLY species ADD CONSTRAINT species_pkey PRIMARY KEY (id); :ALTER TABLE ONLY go.species DROP CONSTRAINT species_pkey; gounisonfalse25092509O2606457461term2term_pkey CONSTRAINTOALTER TABLE ONLY term2term ADD CONSTRAINT term2term_pkey PRIMARY KEY (id); >ALTER TABLE ONLY go.term2term DROP CONSTRAINT term2term_pkey; gounisonfalse25112511V2606457463term_audit_pkey CONSTRAINTVALTER TABLE ONLY term_audit ADD CONSTRAINT term_audit_pkey PRIMARY KEY (term_id); @ALTER TABLE ONLY go.term_audit DROP CONSTRAINT term_audit_pkey; gounisonfalse25122512X2606457465term_dbxref_pkey CONSTRAINTvALTER TABLE ONLY term_dbxref ADD CONSTRAINT term_dbxref_pkey PRIMARY KEY (term_id, dbxref_id, is_for_definition); BALTER TABLE ONLY go.term_dbxref DROP CONSTRAINT term_dbxref_pkey; gounisonfalse2513251325132513^2606457467term_definition_pkey CONSTRAINT`ALTER TABLE ONLY term_definition ADD CONSTRAINT term_definition_pkey PRIMARY KEY (term_id); JALTER TABLE ONLY go.term_definition DROP CONSTRAINT term_definition_pkey; gounisonfalse25142514L2606457469 term_pkey CONSTRAINTEALTER TABLE ONLY term ADD CONSTRAINT term_pkey PRIMARY KEY (id); 4ALTER TABLE ONLY go.term DROP CONSTRAINT term_pkey; gounisonfalse25102510e2606457471 alias_pkey CONSTRAINTMALTER TABLE ONLY alias ADD CONSTRAINT alias_pkey PRIMARY KEY (alias_id); 8ALTER TABLE ONLY gong.alias DROP CONSTRAINT alias_pkey; gongunisonfalse25162516g2606457473evidence_code_pkey CONSTRAINTbALTER TABLE ONLY evidence_code ADD CONSTRAINT evidence_code_pkey PRIMARY KEY (evidence_code); HALTER TABLE ONLY gong.evidence_code DROP CONSTRAINT evidence_code_pkey; gongunisonfalse25172517k2606457475 node_pkey CONSTRAINTHALTER TABLE ONLY node ADD CONSTRAINT node_pkey PRIMARY KEY (go_id); 6ALTER TABLE ONLY gong.node DROP CONSTRAINT node_pkey; gongunisonfalse25192519o2606457477 chip_id_pkey CONSTRAINTMALTER TABLE ONLY chip ADD CONSTRAINT chip_id_pkey PRIMARY KEY (chip_id); ;ALTER TABLE ONLY marray.chip DROP CONSTRAINT chip_id_pkey; marrayunisonfalse25222522s2606457479 probe_pkey CONSTRAINTXALTER TABLE ONLY probe ADD CONSTRAINT probe_pkey PRIMARY KEY (probe_id, genasm_id); :ALTER TABLE ONLY marray.probe DROP CONSTRAINT probe_pkey; marrayunisonfalse252325232523y2606457481homologene_pkey CONSTRAINTRALTER TABLE ONLY homologene ADD CONSTRAINT homologene_pkey PRIMARY KEY (acc); BALTER TABLE ONLY ncbi.homologene DROP CONSTRAINT homologene_pkey; ncbiunisonfalse252525252606457483 chain_pkey CONSTRAINTIALTER TABLE ONLY chain ADD CONSTRAINT chain_pkey PRIMARY KEY (pdbc); 7ALTER TABLE ONLY pdb.chain DROP CONSTRAINT chain_pkey; pdbunisonfalse254825482606457485descriptor_origin_pkey CONSTRAINTqALTER TABLE ONLY descriptor_origin ADD CONSTRAINT descriptor_origin_pkey PRIMARY KEY (descriptor_origin_id); OALTER TABLE ONLY pdb.descriptor_origin DROP CONSTRAINT descriptor_origin_pkey; pdbunisonfalse253825382606457487ligand_atoms_pkey CONSTRAINTeALTER TABLE ONLY ligand_atoms ADD CONSTRAINT ligand_atoms_pkey PRIMARY KEY (atom_id, ligand_id); EALTER TABLE ONLY pdb.ligand_atoms DROP CONSTRAINT ligand_atoms_pkey; pdbunisonfalse2578257825782606457489ligand_bonds_pkey CONSTRAINTrALTER TABLE ONLY ligand_bonds ADD CONSTRAINT ligand_bonds_pkey PRIMARY KEY (atom_id_1, atom_id_2, ligand_id); EALTER TABLE ONLY pdb.ligand_bonds DROP CONSTRAINT ligand_bonds_pkey; pdbunisonfalse25792579257925792606457494 ligand_pkey CONSTRAINTPALTER TABLE ONLY ligand ADD CONSTRAINT ligand_pkey PRIMARY KEY (ligand_id); 9ALTER TABLE ONLY pdb.ligand DROP CONSTRAINT ligand_pkey; pdbunisonfalse257725772606457496pdb_ligand_pkey CONSTRAINT_ALTER TABLE ONLY pdb_ligand ADD CONSTRAINT pdb_ligand_pkey PRIMARY KEY (pdbid, ligand_id); AALTER TABLE ONLY pdb.pdb_ligand DROP CONSTRAINT pdb_ligand_pkey; pdbunisonfalse2593259325932606457498 residue_pkey CONSTRAINTVALTER TABLE ONLY residue ADD CONSTRAINT residue_pkey PRIMARY KEY (pdbc, seq_pos); ;ALTER TABLE ONLY pdb.residue DROP CONSTRAINT residue_pkey; pdbunisonfalse2595259525952606457500 summary_pkey CONSTRAINTNALTER TABLE ONLY summary ADD CONSTRAINT summary_pkey PRIMARY KEY (pdbid); ;ALTER TABLE ONLY pdb.summary DROP CONSTRAINT summary_pkey; pdbunisonfalse259625962606457502cla_pkey CONSTRAINTFALTER TABLE ONLY cla ADD CONSTRAINT cla_pkey PRIMARY KEY (sunid); 4ALTER TABLE ONLY scop.cla DROP CONSTRAINT cla_pkey; scopunisonfalse25342534 2606457504des_pkey CONSTRAINTFALTER TABLE ONLY des ADD CONSTRAINT des_pkey PRIMARY KEY (sunid); 4ALTER TABLE ONLY scop.des DROP CONSTRAINT des_pkey; scopunisonfalse248224822606457506hie_pkey CONSTRAINTFALTER TABLE ONLY hie ADD CONSTRAINT hie_pkey PRIMARY KEY (sunid); 4ALTER TABLE ONLY scop.hie DROP CONSTRAINT hie_pkey; scopunisonfalse263826382606457508scop_cla_sid_unique CONSTRAINTJALTER TABLE ONLY cla ADD CONSTRAINT scop_cla_sid_unique UNIQUE (sid); ?ALTER TABLE ONLY scop.cla DROP CONSTRAINT scop_cla_sid_unique; scopunisonfalse253425342606457510dna_pkey CONSTRAINTFALTER TABLE ONLY dna ADD CONSTRAINT dna_pkey PRIMARY KEY (dnaid); 3ALTER TABLE ONLY sst.dna DROP CONSTRAINT dna_pkey; sstunisonfalse263926392606457512pro_pkey CONSTRAINTFALTER TABLE ONLY pro ADD CONSTRAINT pro_pkey PRIMARY KEY (proid); 3ALTER TABLE ONLY sst.pro DROP CONSTRAINT pro_pkey; sstunisonfalse264126412606457514unq_pkey CONSTRAINTFALTER TABLE ONLY unq ADD CONSTRAINT unq_pkey PRIMARY KEY (unqid); 3ALTER TABLE ONLY sst.unq DROP CONSTRAINT unq_pkey; sstunisonfalse264426442606457516 spspec_pkey CONSTRAINTMALTER TABLE ONLY spspec ADD CONSTRAINT spspec_pkey PRIMARY KEY (tax_id); 9ALTER TABLE ONLY tax.spspec DROP CONSTRAINT spspec_pkey; taxunisonfalse253525352606457518 aliasset_pkey CONSTRAINTVALTER TABLE ONLY aliasset ADD CONSTRAINT aliasset_pkey PRIMARY KEY (aliasset_id); @ALTER TABLE ONLY unison.aliasset DROP CONSTRAINT aliasset_pkey; unisonunisonfalse26642664)2606457520canned_views_pkey CONSTRAINTALTER TABLE ONLY canned_views ADD CONSTRAINT canned_views_pkey PRIMARY KEY (cv_id); ALTER TABLE canned_views CLUSTER ON canned_views_pkey; HALTER TABLE ONLY unison.canned_views DROP CONSTRAINT canned_views_pkey; unisonunisonfalse26782678,2606457522 genasm_pkey CONSTRAINT|ALTER TABLE ONLY genasm ADD CONSTRAINT genasm_pkey PRIMARY KEY (genasm_id); ALTER TABLE genasm CLUSTER ON genasm_pkey; <ALTER TABLE ONLY unison.genasm DROP CONSTRAINT genasm_pkey; unisonunisonfalse2687268702606457524 meta_pkey CONSTRAINTnALTER TABLE ONLY meta ADD CONSTRAINT meta_pkey PRIMARY KEY (key); ALTER TABLE meta CLUSTER ON meta_pkey; 8ALTER TABLE ONLY unison.meta DROP CONSTRAINT meta_pkey; unisonunisonfalse27002700J2606457526one_result_per_def_platform CONSTRAINTiALTER TABLE ONLY perftest_result ADD CONSTRAINT one_result_per_def_platform UNIQUE (def_id, run_id); UALTER TABLE ONLY unison.perftest_result DROP CONSTRAINT one_result_per_def_platform; unisonunisonfalse272527252725{2606457528origin_id_pkey CONSTRAINTALTER TABLE ONLY origin ADD CONSTRAINT origin_id_pkey PRIMARY KEY (origin_id); ALTER TABLE origin CLUSTER ON origin_id_pkey; ?ALTER TABLE ONLY unison.origin DROP CONSTRAINT origin_id_pkey; unisonunisonfalse25292529 2606457530p2gblataln_pkey CONSTRAINT\ALTER TABLE ONLY p2gblataln ADD CONSTRAINT p2gblataln_pkey PRIMARY KEY (p2gblataln_id); DALTER TABLE ONLY unison.p2gblataln DROP CONSTRAINT p2gblataln_pkey; unisonunisonfalse24692469 2606457532p2gblathsp_id_pkey CONSTRAINT_ALTER TABLE ONLY p2gblathsp ADD CONSTRAINT p2gblathsp_id_pkey PRIMARY KEY (p2gblathsp_id); GALTER TABLE ONLY unison.p2gblathsp DROP CONSTRAINT p2gblathsp_id_pkey; unisonunisonfalse24712471 2606457534 palias_pkey CONSTRAINTZALTER TABLE ONLY pannotation ADD CONSTRAINT palias_pkey PRIMARY KEY (pannotation_id); AALTER TABLE ONLY unison.pannotation DROP CONSTRAINT palias_pkey; unisonunisonfalse24892489 2606457536paprospect_pkey CONSTRAINTALTER TABLE ONLY paprospect ADD CONSTRAINT paprospect_pkey PRIMARY KEY (params_id, pseq_id, pmodel_id, start, stop); ALTER TABLE paprospect CLUSTER ON paprospect_pkey; DALTER TABLE ONLY unison.paprospect DROP CONSTRAINT paprospect_pkey; unisonunisonfalse2479247924792479247924792606457538params_params_id CONSTRAINTUALTER TABLE ONLY params ADD CONSTRAINT params_params_id PRIMARY KEY (params_id); AALTER TABLE ONLY unison.params DROP CONSTRAINT params_params_id; unisonunisonfalse25492549=2606457540pcluster_id_pkey CONSTRAINTYALTER TABLE ONLY pcluster ADD CONSTRAINT pcluster_id_pkey PRIMARY KEY (pcluster_id); CALTER TABLE ONLY unison.pcluster DROP CONSTRAINT pcluster_id_pkey; unisonunisonfalse27212721B2606457542perftest_def_name_key CONSTRAINTVALTER TABLE ONLY perftest_def ADD CONSTRAINT perftest_def_name_key UNIQUE (name); LALTER TABLE ONLY unison.perftest_def DROP CONSTRAINT perftest_def_name_key; unisonunisonfalse27232723D2606457544perftest_def_pkey CONSTRAINTYALTER TABLE ONLY perftest_def ADD CONSTRAINT perftest_def_pkey PRIMARY KEY (def_id); HALTER TABLE ONLY unison.perftest_def DROP CONSTRAINT perftest_def_pkey; unisonunisonfalse27232723F2606457546perftest_platform_name_key CONSTRAINT`ALTER TABLE ONLY perftest_platform ADD CONSTRAINT perftest_platform_name_key UNIQUE (name); VALTER TABLE ONLY unison.perftest_platform DROP CONSTRAINT perftest_platform_name_key; unisonunisonfalse27242724H2606457548perftest_platform_pkey CONSTRAINThALTER TABLE ONLY perftest_platform ADD CONSTRAINT perftest_platform_pkey PRIMARY KEY (platform_id); RALTER TABLE ONLY unison.perftest_platform DROP CONSTRAINT perftest_platform_pkey; unisonunisonfalse27242724L2606457550perftest_run_pkey CONSTRAINTYALTER TABLE ONLY perftest_run ADD CONSTRAINT perftest_run_pkey PRIMARY KEY (run_id); HALTER TABLE ONLY unison.perftest_run DROP CONSTRAINT perftest_run_pkey; unisonunisonfalse27262726d2606457552pfsignalphmm_pred_pkey CONSTRAINTALTER TABLE ONLY pfsignalphmm_pred ADD CONSTRAINT pfsignalphmm_pred_pkey PRIMARY KEY (pfsignalphmm_pred_id); ALTER TABLE pfsignalphmm_pred CLUSTER ON pfsignalphmm_pred_pkey; RALTER TABLE ONLY unison.pfsignalphmm_pred DROP CONSTRAINT pfsignalphmm_pred_pkey; unisonunisonfalse273827382606457554 pftype_pkey CONSTRAINT|ALTER TABLE ONLY pftype ADD CONSTRAINT pftype_pkey PRIMARY KEY (pftype_id); ALTER TABLE pftype CLUSTER ON pftype_pkey; <ALTER TABLE ONLY unison.pftype DROP CONSTRAINT pftype_pkey; unisonunisonfalse255125512606457556 pmap_aln_pkey CONSTRAINTALTER TABLE ONLY pmap_aln ADD CONSTRAINT pmap_aln_pkey PRIMARY KEY (aln_id); ALTER TABLE pmap_aln CLUSTER ON pmap_aln_pkey; @ALTER TABLE ONLY unison.pmap_aln DROP CONSTRAINT pmap_aln_pkey; unisonunisonfalse256725672606457558pmap_hsp_id_pkey CONSTRAINTTALTER TABLE ONLY pmap_hsp ADD CONSTRAINT pmap_hsp_id_pkey PRIMARY KEY (hsp_id); CALTER TABLE ONLY unison.pmap_hsp DROP CONSTRAINT pmap_hsp_id_pkey; unisonunisonfalse25692569 2606457560 pmodel_pkey CONSTRAINTPALTER TABLE ONLY pmodel ADD CONSTRAINT pmodel_pkey PRIMARY KEY (pmodel_id); <ALTER TABLE ONLY unison.pmodel DROP CONSTRAINT pmodel_pkey; unisonunisonfalse248424842606457562pmodelset_pkey CONSTRAINTALTER TABLE ONLY pmodelset ADD CONSTRAINT pmodelset_pkey PRIMARY KEY (pmodelset_id); ALTER TABLE pmodelset CLUSTER ON pmodelset_pkey; BALTER TABLE ONLY unison.pmodelset DROP CONSTRAINT pmodelset_pkey; unisonunisonfalse253025302606457564pmprospect_pkey CONSTRAINTALTER TABLE ONLY pmprospect ADD CONSTRAINT pmprospect_pkey PRIMARY KEY (pmodel_id); ALTER TABLE pmprospect CLUSTER ON pmprospect_pkey; DALTER TABLE ONLY unison.pmprospect DROP CONSTRAINT pmprospect_pkey; unisonunisonfalse25572557 2606457566 pseq_pkey CONSTRAINTrALTER TABLE ONLY pseq ADD CONSTRAINT pseq_pkey PRIMARY KEY (pseq_id); ALTER TABLE pseq CLUSTER ON pseq_pkey; 8ALTER TABLE ONLY unison.pseq DROP CONSTRAINT pseq_pkey; unisonunisonfalse24722472 2606457568 pset_pkey CONSTRAINTrALTER TABLE ONLY pset ADD CONSTRAINT pset_pkey PRIMARY KEY (pset_id); ALTER TABLE pset CLUSTER ON pset_pkey; 8ALTER TABLE ONLY unison.pset DROP CONSTRAINT pset_pkey; unisonunisonfalse248824882606457570psipred_pseq_params_pkey CONSTRAINTALTER TABLE ONLY psipred ADD CONSTRAINT psipred_pseq_params_pkey PRIMARY KEY (pseq_id, params_id); ALTER TABLE psipred CLUSTER ON psipred_pseq_params_pkey; JALTER TABLE ONLY unison.psipred DROP CONSTRAINT psipred_pseq_params_pkey; unisonunisonfalse2804280428042606457572psprotcomp_location_pkey CONSTRAINTALTER TABLE ONLY psprotcomp_location ADD CONSTRAINT psprotcomp_location_pkey PRIMARY KEY (psloc_id); ALTER TABLE psprotcomp_location CLUSTER ON psprotcomp_location_pkey; VALTER TABLE ONLY unison.psprotcomp_location DROP CONSTRAINT psprotcomp_location_pkey; unisonunisonfalse256425642606457574psprotcomp_pkey CONSTRAINTALTER TABLE ONLY psprotcomp ADD CONSTRAINT psprotcomp_pkey PRIMARY KEY (params_id, pseq_id); ALTER TABLE psprotcomp CLUSTER ON psprotcomp_pkey; DALTER TABLE ONLY unison.psprotcomp DROP CONSTRAINT psprotcomp_pkey; unisonunisonfalse2563256325632606457576run_pkey CONSTRAINTmALTER TABLE ONLY run ADD CONSTRAINT run_pkey PRIMARY KEY (run_id); ALTER TABLE run CLUSTER ON run_pkey; 6ALTER TABLE ONLY unison.run DROP CONSTRAINT run_pkey; unisonunisonfalse25522552~2606457578 sp_snp_pkey CONSTRAINTALTER TABLE ONLY sp_var ADD CONSTRAINT sp_snp_pkey PRIMARY KEY (sp_id, start_pos, original_aa, variant_aa); ALTER TABLE sp_var CLUSTER ON sp_snp_pkey; <ALTER TABLE ONLY unison.sp_var DROP CONSTRAINT sp_snp_pkey; unisonunisonfalse277827782778277827782606457580userprefs_pkey CONSTRAINTALTER TABLE ONLY userprefs ADD CONSTRAINT userprefs_pkey PRIMARY KEY (usesysid); ALTER TABLE userprefs CLUSTER ON userprefs_pkey; BALTER TABLE ONLY unison.userprefs DROP CONSTRAINT userprefs_pkey; unisonunisonfalse281028102606457582 cytoband_pkey CONSTRAINT[ALTER TABLE ONLY cytoband_hg18 ADD CONSTRAINT cytoband_pkey PRIMARY KEY (chr, gstart); IALTER TABLE ONLY unison_aux.cytoband_hg18 DROP CONSTRAINT cytoband_pkey;  unison_auxunisonfalse2623262326232606457584 hugo_pkey CONSTRAINTJALTER TABLE ONLY hugo ADD CONSTRAINT hugo_pkey PRIMARY KEY (hgnc_id); <ALTER TABLE ONLY unison_aux.hugo DROP CONSTRAINT hugo_pkey;  unison_auxunisonfalse281128112606457586 ptm_type_pkey CONSTRAINTVALTER TABLE ONLY ptm_type ADD CONSTRAINT ptm_type_pkey PRIMARY KEY (ptm_type_id); DALTER TABLE ONLY unison_aux.ptm_type DROP CONSTRAINT ptm_type_pkey;  unison_auxunisonfalse28122812 1259457587a0_association_index_idxINDEXNCREATE UNIQUE INDEX a0_association_index_idx ON association USING btree (id); (DROP INDEX go.a0_association_index_idx; gounisonfalse2492 1259457588a1_association_index_idxINDEXLCREATE INDEX a1_association_index_idx ON association USING btree (term_id); (DROP INDEX go.a1_association_index_idx; gounisonfalse2492 1259457589a2_association_index_idxINDEXTCREATE INDEX a2_association_index_idx ON association USING btree (gene_product_id); (DROP INDEX go.a2_association_index_idx; gounisonfalse2492 1259457590a3_association_index_idxINDEX]CREATE INDEX a3_association_index_idx ON association USING btree (term_id, gene_product_id); (DROP INDEX go.a3_association_index_idx; gounisonfalse24922492 1259457591a4_association_index_idxINDEXaCREATE INDEX a4_association_index_idx ON association USING btree (id, term_id, gene_product_id); (DROP INDEX go.a4_association_index_idx; gounisonfalse249224922492F1259457592acc_term_index_idxINDEXBCREATE UNIQUE INDEX acc_term_index_idx ON term USING btree (acc); "DROP INDEX go.acc_term_index_idx; gounisonfalse2510 1259457593!association_id_evidence_index_idxINDEXzCREATE UNIQUE INDEX association_id_evidence_index_idx ON evidence USING btree (association_id, dbxref_id, code, seq_acc); 1DROP INDEX go.association_id_evidence_index_idx; gounisonfalse2495249524952495 1259457594db0_db_index_idxINDEX=CREATE UNIQUE INDEX db0_db_index_idx ON db USING btree (id); DROP INDEX go.db0_db_index_idx; gounisonfalse2493 1259457595db1_db_index_idxINDEX8CREATE INDEX db1_db_index_idx ON db USING btree (name); DROP INDEX go.db1_db_index_idx; gounisonfalse2493 1259457596db2_db_index_idxINDEX<CREATE INDEX db2_db_index_idx ON db USING btree (fullname); DROP INDEX go.db2_db_index_idx; gounisonfalse2493 1259457597db3_db_index_idxINDEX<CREATE INDEX db3_db_index_idx ON db USING btree (datatype); DROP INDEX go.db3_db_index_idx; gounisonfalse2493*1259457598display_id_seq_index_idxINDEX[CREATE UNIQUE INDEX display_id_seq_index_idx ON seq USING btree (display_id, md5checksum); (DROP INDEX go.display_id_seq_index_idx; gounisonfalse25052505 1259457599dx0_dbxref_index_idxINDEXECREATE UNIQUE INDEX dx0_dbxref_index_idx ON dbxref USING btree (id); $DROP INDEX go.dx0_dbxref_index_idx; gounisonfalse2494 1259457600dx1_dbxref_index_idxINDEXGCREATE INDEX dx1_dbxref_index_idx ON dbxref USING btree (xref_dbname); $DROP INDEX go.dx1_dbxref_index_idx; gounisonfalse2494 1259457601dx2_dbxref_index_idxINDEXDCREATE INDEX dx2_dbxref_index_idx ON dbxref USING btree (xref_key); $DROP INDEX go.dx2_dbxref_index_idx; gounisonfalse2494 1259457602dx3_dbxref_index_idxINDEXKCREATE INDEX dx3_dbxref_index_idx ON dbxref USING btree (id, xref_dbname); $DROP INDEX go.dx3_dbxref_index_idx; gounisonfalse24942494 1259457603dx4_dbxref_index_idxINDEXUCREATE INDEX dx4_dbxref_index_idx ON dbxref USING btree (id, xref_key, xref_dbname); $DROP INDEX go.dx4_dbxref_index_idx; gounisonfalse249424942494 1259457604ev0_evidence_index_idxINDEXICREATE UNIQUE INDEX ev0_evidence_index_idx ON evidence USING btree (id); &DROP INDEX go.ev0_evidence_index_idx; gounisonfalse24951259457605ev1_evidence_index_idxINDEXNCREATE INDEX ev1_evidence_index_idx ON evidence USING btree (association_id); &DROP INDEX go.ev1_evidence_index_idx; gounisonfalse24951259457606ev2_evidence_index_idxINDEXDCREATE INDEX ev2_evidence_index_idx ON evidence USING btree (code); &DROP INDEX go.ev2_evidence_index_idx; gounisonfalse24951259457607ev3_evidence_index_idxINDEXICREATE INDEX ev3_evidence_index_idx ON evidence USING btree (dbxref_id); &DROP INDEX go.ev3_evidence_index_idx; gounisonfalse24951259457608ev4_evidence_index_idxINDEXTCREATE INDEX ev4_evidence_index_idx ON evidence USING btree (association_id, code); &DROP INDEX go.ev4_evidence_index_idx; gounisonfalse249524951259457609evx1_evidence_dbxref_index_idxINDEXZCREATE INDEX evx1_evidence_dbxref_index_idx ON evidence_dbxref USING btree (evidence_id); .DROP INDEX go.evx1_evidence_dbxref_index_idx; gounisonfalse24961259457610evx2_evidence_dbxref_index_idxINDEXXCREATE INDEX evx2_evidence_dbxref_index_idx ON evidence_dbxref USING btree (dbxref_id); .DROP INDEX go.evx2_evidence_dbxref_index_idx; gounisonfalse24961259457611evx3_evidence_dbxref_index_idxINDEXeCREATE INDEX evx3_evidence_dbxref_index_idx ON evidence_dbxref USING btree (evidence_id, dbxref_id); .DROP INDEX go.evx3_evidence_dbxref_index_idx; gounisonfalse24962496;1259457612fa1_source_audit_index_idxINDEXSCREATE INDEX fa1_source_audit_index_idx ON source_audit USING btree (source_path); *DROP INDEX go.fa1_source_audit_index_idx; gounisonfalse2508 1259457613g0_gene_product_index_idxINDEXPCREATE UNIQUE INDEX g0_gene_product_index_idx ON gene_product USING btree (id); )DROP INDEX go.g0_gene_product_index_idx; gounisonfalse2497 1259457614g1_gene_product_index_idxINDEXMCREATE INDEX g1_gene_product_index_idx ON gene_product USING btree (symbol); )DROP INDEX go.g1_gene_product_index_idx; gounisonfalse2497 1259457615g2_gene_product_index_idxINDEXPCREATE INDEX g2_gene_product_index_idx ON gene_product USING btree (dbxref_id); )DROP INDEX go.g2_gene_product_index_idx; gounisonfalse2497 1259457616g3_gene_product_index_idxINDEXQCREATE INDEX g3_gene_product_index_idx ON gene_product USING btree (species_id); )DROP INDEX go.g3_gene_product_index_idx; gounisonfalse2497 1259457617g4_gene_product_index_idxINDEXUCREATE INDEX g4_gene_product_index_idx ON gene_product USING btree (id, species_id); )DROP INDEX go.g4_gene_product_index_idx; gounisonfalse249724971259457618g5_gene_product_index_idxINDEX\CREATE INDEX g5_gene_product_index_idx ON gene_product USING btree (dbxref_id, species_id); )DROP INDEX go.g5_gene_product_index_idx; gounisonfalse249724971259457619g6_gene_product_index_idxINDEXTCREATE INDEX g6_gene_product_index_idx ON gene_product USING btree (id, dbxref_id); )DROP INDEX go.g6_gene_product_index_idx; gounisonfalse249724971259457620!gpc1_gene_product_count_index_idxINDEX\CREATE INDEX gpc1_gene_product_count_index_idx ON gene_product_count USING btree (term_id); 1DROP INDEX go.gpc1_gene_product_count_index_idx; gounisonfalse24981259457621!gpc2_gene_product_count_index_idxINDEXYCREATE INDEX gpc2_gene_product_count_index_idx ON gene_product_count USING btree (code); 1DROP INDEX go.gpc2_gene_product_count_index_idx; gounisonfalse24981259457622!gpc3_gene_product_count_index_idxINDEXbCREATE INDEX gpc3_gene_product_count_index_idx ON gene_product_count USING btree (speciesdbname); 1DROP INDEX go.gpc3_gene_product_count_index_idx; gounisonfalse24981259457623!gpc4_gene_product_count_index_idxINDEXqCREATE INDEX gpc4_gene_product_count_index_idx ON gene_product_count USING btree (term_id, code, speciesdbname); 1DROP INDEX go.gpc4_gene_product_count_index_idx; gounisonfalse2498249824981259457624$gpp1_gene_product_property_index_idxINDEXjCREATE INDEX gpp1_gene_product_property_index_idx ON gene_product_property USING btree (gene_product_id); 4DROP INDEX go.gpp1_gene_product_property_index_idx; gounisonfalse24991259457625$gpp2_gene_product_property_index_idxINDEXgCREATE INDEX gpp2_gene_product_property_index_idx ON gene_product_property USING btree (property_key); 4DROP INDEX go.gpp2_gene_product_property_index_idx; gounisonfalse24991259457626$gpp3_gene_product_property_index_idxINDEXgCREATE INDEX gpp3_gene_product_property_index_idx ON gene_product_property USING btree (property_val); 4DROP INDEX go.gpp3_gene_product_property_index_idx; gounisonfalse24991259457627%gppu4_gene_product_property_index_idxINDEXCREATE UNIQUE INDEX gppu4_gene_product_property_index_idx ON gene_product_property USING btree (gene_product_id, property_key, property_val); 5DROP INDEX go.gppu4_gene_product_property_index_idx; gounisonfalse2499249924991259457628!gpseq1_gene_product_seq_index_idxINDEXbCREATE INDEX gpseq1_gene_product_seq_index_idx ON gene_product_seq USING btree (gene_product_id); 1DROP INDEX go.gpseq1_gene_product_seq_index_idx; gounisonfalse25001259457629!gpseq2_gene_product_seq_index_idxINDEXYCREATE INDEX gpseq2_gene_product_seq_index_idx ON gene_product_seq USING btree (seq_id); 1DROP INDEX go.gpseq2_gene_product_seq_index_idx; gounisonfalse25001259457630!gpseq3_gene_product_seq_index_idxINDEXjCREATE INDEX gpseq3_gene_product_seq_index_idx ON gene_product_seq USING btree (seq_id, gene_product_id); 1DROP INDEX go.gpseq3_gene_product_seq_index_idx; gounisonfalse25002500"1259457631 graph_path0_graph_path_index_idxINDEXUCREATE UNIQUE INDEX graph_path0_graph_path_index_idx ON graph_path USING btree (id); 0DROP INDEX go.graph_path0_graph_path_index_idx; gounisonfalse2502#1259457632 graph_path1_graph_path_index_idxINDEXTCREATE INDEX graph_path1_graph_path_index_idx ON graph_path USING btree (term1_id); 0DROP INDEX go.graph_path1_graph_path_index_idx; gounisonfalse2502$1259457633 graph_path2_graph_path_index_idxINDEXTCREATE INDEX graph_path2_graph_path_index_idx ON graph_path USING btree (term2_id); 0DROP INDEX go.graph_path2_graph_path_index_idx; gounisonfalse2502%1259457634 graph_path3_graph_path_index_idxINDEX^CREATE INDEX graph_path3_graph_path_index_idx ON graph_path USING btree (term1_id, term2_id); 0DROP INDEX go.graph_path3_graph_path_index_idx; gounisonfalse25022502&1259457635 graph_path4_graph_path_index_idxINDEX^CREATE INDEX graph_path4_graph_path_index_idx ON graph_path USING btree (term1_id, distance); 0DROP INDEX go.graph_path4_graph_path_index_idx; gounisonfalse25022502 1259457636"gs1_gene_product_synonym_index_idxINDEXgCREATE INDEX gs1_gene_product_synonym_index_idx ON gene_product_synonym USING btree (gene_product_id); 2DROP INDEX go.gs1_gene_product_synonym_index_idx; gounisonfalse2501!1259457637"gs2_gene_product_synonym_index_idxINDEXgCREATE INDEX gs2_gene_product_synonym_index_idx ON gene_product_synonym USING btree (product_synonym); 2DROP INDEX go.gs2_gene_product_synonym_index_idx; gounisonfalse2501)1259457638$release_name_instance_data_index_idxINDEXfCREATE UNIQUE INDEX release_name_instance_data_index_idx ON instance_data USING btree (release_name); 4DROP INDEX go.release_name_instance_data_index_idx; gounisonfalse2504+1259457639seq0_seq_index_idxINDEX@CREATE UNIQUE INDEX seq0_seq_index_idx ON seq USING btree (id); "DROP INDEX go.seq0_seq_index_idx; gounisonfalse2505,1259457640seq1_seq_index_idxINDEXACREATE INDEX seq1_seq_index_idx ON seq USING btree (display_id); "DROP INDEX go.seq1_seq_index_idx; gounisonfalse2505-1259457641seq2_seq_index_idxINDEXBCREATE INDEX seq2_seq_index_idx ON seq USING btree (md5checksum); "DROP INDEX go.seq2_seq_index_idx; gounisonfalse250551259457642seq_id_seq_property_index_idxINDEXtCREATE UNIQUE INDEX seq_id_seq_property_index_idx ON seq_property USING btree (seq_id, property_key, property_val); -DROP INDEX go.seq_id_seq_property_index_idx; gounisonfalse25072507250781259457643seqp0_seq_property_index_idxINDEXPCREATE INDEX seqp0_seq_property_index_idx ON seq_property USING btree (seq_id); ,DROP INDEX go.seqp0_seq_property_index_idx; gounisonfalse250791259457644seqp1_seq_property_index_idxINDEXVCREATE INDEX seqp1_seq_property_index_idx ON seq_property USING btree (property_key); ,DROP INDEX go.seqp1_seq_property_index_idx; gounisonfalse2507:1259457645seqp2_seq_property_index_idxINDEXVCREATE INDEX seqp2_seq_property_index_idx ON seq_property USING btree (property_val); ,DROP INDEX go.seqp2_seq_property_index_idx; gounisonfalse250721259457646seqx0_seq_dbxref_index_idxINDEXLCREATE INDEX seqx0_seq_dbxref_index_idx ON seq_dbxref USING btree (seq_id); *DROP INDEX go.seqx0_seq_dbxref_index_idx; gounisonfalse250631259457647seqx1_seq_dbxref_index_idxINDEXOCREATE INDEX seqx1_seq_dbxref_index_idx ON seq_dbxref USING btree (dbxref_id); *DROP INDEX go.seqx1_seq_dbxref_index_idx; gounisonfalse250641259457648seqx2_seq_dbxref_index_idxINDEXWCREATE INDEX seqx2_seq_dbxref_index_idx ON seq_dbxref USING btree (seq_id, dbxref_id); *DROP INDEX go.seqx2_seq_dbxref_index_idx; gounisonfalse25062506<1259457649sp0_species_index_idxINDEXGCREATE UNIQUE INDEX sp0_species_index_idx ON species USING btree (id); %DROP INDEX go.sp0_species_index_idx; gounisonfalse2509=1259457650sp1_species_index_idxINDEXJCREATE INDEX sp1_species_index_idx ON species USING btree (ncbi_taxa_id); %DROP INDEX go.sp1_species_index_idx; gounisonfalse2509>1259457651sp2_species_index_idxINDEXICREATE INDEX sp2_species_index_idx ON species USING btree (common_name); %DROP INDEX go.sp2_species_index_idx; gounisonfalse2509?1259457652sp3_species_index_idxINDEXCCREATE INDEX sp3_species_index_idx ON species USING btree (genus); %DROP INDEX go.sp3_species_index_idx; gounisonfalse2509@1259457653sp4_species_index_idxINDEXECREATE INDEX sp4_species_index_idx ON species USING btree (species); %DROP INDEX go.sp4_species_index_idx; gounisonfalse2509A1259457654sp5_species_index_idxINDEXLCREATE INDEX sp5_species_index_idx ON species USING btree (genus, species); %DROP INDEX go.sp5_species_index_idx; gounisonfalse25092509B1259457655sp6_species_index_idxINDEXNCREATE INDEX sp6_species_index_idx ON species USING btree (id, ncbi_taxa_id); %DROP INDEX go.sp6_species_index_idx; gounisonfalse25092509C1259457656sp7_species_index_idxINDEX^CREATE INDEX sp7_species_index_idx ON species USING btree (id, ncbi_taxa_id, genus, species); %DROP INDEX go.sp7_species_index_idx; gounisonfalse25092509250925091259457657symbol_gene_product_index_idxINDEXcCREATE UNIQUE INDEX symbol_gene_product_index_idx ON gene_product USING btree (symbol, dbxref_id); -DROP INDEX go.symbol_gene_product_index_idx; gounisonfalse24972497G1259457658t0_term_index_idxINDEX@CREATE UNIQUE INDEX t0_term_index_idx ON term USING btree (id); !DROP INDEX go.t0_term_index_idx; gounisonfalse2510H1259457659t1_term_index_idxINDEX;CREATE INDEX t1_term_index_idx ON term USING btree (name); !DROP INDEX go.t1_term_index_idx; gounisonfalse2510I1259457660t2_term_index_idxINDEX@CREATE INDEX t2_term_index_idx ON term USING btree (term_type); !DROP INDEX go.t2_term_index_idx; gounisonfalse2510J1259457661t3_term_index_idxINDEX:CREATE INDEX t3_term_index_idx ON term USING btree (acc); !DROP INDEX go.t3_term_index_idx; gounisonfalse2510T1259457662ta1_term_audit_index_idxINDEXKCREATE INDEX ta1_term_audit_index_idx ON term_audit USING btree (term_id); (DROP INDEX go.ta1_term_audit_index_idx; gounisonfalse2512\1259457663td1_term_definition_index_idxINDEXUCREATE INDEX td1_term_definition_index_idx ON term_definition USING btree (term_id); -DROP INDEX go.td1_term_definition_index_idx; gounisonfalse2514M1259457664term1_id_term2term_index_idxINDEXvCREATE UNIQUE INDEX term1_id_term2term_index_idx ON term2term USING btree (term1_id, term2_id, relationship_type_id); ,DROP INDEX go.term1_id_term2term_index_idx; gounisonfalse251125112511_1259457665term_id_term_synonym_index_idxINDEXhCREATE UNIQUE INDEX term_id_term_synonym_index_idx ON term_synonym USING btree (term_id, term_synonym); .DROP INDEX go.term_id_term_synonym_index_idx; gounisonfalse25152515`1259457666ts1_term_synonym_index_idxINDEXOCREATE INDEX ts1_term_synonym_index_idx ON term_synonym USING btree (term_id); *DROP INDEX go.ts1_term_synonym_index_idx; gounisonfalse2515a1259457667ts2_term_synonym_index_idxINDEXTCREATE INDEX ts2_term_synonym_index_idx ON term_synonym USING btree (term_synonym); *DROP INDEX go.ts2_term_synonym_index_idx; gounisonfalse2515b1259457668ts3_term_synonym_index_idxINDEX]CREATE INDEX ts3_term_synonym_index_idx ON term_synonym USING btree (term_id, term_synonym); *DROP INDEX go.ts3_term_synonym_index_idx; gounisonfalse25152515P1259457669tt1_term2term_index_idxINDEXJCREATE INDEX tt1_term2term_index_idx ON term2term USING btree (term1_id); 'DROP INDEX go.tt1_term2term_index_idx; gounisonfalse2511Q1259457670tt2_term2term_index_idxINDEXJCREATE INDEX tt2_term2term_index_idx ON term2term USING btree (term2_id); 'DROP INDEX go.tt2_term2term_index_idx; gounisonfalse2511R1259457671tt3_term2term_index_idxINDEXTCREATE INDEX tt3_term2term_index_idx ON term2term USING btree (term1_id, term2_id); 'DROP INDEX go.tt3_term2term_index_idx; gounisonfalse25112511S1259457672tt4_term2term_index_idxINDEXVCREATE INDEX tt4_term2term_index_idx ON term2term USING btree (relationship_type_id); 'DROP INDEX go.tt4_term2term_index_idx; gounisonfalse2511Y1259457673tx0_term_dbxref_index_idxINDEXMCREATE INDEX tx0_term_dbxref_index_idx ON term_dbxref USING btree (term_id); )DROP INDEX go.tx0_term_dbxref_index_idx; gounisonfalse2513Z1259457674tx1_term_dbxref_index_idxINDEXOCREATE INDEX tx1_term_dbxref_index_idx ON term_dbxref USING btree (dbxref_id); )DROP INDEX go.tx1_term_dbxref_index_idx; gounisonfalse2513[1259457675tx2_term_dbxref_index_idxINDEXXCREATE INDEX tx2_term_dbxref_index_idx ON term_dbxref USING btree (term_id, dbxref_id); )DROP INDEX go.tx2_term_dbxref_index_idx; gounisonfalse25132513 1259457676xref_key_dbxref_index_idxINDEX]CREATE UNIQUE INDEX xref_key_dbxref_index_idx ON dbxref USING btree (xref_key, xref_dbname); )DROP INDEX go.xref_key_dbxref_index_idx; gounisonfalse24942494c1259457677alias_alias_idxINDEXBCREATE INDEX alias_alias_idx ON alias USING btree (upper(alias)); !DROP INDEX gong.alias_alias_idx; gongunisonfalse2516h1259457678is_a_go_id2_idxINDEX;CREATE INDEX is_a_go_id2_idx ON is_a USING btree (go_id2); !DROP INDEX gong.is_a_go_id2_idx; gongunisonfalse2518i1259457679is_a_nonredundant_idxINDEXPCREATE UNIQUE INDEX is_a_nonredundant_idx ON is_a USING btree (go_id1, go_id2); 'DROP INDEX gong.is_a_nonredundant_idx; gongunisonfalse25182518l1259457680part_of_go_id2_idxINDEXACREATE INDEX part_of_go_id2_idx ON part_of USING btree (go_id2); $DROP INDEX gong.part_of_go_id2_idx; gongunisonfalse2520m1259457681part_of_nonredundant_idxINDEXVCREATE UNIQUE INDEX part_of_nonredundant_idx ON part_of USING btree (go_id1, go_id2); *DROP INDEX gong.part_of_nonredundant_idx; gongunisonfalse25202520p1259457682 chip_unq_idxINDEX=CREATE UNIQUE INDEX chip_unq_idx ON chip USING btree (name); DROP INDEX marray.chip_unq_idx; marrayunisonfalse2522q1259457683probe_g_lookup_idxINDEXrCREATE INDEX probe_g_lookup_idx ON probe USING btree (genasm_id, chip_id, origin_id, chr, strand, gstart, gstop); &DROP INDEX marray.probe_g_lookup_idx; marrayunisonfalse2523252325232523252325232523t1259457684 probe_unq_idxINDEX~CREATE UNIQUE INDEX probe_unq_idx ON probe USING btree (genasm_id, chip_id, origin_id, chr, strand, gstart, gstop, probe_id); !DROP INDEX marray.probe_unq_idx; marrayunisonfalse252325232523252325232523252325231259457685gene2accession_gen_accINDEXMCREATE INDEX gene2accession_gen_acc ON gene2accession USING btree (gen_acc); (DROP INDEX ncbi.gene2accession_gen_acc; ncbiunisonfalse25711259457691gene2accession_gene_idINDEXMCREATE INDEX gene2accession_gene_id ON gene2accession USING btree (gene_id); (DROP INDEX ncbi.gene2accession_gene_id; ncbiunisonfalse25711259457692gene2accession_pro_accINDEXMCREATE INDEX gene2accession_pro_acc ON gene2accession USING btree (pro_acc); (DROP INDEX ncbi.gene2accession_pro_acc; ncbiunisonfalse25711259457693gene2accession_rna_accINDEXMCREATE INDEX gene2accession_rna_acc ON gene2accession USING btree (rna_acc); (DROP INDEX ncbi.gene2accession_rna_acc; ncbiunisonfalse25711259457694gene2go_gene_idINDEX?CREATE INDEX gene2go_gene_id ON gene2go USING btree (gene_id); !DROP INDEX ncbi.gene2go_gene_id; ncbiunisonfalse25721259457695 gene2go_go_idINDEX;CREATE INDEX gene2go_go_id ON gene2go USING btree (go_id); DROP INDEX ncbi.gene2go_go_id; ncbiunisonfalse25721259457696gene2unigene_gene_idINDEXICREATE INDEX gene2unigene_gene_id ON gene2unigene USING btree (gene_id); &DROP INDEX ncbi.gene2unigene_gene_id; ncbiunisonfalse25731259457697gene2unigene_unigene_accINDEXQCREATE INDEX gene2unigene_unigene_acc ON gene2unigene USING btree (unigene_acc); *DROP INDEX ncbi.gene2unigene_unigene_acc; ncbiunisonfalse25731259457698gene_info_gene_idINDEXCCREATE INDEX gene_info_gene_id ON gene_info USING btree (gene_id); #DROP INDEX ncbi.gene_info_gene_id; ncbiunisonfalse25741259457699generif_gene_idINDEX?CREATE INDEX generif_gene_id ON generif USING btree (gene_id); !DROP INDEX ncbi.generif_gene_id; ncbiunisonfalse2575u1259457700homologene_acc_hid_idxINDEXJCREATE INDEX homologene_acc_hid_idx ON homologene USING btree (acc, hid); (DROP INDEX ncbi.homologene_acc_hid_idx; ncbiunisonfalse25252525v1259457701homologene_gene_id_idxINDEXICREATE INDEX homologene_gene_id_idx ON homologene USING btree (gene_id); (DROP INDEX ncbi.homologene_gene_id_idx; ncbiunisonfalse2525w1259457702homologene_hid_acc_idxINDEXJCREATE INDEX homologene_hid_acc_idx ON homologene USING btree (hid, acc); (DROP INDEX ncbi.homologene_hid_acc_idx; ncbiunisonfalse252525251259457703mim2gene_gene_idINDEXACREATE INDEX mim2gene_gene_id ON mim2gene USING btree (gene_id); "DROP INDEX ncbi.mim2gene_gene_id; ncbiunisonfalse25761259457704mim2gene_mim_idINDEX?CREATE INDEX mim2gene_mim_id ON mim2gene USING btree (mim_id); !DROP INDEX ncbi.mim2gene_mim_id; ncbiunisonfalse25761259457705chain_pdbid_idxINDEX;CREATE INDEX chain_pdbid_idx ON chain USING btree (pdbid); DROP INDEX pdb.chain_pdbid_idx; pdbunisonfalse25481259457706descriptor_origin_tov_idxINDEXhCREATE UNIQUE INDEX descriptor_origin_tov_idx ON descriptor_origin USING btree (type, origin, version); *DROP INDEX pdb.descriptor_origin_tov_idx; pdbunisonfalse2538253825381259457707ligand_descriptor_ld_origin_idINDEXCREATE UNIQUE INDEX ligand_descriptor_ld_origin_id ON ligand_descriptors USING btree (ligand_id, descriptor_origin_id) WHERE (descriptor_origin_id <> descriptor_origin_id('synonym'::text, 'PDB'::text, NULL::text)); /DROP INDEX pdb.ligand_descriptor_ld_origin_id; pdbunisonfalse253966253925391259457708residue_res_seq_idxINDEXXCREATE UNIQUE INDEX residue_res_seq_idx ON residue USING btree (pdbc, res_id, seq_pos); $DROP INDEX pdb.residue_res_seq_idx; pdbunisonfalse2595259525951259457709residue_seq_res_idxINDEXXCREATE UNIQUE INDEX residue_seq_res_idx ON residue USING btree (pdbc, seq_pos, res_id); $DROP INDEX pdb.residue_seq_res_idx; pdbunisonfalse2595259525951259457710 cla_pdb_idxINDEX3CREATE INDEX cla_pdb_idx ON cla USING btree (pdb); DROP INDEX scop.cla_pdb_idx; scopunisonfalse25341259457711 cla_sccs_idxINDEX5CREATE INDEX cla_sccs_idx ON cla USING btree (sccs); DROP INDEX scop.cla_sccs_idx; scopunisonfalse25341259457712 cla_sid_idxINDEX3CREATE INDEX cla_sid_idx ON cla USING btree (sid); DROP INDEX scop.cla_sid_idx; scopunisonfalse25341259457713dom_pdbINDEX/CREATE INDEX dom_pdb ON dom USING btree (pdb); DROP INDEX scop.dom_pdb; scopunisonfalse25441259457714dom_sidINDEX/CREATE INDEX dom_sid ON dom USING btree (sid); DROP INDEX scop.dom_sid; scopunisonfalse25441259457715hie_psunid_idxINDEX9CREATE INDEX hie_psunid_idx ON hie USING btree (psunid); DROP INDEX scop.hie_psunid_idx; scopunisonfalse26381259457716pdb_idxINDEX/CREATE INDEX pdb_idx ON cla USING btree (pdb); DROP INDEX scop.pdb_idx; scopunisonfalse25341259457717sccs_idxINDEX1CREATE INDEX sccs_idx ON cla USING btree (sccs); DROP INDEX scop.sccs_idx; scopunisonfalse25341259457718sid_idxINDEX/CREATE INDEX sid_idx ON cla USING btree (sid); DROP INDEX scop.sid_idx; scopunisonfalse25341259457719spdi_list_proid_idxINDEXCCREATE INDEX spdi_list_proid_idx ON spdi_list USING btree (proid); $DROP INDEX sst.spdi_list_proid_idx; sstunisonfalse26431259457720unqfamily_f_idxINDEX?CREATE INDEX unqfamily_f_idx ON unqfamily USING btree (famid); DROP INDEX sst.unqfamily_f_idx; sstunisonfalse26451259457721unqfamily_u_idxINDEX?CREATE INDEX unqfamily_u_idx ON unqfamily USING btree (unqid); DROP INDEX sst.unqfamily_u_idx; sstunisonfalse26451259457722v_trans_dna_pseq_idxINDEXRCREATE UNIQUE INDEX v_trans_dna_pseq_idx ON v_trans USING btree (dnaid, pseq_id); %DROP INDEX sst.v_trans_dna_pseq_idx; sstunisonfalse261926191259457723v_trans_pseq_idxINDEX@CREATE INDEX v_trans_pseq_idx ON v_trans USING btree (pseq_id); !DROP INDEX sst.v_trans_pseq_idx; sstunisonfalse26191259457724v_unq2dna_dna_unq_idxINDEXZCREATE UNIQUE INDEX v_unq2dna_dna_unq_idx ON v_unq2dna USING btree (dnaid, proid, unqid); &DROP INDEX sst.v_unq2dna_dna_unq_idx; sstunisonfalse2620262026201259457725spspec_common_idxINDEXFCREATE INDEX spspec_common_idx ON spspec USING btree (upper(common)); "DROP INDEX tax.spspec_common_idx; taxunisonfalse25351259457726 spspec_gs_idxINDEXECREATE UNIQUE INDEX spspec_gs_idx ON spspec USING btree (upper(gs)); DROP INDEX tax.spspec_gs_idx; taxunisonfalse25351259457727 spspec_k_idxINDEX5CREATE INDEX spspec_k_idx ON spspec USING btree (k); DROP INDEX tax.spspec_k_idx; taxunisonfalse25351259457728spspec_latin_idxINDEXKCREATE UNIQUE INDEX spspec_latin_idx ON spspec USING btree (upper(latin)); !DROP INDEX tax.spspec_latin_idx; taxunisonfalse25351259457729best_annotation_mv_pseq_id_idxINDEXCREATE INDEX best_annotation_mv_pseq_id_idx ON best_annotation_mv USING btree (pseq_id); ALTER TABLE best_annotation_mv CLUSTER ON best_annotation_mv_pseq_id_idx; 2DROP INDEX unison.best_annotation_mv_pseq_id_idx; unisonunisonfalse26281259457730current_annotations_mv_aliasINDEXYCREATE INDEX current_annotations_mv_alias ON current_annotations_mv USING btree (alias); 0DROP INDEX unison.current_annotations_mv_alias; unisonunisonfalse2669 1259457731current_annotations_mv_alias_cfINDEXcCREATE INDEX current_annotations_mv_alias_cf ON current_annotations_mv USING btree (upper(alias)); 3DROP INDEX unison.current_annotations_mv_alias_cf; unisonunisonfalse2669!1259457732current_annotations_mv_ann_prefINDEX_CREATE INDEX current_annotations_mv_ann_pref ON current_annotations_mv USING btree (ann_pref); 3DROP INDEX unison.current_annotations_mv_ann_pref; unisonunisonfalse2669"1259457733current_annotations_mv_originINDEX[CREATE INDEX current_annotations_mv_origin ON current_annotations_mv USING btree (origin); 1DROP INDEX unison.current_annotations_mv_origin; unisonunisonfalse2669#1259457734 current_annotations_mv_origin_idINDEXaCREATE INDEX current_annotations_mv_origin_id ON current_annotations_mv USING btree (origin_id); 4DROP INDEX unison.current_annotations_mv_origin_id; unisonunisonfalse2669$1259457735current_annotations_mv_pseq_idINDEX]CREATE INDEX current_annotations_mv_pseq_id ON current_annotations_mv USING btree (pseq_id); 2DROP INDEX unison.current_annotations_mv_pseq_id; unisonunisonfalse2669%1259457736current_annotations_mv_tax_idINDEX[CREATE INDEX current_annotations_mv_tax_id ON current_annotations_mv USING btree (tax_id); 1DROP INDEX unison.current_annotations_mv_tax_id; unisonunisonfalse2669*1259457737+ensembl_unambiguous_coordinates_search1_idxINDEXCREATE INDEX ensembl_unambiguous_coordinates_search1_idx ON ensembl_unambiguous_coordinates_mv USING btree (genome, chr, strand, gstart, gstop); ALTER TABLE ensembl_unambiguous_coordinates_mv CLUSTER ON ensembl_unambiguous_coordinates_search1_idx; ?DROP INDEX unison.ensembl_unambiguous_coordinates_search1_idx; unisonunisonfalse268226822682268226821259457738+ensembl_unambiguous_overlaps_mv_search1_idxINDEXCREATE INDEX ensembl_unambiguous_overlaps_mv_search1_idx ON ensembl_unambiguous_overlaps_mv USING btree (q_pseq_id, t_pseq_id); ALTER TABLE ensembl_unambiguous_overlaps_mv CLUSTER ON ensembl_unambiguous_overlaps_mv_search1_idx; ?DROP INDEX unison.ensembl_unambiguous_overlaps_mv_search1_idx; unisonunisonfalse25372537-1259457739gg_famid_pseq_id_fq_mv_idxINDEXCREATE UNIQUE INDEX gg_famid_pseq_id_fq_mv_idx ON gg_famid_pseq_id_mv USING btree (famid, pseq_id); ALTER TABLE gg_famid_pseq_id_mv CLUSTER ON gg_famid_pseq_id_fq_mv_idx; .DROP INDEX unison.gg_famid_pseq_id_fq_mv_idx; unisonunisonfalse26882688.1259457740gg_famid_pseq_id_qf_mv_idxINDEXdCREATE UNIQUE INDEX gg_famid_pseq_id_qf_mv_idx ON gg_famid_pseq_id_mv USING btree (pseq_id, famid); .DROP INDEX unison.gg_famid_pseq_id_qf_mv_idx; unisonunisonfalse26882688&1259457741known_bcl2_overlaps_search1_idxINDEX`CREATE INDEX known_bcl2_overlaps_search1_idx ON known_bcl2_overlaps_mv USING btree (t_pseq_id); 3DROP INDEX unison.known_bcl2_overlaps_search1_idx; unisonunisonfalse2670'1259457742known_bcl2_overlaps_search2_idxINDEX`CREATE INDEX known_bcl2_overlaps_search2_idx ON known_bcl2_overlaps_mv USING btree (q_pseq_id); 3DROP INDEX unison.known_bcl2_overlaps_search2_idx; unisonunisonfalse267011259457743mint_sprot_a_idxINDEXlCREATE INDEX mint_sprot_a_idx ON mint USING btree (sprot_a); ALTER TABLE mint CLUSTER ON mint_sprot_a_idx; $DROP INDEX unison.mint_sprot_a_idx; unisonunisonfalse270121259457744mint_sprot_b_idxINDEX=CREATE INDEX mint_sprot_b_idx ON mint USING btree (sprot_b); $DROP INDEX unison.mint_sprot_b_idx; unisonunisonfalse2701 1259457745ncbi_pseq_mv_gen_giINDEXGCREATE INDEX ncbi_pseq_mv_gen_gi ON ncbi_pseq_mv USING btree (gen_gi); 'DROP INDEX unison.ncbi_pseq_mv_gen_gi; unisonunisonfalse2630 1259457746ncbi_pseq_mv_gene_idINDEXICREATE INDEX ncbi_pseq_mv_gene_id ON ncbi_pseq_mv USING btree (gene_id); (DROP INDEX unison.ncbi_pseq_mv_gene_id; unisonunisonfalse2630 1259457747ncbi_pseq_mv_pro_giINDEXGCREATE INDEX ncbi_pseq_mv_pro_gi ON ncbi_pseq_mv USING btree (pro_gi); 'DROP INDEX unison.ncbi_pseq_mv_pro_gi; unisonunisonfalse2630 1259457748ncbi_pseq_mv_qINDEXCCREATE INDEX ncbi_pseq_mv_q ON ncbi_pseq_mv USING btree (pseq_id); "DROP INDEX unison.ncbi_pseq_mv_q; unisonunisonfalse2630|1259457749origin_origin_idxINDEXMCREATE UNIQUE INDEX origin_origin_idx ON origin USING btree (upper(origin)); %DROP INDEX unison.origin_origin_idx; unisonunisonfalse2529 1259457750p2gblatalnhsp_hsp_id_idxINDEXTCREATE INDEX p2gblatalnhsp_hsp_id_idx ON p2gblatalnhsp USING btree (p2gblathsp_id); ,DROP INDEX unison.p2gblatalnhsp_hsp_id_idx; unisonunisonfalse2470 1259457751p2gblatalnhsp_unq_idxINDEXgCREATE UNIQUE INDEX p2gblatalnhsp_unq_idx ON p2gblatalnhsp USING btree (p2gblataln_id, p2gblathsp_id); )DROP INDEX unison.p2gblatalnhsp_unq_idx; unisonunisonfalse24702470 1259457752p2gblathsp_g_lookup_idxINDEX`CREATE INDEX p2gblathsp_g_lookup_idx ON p2gblathsp USING btree (genasm_id, chr, gstart, gstop); +DROP INDEX unison.p2gblathsp_g_lookup_idx; unisonunisonfalse2471247124712471 1259457753p2gblathsp_p_lookup_idxINDEXYCREATE INDEX p2gblathsp_p_lookup_idx ON p2gblathsp USING btree (pseq_id, pstart, pstop); +DROP INDEX unison.p2gblathsp_p_lookup_idx; unisonunisonfalse247124712471 1259457754p2gblathsp_pseq_id_idxINDEXICREATE INDEX p2gblathsp_pseq_id_idx ON p2gblathsp USING btree (pseq_id); *DROP INDEX unison.p2gblathsp_pseq_id_idx; unisonunisonfalse2471 1259457755p2gblathsp_unq_idxINDEXCREATE UNIQUE INDEX p2gblathsp_unq_idx ON p2gblathsp USING btree (genasm_id, chr, plus_strand, gstart, gstop, pseq_id, pstart, pstop); &DROP INDEX unison.p2gblathsp_unq_idx; unisonunisonfalse24712471247124712471247124712471 1259457756pahmm_mining1_idxINDEXCREATE INDEX pahmm_mining1_idx ON pahmm USING btree (params_id, pmodel_id, eval); ALTER TABLE pahmm CLUSTER ON pahmm_mining1_idx; %DROP INDEX unison.pahmm_mining1_idx; unisonunisonfalse247624762476 1259457757pahmm_mining2_idxINDEXSCREATE INDEX pahmm_mining2_idx ON pahmm USING btree (params_id, pmodel_id, score); %DROP INDEX unison.pahmm_mining2_idx; unisonunisonfalse247624762476 1259457758pahmm_params_idxINDEX@CREATE INDEX pahmm_params_idx ON pahmm USING btree (params_id); $DROP INDEX unison.pahmm_params_idx; unisonunisonfalse2476 1259457759pahmm_pmodel_id_idxINDEXCCREATE INDEX pahmm_pmodel_id_idx ON pahmm USING btree (pmodel_id); 'DROP INDEX unison.pahmm_pmodel_id_idx; unisonunisonfalse2476 1259457760pahmm_pseq_id_idxINDEX?CREATE INDEX pahmm_pseq_id_idx ON pahmm USING btree (pseq_id); %DROP INDEX unison.pahmm_pseq_id_idx; unisonunisonfalse2476 1259457761pahmm_redundant_feature_idxINDEXCREATE UNIQUE INDEX pahmm_redundant_feature_idx ON pahmm USING btree (params_id, pseq_id, pmodel_id, start, stop, mstart, mstop); /DROP INDEX unison.pahmm_redundant_feature_idx; unisonunisonfalse2476247624762476247624762476 1259457767paliasorigin_alias_casefold_idxINDEXCREATE INDEX paliasorigin_alias_casefold_idx ON pannotation USING btree (upper(alias)); ALTER TABLE pannotation CLUSTER ON paliasorigin_alias_casefold_idx; 3DROP INDEX unison.paliasorigin_alias_casefold_idx; unisonunisonfalse2489 1259457768paliasorigin_alias_idxINDEXHCREATE INDEX paliasorigin_alias_idx ON pannotation USING btree (alias); *DROP INDEX unison.paliasorigin_alias_idx; unisonunisonfalse2489 1259457769'paliasorigin_alias_unique_in_origin_idxINDEXkCREATE UNIQUE INDEX paliasorigin_alias_unique_in_origin_idx ON pannotation USING btree (origin_id, alias); ;DROP INDEX unison.paliasorigin_alias_unique_in_origin_idx; unisonunisonfalse24892489 1259457770paliasorigin_o_idxINDEXHCREATE INDEX paliasorigin_o_idx ON pannotation USING btree (origin_id); &DROP INDEX unison.paliasorigin_o_idx; unisonunisonfalse2489 1259457771paliasorigin_search1_idxINDEX^CREATE INDEX paliasorigin_search1_idx ON pannotation USING btree (pannotation_id, origin_id); ,DROP INDEX unison.paliasorigin_search1_idx; unisonunisonfalse24892489 1259457772paliasorigin_search3_idxINDEXfCREATE INDEX paliasorigin_search3_idx ON pannotation USING btree (origin_id, tax_id, pannotation_id); ,DROP INDEX unison.paliasorigin_search3_idx; unisonunisonfalse248924892489 1259457773paliasorigin_tax_id_idxINDEXJCREATE INDEX paliasorigin_tax_id_idx ON pannotation USING btree (tax_id); +DROP INDEX unison.paliasorigin_tax_id_idx; unisonunisonfalse2489 1259457774palignment_pseq_id_idxINDEXCREATE INDEX palignment_pseq_id_idx ON palignment USING btree (pseq_id); ALTER TABLE palignment CLUSTER ON palignment_pseq_id_idx; *DROP INDEX unison.palignment_pseq_id_idx; unisonunisonfalse2475 1259457775paprospect_mining1_idxINDEX[CREATE INDEX paprospect_mining1_idx ON paprospect USING btree (pmodel_id, params_id, svm); *DROP INDEX unison.paprospect_mining1_idx; unisonunisonfalse247924792479 1259457776paprospect_mining2_idxINDEX[CREATE INDEX paprospect_mining2_idx ON paprospect USING btree (pmodel_id, params_id, raw); *DROP INDEX unison.paprospect_mining2_idx; unisonunisonfalse247924792479 1259457777 paprospect_pseq_id_params_id_idxINDEX^CREATE INDEX paprospect_pseq_id_params_id_idx ON paprospect USING btree (pseq_id, params_id); 4DROP INDEX unison.paprospect_pseq_id_params_id_idx; unisonunisonfalse247924791259457778papseq_eval_idxINDEX;CREATE INDEX papseq_eval_idx ON papseq USING btree (eval); #DROP INDEX unison.papseq_eval_idx; unisonunisonfalse25411259457779papseq_gaps_idxINDEX;CREATE INDEX papseq_gaps_idx ON papseq USING btree (gaps); #DROP INDEX unison.papseq_gaps_idx; unisonunisonfalse25411259457780papseq_ident_idxINDEX=CREATE INDEX papseq_ident_idx ON papseq USING btree (ident); $DROP INDEX unison.papseq_ident_idx; unisonunisonfalse25411259457781papseq_len_idxINDEX9CREATE INDEX papseq_len_idx ON papseq USING btree (len); "DROP INDEX unison.papseq_len_idx; unisonunisonfalse25411259457782papseq_pct_coverage_idxINDEXKCREATE INDEX papseq_pct_coverage_idx ON papseq USING btree (pct_coverage); +DROP INDEX unison.papseq_pct_coverage_idx; unisonunisonfalse25411259457783papseq_pct_hsp_coverage_idxINDEXSCREATE INDEX papseq_pct_hsp_coverage_idx ON papseq USING btree (pct_hsp_coverage); /DROP INDEX unison.papseq_pct_hsp_coverage_idx; unisonunisonfalse25411259457784papseq_pct_ident_idxINDEXECREATE INDEX papseq_pct_ident_idx ON papseq USING btree (pct_ident); (DROP INDEX unison.papseq_pct_ident_idx; unisonunisonfalse25411259457785papseq_pdbcs_mv_evalINDEXICREATE INDEX papseq_pdbcs_mv_eval ON papseq_pdbcs_mv USING btree (eval); (DROP INDEX unison.papseq_pdbcs_mv_eval; unisonunisonfalse25451259457786papseq_pdbcs_mv_pct_covINDEXTCREATE INDEX papseq_pdbcs_mv_pct_cov ON papseq_pdbcs_mv USING btree (pct_coverage); +DROP INDEX unison.papseq_pdbcs_mv_pct_cov; unisonunisonfalse25451259457787papseq_pdbcs_mv_pct_identINDEXSCREATE INDEX papseq_pdbcs_mv_pct_ident ON papseq_pdbcs_mv USING btree (pct_ident); -DROP INDEX unison.papseq_pdbcs_mv_pct_ident; unisonunisonfalse25451259457788papseq_pdbcs_mv_qqINDEXLCREATE INDEX papseq_pdbcs_mv_qq ON papseq_pdbcs_mv USING btree (q_pseq_id); &DROP INDEX unison.papseq_pdbcs_mv_qq; unisonunisonfalse25451259457789papseq_pdbcs_mv_tqINDEXLCREATE INDEX papseq_pdbcs_mv_tq ON papseq_pdbcs_mv USING btree (t_pseq_id); &DROP INDEX unison.papseq_pdbcs_mv_tq; unisonunisonfalse25451259457790papseq_pdbcs_pdbcINDEXFCREATE INDEX papseq_pdbcs_pdbc ON papseq_pdbcs_mv USING btree (pdbc); %DROP INDEX unison.papseq_pdbcs_pdbc; unisonunisonfalse25451259457791papseq_pmodel_id_idxINDEXECREATE INDEX papseq_pmodel_id_idx ON papseq USING btree (pmodel_id); (DROP INDEX unison.papseq_pmodel_id_idx; unisonunisonfalse25411259457792papseq_qss_idxINDEXJCREATE INDEX papseq_qss_idx ON papseq USING btree (pseq_id, start, stop); "DROP INDEX unison.papseq_qss_idx; unisonunisonfalse2541254125411259457793papseq_redundant_feature_idxINDEXCREATE UNIQUE INDEX papseq_redundant_feature_idx ON papseq USING btree (params_id, pseq_id, pmodel_id, start, stop, mstart, mstop); ALTER TABLE papseq CLUSTER ON papseq_redundant_feature_idx; 0DROP INDEX unison.papseq_redundant_feature_idx; unisonunisonfalse25412541254125412541254125411259457794papseq_score_idxINDEX=CREATE INDEX papseq_score_idx ON papseq USING btree (score); $DROP INDEX unison.papseq_score_idx; unisonunisonfalse25411259457795papseq_sim_idxINDEX9CREATE INDEX papseq_sim_idx ON papseq USING btree (sim); "DROP INDEX unison.papseq_sim_idx; unisonunisonfalse254131259457796papssm_eval_idxINDEX;CREATE INDEX papssm_eval_idx ON papssm USING btree (eval); #DROP INDEX unison.papssm_eval_idx; unisonunisonfalse271641259457797papssm_gap_idxINDEX:CREATE INDEX papssm_gap_idx ON papssm USING btree (gaps); "DROP INDEX unison.papssm_gap_idx; unisonunisonfalse271651259457798papssm_ident_idxINDEX=CREATE INDEX papssm_ident_idx ON papssm USING btree (ident); $DROP INDEX unison.papssm_ident_idx; unisonunisonfalse271661259457799papssm_len_idxINDEX9CREATE INDEX papssm_len_idx ON papssm USING btree (len); "DROP INDEX unison.papssm_len_idx; unisonunisonfalse271671259457800papssm_pmodel_id_idxINDEXECREATE INDEX papssm_pmodel_id_idx ON papssm USING btree (pmodel_id); (DROP INDEX unison.papssm_pmodel_id_idx; unisonunisonfalse271681259457801papssm_qss_idxINDEXJCREATE INDEX papssm_qss_idx ON papssm USING btree (pseq_id, start, stop); "DROP INDEX unison.papssm_qss_idx; unisonunisonfalse27162716271691259457802papssm_redundant_feature_idxINDEXCREATE UNIQUE INDEX papssm_redundant_feature_idx ON papssm USING btree (params_id, pseq_id, pmodel_id, start, stop, mstart, mstop); ALTER TABLE papssm CLUSTER ON papssm_redundant_feature_idx; 0DROP INDEX unison.papssm_redundant_feature_idx; unisonunisonfalse2716271627162716271627162716:1259457803papssm_score_idxINDEX=CREATE INDEX papssm_score_idx ON papssm USING btree (score); $DROP INDEX unison.papssm_score_idx; unisonunisonfalse2716;1259457804papssm_sim_idxINDEX9CREATE INDEX papssm_sim_idx ON papssm USING btree (sim); "DROP INDEX unison.papssm_sim_idx; unisonunisonfalse27161259457805params_name_idxINDEXBCREATE UNIQUE INDEX params_name_idx ON params USING btree (name); #DROP INDEX unison.params_name_idx; unisonunisonfalse25491259457806params_pkey_idxINDEXwCREATE UNIQUE INDEX params_pkey_idx ON params USING btree (params_id); ALTER TABLE params CLUSTER ON params_pkey_idx; #DROP INDEX unison.params_pkey_idx; unisonunisonfalse2549?1259457807pcluster_member_pseq_id_idxINDEXSCREATE INDEX pcluster_member_pseq_id_idx ON pcluster_member USING btree (pseq_id); /DROP INDEX unison.pcluster_member_pseq_id_idx; unisonunisonfalse2722@1259457808pcluster_member_unq_idxINDEXCREATE UNIQUE INDEX pcluster_member_unq_idx ON pcluster_member USING btree (pcluster_id, pseq_id, gstart, gstop); ALTER TABLE pcluster_member CLUSTER ON pcluster_member_unq_idx; +DROP INDEX unison.pcluster_member_unq_idx; unisonunisonfalse2722272227222722>1259457809pcluster_uniq_idxINDEXCREATE UNIQUE INDEX pcluster_uniq_idx ON pcluster USING btree (genasm_id, gstart, gstop, chr, plus_strand); ALTER TABLE pcluster CLUSTER ON pcluster_uniq_idx; %DROP INDEX unison.pcluster_uniq_idx; unisonunisonfalse27212721272127212721M1259457810pfantigenic_pseq_id_idxINDEXKCREATE INDEX pfantigenic_pseq_id_idx ON pfantigenic USING btree (pseq_id); +DROP INDEX unison.pfantigenic_pseq_id_idx; unisonunisonfalse2727N1259457811!pfantigenic_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfantigenic_redundant_feature_idx ON pfantigenic USING btree (params_id, pseq_id, start, stop); ALTER TABLE pfantigenic CLUSTER ON pfantigenic_redundant_feature_idx; 5DROP INDEX unison.pfantigenic_redundant_feature_idx; unisonunisonfalse2727272727272727O1259457812pfantigenic_score_idxINDEXGCREATE INDEX pfantigenic_score_idx ON pfantigenic USING btree (score); )DROP INDEX unison.pfantigenic_score_idx; unisonunisonfalse2727P1259457813pfbigpi_gpi_proteins_idxINDEXCREATE INDEX pfbigpi_gpi_proteins_idx ON pfbigpi USING btree (pseq_id) WHERE ((((quality = 'A'::bpchar) OR (quality = 'B'::bpchar)) OR (quality = 'C'::bpchar)) OR (quality = 'D'::bpchar)); ,DROP INDEX unison.pfbigpi_gpi_proteins_idx; unisonunisonfalse27292729Q1259457814pfbigpi_pseq_id_idxINDEXCCREATE INDEX pfbigpi_pseq_id_idx ON pfbigpi USING btree (pseq_id); 'DROP INDEX unison.pfbigpi_pseq_id_idx; unisonunisonfalse2729R1259457815pfbigpi_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfbigpi_redundant_feature_idx ON pfbigpi USING btree (params_id, pseq_id, start); ALTER TABLE pfbigpi CLUSTER ON pfbigpi_redundant_feature_idx; 1DROP INDEX unison.pfbigpi_redundant_feature_idx; unisonunisonfalse272927292729 1259457816pfeature_p_idxINDEXACREATE INDEX pfeature_p_idx ON pfeature USING btree (params_id); "DROP INDEX unison.pfeature_p_idx; unisonunisonfalse2473 1259457817pfeature_pftype_id_idxINDEXICREATE INDEX pfeature_pftype_id_idx ON pfeature USING btree (pftype_id); *DROP INDEX unison.pfeature_pftype_id_idx; unisonunisonfalse2473 1259457818pfeature_pseq_id_idxINDEX|CREATE INDEX pfeature_pseq_id_idx ON pfeature USING btree (pseq_id); ALTER TABLE pfeature CLUSTER ON pfeature_pseq_id_idx; (DROP INDEX unison.pfeature_pseq_id_idx; unisonunisonfalse2473S1259457819pfnetphos_kinase_idxINDEXECREATE INDEX pfnetphos_kinase_idx ON pfnetphos USING btree (kinase); (DROP INDEX unison.pfnetphos_kinase_idx; unisonunisonfalse2731T1259457820 pfnetphos_qINDEX=CREATE INDEX pfnetphos_q ON pfnetphos USING btree (pseq_id); DROP INDEX unison.pfnetphos_q; unisonunisonfalse2731U1259457821pfnetphos_unique_idxINDEXgCREATE UNIQUE INDEX pfnetphos_unique_idx ON pfnetphos USING btree (pseq_id, params_id, start, kinase); (DROP INDEX unison.pfnetphos_unique_idx; unisonunisonfalse2731273127312731V1259457822pfpepcoil_pseq_id_idxINDEXGCREATE INDEX pfpepcoil_pseq_id_idx ON pfpepcoil USING btree (pseq_id); )DROP INDEX unison.pfpepcoil_pseq_id_idx; unisonunisonfalse2733W1259457823pfpepcoil_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfpepcoil_redundant_feature_idx ON pfpepcoil USING btree (params_id, pseq_id, start, stop); ALTER TABLE pfpepcoil CLUSTER ON pfpepcoil_redundant_feature_idx; 3DROP INDEX unison.pfpepcoil_redundant_feature_idx; unisonunisonfalse2733273327332733X1259457824pfpsipred_pseq_id_idxINDEXGCREATE INDEX pfpsipred_pseq_id_idx ON pfpsipred USING btree (pseq_id); )DROP INDEX unison.pfpsipred_pseq_id_idx; unisonunisonfalse2734Y1259457825pfpsipred_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfpsipred_redundant_feature_idx ON pfpsipred USING btree (params_id, pseq_id, start, stop, type); ALTER TABLE pfpsipred CLUSTER ON pfpsipred_redundant_feature_idx; 3DROP INDEX unison.pfpsipred_redundant_feature_idx; unisonunisonfalse27342734273427342734Z1259457826pfpsipred_search1_idxINDEXVCREATE INDEX pfpsipred_search1_idx ON pfpsipred USING btree (((stop - start)), type); )DROP INDEX unison.pfpsipred_search1_idx; unisonunisonfalse273427342734 1259457827pfregexp_pseq_id_idxINDEXECREATE INDEX pfregexp_pseq_id_idx ON pfregexp USING btree (pseq_id); (DROP INDEX unison.pfregexp_pseq_id_idx; unisonunisonfalse2477 1259457828pfregexp_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfregexp_redundant_feature_idx ON pfregexp USING btree (params_id, pseq_id, pmodel_id, start, stop); ALTER TABLE pfregexp CLUSTER ON pfregexp_redundant_feature_idx; 2DROP INDEX unison.pfregexp_redundant_feature_idx; unisonunisonfalse24772477247724772477 1259457829pfregexp_search1_idxINDEX]CREATE INDEX pfregexp_search1_idx ON pfregexp USING btree (pmodel_id, pseq_id, start, stop); (DROP INDEX unison.pfregexp_search1_idx; unisonunisonfalse2477247724772477[1259457830pfseg_params_idINDEX?CREATE INDEX pfseg_params_id ON pfseg USING btree (params_id); #DROP INDEX unison.pfseg_params_id; unisonunisonfalse2735\1259457831pfseg_redundant_featureINDEXCREATE UNIQUE INDEX pfseg_redundant_feature ON pfseg USING btree (pseq_id, params_id, start, stop); ALTER TABLE pfseg CLUSTER ON pfseg_redundant_feature; +DROP INDEX unison.pfseg_redundant_feature; unisonunisonfalse2735273527352735]1259457832pfseg_score_idxINDEX;CREATE INDEX pfseg_score_idx ON pfseg USING btree (score); #DROP INDEX unison.pfseg_score_idx; unisonunisonfalse2735^1259457833pfsigcleave_qss_idxINDEXTCREATE INDEX pfsigcleave_qss_idx ON pfsigcleave USING btree (pseq_id, start, stop); 'DROP INDEX unison.pfsigcleave_qss_idx; unisonunisonfalse273627362736_1259457834!pfsigcleave_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfsigcleave_redundant_feature_idx ON pfsigcleave USING btree (params_id, pseq_id, start, stop); ALTER TABLE pfsigcleave CLUSTER ON pfsigcleave_redundant_feature_idx; 5DROP INDEX unison.pfsigcleave_redundant_feature_idx; unisonunisonfalse2736273627362736`1259457835pfsigcleave_score_idxINDEXGCREATE INDEX pfsigcleave_score_idx ON pfsigcleave USING btree (score); )DROP INDEX unison.pfsigcleave_score_idx; unisonunisonfalse2736a1259457836pfsignalphmm_pseq_id_idxINDEXMCREATE INDEX pfsignalphmm_pseq_id_idx ON pfsignalphmm USING btree (pseq_id); ,DROP INDEX unison.pfsignalphmm_pseq_id_idx; unisonunisonfalse2737b1259457837"pfsignalphmm_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfsignalphmm_redundant_feature_idx ON pfsignalphmm USING btree (params_id, pseq_id, start, stop); ALTER TABLE pfsignalphmm CLUSTER ON pfsignalphmm_redundant_feature_idx; 6DROP INDEX unison.pfsignalphmm_redundant_feature_idx; unisonunisonfalse27372737273727371259457838pfsignalpnn_pseq_id_idxINDEXKCREATE INDEX pfsignalpnn_pseq_id_idx ON pfsignalpnn USING btree (pseq_id); +DROP INDEX unison.pfsignalpnn_pseq_id_idx; unisonunisonfalse25501259457839!pfsignalpnn_redundant_feature_idxINDEXCREATE UNIQUE INDEX pfsignalpnn_redundant_feature_idx ON pfsignalpnn USING btree (params_id, pseq_id, start, stop); ALTER TABLE pfsignalpnn CLUSTER ON pfsignalpnn_redundant_feature_idx; 5DROP INDEX unison.pfsignalpnn_redundant_feature_idx; unisonunisonfalse2550255025502550 1259457840pftmdetect_analyze1_idxINDEXUCREATE INDEX pftmdetect_analyze1_idx ON pftmdetect USING btree (pseq_id, params_id); +DROP INDEX unison.pftmdetect_analyze1_idx; unisonunisonfalse24782478 1259457841pftmdetect_mine1_idxINDEX^CREATE INDEX pftmdetect_mine1_idx ON pftmdetect USING btree (params_id, type, prob, pseq_id); (DROP INDEX unison.pftmdetect_mine1_idx; unisonunisonfalse2478247824782478 1259457842pftmdetect_pseq_id_idxINDEXICREATE INDEX pftmdetect_pseq_id_idx ON pftmdetect USING btree (pseq_id); *DROP INDEX unison.pftmdetect_pseq_id_idx; unisonunisonfalse2478 1259457843 pftmdetect_redundant_feature_idxINDEXCREATE UNIQUE INDEX pftmdetect_redundant_feature_idx ON pftmdetect USING btree (params_id, pseq_id, start, stop); ALTER TABLE pftmdetect CLUSTER ON pftmdetect_redundant_feature_idx; 4DROP INDEX unison.pftmdetect_redundant_feature_idx; unisonunisonfalse24782478247824781259457844pftmhmm_qss_idxINDEXLCREATE INDEX pftmhmm_qss_idx ON pftmhmm USING btree (pseq_id, start, stop); #DROP INDEX unison.pftmhmm_qss_idx; unisonunisonfalse2546254625461259457848pftmhmm_redundant_feature_idxINDEXCREATE UNIQUE INDEX pftmhmm_redundant_feature_idx ON pftmhmm USING btree (params_id, pseq_id, start, stop, type); ALTER TABLE pftmhmm CLUSTER ON pftmhmm_redundant_feature_idx; 1DROP INDEX unison.pftmhmm_redundant_feature_idx; unisonunisonfalse254625462546254625461259457849pmap_aln_genasm_idxINDEXFCREATE INDEX pmap_aln_genasm_idx ON pmap_aln USING btree (genasm_id); 'DROP INDEX unison.pmap_aln_genasm_idx; unisonunisonfalse25671259457850pmap_aln_params_idxINDEXFCREATE INDEX pmap_aln_params_idx ON pmap_aln USING btree (params_id); 'DROP INDEX unison.pmap_aln_params_idx; unisonunisonfalse25671259457851pmap_aln_q_idxINDEX?CREATE INDEX pmap_aln_q_idx ON pmap_aln USING btree (pseq_id); "DROP INDEX unison.pmap_aln_q_idx; unisonunisonfalse25671259457852pmap_aln_search1_idxINDEX[CREATE INDEX pmap_aln_search1_idx ON pmap_aln USING btree (params_id, genasm_id, pseq_id); (DROP INDEX unison.pmap_aln_search1_idx; unisonunisonfalse2567256725671259457853pmap_alnhsp_search1_idxINDEXRCREATE INDEX pmap_alnhsp_search1_idx ON pmap_alnhsp USING btree (hsp_id, aln_id); +DROP INDEX unison.pmap_alnhsp_search1_idx; unisonunisonfalse256825681259457854pmap_alnhsp_unq_idxINDEXCREATE UNIQUE INDEX pmap_alnhsp_unq_idx ON pmap_alnhsp USING btree (aln_id, hsp_id); ALTER TABLE pmap_alnhsp CLUSTER ON pmap_alnhsp_unq_idx; 'DROP INDEX unison.pmap_alnhsp_unq_idx; unisonunisonfalse25682568h1259457855 pmap_chr_idxINDEX8CREATE INDEX pmap_chr_idx ON pmap_mv USING btree (chr); DROP INDEX unison.pmap_chr_idx; unisonunisonfalse2747i1259457856 pmap_g_idxINDEX<CREATE INDEX pmap_g_idx ON pmap_mv USING btree (genasm_id); DROP INDEX unison.pmap_g_idx; unisonunisonfalse2747 1259457857)pmap_gg_representative_genomic_search_idxINDEXCREATE INDEX pmap_gg_representative_genomic_search_idx ON pmap_gg_representative_mv USING btree (params_id, genasm_id, chr, strand, q_gstart, q_gstop); =DROP INDEX unison.pmap_gg_representative_genomic_search_idx; unisonunisonfalse2631263126312631263126311259457858"pmap_gg_representative_mv_pseq_idxINDEXqCREATE INDEX pmap_gg_representative_mv_pseq_idx ON pmap_gg_representative_mv USING btree (q_pseq_id, t_pseq_id); 6DROP INDEX unison.pmap_gg_representative_mv_pseq_idx; unisonunisonfalse26312631j1259457859pmap_gstart_idxINDEX>CREATE INDEX pmap_gstart_idx ON pmap_mv USING btree (gstart); #DROP INDEX unison.pmap_gstart_idx; unisonunisonfalse2747k1259457860pmap_gstop_idxINDEX<CREATE INDEX pmap_gstop_idx ON pmap_mv USING btree (gstop); "DROP INDEX unison.pmap_gstop_idx; unisonunisonfalse27471259457861pmap_hsp_chr_str_idxINDEXICREATE INDEX pmap_hsp_chr_str_idx ON pmap_hsp USING btree (chr, strand); (DROP INDEX unison.pmap_hsp_chr_str_idx; unisonunisonfalse256925691259457862pmap_hsp_g_lookup_idxINDEXoCREATE INDEX pmap_hsp_g_lookup_idx ON pmap_hsp USING btree (params_id, genasm_id, chr, strand, gstart, gstop); )DROP INDEX unison.pmap_hsp_g_lookup_idx; unisonunisonfalse2569256925692569256925691259457863pmap_hsp_q_lookup_idxINDEX\CREATE INDEX pmap_hsp_q_lookup_idx ON pmap_hsp USING btree (pseq_id, params_id, genasm_id); )DROP INDEX unison.pmap_hsp_q_lookup_idx; unisonunisonfalse2569256925691259457864pmap_hsp_str_idxINDEXHCREATE UNIQUE INDEX pmap_hsp_str_idx ON pmap_aln USING btree (hsp_str); $DROP INDEX unison.pmap_hsp_str_idx; unisonunisonfalse25671259457865pmap_hsp_unq_idxINDEXCREATE UNIQUE INDEX pmap_hsp_unq_idx ON pmap_hsp USING btree (params_id, genasm_id, chr, strand, gstart, gstop, pseq_id, pstart, pstop); ALTER TABLE pmap_hsp CLUSTER ON pmap_hsp_unq_idx; $DROP INDEX unison.pmap_hsp_unq_idx; unisonunisonfalse2569256925692569256925692569256925691259457866%pmap_locus_representative_mv_pseq_idxINDEXwCREATE INDEX pmap_locus_representative_mv_pseq_idx ON pmap_locus_representative_mv USING btree (q_pseq_id, t_pseq_id); 9DROP INDEX unison.pmap_locus_representative_mv_pseq_idx; unisonunisonfalse26292629l1259457867 pmap_p_idxINDEX<CREATE INDEX pmap_p_idx ON pmap_mv USING btree (params_id); DROP INDEX unison.pmap_p_idx; unisonunisonfalse2747o1259457868pmap_pfam_feature_idxINDEXJCREATE INDEX pmap_pfam_feature_idx ON pmap_pfam_mv USING btree (feature); )DROP INDEX unison.pmap_pfam_feature_idx; unisonunisonfalse2748p1259457869pmap_pfam_pseq_idxINDEXGCREATE INDEX pmap_pfam_pseq_idx ON pmap_pfam_mv USING btree (pseq_id); &DROP INDEX unison.pmap_pfam_pseq_idx; unisonunisonfalse2748q1259457870pmap_pfam_search1_idxINDEXpCREATE INDEX pmap_pfam_search1_idx ON pmap_pfam_mv USING btree (genasm_id, chr, strand, pfam_start, pfam_stop); )DROP INDEX unison.pmap_pfam_search1_idx; unisonunisonfalse27482748274827482748m1259457871 pmap_q_idxINDEX:CREATE INDEX pmap_q_idx ON pmap_mv USING btree (pseq_id); DROP INDEX unison.pmap_q_idx; unisonunisonfalse2747n1259457872pmap_strand_idxINDEX>CREATE INDEX pmap_strand_idx ON pmap_mv USING btree (strand); #DROP INDEX unison.pmap_strand_idx; unisonunisonfalse2747r1259457873#pmap_unambiguous_genomic_search_idxINDEXCREATE INDEX pmap_unambiguous_genomic_search_idx ON pmap_unambiguous_mv USING btree (params_id, genasm_id, chr, strand, gstart, gstop); ALTER TABLE pmap_unambiguous_mv CLUSTER ON pmap_unambiguous_genomic_search_idx; 7DROP INDEX unison.pmap_unambiguous_genomic_search_idx; unisonunisonfalse274927492749274927492749e1259457874,pmap_unambiguous_overlaps_genomic_search_idxINDEXCREATE INDEX pmap_unambiguous_overlaps_genomic_search_idx ON pmap_unambiguous_overlaps_mv USING btree (params_id, genasm_id, chr, strand, q_gstart, q_gstop); ALTER TABLE pmap_unambiguous_overlaps_mv CLUSTER ON pmap_unambiguous_overlaps_genomic_search_idx; @DROP INDEX unison.pmap_unambiguous_overlaps_genomic_search_idx; unisonunisonfalse274427442744274427442744f1259457875 pmap_unambiguous_overlaps_qq_idxINDEXgCREATE INDEX pmap_unambiguous_overlaps_qq_idx ON pmap_unambiguous_overlaps_mv USING btree (q_pseq_id); 4DROP INDEX unison.pmap_unambiguous_overlaps_qq_idx; unisonunisonfalse2744g1259457876 pmap_unambiguous_overlaps_tq_idxINDEXgCREATE INDEX pmap_unambiguous_overlaps_tq_idx ON pmap_unambiguous_overlaps_mv USING btree (t_pseq_id); 4DROP INDEX unison.pmap_unambiguous_overlaps_tq_idx; unisonunisonfalse2744s1259457877pmap_unambiguous_q_idxINDEXRCREATE INDEX pmap_unambiguous_q_idx ON pmap_unambiguous_mv USING btree (pseq_id); *DROP INDEX unison.pmap_unambiguous_q_idx; unisonunisonfalse2749 1259457878 pmhmm_acc_idxINDEX7CREATE INDEX pmhmm_acc_idx ON pmhmm USING btree (acc); !DROP INDEX unison.pmhmm_acc_idx; unisonunisonfalse2486 1259457879pmhmm_duplicate_model_idxINDEXUCREATE UNIQUE INDEX pmhmm_duplicate_model_idx ON pmhmm USING btree (acc, origin_id); -DROP INDEX unison.pmhmm_duplicate_model_idx; unisonunisonfalse24862486 1259457880pmhmm_name_idxINDEX9CREATE INDEX pmhmm_name_idx ON pmhmm USING btree (name); "DROP INDEX unison.pmhmm_name_idx; unisonunisonfalse2486 1259457881pmhmm_origin_id_idxINDEXCCREATE INDEX pmhmm_origin_id_idx ON pmhmm USING btree (origin_id); 'DROP INDEX unison.pmhmm_origin_id_idx; unisonunisonfalse2486 1259457882pmhmm_pkey_idxINDEXsCREATE UNIQUE INDEX pmhmm_pkey_idx ON pmhmm USING btree (pmodel_id); ALTER TABLE pmhmm CLUSTER ON pmhmm_pkey_idx; "DROP INDEX unison.pmhmm_pkey_idx; unisonunisonfalse2486t1259457883"pmodel2go_nonredundant_mapping_idxINDEXCREATE UNIQUE INDEX pmodel2go_nonredundant_mapping_idx ON pmodel2go USING btree (pmodel_id, go_id, reference); ALTER TABLE pmodel2go CLUSTER ON pmodel2go_nonredundant_mapping_idx; 6DROP INDEX unison.pmodel2go_nonredundant_mapping_idx; unisonunisonfalse275427542754 1259457884pmodel_name_idxINDEXjCREATE INDEX pmodel_name_idx ON pmodel USING btree (acc); ALTER TABLE pmodel CLUSTER ON pmodel_name_idx; #DROP INDEX unison.pmodel_name_idx; unisonunisonfalse2484 1259457885pmodel_origin_id_idxINDEXECREATE INDEX pmodel_origin_id_idx ON pmodel USING btree (origin_id); (DROP INDEX unison.pmodel_origin_id_idx; unisonunisonfalse2484}1259457886pmodelset_name_idxINDEXOCREATE UNIQUE INDEX pmodelset_name_idx ON pmodelset USING btree (upper(name)); &DROP INDEX unison.pmodelset_name_idx; unisonunisonfalse25301259457887pmprospect_name_idxINDEXBCREATE INDEX pmprospect_name_idx ON pmprospect USING btree (acc); 'DROP INDEX unison.pmprospect_name_idx; unisonunisonfalse25571259457888pmprospect_pseq_id_idxINDEXICREATE INDEX pmprospect_pseq_id_idx ON pmprospect USING btree (pseq_id); *DROP INDEX unison.pmprospect_pseq_id_idx; unisonunisonfalse25571259457889pmprospect_redundant_name_idxINDEX^CREATE UNIQUE INDEX pmprospect_redundant_name_idx ON pmprospect USING btree (origin_id, acc); 1DROP INDEX unison.pmprospect_redundant_name_idx; unisonunisonfalse25572557 1259457890pmprospect_scop_sunid_idxINDEXRCREATE INDEX pmprospect_scop_sunid_idx ON pmprospect_scop_mv USING btree (sunid); -DROP INDEX unison.pmprospect_scop_sunid_idx; unisonunisonfalse2483 1259457891pmprospect_scop_uniq_idxINDEXCREATE UNIQUE INDEX pmprospect_scop_uniq_idx ON pmprospect_scop_mv USING btree (pmodel_id, sunid); ALTER TABLE pmprospect_scop_mv CLUSTER ON pmprospect_scop_uniq_idx; ,DROP INDEX unison.pmprospect_scop_uniq_idx; unisonunisonfalse248324831259457892pmprospect_unq_idxINDEXSCREATE UNIQUE INDEX pmprospect_unq_idx ON pmprospect USING btree (pmodel_id, acc); &DROP INDEX unison.pmprospect_unq_idx; unisonunisonfalse255725571259457893pmpseq_pmodel_id_idxINDEXCREATE UNIQUE INDEX pmpseq_pmodel_id_idx ON pmpseq USING btree (pmodel_id); ALTER TABLE pmpseq CLUSTER ON pmpseq_pmodel_id_idx; (DROP INDEX unison.pmpseq_pmodel_id_idx; unisonunisonfalse25421259457895pmpseq_pseq_id_idxINDEXHCREATE UNIQUE INDEX pmpseq_pseq_id_idx ON pmpseq USING btree (pseq_id); &DROP INDEX unison.pmpseq_pseq_id_idx; unisonunisonfalse25421259457896pmpseq_search1_idxINDEXLCREATE INDEX pmpseq_search1_idx ON pmpseq USING btree (pmodel_id, pseq_id); &DROP INDEX unison.pmpseq_search1_idx; unisonunisonfalse254225421259457897pmpseq_search2_idxINDEXLCREATE INDEX pmpseq_search2_idx ON pmpseq USING btree (pseq_id, pmodel_id); &DROP INDEX unison.pmpseq_search2_idx; unisonunisonfalse25422542w1259457898pmpssm_duplicate_model_idxINDEXCREATE UNIQUE INDEX pmpssm_duplicate_model_idx ON pmpssm USING btree (origin_id, acc, md5); ALTER TABLE pmpssm CLUSTER ON pmpssm_duplicate_model_idx; .DROP INDEX unison.pmpssm_duplicate_model_idx; unisonunisonfalse275827582758x1259457899pmpssm_pmodel_id_idxINDEXLCREATE UNIQUE INDEX pmpssm_pmodel_id_idx ON pmpssm USING btree (pmodel_id); (DROP INDEX unison.pmpssm_pmodel_id_idx; unisonunisonfalse27581259457900pmregexp_origin_id_idxINDEXICREATE INDEX pmregexp_origin_id_idx ON pmregexp USING btree (origin_id); *DROP INDEX unison.pmregexp_origin_id_idx; unisonunisonfalse25311259457901pmregexp_pmodel_id_idxINDEXCREATE UNIQUE INDEX pmregexp_pmodel_id_idx ON pmregexp USING btree (pmodel_id); ALTER TABLE pmregexp CLUSTER ON pmregexp_pmodel_id_idx; *DROP INDEX unison.pmregexp_pmodel_id_idx; unisonunisonfalse25311259457902#pmsm_pmhmm_model_already_in_set_idxINDEXCREATE UNIQUE INDEX pmsm_pmhmm_model_already_in_set_idx ON pmsm_pmhmm USING btree (pmodelset_id, pmodel_id); ALTER TABLE pmsm_pmhmm CLUSTER ON pmsm_pmhmm_model_already_in_set_idx; 7DROP INDEX unison.pmsm_pmhmm_model_already_in_set_idx; unisonunisonfalse253225321259457903pmsm_pmhmm_pmodel_id_idxINDEXMCREATE INDEX pmsm_pmhmm_pmodel_id_idx ON pmsm_pmhmm USING btree (pmodel_id); ,DROP INDEX unison.pmsm_pmhmm_pmodel_id_idx; unisonunisonfalse25321259457904pmsm_pmhmm_pmodelset_id_idxINDEXSCREATE INDEX pmsm_pmhmm_pmodelset_id_idx ON pmsm_pmhmm USING btree (pmodelset_id); /DROP INDEX unison.pmsm_pmhmm_pmodelset_id_idx; unisonunisonfalse2532 1259457905pmsm_pmodel_id_idxINDEXACREATE INDEX pmsm_pmodel_id_idx ON pmsm USING btree (pmodel_id); &DROP INDEX unison.pmsm_pmodel_id_idx; unisonunisonfalse2480 1259457906pmsm_pmodelset_id_idxINDEX{CREATE INDEX pmsm_pmodelset_id_idx ON pmsm USING btree (pmodelset_id); ALTER TABLE pmsm CLUSTER ON pmsm_pmodelset_id_idx; )DROP INDEX unison.pmsm_pmodelset_id_idx; unisonunisonfalse2480 1259457907(pmsm_pmprospect_model_already_in_set_idxINDEXCREATE UNIQUE INDEX pmsm_pmprospect_model_already_in_set_idx ON pmsm_pmprospect USING btree (pmodelset_id, pmodel_id); ALTER TABLE pmsm_pmprospect CLUSTER ON pmsm_pmprospect_model_already_in_set_idx; <DROP INDEX unison.pmsm_pmprospect_model_already_in_set_idx; unisonunisonfalse24812481u1259457908$pmsm_pmpssm_model_already_in_set_idxINDEXCREATE UNIQUE INDEX pmsm_pmpssm_model_already_in_set_idx ON pmsm_pmpssm USING btree (pmodelset_id, pmodel_id); ALTER TABLE pmsm_pmpssm CLUSTER ON pmsm_pmpssm_model_already_in_set_idx; 8DROP INDEX unison.pmsm_pmpssm_model_already_in_set_idx; unisonunisonfalse27552755v1259457909pmsm_pmpssm_pmodel_id_idxINDEXOCREATE INDEX pmsm_pmpssm_pmodel_id_idx ON pmsm_pmpssm USING btree (pmodel_id); -DROP INDEX unison.pmsm_pmpssm_pmodel_id_idx; unisonunisonfalse2755 1259457910pmsm_prospect_pmodel_id_idxINDEXUCREATE INDEX pmsm_prospect_pmodel_id_idx ON pmsm_pmprospect USING btree (pmodel_id); /DROP INDEX unison.pmsm_prospect_pmodel_id_idx; unisonunisonfalse24811259457911$pmsm_regexp_model_already_in_set_idxINDEXCREATE UNIQUE INDEX pmsm_regexp_model_already_in_set_idx ON pmsm_pmregexp USING btree (pmodelset_id, pmodel_id); ALTER TABLE pmsm_pmregexp CLUSTER ON pmsm_regexp_model_already_in_set_idx; 8DROP INDEX unison.pmsm_regexp_model_already_in_set_idx; unisonunisonfalse253325331259457912pmsm_regexp_pmodel_id_idxINDEXQCREATE INDEX pmsm_regexp_pmodel_id_idx ON pmsm_pmregexp USING btree (pmodel_id); -DROP INDEX unison.pmsm_regexp_pmodel_id_idx; unisonunisonfalse2533y1259457913pnote_pseq_id_idxINDEXpCREATE INDEX pnote_pseq_id_idx ON pnote USING btree (pseq_id); ALTER TABLE pnote CLUSTER ON pnote_pseq_id_idx; %DROP INDEX unison.pnote_pseq_id_idx; unisonunisonfalse27601259457914psdisorder_q_idxINDEXCCREATE INDEX psdisorder_q_idx ON psdisorder USING btree (pseq_id); $DROP INDEX unison.psdisorder_q_idx; unisonunisonfalse26371259457915#psdisorder_redundant_prediction_idxINDEXCREATE INDEX psdisorder_redundant_prediction_idx ON psdisorder USING btree (params_id, pseq_id); ALTER TABLE psdisorder CLUSTER ON psdisorder_redundant_prediction_idx; 7DROP INDEX unison.psdisorder_redundant_prediction_idx; unisonunisonfalse26372637z1259457916pseq2go_origin_id_idxINDEXGCREATE INDEX pseq2go_origin_id_idx ON pseq2go USING btree (origin_id); )DROP INDEX unison.pseq2go_origin_id_idx; unisonunisonfalse2762{1259457917pseq2go_pseq_id_idxINDEXxCREATE INDEX pseq2go_pseq_id_idx ON pseq2go USING btree (pseq_id); ALTER TABLE pseq2go CLUSTER ON pseq2go_pseq_id_idx; 'DROP INDEX unison.pseq2go_pseq_id_idx; unisonunisonfalse2762 1259457918pseq_added_idxINDEX9CREATE INDEX pseq_added_idx ON pseq USING btree (added); "DROP INDEX unison.pseq_added_idx; unisonunisonfalse24721259457919pseq_gene_mv_gene_idINDEXICREATE INDEX pseq_gene_mv_gene_id ON pseq_gene_mv USING btree (gene_id); (DROP INDEX unison.pseq_gene_mv_gene_id; unisonunisonfalse26251259457920pseq_gene_mv_pseq_idINDEXICREATE INDEX pseq_gene_mv_pseq_id ON pseq_gene_mv USING btree (pseq_id); (DROP INDEX unison.pseq_gene_mv_pseq_id; unisonunisonfalse2625 1259457921 pseq_len_idxINDEX5CREATE INDEX pseq_len_idx ON pseq USING btree (len); DROP INDEX unison.pseq_len_idx; unisonunisonfalse2472 1259457922 pseq_md5_idxINDEX<CREATE UNIQUE INDEX pseq_md5_idx ON pseq USING btree (md5); DROP INDEX unison.pseq_md5_idx; unisonunisonfalse24721259457923pseq_probe_serach1_idxINDEXCREATE INDEX pseq_probe_serach1_idx ON pseq_probe_mv USING btree (pseq_id, params_id, genasm_id); ALTER TABLE pseq_probe_mv CLUSTER ON pseq_probe_serach1_idx; *DROP INDEX unison.pseq_probe_serach1_idx; unisonunisonfalse262626262626 1259457924pseqalias_current_palias_id_idxINDEXCREATE INDEX pseqalias_current_palias_id_idx ON pseq_pannotation USING btree (pseq_id, pannotation_id) WHERE (is_current = true); 3DROP INDEX unison.pseqalias_current_palias_id_idx; unisonunisonfalse24902490249000%INDEX pseqalias_current_palias_id_idxCOMMENTXCOMMENT ON INDEX pseqalias_current_palias_id_idx IS 'rapid pseq_id->palias_id mapping'; unisonunisonfalse3554 1259457925'pseqalias_current_palias_id_pseq_id_idxINDEXCREATE INDEX pseqalias_current_palias_id_pseq_id_idx ON pseq_pannotation USING btree (pannotation_id, pseq_id) WHERE (is_current = true); ;DROP INDEX unison.pseqalias_current_palias_id_pseq_id_idx; unisonunisonfalse249024902490 1259457926)pseqalias_duplicate_alias_and_version_idxINDEXCREATE UNIQUE INDEX pseqalias_duplicate_alias_and_version_idx ON pseq_pannotation USING btree (pannotation_id, version); ALTER TABLE pseq_pannotation CLUSTER ON pseqalias_duplicate_alias_and_version_idx; =DROP INDEX unison.pseqalias_duplicate_alias_and_version_idx; unisonunisonfalse24902490 1259457927pseqalias_is_current_idxINDEXTCREATE INDEX pseqalias_is_current_idx ON pseq_pannotation USING btree (is_current); ,DROP INDEX unison.pseqalias_is_current_idx; unisonunisonfalse2490 1259457928)pseqalias_one_iscurrent_per_palias_id_idxINDEXCREATE UNIQUE INDEX pseqalias_one_iscurrent_per_palias_id_idx ON pseq_pannotation USING btree (pannotation_id) WHERE (is_current = true); =DROP INDEX unison.pseqalias_one_iscurrent_per_palias_id_idx; unisonunisonfalse24902490 1259457929pseqalias_pseq_id_idxINDEXNCREATE INDEX pseqalias_pseq_id_idx ON pseq_pannotation USING btree (pseq_id); )DROP INDEX unison.pseqalias_pseq_id_idx; unisonunisonfalse2490 1259457930pseqalias_ref_pseq_id_idxINDEXVCREATE INDEX pseqalias_ref_pseq_id_idx ON pseq_pannotation USING btree (ref_pseq_id); -DROP INDEX unison.pseqalias_ref_pseq_id_idx; unisonunisonfalse2490 1259457931pseqset_pseq_id_idxINDEXCCREATE INDEX pseqset_pseq_id_idx ON pseqset USING btree (pseq_id); 'DROP INDEX unison.pseqset_pseq_id_idx; unisonunisonfalse2487 1259457932pseqset_pseq_id_pset_id_idxINDEX[CREATE UNIQUE INDEX pseqset_pseq_id_pset_id_idx ON pseqset USING btree (pseq_id, pset_id); /DROP INDEX unison.pseqset_pseq_id_pset_id_idx; unisonunisonfalse24872487 1259457933pseqset_seq_already_in_set_idxINDEXCREATE UNIQUE INDEX pseqset_seq_already_in_set_idx ON pseqset USING btree (pset_id, pseq_id); ALTER TABLE pseqset CLUSTER ON pseqset_seq_already_in_set_idx; 2DROP INDEX unison.pseqset_seq_already_in_set_idx; unisonunisonfalse24872487 1259457934 pset_name_idxINDEXECREATE UNIQUE INDEX pset_name_idx ON pset USING btree (upper(name)); !DROP INDEX unison.pset_name_idx; unisonunisonfalse24881259457935psipred_params_idxINDEXDCREATE INDEX psipred_params_idx ON psipred USING btree (params_id); &DROP INDEX unison.psipred_params_idx; unisonunisonfalse28041259457936psprotcomp_int_idxINDEXUCREATE INDEX psprotcomp_int_idx ON psprotcomp USING btree (int_psloc_id, int_score); &DROP INDEX unison.psprotcomp_int_idx; unisonunisonfalse256325631259457937psprotcomp_nn_idxINDEXRCREATE INDEX psprotcomp_nn_idx ON psprotcomp USING btree (nn_psloc_id, nn_score); %DROP INDEX unison.psprotcomp_nn_idx; unisonunisonfalse256325631259457938psprotcomp_pseq_id_idxINDEXICREATE INDEX psprotcomp_pseq_id_idx ON psprotcomp USING btree (pseq_id); *DROP INDEX unison.psprotcomp_pseq_id_idx; unisonunisonfalse25631259457939psprotcomp_sim_idxINDEXUCREATE INDEX psprotcomp_sim_idx ON psprotcomp USING btree (sim_psloc_id, sim_score); &DROP INDEX unison.psprotcomp_sim_idx; unisonunisonfalse256325631259457940run_history_qr_idxINDEXCREATE UNIQUE INDEX run_history_qr_idx ON run_history USING btree (pseq_id, run_id); ALTER TABLE run_history CLUSTER ON run_history_qr_idx; &DROP INDEX unison.run_history_qr_idx; unisonunisonfalse256125611259457941run_history_r_idxINDEXDCREATE INDEX run_history_r_idx ON run_history USING btree (run_id); %DROP INDEX unison.run_history_r_idx; unisonunisonfalse25611259457942run_params_modelset_unique1INDEX^CREATE UNIQUE INDEX run_params_modelset_unique1 ON run USING btree (params_id, pmodelset_id); /DROP INDEX unison.run_params_modelset_unique1; unisonunisonfalse255225521259457943run_params_modelset_unique2INDEXmCREATE UNIQUE INDEX run_params_modelset_unique2 ON run USING btree (params_id) WHERE (pmodelset_id IS NULL); /DROP INDEX unison.run_params_modelset_unique2; unisonunisonfalse255225521259457944cytoband_chr_gstop_unique_idxINDEX]CREATE UNIQUE INDEX cytoband_chr_gstop_unique_idx ON cytoband_hg18 USING btree (chr, gstop); 5DROP INDEX unison_aux.cytoband_chr_gstop_unique_idx;  unison_auxunisonfalse262326231259457945hugo_approved_name_idxINDEXICREATE INDEX hugo_approved_name_idx ON hugo USING btree (approved_name); .DROP INDEX unison_aux.hugo_approved_name_idx;  unison_auxunisonfalse28111259457946hugo_approved_symbold_idxINDEXVCREATE UNIQUE INDEX hugo_approved_symbold_idx ON hugo USING btree (approved_symbold); 1DROP INDEX unison_aux.hugo_approved_symbold_idx;  unison_auxunisonfalse28111259457947hugo_entrez_gene_id_idxINDEXKCREATE INDEX hugo_entrez_gene_id_idx ON hugo USING btree (entrez_gene_id); /DROP INDEX unison_aux.hugo_entrez_gene_id_idx;  unison_auxunisonfalse28111259457948hugo_entrez_gene_id_md_idxINDEXQCREATE INDEX hugo_entrez_gene_id_md_idx ON hugo USING btree (entrez_gene_id_md); 2DROP INDEX unison_aux.hugo_entrez_gene_id_md_idx;  unison_auxunisonfalse28111259457949hugo_gdb_id_md_idxINDEXACREATE INDEX hugo_gdb_id_md_idx ON hugo USING btree (gdb_id_md); *DROP INDEX unison_aux.hugo_gdb_id_md_idx;  unison_auxunisonfalse28111259457950hugo_gene_family_name_idxINDEXOCREATE INDEX hugo_gene_family_name_idx ON hugo USING btree (gene_family_name); 1DROP INDEX unison_aux.hugo_gene_family_name_idx;  unison_auxunisonfalse28111259457951hugo_omim_id_md_idxINDEXCCREATE INDEX hugo_omim_id_md_idx ON hugo USING btree (omim_id_md); +DROP INDEX unison_aux.hugo_omim_id_md_idx;  unison_auxunisonfalse28111259457952hugo_refseq_md_idxINDEXACREATE INDEX hugo_refseq_md_idx ON hugo USING btree (refseq_md); *DROP INDEX unison_aux.hugo_refseq_md_idx;  unison_auxunisonfalse28111259457953hugo_status_idxINDEX;CREATE INDEX hugo_status_idx ON hugo USING btree (status); 'DROP INDEX unison_aux.hugo_status_idx;  unison_auxunisonfalse28111259457954hugo_uniprot_id_md_idxINDEXICREATE INDEX hugo_uniprot_id_md_idx ON hugo USING btree (uniprot_id_md); .DROP INDEX unison_aux.hugo_uniprot_id_md_idx;  unison_auxunisonfalse2811|1259457955 ptm_seq_aliasINDEX7CREATE INDEX ptm_seq_alias ON ptm USING btree (alias); %DROP INDEX unison_aux.ptm_seq_alias;  unison_auxunisonfalse27751259457956 ptm_type_origin_ptm_type_unq_idxINDEXdCREATE UNIQUE INDEX ptm_type_origin_ptm_type_unq_idx ON ptm_type USING btree (origin_id, ptm_type); 8DROP INDEX unison_aux.ptm_type_origin_ptm_type_unq_idx;  unison_auxunisonfalse2812281292620457957residue_atomres_triggerTRIGGERCREATE TRIGGER residue_atomres_trigger BEFORE INSERT OR UPDATE ON residue FOR EACH ROW EXECUTE PROCEDURE residue_atomres_trigger(); 5DROP TRIGGER residue_atomres_trigger ON pdb.residue; pdbunisonfalse69259512620457958paprospect_i_triggerTRIGGERCREATE TRIGGER paprospect_i_trigger BEFORE INSERT ON paprospect FOR EACH ROW EXECUTE PROCEDURE paprospect_i_trigger(); 8DROP TRIGGER paprospect_i_trigger ON unison.paprospect; unisonunisonfalse143247962620457959papseq_iu_triggerTRIGGERCREATE TRIGGER papseq_iu_trigger BEFORE INSERT OR UPDATE ON papseq FOR EACH ROW EXECUTE PROCEDURE papseq_iu_trigger(); 1DROP TRIGGER papseq_iu_trigger ON unison.papseq; unisonunisonfalse1442541:2620457960perftest_iu_triggerTRIGGERCREATE TRIGGER perftest_iu_trigger BEFORE INSERT OR UPDATE ON perftest_platform FOR EACH ROW EXECUTE PROCEDURE perftest_iu_trigger_fx(); >DROP TRIGGER perftest_iu_trigger ON unison.perftest_platform; unisonunisonfalse2724149;2620457961pfbigpi_site_triggerTRIGGERCREATE TRIGGER pfbigpi_site_trigger BEFORE INSERT ON pfbigpi FOR EACH ROW EXECUTE PROCEDURE pfbigpi_site_trigger(); 5DROP TRIGGER pfbigpi_site_trigger ON unison.pfbigpi; unisonunisonfalse272915072620457962pmap_hsp_str_triggerTRIGGERCREATE TRIGGER pmap_hsp_str_trigger BEFORE INSERT ON pmap_aln FOR EACH ROW EXECUTE PROCEDURE pmap_hsp_str_trigger(); 6DROP TRIGGER pmap_hsp_str_trigger ON unison.pmap_aln; unisonunisonfalse153256732620457963pmregexp_u_triggerTRIGGER}CREATE TRIGGER pmregexp_u_trigger BEFORE UPDATE ON pmregexp FOR EACH ROW EXECUTE PROCEDURE pmregexp_u_trigger(); 4DROP TRIGGER pmregexp_u_trigger ON unison.pmregexp; unisonunisonfalse253116142620457964pmsm_pmhmm_immutable_triggerTRIGGERCREATE TRIGGER pmsm_pmhmm_immutable_trigger BEFORE INSERT OR DELETE OR UPDATE ON pmsm_pmhmm FOR EACH ROW EXECUTE PROCEDURE pmodelset_immutable_trigger(); @DROP TRIGGER pmsm_pmhmm_immutable_trigger ON unison.pmsm_pmhmm; unisonunisonfalse253215722620457965!pmsm_pmprospect_immutable_triggerTRIGGERCREATE TRIGGER pmsm_pmprospect_immutable_trigger BEFORE INSERT OR DELETE OR UPDATE ON pmsm_pmprospect FOR EACH ROW EXECUTE PROCEDURE pmodelset_immutable_trigger(); JDROP TRIGGER pmsm_pmprospect_immutable_trigger ON unison.pmsm_pmprospect; unisonunisonfalse157248152620457966pmsm_pmregexp_immutable_triggerTRIGGERCREATE TRIGGER pmsm_pmregexp_immutable_trigger BEFORE INSERT OR DELETE OR UPDATE ON pmsm_pmregexp FOR EACH ROW EXECUTE PROCEDURE pmodelset_immutable_trigger(); FDROP TRIGGER pmsm_pmregexp_immutable_trigger ON unison.pmsm_pmregexp; unisonunisonfalse1572533<2620457967pnote_iu_triggerTRIGGERCREATE TRIGGER pnote_iu_trigger BEFORE INSERT OR UPDATE ON pnote FOR EACH ROW EXECUTE PROCEDURE pnote_iu_trigger(); /DROP TRIGGER pnote_iu_trigger ON unison.pnote; unisonunisonfalse2760162/2620457968pseq_after_i_triggerTRIGGER|CREATE TRIGGER pseq_after_i_trigger AFTER INSERT ON pseq FOR EACH ROW EXECUTE PROCEDURE pseq_after_i_trigger(); 2DROP TRIGGER pseq_after_i_trigger ON unison.pseq; unisonunisonfalse163247282620457969pseq_genasm_params_triggerTRIGGERCREATE CONSTRAINT TRIGGER pseq_genasm_params_trigger AFTER INSERT ON pmap_aln DEFERRABLE INITIALLY DEFERRED FOR EACH ROW EXECUTE PROCEDURE pseq_genasm_params_trigger(); <DROP TRIGGER pseq_genasm_params_trigger ON unison.pmap_aln; unisonunisonfalse164256702620457970pseq_iu_triggerTRIGGER}CREATE TRIGGER pseq_iu_trigger BEFORE INSERT OR UPDATE ON pseq FOR EACH ROW EXECUTE PROCEDURE pseq_iu_trigger(); -DROP TRIGGER pseq_iu_trigger ON unison.pseq; unisonunisonfalse24721662606457971$1 FK CONSTRAINTALTER TABLE ONLY is_a ADD CONSTRAINT "$1" FOREIGN KEY (go_id1) REFERENCES node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 1ALTER TABLE ONLY gong.is_a DROP CONSTRAINT "$1"; gongunisonfalse2519369025182606457976$1 FK CONSTRAINTALTER TABLE ONLY part_of ADD CONSTRAINT "$1" FOREIGN KEY (go_id1) REFERENCES node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 4ALTER TABLE ONLY gong.part_of DROP CONSTRAINT "$1"; gongunisonfalse2520369025192606457981$1 FK CONSTRAINTALTER TABLE ONLY alias ADD CONSTRAINT "$1" FOREIGN KEY (go_id) REFERENCES node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 2ALTER TABLE ONLY gong.alias DROP CONSTRAINT "$1"; gongunisonfalse2516369025192606457986$2 FK CONSTRAINTALTER TABLE ONLY is_a ADD CONSTRAINT "$2" FOREIGN KEY (go_id2) REFERENCES node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 1ALTER TABLE ONLY gong.is_a DROP CONSTRAINT "$2"; gongunisonfalse2519251836902606457991$2 FK CONSTRAINTALTER TABLE ONLY part_of ADD CONSTRAINT "$2" FOREIGN KEY (go_id2) REFERENCES node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 4ALTER TABLE ONLY gong.part_of DROP CONSTRAINT "$2"; gongunisonfalse2519369025202606457996alias_id_exists FK CONSTRAINTALTER TABLE ONLY node ADD CONSTRAINT alias_id_exists FOREIGN KEY (alias_id) REFERENCES alias(alias_id) ON UPDATE CASCADE ON DELETE SET NULL; <ALTER TABLE ONLY gong.node DROP CONSTRAINT alias_id_exists; gongunisonfalse2516251936842606458001chain_pdbid_fkey FK CONSTRAINTALTER TABLE ONLY chain ADD CONSTRAINT chain_pdbid_fkey FOREIGN KEY (pdbid) REFERENCES summary(pdbid) ON UPDATE CASCADE ON DELETE CASCADE; =ALTER TABLE ONLY pdb.chain DROP CONSTRAINT chain_pdbid_fkey; pdbunisonfalse2548259638362606458006ligand_atoms_ligand_id_fkey FK CONSTRAINTALTER TABLE ONLY ligand_atoms ADD CONSTRAINT ligand_atoms_ligand_id_fkey FOREIGN KEY (ligand_id) REFERENCES ligand(ligand_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY pdb.ligand_atoms DROP CONSTRAINT ligand_atoms_ligand_id_fkey; pdbunisonfalse2578257738242606458011%ligand_bonds_ligand_id_atom_id_1_fkey FK CONSTRAINTALTER TABLE ONLY ligand_bonds ADD CONSTRAINT ligand_bonds_ligand_id_atom_id_1_fkey FOREIGN KEY (ligand_id, atom_id_1) REFERENCES ligand_atoms(ligand_id, atom_id) ON UPDATE CASCADE ON DELETE CASCADE; YALTER TABLE ONLY pdb.ligand_bonds DROP CONSTRAINT ligand_bonds_ligand_id_atom_id_1_fkey; pdbunisonfalse382625782578257925792606458016%ligand_bonds_ligand_id_atom_id_2_fkey FK CONSTRAINTALTER TABLE ONLY ligand_bonds ADD CONSTRAINT ligand_bonds_ligand_id_atom_id_2_fkey FOREIGN KEY (ligand_id, atom_id_2) REFERENCES ligand_atoms(ligand_id, atom_id) ON UPDATE CASCADE ON DELETE CASCADE; YALTER TABLE ONLY pdb.ligand_bonds DROP CONSTRAINT ligand_bonds_ligand_id_atom_id_2_fkey; pdbunisonfalse382625792579257825782606458021!ligand_descriptors_ligand_id_fkey FK CONSTRAINTALTER TABLE ONLY ligand_descriptors ADD CONSTRAINT ligand_descriptors_ligand_id_fkey FOREIGN KEY (ligand_id) REFERENCES ligand(ligand_id) ON UPDATE CASCADE ON DELETE CASCADE; [ALTER TABLE ONLY pdb.ligand_descriptors DROP CONSTRAINT ligand_descriptors_ligand_id_fkey; pdbunisonfalse3824257725392606458026!ligand_descriptors_origin_id_fkey FK CONSTRAINTALTER TABLE ONLY ligand_descriptors ADD CONSTRAINT ligand_descriptors_origin_id_fkey FOREIGN KEY (descriptor_origin_id) REFERENCES descriptor_origin(descriptor_origin_id) ON UPDATE CASCADE ON DELETE CASCADE; [ALTER TABLE ONLY pdb.ligand_descriptors DROP CONSTRAINT ligand_descriptors_origin_id_fkey; pdbunisonfalse2539373625382606458031pdb_ligand_pdbid_fkey FK CONSTRAINTALTER TABLE ONLY pdb_ligand ADD CONSTRAINT pdb_ligand_pdbid_fkey FOREIGN KEY (pdbid) REFERENCES summary(pdbid) ON UPDATE CASCADE ON DELETE CASCADE; GALTER TABLE ONLY pdb.pdb_ligand DROP CONSTRAINT pdb_ligand_pdbid_fkey; pdbunisonfalse3836259625932606458036residue_pdbc_fkey FK CONSTRAINTALTER TABLE ONLY residue ADD CONSTRAINT residue_pdbc_fkey FOREIGN KEY (pdbc) REFERENCES chain(pdbc) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY pdb.residue DROP CONSTRAINT residue_pdbc_fkey; pdbunisonfalse376725952548)2606458041$1 FK CONSTRAINTALTER TABLE ONLY pseq2go ADD CONSTRAINT "$1" FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; 6ALTER TABLE ONLY unison.pseq2go DROP CONSTRAINT "$1"; unisonunisonfalse349827622472$2606458046$1 FK CONSTRAINTALTER TABLE ONLY pmodel2go ADD CONSTRAINT "$1" FOREIGN KEY (go_id) REFERENCES gong.node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 8ALTER TABLE ONLY unison.pmodel2go DROP CONSTRAINT "$1"; unisonunisonfalse3690275425192606458051$1 FK CONSTRAINTALTER TABLE ONLY params ADD CONSTRAINT "$1" FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; 5ALTER TABLE ONLY unison.params DROP CONSTRAINT "$1"; unisonunisonfalse254925513775*2606458056$2 FK CONSTRAINTALTER TABLE ONLY pseq2go ADD CONSTRAINT "$2" FOREIGN KEY (go_id) REFERENCES gong.node(go_id) ON UPDATE CASCADE ON DELETE CASCADE; 6ALTER TABLE ONLY unison.pseq2go DROP CONSTRAINT "$2"; unisonunisonfalse369025192762+2606458061$3 FK CONSTRAINTALTER TABLE ONLY pseq2go ADD CONSTRAINT "$3" FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; 6ALTER TABLE ONLY unison.pseq2go DROP CONSTRAINT "$3"; unisonunisonfalse3706276225292606458066aliasset_alias_aliasset_id_fkey FK CONSTRAINTALTER TABLE ONLY aliasset_alias ADD CONSTRAINT aliasset_alias_aliasset_id_fkey FOREIGN KEY (aliasset_id) REFERENCES aliasset(aliasset_id) ON UPDATE CASCADE ON DELETE CASCADE; XALTER TABLE ONLY unison.aliasset_alias DROP CONSTRAINT aliasset_alias_aliasset_id_fkey; unisonunisonfalse3869266526642606458071aliasset_alias_pseq_id_fkey FK CONSTRAINTALTER TABLE ONLY aliasset_alias ADD CONSTRAINT aliasset_alias_pseq_id_fkey FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE SET NULL; TALTER TABLE ONLY unison.aliasset_alias DROP CONSTRAINT aliasset_alias_pseq_id_fkey; unisonunisonfalse2472266534982606458076aln_genasm_id_exists FK CONSTRAINTxALTER TABLE ONLY pmap_aln ADD CONSTRAINT aln_genasm_id_exists FOREIGN KEY (genasm_id) REFERENCES genasm(genasm_id); GALTER TABLE ONLY unison.pmap_aln DROP CONSTRAINT aln_genasm_id_exists; unisonunisonfalse2687256738832606458081aln_params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_aln ADD CONSTRAINT aln_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; GALTER TABLE ONLY unison.pmap_aln DROP CONSTRAINT aln_params_id_exists; unisonunisonfalse3770256725492606458086aln_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_aln ADD CONSTRAINT aln_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.pmap_aln DROP CONSTRAINT aln_pseq_id_exists; unisonunisonfalse2472256734982606458094genasm_id_exists FK CONSTRAINTALTER TABLE ONLY p2gblathsp ADD CONSTRAINT genasm_id_exists FOREIGN KEY (genasm_id) REFERENCES genasm(genasm_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.p2gblathsp DROP CONSTRAINT genasm_id_exists; unisonunisonfalse2687247138832606458099genasm_id_exists FK CONSTRAINTALTER TABLE ONLY pcluster ADD CONSTRAINT genasm_id_exists FOREIGN KEY (genasm_id) REFERENCES genasm(genasm_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.pcluster DROP CONSTRAINT genasm_id_exists; unisonunisonfalse3883268727212606458104hsp_genasm_id_exists FK CONSTRAINTxALTER TABLE ONLY pmap_hsp ADD CONSTRAINT hsp_genasm_id_exists FOREIGN KEY (genasm_id) REFERENCES genasm(genasm_id); GALTER TABLE ONLY unison.pmap_hsp DROP CONSTRAINT hsp_genasm_id_exists; unisonunisonfalse2687388325692606458109hsp_params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_hsp ADD CONSTRAINT hsp_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; GALTER TABLE ONLY unison.pmap_hsp DROP CONSTRAINT hsp_params_id_exists; unisonunisonfalse2569254937702606458114hsp_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_hsp ADD CONSTRAINT hsp_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.pmap_hsp DROP CONSTRAINT hsp_pseq_id_exists; unisonunisonfalse2472349825692606458119origin_id_exists FK CONSTRAINTALTER TABLE ONLY pmodel ADD CONSTRAINT origin_id_exists FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; AALTER TABLE ONLY unison.pmodel DROP CONSTRAINT origin_id_exists; unisonunisonfalse2484370625292606458124origin_id_exists FK CONSTRAINTALTER TABLE ONLY pannotation ADD CONSTRAINT origin_id_exists FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pannotation DROP CONSTRAINT origin_id_exists; unisonunisonfalse3706252924892606458129origin_id_exists FK CONSTRAINTALTER TABLE ONLY pmhmm ADD CONSTRAINT origin_id_exists FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY unison.pmhmm DROP CONSTRAINT origin_id_exists; unisonunisonfalse3706252924862606458134origin_id_exists FK CONSTRAINTALTER TABLE ONLY pmregexp ADD CONSTRAINT origin_id_exists FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.pmregexp DROP CONSTRAINT origin_id_exists; unisonunisonfalse2529253137062606458139origin_id_exists FK CONSTRAINTALTER TABLE ONLY pmprospect ADD CONSTRAINT origin_id_exists FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.pmprospect DROP CONSTRAINT origin_id_exists; unisonunisonfalse255737062529'2606458144origin_id_exists FK CONSTRAINTALTER TABLE ONLY pmpssm ADD CONSTRAINT origin_id_exists FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; AALTER TABLE ONLY unison.pmpssm DROP CONSTRAINT origin_id_exists; unisonunisonfalse2758252937062606458149 origin_id_fk FK CONSTRAINTALTER TABLE ONLY best_annotation_mv ADD CONSTRAINT origin_id_fk FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; IALTER TABLE ONLY unison.best_annotation_mv DROP CONSTRAINT origin_id_fk; unisonunisonfalse2529370626282606458154 origin_id_fk FK CONSTRAINTALTER TABLE ONLY pmap_locus_representative_mv ADD CONSTRAINT origin_id_fk FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; SALTER TABLE ONLY unison.pmap_locus_representative_mv DROP CONSTRAINT origin_id_fk; unisonunisonfalse2629370625292606458159 origin_id_fk FK CONSTRAINTALTER TABLE ONLY pmap_gg_representative_mv ADD CONSTRAINT origin_id_fk FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.pmap_gg_representative_mv DROP CONSTRAINT origin_id_fk; unisonunisonfalse2529370626312606458164 origin_id_fk FK CONSTRAINTALTER TABLE ONLY ensembl_coordinates_mv ADD CONSTRAINT origin_id_fk FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.ensembl_coordinates_mv DROP CONSTRAINT origin_id_fk; unisonunisonfalse2529268037062606458169 origin_id_fk FK CONSTRAINTALTER TABLE ONLY ensembl_unambiguous_coordinates_mv ADD CONSTRAINT origin_id_fk FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; YALTER TABLE ONLY unison.ensembl_unambiguous_coordinates_mv DROP CONSTRAINT origin_id_fk; unisonunisonfalse3706268225292606458174 origin_id_fk FK CONSTRAINTALTER TABLE ONLY pmap_pfam_mv ADD CONSTRAINT origin_id_fk FOREIGN KEY (origin_id) REFERENCES origin(origin_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.pmap_pfam_mv DROP CONSTRAINT origin_id_fk; unisonunisonfalse2529274837062606458179p2gblataln_id_exists FK CONSTRAINTALTER TABLE ONLY p2gblatalnhsp ADD CONSTRAINT p2gblataln_id_exists FOREIGN KEY (p2gblataln_id) REFERENCES p2gblataln(p2gblataln_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.p2gblatalnhsp DROP CONSTRAINT p2gblataln_id_exists; unisonunisonfalse3485247024692606458184p2gblathsp_id_exists FK CONSTRAINTALTER TABLE ONLY p2gblatalnhsp ADD CONSTRAINT p2gblathsp_id_exists FOREIGN KEY (p2gblathsp_id) REFERENCES p2gblathsp(p2gblathsp_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.p2gblatalnhsp DROP CONSTRAINT p2gblathsp_id_exists; unisonunisonfalse2471247034902606458189pahmm_params_id_exists FK CONSTRAINTALTER TABLE ONLY pahmm ADD CONSTRAINT pahmm_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pahmm DROP CONSTRAINT pahmm_params_id_exists; unisonunisonfalse2549377024762606458194pahmm_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pahmm ADD CONSTRAINT pahmm_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmhmm(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pahmm DROP CONSTRAINT pahmm_pmodel_id_exists; unisonunisonfalse3538248624762606458199 palias_fk FK CONSTRAINTALTER TABLE ONLY pseq_pannotation ADD CONSTRAINT palias_fk FOREIGN KEY (pannotation_id) REFERENCES pannotation(pannotation_id) ON UPDATE CASCADE ON DELETE CASCADE; DALTER TABLE ONLY unison.pseq_pannotation DROP CONSTRAINT palias_fk; unisonunisonfalse2490354524892606458204palignment_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY palignment ADD CONSTRAINT palignment_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmodel(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.palignment DROP CONSTRAINT palignment_pmodel_id_exists; unisonunisonfalse3532247524842606458209paprospect_params_id_exists FK CONSTRAINTALTER TABLE ONLY paprospect ADD CONSTRAINT paprospect_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.paprospect DROP CONSTRAINT paprospect_params_id_exists; unisonunisonfalse2549247937702606458214paprospect_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY paprospect ADD CONSTRAINT paprospect_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmprospect(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.paprospect DROP CONSTRAINT paprospect_pmodel_id_exists; unisonunisonfalse2557247937822606458219papseq_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY papseq ADD CONSTRAINT papseq_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmpseq(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.papseq DROP CONSTRAINT papseq_pmodel_id_exists; unisonunisonfalse3752254125422606458224papssm_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY papssm ADD CONSTRAINT papssm_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmpssm(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.papssm DROP CONSTRAINT papssm_pmodel_id_exists; unisonunisonfalse2716275839602606458229params_id_exists FK CONSTRAINTALTER TABLE ONLY pfantigenic ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pfantigenic DROP CONSTRAINT params_id_exists; unisonunisonfalse2549272737702606458234params_id_exists FK CONSTRAINTALTER TABLE ONLY pfregexp ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.pfregexp DROP CONSTRAINT params_id_exists; unisonunisonfalse3770247725492606458239params_id_exists FK CONSTRAINTALTER TABLE ONLY pfpsipred ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; DALTER TABLE ONLY unison.pfpsipred DROP CONSTRAINT params_id_exists; unisonunisonfalse273437702549-2606458244params_id_exists FK CONSTRAINTALTER TABLE ONLY psipred ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; BALTER TABLE ONLY unison.psipred DROP CONSTRAINT params_id_exists; unisonunisonfalse2804377025492606458249params_id_exists FK CONSTRAINTALTER TABLE ONLY pftmhmm ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; BALTER TABLE ONLY unison.pftmhmm DROP CONSTRAINT params_id_exists; unisonunisonfalse2549254637702606458254params_id_exists FK CONSTRAINTALTER TABLE ONLY psdisorder ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.psdisorder DROP CONSTRAINT params_id_exists; unisonunisonfalse3770254926372606458259params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_locus_representative_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; WALTER TABLE ONLY unison.pmap_locus_representative_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse2629254937702606458264params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_gg_representative_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; TALTER TABLE ONLY unison.pmap_gg_representative_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse3770263125492606458269params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_unambiguous_overlaps_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; WALTER TABLE ONLY unison.pmap_unambiguous_overlaps_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse254927443770"2606458274params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_unambiguous_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.pmap_unambiguous_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse2549274937702606458279params_id_exists FK CONSTRAINTALTER TABLE ONLY pseq_probe_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.pseq_probe_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse254937702626 2606458284params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_pfam_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; GALTER TABLE ONLY unison.pmap_pfam_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse3770254927482606458289params_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_mv ADD CONSTRAINT params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; BALTER TABLE ONLY unison.pmap_mv DROP CONSTRAINT params_id_exists; unisonunisonfalse3770274725492606458294pcluster_id_exists FK CONSTRAINTALTER TABLE ONLY pcluster_member ADD CONSTRAINT pcluster_id_exists FOREIGN KEY (pcluster_id) REFERENCES pcluster(pcluster_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.pcluster_member DROP CONSTRAINT pcluster_id_exists; unisonunisonfalse2722272139002606458299perftest_result_def_id_fkey FK CONSTRAINTALTER TABLE ONLY perftest_result ADD CONSTRAINT perftest_result_def_id_fkey FOREIGN KEY (def_id) REFERENCES perftest_def(def_id) ON UPDATE CASCADE ON DELETE CASCADE; UALTER TABLE ONLY unison.perftest_result DROP CONSTRAINT perftest_result_def_id_fkey; unisonunisonfalse2725390727232606458304perftest_result_run_id_fkey FK CONSTRAINTALTER TABLE ONLY perftest_result ADD CONSTRAINT perftest_result_run_id_fkey FOREIGN KEY (run_id) REFERENCES perftest_run(run_id) ON UPDATE CASCADE ON DELETE CASCADE; UALTER TABLE ONLY unison.perftest_result DROP CONSTRAINT perftest_result_run_id_fkey; unisonunisonfalse2726272539152606458309perftest_run_platform_id_fkey FK CONSTRAINTALTER TABLE ONLY perftest_run ADD CONSTRAINT perftest_run_platform_id_fkey FOREIGN KEY (platform_id) REFERENCES perftest_platform(platform_id) ON UPDATE CASCADE ON DELETE CASCADE; TALTER TABLE ONLY unison.perftest_run DROP CONSTRAINT perftest_run_platform_id_fkey; unisonunisonfalse272439112726 2606458314pfbigpi_params_id_exists FK CONSTRAINTALTER TABLE ONLY pfbigpi ADD CONSTRAINT pfbigpi_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; JALTER TABLE ONLY unison.pfbigpi DROP CONSTRAINT pfbigpi_params_id_exists; unisonunisonfalse272937702549 2606458319pfbigpi_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfbigpi ADD CONSTRAINT pfbigpi_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.pfbigpi DROP CONSTRAINT pfbigpi_pseq_id_exists; unisonunisonfalse3498247227292606458327pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY pftmdetect ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.pftmdetect DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse2549377024782606458332pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalpnn ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY unison.pfsignalpnn DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse2549377025502606458337pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalphmm ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.pfsignalphmm DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse254937702737 2606458342pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY pfpepcoil ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.pfpepcoil DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse2549273337702606458347pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY pfeature ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.pfeature DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse2473254937702606458352pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY papseq ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; JALTER TABLE ONLY unison.papseq DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse2549254137702606458357pfeature_params_id_exists FK CONSTRAINTALTER TABLE ONLY palignment ADD CONSTRAINT pfeature_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.palignment DROP CONSTRAINT pfeature_params_id_exists; unisonunisonfalse3770254924752606458362pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY paprospect ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.paprospect DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse3775247925512606458367pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfsigcleave ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY unison.pfsigcleave DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2736377525512606458372pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY palignment ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.palignment DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2475377525512606458377pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pftmdetect ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.pftmdetect DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2551247837752606458382pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfantigenic ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY unison.pfantigenic DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2551272737752606458387pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalpnn ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY unison.pfsignalpnn DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2551255037752606458392pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalphmm ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.pfsignalphmm DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2737255137752606458397pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pahmm ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; IALTER TABLE ONLY unison.pahmm DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2476255137752606458402pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY papssm ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; JALTER TABLE ONLY unison.papssm DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2716255137752606458407pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY papseq ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; JALTER TABLE ONLY unison.papseq DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2541255137752606458412pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfeature ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.pfeature DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse247325513775 2606458417pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfbigpi ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; KALTER TABLE ONLY unison.pfbigpi DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2729255137752606458422pfeature_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfpepcoil ADD CONSTRAINT pfeature_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.pfpepcoil DROP CONSTRAINT pfeature_pftype_id_exists; unisonunisonfalse2551377527332606458427pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY paprospect ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.paprospect DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2479349824722606458432pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfsigcleave ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.pfsigcleave DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse3498247227362606458437pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY palignment ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.palignment DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2472349824752606458442pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pftmdetect ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.pftmdetect DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse349824782472 2606458447pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfantigenic ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.pfantigenic DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2727349824722606458452pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalpnn ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.pfsignalpnn DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2472255034982606458457pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalphmm ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.pfsignalphmm DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2472349827372606458463pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pahmm ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; GALTER TABLE ONLY unison.pahmm DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2476349824722606458468pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY papssm ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.papssm DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2716349824722606458473pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY papseq ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.papseq DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse2541349824722606458478pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfeature ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; JALTER TABLE ONLY unison.pfeature DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse3498247324722606458483pfeature_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfpepcoil ADD CONSTRAINT pfeature_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; KALTER TABLE ONLY unison.pfpepcoil DROP CONSTRAINT pfeature_pseq_id_exists; unisonunisonfalse3498247227332606458488pfseg_params_id_exists FK CONSTRAINTALTER TABLE ONLY pfseg ADD CONSTRAINT pfseg_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pfseg DROP CONSTRAINT pfseg_params_id_exists; unisonunisonfalse3770273525492606458493pfseg_pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfseg ADD CONSTRAINT pfseg_pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pfseg DROP CONSTRAINT pfseg_pftype_id_exists; unisonunisonfalse3775255127352606458498pfseg_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfseg ADD CONSTRAINT pfseg_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; DALTER TABLE ONLY unison.pfseg DROP CONSTRAINT pfseg_pseq_id_exists; unisonunisonfalse2472273534982606458503pfsignalphmm_pred_id_exists FK CONSTRAINTALTER TABLE ONLY pfsignalphmm ADD CONSTRAINT pfsignalphmm_pred_id_exists FOREIGN KEY (pfsignalphmm_pred_id) REFERENCES pfsignalphmm_pred(pfsignalphmm_pred_id); RALTER TABLE ONLY unison.pfsignalphmm DROP CONSTRAINT pfsignalphmm_pred_id_exists; unisonunisonfalse2738273739392606458508pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfregexp ADD CONSTRAINT pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.pfregexp DROP CONSTRAINT pftype_id_exists; unisonunisonfalse2551247737752606458513pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pfpsipred ADD CONSTRAINT pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; DALTER TABLE ONLY unison.pfpsipred DROP CONSTRAINT pftype_id_exists; unisonunisonfalse2734255137752606458518pftype_id_exists FK CONSTRAINTALTER TABLE ONLY pftmhmm ADD CONSTRAINT pftype_id_exists FOREIGN KEY (pftype_id) REFERENCES pftype(pftype_id) ON UPDATE CASCADE ON DELETE CASCADE; BALTER TABLE ONLY unison.pftmhmm DROP CONSTRAINT pftype_id_exists; unisonunisonfalse2551254637752606458523pftype_run_id_exists FK CONSTRAINTALTER TABLE ONLY pftype ADD CONSTRAINT pftype_run_id_exists FOREIGN KEY (preferred_run_id) REFERENCES run(run_id) ON UPDATE CASCADE ON DELETE SET NULL; EALTER TABLE ONLY unison.pftype DROP CONSTRAINT pftype_run_id_exists; unisonunisonfalse2552255137792606458528pmap_aln_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_alnhsp ADD CONSTRAINT pmap_aln_id_exists FOREIGN KEY (aln_id) REFERENCES pmap_aln(aln_id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; HALTER TABLE ONLY unison.pmap_alnhsp DROP CONSTRAINT pmap_aln_id_exists; unisonunisonfalse2567256837992606458533pmap_hsp_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_alnhsp ADD CONSTRAINT pmap_hsp_id_exists FOREIGN KEY (hsp_id) REFERENCES pmap_hsp(hsp_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.pmap_alnhsp DROP CONSTRAINT pmap_hsp_id_exists; unisonunisonfalse2568256938082606458538pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pfregexp ADD CONSTRAINT pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmregexp(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.pfregexp DROP CONSTRAINT pmodel_id_exists; unisonunisonfalse3713253124772606458543pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmregexp ADD CONSTRAINT pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmregexp(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.pmsm_pmregexp DROP CONSTRAINT pmodel_id_exists; unisonunisonfalse2533253137132606458548pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pmprospect_scop_mv ADD CONSTRAINT pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmprospect(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; MALTER TABLE ONLY unison.pmprospect_scop_mv DROP CONSTRAINT pmodel_id_exists; unisonunisonfalse2557378224832606458553pmodelset_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmregexp ADD CONSTRAINT pmodelset_id_exists FOREIGN KEY (pmodelset_id) REFERENCES pmodelset(pmodelset_id) ON UPDATE CASCADE ON DELETE CASCADE; KALTER TABLE ONLY unison.pmsm_pmregexp DROP CONSTRAINT pmodelset_id_exists; unisonunisonfalse2530371025332606458558pmsm_pmhmm_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmhmm ADD CONSTRAINT pmsm_pmhmm_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmhmm(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.pmsm_pmhmm DROP CONSTRAINT pmsm_pmhmm_pmodel_id_exists; unisonunisonfalse2486353825322606458563pmsm_pmhmm_pmodelset_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmhmm ADD CONSTRAINT pmsm_pmhmm_pmodelset_id_exists FOREIGN KEY (pmodelset_id) REFERENCES pmodelset(pmodelset_id) ON UPDATE CASCADE ON DELETE CASCADE; SALTER TABLE ONLY unison.pmsm_pmhmm DROP CONSTRAINT pmsm_pmhmm_pmodelset_id_exists; unisonunisonfalse2530253237102606458568pmsm_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm ADD CONSTRAINT pmsm_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmodel(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; DALTER TABLE ONLY unison.pmsm DROP CONSTRAINT pmsm_pmodel_id_exists; unisonunisonfalse3532248024842606458573pmsm_pmodelset_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm ADD CONSTRAINT pmsm_pmodelset_id_exists FOREIGN KEY (pmodelset_id) REFERENCES pmodelset(pmodelset_id) ON UPDATE CASCADE ON DELETE CASCADE; GALTER TABLE ONLY unison.pmsm DROP CONSTRAINT pmsm_pmodelset_id_exists; unisonunisonfalse2480371025302606458578 pmsm_pmprospect_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmprospect ADD CONSTRAINT pmsm_pmprospect_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmprospect(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; ZALTER TABLE ONLY unison.pmsm_pmprospect DROP CONSTRAINT pmsm_pmprospect_pmodel_id_exists; unisonunisonfalse3782255724812606458583#pmsm_pmprospect_pmodelset_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmprospect ADD CONSTRAINT pmsm_pmprospect_pmodelset_id_exists FOREIGN KEY (pmodelset_id) REFERENCES pmodelset(pmodelset_id) ON UPDATE CASCADE ON DELETE CASCADE; ]ALTER TABLE ONLY unison.pmsm_pmprospect DROP CONSTRAINT pmsm_pmprospect_pmodelset_id_exists; unisonunisonfalse248125303710%2606458588pmsm_pmpssm_pmodel_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmpssm ADD CONSTRAINT pmsm_pmpssm_pmodel_id_exists FOREIGN KEY (pmodel_id) REFERENCES pmpssm(pmodel_id) ON UPDATE CASCADE ON DELETE CASCADE; RALTER TABLE ONLY unison.pmsm_pmpssm DROP CONSTRAINT pmsm_pmpssm_pmodel_id_exists; unisonunisonfalse396027582755&2606458593pmsm_pmpssm_pmodelset_id_exists FK CONSTRAINTALTER TABLE ONLY pmsm_pmpssm ADD CONSTRAINT pmsm_pmpssm_pmodelset_id_exists FOREIGN KEY (pmodelset_id) REFERENCES pmodelset(pmodelset_id) ON UPDATE CASCADE ON DELETE CASCADE; UALTER TABLE ONLY unison.pmsm_pmpssm DROP CONSTRAINT pmsm_pmpssm_pmodelset_id_exists; unisonunisonfalse2755253037102606458598pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pseqset ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY unison.pseqset DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472349824872606458603pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pseq_pannotation ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; IALTER TABLE ONLY unison.pseq_pannotation DROP CONSTRAINT pseq_id_exists; unisonunisonfalse3498249024722606458609pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pmpseq ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; ?ALTER TABLE ONLY unison.pmpseq DROP CONSTRAINT pseq_id_exists; unisonunisonfalse3498254224722606458614pseq_id_exists FK CONSTRAINTALTER TABLE ONLY run_history ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; DALTER TABLE ONLY unison.run_history DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472256134982606458619pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfregexp ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; AALTER TABLE ONLY unison.pfregexp DROP CONSTRAINT pseq_id_exists; unisonunisonfalse3498247224772606458624pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pcluster_member ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; HALTER TABLE ONLY unison.pcluster_member DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472272234982606458629pseq_id_exists FK CONSTRAINTALTER TABLE ONLY p2gblathsp ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.p2gblathsp DROP CONSTRAINT pseq_id_exists; unisonunisonfalse247234982471(2606458634pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pnote ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; >ALTER TABLE ONLY unison.pnote DROP CONSTRAINT pseq_id_exists; unisonunisonfalse349827602472.2606458639pseq_id_exists FK CONSTRAINTALTER TABLE ONLY psipred ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY unison.psipred DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2804247234982606458644pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pfpsipred ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; BALTER TABLE ONLY unison.pfpsipred DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472273434982606458649pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pftmhmm ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY unison.pftmhmm DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2546349824722606458654pseq_id_exists FK CONSTRAINTALTER TABLE ONLY psdisorder ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; CALTER TABLE ONLY unison.psdisorder DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472263734982606458659pseq_id_exists FK CONSTRAINTALTER TABLE ONLY best_annotation_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; KALTER TABLE ONLY unison.best_annotation_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2628247234982606458664pseq_id_exists FK CONSTRAINTALTER TABLE ONLY ncbi_pseq_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.ncbi_pseq_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse3498247226302606458669pseq_id_exists FK CONSTRAINTALTER TABLE ONLY ensembl_coordinates_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY unison.ensembl_coordinates_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472268034982606458674pseq_id_exists FK CONSTRAINTALTER TABLE ONLY ensembl_unambiguous_coordinates_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; [ALTER TABLE ONLY unison.ensembl_unambiguous_coordinates_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse247234982682#2606458679pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_unambiguous_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; LALTER TABLE ONLY unison.pmap_unambiguous_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse3498247227492606458684pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pseq_gene_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.pseq_gene_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2625247234982606458689pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pseq_probe_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.pseq_probe_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse349824722626!2606458694pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_pfam_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; EALTER TABLE ONLY unison.pmap_pfam_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2472349827482606458699pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pmap_mv ADD CONSTRAINT pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY unison.pmap_mv DROP CONSTRAINT pseq_id_exists; unisonunisonfalse2747349824722606458704pset_id_exists FK CONSTRAINTALTER TABLE ONLY pseqset ADD CONSTRAINT pset_id_exists FOREIGN KEY (pset_id) REFERENCES pset(pset_id) ON UPDATE CASCADE ON DELETE CASCADE; @ALTER TABLE ONLY unison.pseqset DROP CONSTRAINT pset_id_exists; unisonunisonfalse3543248824872606458709psprotcomp_int_psloc_id_exists FK CONSTRAINTALTER TABLE ONLY psprotcomp ADD CONSTRAINT psprotcomp_int_psloc_id_exists FOREIGN KEY (int_psloc_id) REFERENCES psprotcomp_location(psloc_id); SALTER TABLE ONLY unison.psprotcomp DROP CONSTRAINT psprotcomp_int_psloc_id_exists; unisonunisonfalse2564379525632606458714psprotcomp_nn_psloc_id_exists FK CONSTRAINTALTER TABLE ONLY psprotcomp ADD CONSTRAINT psprotcomp_nn_psloc_id_exists FOREIGN KEY (nn_psloc_id) REFERENCES psprotcomp_location(psloc_id); RALTER TABLE ONLY unison.psprotcomp DROP CONSTRAINT psprotcomp_nn_psloc_id_exists; unisonunisonfalse3795256425632606458719psprotcomp_params_id_exists FK CONSTRAINTALTER TABLE ONLY psprotcomp ADD CONSTRAINT psprotcomp_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; PALTER TABLE ONLY unison.psprotcomp DROP CONSTRAINT psprotcomp_params_id_exists; unisonunisonfalse2563377025492606458724psprotcomp_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY psprotcomp ADD CONSTRAINT psprotcomp_pseq_id_exists FOREIGN KEY (pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE CASCADE; NALTER TABLE ONLY unison.psprotcomp DROP CONSTRAINT psprotcomp_pseq_id_exists; unisonunisonfalse2472349825632606458729psprotcomp_sim_psloc_id_exists FK CONSTRAINTALTER TABLE ONLY psprotcomp ADD CONSTRAINT psprotcomp_sim_psloc_id_exists FOREIGN KEY (sim_psloc_id) REFERENCES psprotcomp_location(psloc_id); SALTER TABLE ONLY unison.psprotcomp DROP CONSTRAINT psprotcomp_sim_psloc_id_exists; unisonunisonfalse2563379525642606458734ref_pseq_id_exists FK CONSTRAINTALTER TABLE ONLY pseq_pannotation ADD CONSTRAINT ref_pseq_id_exists FOREIGN KEY (ref_pseq_id) REFERENCES pseq(pseq_id) ON UPDATE CASCADE ON DELETE SET NULL; MALTER TABLE ONLY unison.pseq_pannotation DROP CONSTRAINT ref_pseq_id_exists; unisonunisonfalse3498249024722606458739run_history_run_id_exists FK CONSTRAINTALTER TABLE ONLY run_history ADD CONSTRAINT run_history_run_id_exists FOREIGN KEY (run_id) REFERENCES run(run_id) ON UPDATE CASCADE ON DELETE CASCADE; OALTER TABLE ONLY unison.run_history DROP CONSTRAINT run_history_run_id_exists; unisonunisonfalse2552256137792606458745run_params_id_exists FK CONSTRAINTALTER TABLE ONLY run ADD CONSTRAINT run_params_id_exists FOREIGN KEY (params_id) REFERENCES params(params_id) ON UPDATE CASCADE ON DELETE CASCADE; BALTER TABLE ONLY unison.run DROP CONSTRAINT run_params_id_exists; unisonunisonfalse2552377025492606458750run_pomodelset_id_exists FK CONSTRAINTALTER TABLE ONLY run ADD CONSTRAINT run_pomodelset_id_exists FOREIGN KEY (pmodelset_id) REFERENCES pmodelset(pmodelset_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison.run DROP CONSTRAINT run_pomodelset_id_exists; unisonunisonfalse371025522530,2606458755ptm_ptm_type_id_fkey FK CONSTRAINTALTER TABLE ONLY ptm ADD CONSTRAINT ptm_ptm_type_id_fkey FOREIGN KEY (ptm_type_id) REFERENCES ptm_type(ptm_type_id) ON UPDATE CASCADE ON DELETE CASCADE; FALTER TABLE ONLY unison_aux.ptm DROP CONSTRAINT ptm_ptm_type_id_fkey;  unison_auxunisonfalse398528122775Q xR xSx[s]&WM #&z(%qLq$e&&AQlRK,u@bZ.L$/XH{;?M?T&ct%Ņdv뾠MN9>"]&X/}*ҟ*IuE&L(jDv*5-]U2[hRNO,mΩdMSz&u&G&Nނ#B!)ľfb?-/IH9&=;T`bDשKHw-ƀ<ʂ}4i.AŽvtaG r@ L섩#^ĎqSn;iľab?,˭1 S82u`M mn|db'[820Ck9d-<,1tBUJ:a}w3mkXsNTwsvwsvwsv,9^L9[/ҫ_7zzht豧{ftZe,1/O![ 27.a 0J̪gaQ x>U٨F#F64j7T.UtT@ h6xPo2 5F؈m䀪YdݖMƭCQӝ"Gp1ӝH|Iv)BW=]-tә;mY+UL%)VBy,,*gnz ' ˊ&y)SY/aQ3{3Adaq٣FQanVGQ:ۂ@ RԘqϐqաy AЪV jȽ6醃`QE s "YIe (P7t az7Vh|#hB%;$3sYlXfBU50qK:XZW3c!O?v60Q-K$ؒWI~@ZPtVI/*:[3[$BNn'dй^+GbDY}7*r1Љ\)sqVW2hXeR2CՁ=r^J}|Qe03{2LEu4{\+Ccрx5 G=oNW׷ﮎn~oOITq_%&]"yd]/ m0539B PV`3yZ<+S<){R'e/݄ :ㄧ^;I_ߝ\\_폮ί_o7$yZk}fOy/WY׬~5T2_^\Ol+Ta/X8{{Rz8.XJ/gxrWNͯz뗯0p>+j^x֡D~=R!oȚ~t`{V{"jQPpFfeyu}y\"*!{ b,G=:2Ph&J(#S BV|Bܹ`zm-P/M%# xCJT=9aj#DFB^˂B՛ƶ!2_}قe-0[j`'-|*K6:Y P6Vb'8'P%S9~fj/Ng*{xcd7d#9c/-/CoZϮũkT7TOdyW lX2tlyL`a%FUd*LkMF3zf`F3zEk 'QJ"#jթfΞ龐IMb~|M}G`7%K?c"dL4q+KɊǢ%Pu713"Y˔)A ԠgVkjy_|)s%"V6XPPerT:D_p5TbZه|HMcROd"dmw oGV1g``$Tc żjm]-k혾'2oKxPogyycV3oj`z'5mf{y}M8w0wiMcIiMI ޴n0{cd[+m@nt]Tfk57݄*A 5&-wgpEt ~`3T)& 4Sᆹiy!er_Z{=7jϲ LE"S^޾P>^1FO-_}‹>~-_}'Ζo>cC?,,R>I@>)Zj' |R``[`@L([Ũ46VIX?UIhcURԚ JC##`j=L'wjس=6z[#hAz^7NyoPJC*R3T~X-3nE6TZ=228%Z%ЪcN5&{SGT9ոqTT㲿.T㲇N5.{uq~6tRqo N=nqMƞIPr*YZà}4M_&dj[4uRp'=s]'폛iL@řƣ:x eNcs{ÝmxqإEǎ'&!.JaKR{URa׊RFS_/DPM)W(1Q0gw롮̘X̘Xρ\kOdg/5|LngX/5 5 {Vgj/A{jvNo?xUUg^IT-2E+SK#,W\Wb?*pXЧעxD|N۽6$6~Rj_@+M#gDiR Kh%-_o\x3' KJE%,YYFYU0fV3'JJP{DhsJrauqS^~0Yu0Ugr;b-}*L%Sap{CQ{vDhsq*w?J53H*'ԍ`*|?J|Bg퉑Qpξ|K*p'3;xB}i/aINO|'NټX{ "Y pjzf*L;dg*+gՙJYumz"s#혭~H5x8SڋJ진:UD0LS{e}%㙳~s֗Y߭hf _kA[[+0_ř~"q5-(3G6_ӇEbL/|L}1hcqș{#F_KP"|gH!W8$PW981E`oan\N$~&Eϟ;u?e, x+dx91Qs 3EHHDu*Tp5V*tGJFS"q}rvzn,y11TrLv2eB: #"AdCKnЊYidd^W3nLb%̤JI_Q<Q ~2|j́gʧdz͔!9N\5N= }~GOxj9 3RX67$}[(WYggjᵶQG,KCa+sc-vXv(ts,xN8)XS&]BP&Bdcc=Hf@sȞ97qt#Q;< ,:`3,".TPh5w>'E!c!0|f_8]lsXB`2f*)rxoW90ˁ|k*v:JF2JBq'/O&OK;(M ER[BVb SP;z13sj2 ^}.u%TL9.T"1S)30vOkfdA9#GYa4:НX Kj9=hM7Nq ;2c:=J=c$et;Hʌ׏ )3Rw*2#;=*]y3hQwT诶L+_K KJnIrMb 0%kL _ l>2Y-ejjI+L+)=]}ej\*0dRaձAmTDT3'*ZsRe*tCZl`@4X{t 8|n{H/j9JvPWLyY_f2{`M&Y./>rg6&q`1!Ɔ ,x[Wf@!;J||>=#mؔ, *Nk2㔛ڬ24<_mgs%5%)#  .%mdcJ{XhB #0D[fnFbӷ /+.0nFd-Mpzo'bXsȥWjb%8iTqzPkReIX WebII X(R_86IqTAXmfTXm8~*c53/` xHefV{k1]\;Tle}c{QÍWve}fNd8W6P¹UP㸓+o1MnolKzd[WJzZ2x ~Cojnĵ(Hn}VY^6&fq!W?y>+ڴL3dV{]\e"0i.` .0/Y^~!V5L>.n.S*nmBГ\9e(ϱJz)|E@A*a-{~jK'P!s| Ӄ}By]Ui{.Uv }K!dr;?1ǿ$N]H8\&b|k或&D8-S.) J(X§}%&T3jjxj2rRY_/8e R퀤% .H-_gߤ/9 $ik;=α$d[S&y~Mʚ9n[I KW Eu Pq~jH7%Qy ̇XŶBœЋ .W.g:(\z\0i0J@R]4h:oCD]>>'RC.VЋ3ǘ jq0`f  L>)J' Y:󽮼\\#t`{'j~N@XGkR"LВ9 3VVR"f.]p%DUC|iJBu\ P5]`X(f@v,NIzrŚ6`m,v}E9s#Y 2FXfc궢e첶ǶMcmheQmWl3OcI]Aul@5j\LkC9^63̾l$ v`3~f~Le}+ \ko6YV衖* KG@VL V;uT6\3S&,pTX#72߅c}0B5|JV K`*Pn!ӆV*tBzl80ś8ܒ1iV0`z،|`^Albg87mAbC`iˇ# [i 1K[3M#[5GUx+[ ^*=4G_)@1X`01\E+& +& Y-K :g M>xj3D aW/[_ -ᓤ-@ke Z𼓴%pyj Bϯܡo )-[XEYXX[XX)F>6)TFd B5xdrl qlb~6k3(s㚒kfA36seh6#37(37N|jji5@ތ &uղ&[p֕S/͈,{fj~GfdG|Z<ʈ5o0-Ac2 LFXgccD-CdBBv9ܻKnP`*zόm3>[硌028~2zO΀̏f@PlFd~5[w8a-sgXʜjJ\Q.C#οt_6r;?|r9繁-Oz&.D1\.9tj>(*]9ޝ2 Sf~'s8}mj~PO4tf淃]> _._fO]> Vْ'/&5x! S\͵ s|2i J($XH0-!.$SEF@sH/L=cǼ v aqku9/8>襽r&KM wS隯&.ME Pc9ϝΪENP,o KVqV19,]L–X)p/wV?/a>j5+>9T CAJɹڕJDyվ\(=X/|uRL:pe靯^~X^/:N^PswcD+CN5w+PnO̥)oo4t+S99Eh=Щ|{~!;i|q\zn,;;LG\$bݎ.IXi<0:seb,X|9_ tlk/XPhPY)y/q0!D.2EFǛtr%u /Ϳ| Xa㾙$>>-} gp?6 >dA`vQء?׏섌IP.N,dm̐Q^t:VLJ?Bt MJ&Bb RA$'֡c?U777)0/z 6Kfx!(W{enBrys-H׹Ur P. s'FЮ^6P7hbR\03m$a\ 5D!9c*b,WJn(P,;٦dКe MÐ1s`Y-EaYԶYϽXp1ĩ9X0Aa&+`+q;jnRro$.F5 r>@M `;T|Q C1_rv}Cy0" &CR`9,L+ƺ^t:XEMrB Sj .GOOBۼKFƞ!B>ȘG̷gbƘz/b}c|r.L6@,3̏a{ΩFj9&}܊ryzx;ҰX]ʕW@{JSW*cB岟xT_h+s5XoTXKČG0$%؍ H[C,X.M,ꞡ90P5uέYB5GM_K`}Q =0y4 6GѶڳ, Hms[ah2)U.oyѲ0N1fLa2 Y#ahJrP.~z{oߘW3W.y}hѻF3 KчVI)Q0̓TMP ]05B;f+k NGT'z~\w.q61U똽v5Qd>#LI;?ke+U.&zzTB0SJYgK0WUUϨ&%kSy۟^^WB.\g˅Rp9ӗ0QO/*o}%dL.%26ӋJH_Y(JX(d}8JU*% J{M_|><1DF}J䯌G*nK%23þDv>@ .JdTg竄ֵo5]bq>d9;Ӧ/0)ad2V5mtjSXT1Lfj(+ab-R2+ ̜¼)nT-<nrDƕtg&N*%=N7Oۍ2w-ҙ5%3F`6PM{l:,l/()Z+ :Sj9 r̭[(L jjܦ,HA5vA MY%e `-!;FѝZ1,6F$E2dmBo5`P434fۄE* fN#1 2hjW07頇x ec EO񲀢xK5*zQ&Ǎ.AVV m{~5t`хq@m`2P#SELj9ft#cA| FlgOmzwr}s~UO7ۥX :W1+XV  U RPMJJ5@u;}X(.+pS M~C qqz<<(Eܤiϳbo3ު tih $Ͱ+W%6\fO:+]CF[~c~z=oWB nQ0 ōmت]\z s[SR A (΅΁ @,KAc-I잺n @uBMU0B!Q@-=R dTTK.JZb";jM`U%@[<$.H({;*O ]+kjthFzala[46q^5ɆFXUa °Y+{J0\bX2] K ܹ$\\qߍ| mx¸Y֛VD;zה+5f] y9 Zr+BcUzIQ¹ QKK฻D ~iX!qY:(nKU X87Ы`ҒJ+x# b\=,sB 8|KW'$s6\!N,N^<o kױЉ4 $챀Z*eɎe-5_T %K,LCjfE,eD\KX+jHXx*ϣ:aBݲlPzZ4:Y֪^:ϸ 8 уszXZ٣BevZ\gk 2<[*³uq43UpfG\*83~X]g*ڨ\R0xQa`t6Z j*>U(Ih9hM k+8X͇U1-?+-`²Bkdᖽ~٪a 0M2H*8;–PxvF*:s+mÐЦ UpfGUpf[, Pgq4\hJ>6bzEg&L2 mz8\0̎FLQyb[ jag([Bs13Z"+0"fJ1}~g8|q\h|ǡ١*˽5CUndg懽3Xgy+X[b:Z(FW*4'5eѓ[@Cf^UmC_[JF]jbؠ|uDKMd>00~AmqֲKmZ]j#pyvųG-WfVKm܅|Emf`Emf<&:fݒ%hoz8:[)t4rAÂ1{]C9YJ9lj6r\0Z@erL_^2]ط8&WN.3]?uo ŹԎSuP.=-s+)%|YBП ( #aIffTJ5Lez)%x!ƎAǍ#l:. PZRqTAL  b`a VQ1zŵ!+@wxH,37X<^GWGyGIelӓwWl;= '75^9@\\+9_ʣ/Dy?6ہtsGߝ~wzqu>Ep-9qvP6kMKLxwICR2 O;쇥mܬJ~|&K ˓ɶNaȗVUힿ\fM2BvOQTTvs[m.'\哑jy}6]Җxw TIu`lJpF&$Z ],iV&ez.՞L @^oyN͛WI&w)Y9K%Y;4Y=HOLp_@dӃtZ"2$Gׯw;DKWd6xd9lJsj6tri.P`_S.]2l5EEt}sNK$i]{%hsSD (ݒf x,D\g5eٮ%K!,N _O$3t&7Gi6Ns딅HD68H&i/]tqyvӁT43l^#eV9u2ɶ]|/IR}B|{7)M#YBi◝5y 噶cw/ntLg]' ENYg4Ei ޑ2%E8iy.MsݡTK[k6? b\4E؞vzjM==)GJK2=shl&Wp{q6~Z*5h&]+F)&H.NN )M qMAMVSp?vbk 2oLngS%[\z5d%Şv4m_MFsmQSiW Bb1CXrC ۪ڨd09L=s*i;P:Ptm(m I a'v%s'eJLF^\obFMQh>9qL-&9|˱?5Q&IݳMvS1ڲud;8d40r i2+4SN)-/ԃY$JHڼLUN?J9yh04%wBŴPiۛCog9m #{~.KAiٚؖX.Rw73)%+Idk;VfK_|HMNq4M堢g#]>LOOBҳN$pveu;"=d$e tzY+6evϿO4Y \%C͛ۋ8Aidf۟&{(KЄz)%o4=zqwrߠ%{HY4z;Y2'F99C>x55EI+K+fۨ:8NO)4=6zC*嘤KNNNi?4f$,*f>3&n5~wfTůmMFO+:~~'OwgmReTbOjP<Mq~x\&K)e:5=IARc3A&kiLx@ISӛf[>L/hzu2:Ms/HD۝4g/7so!Pg=9p GRo;he U^ GگOO޼9(Vɵ<''cO M><=(:LCțȼd?Mo鑏+@z|ç3D,hV2dM҇(f,Md$JVd*79ǁ vݧCbKaOӷӣ3ͧ!MR۷?͖d =80t>I׃INN1e<ݐ{;;_To y)8uiv Rӡ6 LW%Űz}'eˁt};)SSӓ?oksu]LdZnj<:}}q?:_58pҬ)0 |Sx|Ub;lvC!n' PnfJ&S BѴfK.ެ<^R+{ ?PjR鳫F$ln01:ڪkLN%{4ޜ_hsޓ)s(:ݿ맬Ww'5E*/W5Ez{uLNJūio}sM)E#ϋdݜOgbOS._9TrlOᖲg ZbIZ"iζ0DwZxK[ǗbQQܬ\<ɤMYAQ(侩 c(2Ic5&LFɒ9{]>L) %CA1",1 ZVsL /9&\52{Y:h|SVQK_3䓡ӷ7\4Mt&o7~Gcm9N"0yXS`yHAR&i)m:8iW1(VIHҮ)h=:I$^LOsw U><}s:k]ܗWv燋$ RL URf@I'ȁ"=Ϡwj3yLSf5ÁCc&JOX 麪ǴMIΪ/T悈o~s w6+qiІ6Kf$m F6yJl:QZsQ,dNOڜ*f=GSXTvR/(hzۥI!LVԖ0ws-Ż{8wR໇N?  <xIF7 ײzJV"=};; l@2;N޼O P~w2CG<a7?]4W꧋ c /y` w}z{BVL^].;Q Kl{v$&'fPYnGDc5U?c/~}^G29軚=X |GhIC zgC6Ax8_o)P`ڦNV X^5| %uC(I &.OztǓ7]v~dX|p@Mڲ_>igp&[b23nfz%br}\EW.nO Jl&}FWR'i&;jliOfȮo%aJGMQ k ot}RÄ/>"Na)⇇釩!>|;M2Ld@|x8m2">>̽X5]Jf?F%8?Њχ$/fp2->XsDm[6&P0>:1~25Ed<|d@o7+d&q~7}nw~Fp{M)AZea(<6yꍡP0ĘC:9Fru9̆J6s() G{'ƂK%1.ִS cK 7L#~zxOX/^|zAL6ȫ! 2Ҽ.R\f{MTǬE+Q,f-Z: sEKnJLFʦ޿AYeg5GR4^/k׊+pVصj on\@ZÌ NPc,H\DӷoU_HϿmO~}b~81$Se$e +&xzfMzTc-k ߝn\Cz{'חoN' _o"rT9G//5$ eü`D5 0־ sـ–`!JF3B0ddphǮu9n[{zk{k} QyxHL8zP/ Rܐ!XzXXW::I>ڷ.S# ,+G[EeD=0)jd b"C9Swݗݦ<+}z S,b/$Ie' #$`ZdeIJ2UVXְ G]"ʖ`]$/m#9G>tl 2~OE]Qb|(zYΰuRHiHWٔ "Gm'@FgdW2=OK{,F ag}q\M6Iz'sPڨ:פP;L2b'4IOfWތ_rqKMb5a7дnBT?G[Y)x$mTO.*&? %W; vVJ|v0aZr|kz41TrO/I{5IBAT7oOƅ`5KcH -BУ*$.mղTBIID*]bcJKhORUYOn-/ Tv BB~2vnLtoЫmx.%,=>2pe)ײ%D2-UV yv@oC}ߏ?#oO+\G[z8o|J+TrRִG ·VO\e0Er(kjH)I:bL0"GP н?B6 BVwDfmck[5Cg]Ԏ`a=H,Y;Z5" Qf}`RjleTtn)k ݏ€(Ks͛:z? @C;X0MUtQ ̛F2~-j~d.ՃLjx{~<=ϟ_<'St~'_;Ϗ_݅7d{q~:zO>_R{狒߾%^<c4_8M1=VCQiӶEXDzl$teB.ign1iexnVu0@|W(.. ]tUv't;˭,)RDp#8ۜ/qv/2 IC1h3}~ȯ/Ƒ_UnU7r8 q/Q;UGrrcInU+犇 C[b??~n# өCkaM ~S4 x|~|zŏo>?=xAq硃 {8Ĭǧ/r^>[PR& HVF[e(Y#jۦ& @"8nI g'GK;q#Ra6YGM^{f)mBZ>#&gc&(Iaq I;qI8bp0#7ݱPm<(*S\hك66OH IJ֠l sXk,iKϏ?=|ydAx-ڬ7 [0U0(ne<̪-+iȑ^];:{ 9y%~g%3n8ȻUwI8p9GݕiQÜ(0>Bi+֓a+PEqH8'jJ_p1މ!x1jk3LTӧ_%("x!iZϟ .8aN*7Hx8ʴǡɠÄHJnVU]ΗVWW+7M# _ ;_g #J}IqFa?n83 d$Qx~i]|K 2P#ҧ0|=`YwP`# fZ. Q GS]Z[ٖ?&ı9&|v cWkܾ3=!2 ˁz:e&,5Ha Wnp{;f=Wu_gX fЪ8E[PQ՛wl L.- O?}fxZK!]B1H;:qLлiκ×L26r$aT'G:҄4bP2Ml3vqMJ(.g<'wrf@?,,9plcͣ<o94t|7NTVauI,cHц6W׋t!vs|iaN+1m1dWȮ4(o:bhP@ 18Th~H^)60'q"rITiUraRQiOD~_!OfİTsm;$](َ3)oBvuN~)ʹ<.k0L( u*M7t*X&^!(o^wđ^)#Сb5Uib؄>©1,S Kn7c~s aPlݯOہq s4]*QZQUrW,Yz*Y+k~5*?eO^+ɀ_4rl`Oƴ3hWZrH U0npy=}ۚQӐEWR(?c|n!bdޕ7_W :ZY~6)MQY6(,97xM͖3&9PTCU= 98%(lHZq$|=~O?OBn󋗟v?x2~(&+T(ӐО& CcfMAӝK#W'^{eSﱲdؘZ1.Nֆ>dYbtէ}5)79^~dLbM۝8Ő~lQV%4}r˨wkGş-qFQH78qJwm[vNKUZWka??H<YD/od$09:\i Lzwӻ/W~_# )"˂?f(aUj:3 {`eW/=>.μ9sϧj?b;1KXlw2mO;x#nae]9 j Bds`ESº9"jԫV Z$yEt<+5vL Vp^Ƴ#ϭ l'Sh˘XUÁL8,ʺksn tVろ΂ȃpBh`Smy8sOۮ~]}E7T?\V`Z y%!jx l#|M6FK9ps9O/&)%t4`4e=̄--60%d3[Cc)n"1~@-ʏD:,pXU*ɽߠB8כHXE5s'<|(U>ws/%'񦁄/my; GPO.B`EQ | ~} Ĉ@pv;:U!!d3':jF2qIP&rO9U@]}uRsXt{9k{51`刐36=&$nS{J ]9_uzxT5X3rpѺѺ{A( T @\UF$hiP7·M$a{D.FSKpYTH6FM'u(OMh]Q˂̍ ,Ϊf(VOߪٷ[>+pY?l1\ՋxU8cr|rc_)Ujs Ao=Y%cXB"ao/n<xaC!|8kV "Y>w\z;: @^4…p`p"u`Of|oNԃ3`p!RsǩY{ygc9=uV:s ~\}΋g-?_j^̕?=po|5=@V ʪ9}KR'rF+GkOG>7f ̂xn.Hnbk>1>g|j al1|TW+Nd;썰DdzKK, CXMiaD Ez-|~]!=#CS`+R_ a/u4\{]B[<i.KsȮhz!\ڦ-Z핁$*gVA@ 1` LtP0&:ITpbvBE bBlZ;# V"KAwI{l/S>: W ym.K .G1m: LGg}TCVt_gH3-?$^)73ÂLIE}``1lGgK|9?b.^lUJm !89:܇YD"!UX# ;Jv:^>չmhҐ1R 1@? VdBbYخYyeڎj6}a܆I%kp Ot.ѵ( K3Ї@0Fl VXx@+gsh|LZU) 4VyS,m%JASnûe Zl/ D>w',4pAt;6!c|B{$d].C))Cp| ]>,3;ǐh7{y"q߫u6{($4"*dۇbʐN#lޙ_WA{s2܁R18+];آ䡫b{-媓:T`4. oLWo !J^GʂNdi "cE n -ldPGs;LQgotplUA`l7nJtTDdw&r^+̭rio?iH?7e !34㥾|\J繓8*dNoCVP˜P"}Q8O/冦IIhv=ڎqtX{$R\$ c78I.peiX- ai?3i@L/Ԯs"Ypb)0+zIJSyIrb6ڎ#m">fw^7s=C"ίP&mZV(# t0pePG_"mV/4 6 8!\ / iP!sds9,eq(yb Б@ڄV9r}wnd[+* "LoycIKYrRpnrRpz(xmEs)a( )6*xepKim(6T+6y1̳p>k /~Ch.~YI L cN`Eo<<Хt׎-NH'l`b0H+69D!  eMp}z.Jѡ4 f+r6 O X'amT2lS< ƺJp }Qu`c׏NJnnE4I) a~frvǧ/_&5<߰TZ2pyNLSh|>'3&R._OcAz;]C֎n#KE{h) O.G76~t5> } Zu8lycX 43WA(Ec* X> QE?H*[lwoG?y^Ui ՙhmS%ߋ Lk\Y;U宀k&R il@e7Ix&^hC}>R12n9^r‡t+<0CYjfixai+Oy>E6_h_Xm]пb::gqXcS^զ*wME#e:NVKy0ajq-?$΄Ed(xa:K~'jj;\&i~gSa^ k9HgXX4< .' Ze$leBLl-r6< Njf36 v;Tr%euvKUCq4M3/C1yZ i a*E?,X&k eR$L7،ĢY9Vh̒f}nq+o Vݥ-qUḦ́-|8<1UxH?G)M9+ݏ&\;0h\D~ &}'?GGFdXh.Ѳm?F:E9*j6v?6іu6CK;W:/Ig؀טK|D@( TةrA68 4YQ0wM~_nM-߹}SxFˏ/ORXYtώ6TV۰6o(HD}v7\Xmؼ;~xkh^pV2 6GTS7&۵6p|` C",$v`lZ- 4z9]1.-DCc,r`Wmp6qw{ʼ:vʻ6G #v8S_o3 zdCnN~e] yԟļeշUׁ`ᣚ,ʙm # KZm"*WS$`=cʀ<==~I*@uC)vovf6a2Lfe-$7q`/Ub3| .b|`̝a-P~g?sV.O "G.?<&dbs4$BܾGXƻ-f lpHS~gpOnǺffg-z5l3X;\%oO w=!X#iI\n{j-FC[ŊrS=|z񯳷Y5RdXc;6yZJPͿ Y0afV0AQ"g?U9q Dn/{VUP M)A [s:;BIqξs1Eڃk&}353GټW=o%p7=o$A[]rLfK|8BvZ'٥YϗρGj邦ßEiޗ^7ebgx_zG{{ZѾl[nzջr^eOzx^Qa޸kz[3K۽m0[aYb-px;Y_ 2]F| w%9J9"e-a-D{\wTw=Mх 'G̙k6;m%ބ&J8r.컝oA0w_4_o("c=s^X1i*m@~3#6l}Z9|#\c2dg:YLFQҷSv͞VȿQPK]4 ?VêZqp,Sd_lN}^߱]~>aԝpg;=9CЬCTw|[Y/F6m3 2o_}| sAZ~}m Ƶ|G5}3Y}6;J p<;7K/xOF\O_뮱Dw\hؗ;KC2A ^ ѥE?cŎ^j>;2A4ޑEng:eٷ;јXCGעZ: |君1hN|gHQEwmTM?l{YZ Y礧#%Ƿu-8Cgy6dw4Ptu)J=:FCSUV` ava[-Q:i\ufg>j<4Mstm i m "X9mq [:>ʟÛGn*=YHgpsqD6)6K[{8Ŷd|!=@:E.Ay6K8eח֑&0ӑ%O%;hhvwTno.Z9Gc:Tyfo*%V_pVbgL߃ax|G\î/(}:%ٶX| Ց7@3hܽ-zq={Rw_gjS HGi)"mYi=baW֖EGAT0XU/wgν4Ii.03 sD+^I>ffnm㦅ʭ h==uj(;tb6m [d7Ҷf <sY.6ŝB&[ea1ٰ,v:ßqT]!OdQF-Kxc[m- XF}yQmOXIKd VvlX3me 6XOc{ D@@rIojsmWhM?%.iQȓ=n[6 JL=-r``4 R 8֚e6QT jgPܯ0_C6q;לp;kaM0cQs_mKT mJ^zYa%iЋMat3*ia5oݮ\RqyuِlqnYUAzm=ߢU&VͽB8=5f2ԻlBGhs:s~Sۺd+J :Xo||A קv|#{x-j8z( ,;;zs#R;bևK pA6ƟUlJgnKye*ng>(pCk;);A#N/7rGڣh?/SigaJނ#*3[a rx"T[4_15,مB| |A_OX1*N~*q ;}5Ȟ >X~GWϝZu]㭃8/g+ݑ޾}GZZ%;LVLe~((|l.F8>;JtPo 7vʠۻC(/oj7EQrw,Gw҂ Î(ڏ)~-w(bRO=WczLgbt>4t> xfVkpmvi6BTN?>5qMD;=;:]~bц`烃ה:"ߪ\TR̗i<28p}D:l24L}#J))YgU.j\{lAni!&FOxա{Ŗ^᥆T9nOkqXTz68p]3 qs0Js0>69thdnn+s_q7@I:4*] GvT>4j}:2ǒ{ph7d.Z/CZLL5!,C<"W>C"yw4nG\(4dj}`⾦>1 hl;kLGψpDyi <2v]~~hoʷڻOXׯžݸ-J>zKs'CߗׇN:v[v&Go2tr~ f_ݜ_%Ui}S?n3{WYy}.۟ThrybƦ{B]CMصwoƪh[?fx Srz`W1d|Yd'3hx2+Emb} P&M]lE|p8Tr :m| S*S}p#މB ^xiG]mh xy??O,ӂC6}wruzb&JP:w0׉{ \bXA:2abToqa%XDa"M+bD(|@ۑ"#ɔOnAX~`5e'HQჷB&tV~D}sQtC@huQ"!"FYd6Drvs^@(Dg\™M,: >!┆jlS9dA)OL9(:;Q% M$<ҜhNd:o֑vDO{pAid_KY;D%Jͪ\ GZ/J1s=;9+ݎ0Wm?Dʰ*l_jΉBT@= ZgV @Ģ6-1H(s6%Lֈ:H9Qր(wp" Z)2¾s"-d]5y$O"҉hH+ #FԙiylmtήJc_ݕ It>6+bHW)Dw* 2RP^Ǎ~ (O'%5^ip<"#q)(982aspu9\ 3 u5w}RM]҃KA˸bWףHgCϰyZ; } S9Ϡ,Al,wXȻ8!(mϥpV̉S5jaG75(0bXT҉MI&U#jCas8[b:r S\wQ&p(aIߕz_6{–[P* vvK2qDJy("ʌH[.RϾH+p>_)QF䓥h'߷ 4Φ~^T3] 5xzz8XF4wDZ.3q[ьznG)@֎͌R]񂙁QZY"9Xbˑ7`# RJQYeO^ڰODTr6U\բȩ&`<5`3zVapP&q+"tCwiݒ#[{ uqxN(x jjVai.~FNb0re}JaiP5z9lb4$sum.g$ͺ"fM/x| #|A, iU5`^#2''ac ItS9WxBIi Ѷv qg5wm n&t<_KIh6O9||w1D$iFW x[0Pzgdy<L\u6"bA7ҽ57oD+h8ijpıl}ǽNΐΑTsQ ~_xh}{HyfyHOP'Hkd#zh4#\Mz(Am'қ% N!Hƍ uF52vƲC )# g2BvMؠ]J.!eb"@ *7-cP3=}}׸<D1ɧe@pF4h4~O&;F'c@3hԠ^"?! LhE(6B[.2Afg~Y>#t)3Av[.xk{f; ӤlYU;A lWԡ0#TXtϋ}WaSeg[}>j̠ĢJyQmb[e8<6Q4 f?y׈n*_A<3¡A=8ҠϓQ#ul[gɧŠ\ Z)mDZ;i.ϰ6D i ܥӻr&tx/ŃjPZH/H@#ጐiP:Iq> Ho"=^^I8yQ/#'"}4?8_l˜9lBNHG Z0ٶcւD"ZOԒfʁwp$D%ц}B-m*DLРa45ZޞfZ:H7Y z\Ѭz~Kf8֢USŻ*RF04n=e Sw/@>LK\ ZLbF4h'-/hT:<"Cy漎uQC#ԠhBkZjV__bƎ>M>􊃄pz>tBt+ߘO~:R k % [blCN>J݄7 zPp20F+"k'qnJ}rA^X ഻"#r1~3Ag?fsr5k`uy|A;>zit ԳTQϑ ܂=v?@qýAO֌pU NF 8<L#͉Rg@gaڵAuxz)_xSa3L:̽ݓ2Q+ kb۹9avVmZUw{ցx M޻4.jGMTD@v=KNLMD\Ö" >l -dbpE`$;]d_llI4#xdLv5[Ϊco(Q ;~Զ %"*";ajJA|[^Nw%AK}տgm]]Ձ듐z-o^^I=Hym)Vo:dჀǮ76M>\حw[=AWHp ^ރ嚋˚OcWIa,dLFG{ArA*u?T2BAcgVܿ9d¼'5 G[Vtc]UxH]'xvd= !H"? b}أ(##+s5r6 9A RnOOw?_،,#eaXU1Qʆ Ti%+w"%DyovgA,.$;oHw";e~" 4pEJJI̮!08.h᜛~d Բadav?v2v W4;[YӴ K@^-F5f&Gpy[{Ha_:/\1(H&مF/kuɠ +fHGZWsKWMdB+OѮi/N!h"&ȅ ^wx5>ϋ@n2v]R;p6#݈`9"2&yؠmߔ)n,uI]BdURB^8&4' Fv 1-zywsRpʁO'Nr$Ek{EKw!~g)b@f>G7JCnV^?w&[ z@d;oQ|k+uhA&0׿Ωgoy >e.35Y[P:ndKܾMMXWMX 2 ӳV= q8Y}dg`M&յ 1ր17SσH*U}H YUX=(h1A4gI%N0b#>zܣX \4C2hDՋxxH'"+L&q3]7$ DF\3(bֵ~ U/0C|p?gנR=E[diTA؂pz8VXηp/^* w|'V&C-)e::&\z-Xv5r/z2F趲`v1bA >'Lwtf"݈pQ4g/}B$g0+4S5D]aVyF&X]Nd]oN䂀{ (A6@{,1r Fr1]F}a}{ ^ a0"])n~Pj_~3 }3,"1w)P^\_bBp<;;ŬzhgZlkkA2#_I<̛c.Rfw DBi:-m jb cYkE.WaG`A<̚=!0g&1rh!;lXDP:vD$rBa&bg,˙KBa`9rzA^#KL/03ÿxq);yg xK&&{83 q5$B}g+j,bX\/Tк ])n vu6",(Ofw*u##qa?̋khP5ov~=Nj|X{E"K{x9?aӻw"]q"='Z!]p7/|ƖoWwNاM ^ Ky}ᒠ~ƓIuHejSQ`EC%svYk#hJ%miX MXZ.evσ:p]9Rd/9={$^fOù$sXCFu<`πAEL|ɣ.]Y\/xn!I iZ"̅/j|u3r0_o~DM:$$_fz;`֙C-3LOJ ZԚEؾlji}H햄$VzK0C ^n5B]/ b9yk|)8ݭ5@Hg/C?*kI w{$ _ jHK"תMyj :D92a;\84CUsu=0}`mr "]&BD?2 ^I5l&ÑKiYL"ђ |!Hخoz |*f|: CjITMvZb:z.Ho4jĿmZ%Rʒ h)Q FVY_s?p/_ٔK닳TiOjDB$_}6aFĿu]/5o&YVǧHFUFdD-{xpHIпt6@h$c9AG&À$Ը6J n;IyZT+{MNشoՉ*MF 1QoOplҤ`I̪C)[wGH.Ѭ>;d*I\S t$չ.%?y%1IH=nVd%eq bBp~|L!JaE/Y d<*$4 |qIh(g\:s e[$c=]zdV$^MNXYd.陸+؇4Ҟ"塟+&5jc֏udey\njt!1b. C!r$ӁJމψdCPIƲ PrG/O%cJi^x4H 9 "mlo:IcUP S%+t^6 =ȧYTb 2b Og}e# i;3$끂&J?k%J d#PGUŶK$gy-|#xHw"0٭W(:TVyL(5` ^b _)u)xQ="_h(FW2e>>/2lZ-HEfrFArEL)N|^'_Qε9jgM@i,O}Jޢ3 O=(@<\Dd`d#PZ3>’`:@EV VZ7.EΛaIil9t!*2Y * (CbLQ8>ѿ?/#kCEr?߁ ʈ& N}dcIÊZRdd^Py˒t @EwROy/ll *W w g )20ܰ pm_MAS}:uxPXEf$Xκ@ºYmSd:IX%N8" N&j\}a -+Lu@#T`: SD tE&탽* DQfKR˷ϬBN87)>Fok{Yt pUD!SNP>r6пd0W²tp5)ԹiU'UQ×t*!uv 4fvx&e%BL(A%uHR}\ w.h*˫ G%2&~W"}&9f{Vd\_r52h.ٗ;<)2hl%,Gd-\̑.U@.fcz$3~ȮiGtY;4C&Yx#" ,bM) F[#/,_8JY3tD[ԬZTk-寧SVk >}H| ׺6"^kL e sz]uMװjXO"*J/8B]]|d4aZB]NxMnϦb{yO[ &|E0^Ŧ+ hBݼem>b$0^, ~;5ڀK*tle* "t|3Pxm,Oϋ}a#Ne}K1M+/9*Žoy޽4k^M4cK(&t^_OV:hkM S3s&oEq'ju@끬 yZIklsN7(;iu.^3;LA.Q4 y AEwed#k}0So&$M6[|ʌ'N*& aF+ut@@A pyzQM&aބd%Jp}9Gvu~3͆Zkv0&aƍ 7auTo[~G 7)X fN^M}^yo.onN*͘,ndׄʛT[\:oR,:53OX}A5pA[\4˛԰xp߿2D0i^gp\_Qn$q˽C8)zhX_C4bR<f7 " (.vro:nE!b'"NW:&Lp3 x= \3bu? wЄ{?-5guH^OiMH.+:jNn2 u$&I-eÉ#N4!&SuGiR쐟&dƗǮ勋!!d@10G/-7qS&liMhmEXnDNGAp3< P7XZKvr4enD6 ss®{4FL!FˮEqQt#XЄꀐz>< :Mx Q0l6xI v.nDv"`0XF:o6Ueccu27r8~@F4TBq0y#e8`?KxiT.1Ekӄi1F3ٔH7pѻQTSU|@Q f!xkW~CjhBkthn jgp{ MXQa}y|2%bbpz@86գo_ءs%^'aF=œw?vsuJӄeͶY؈{?p~r}>ڟ"7:aղFcMۦ?[u1N&hUHX&h`_b5:oE6v6ȮRju]0 K[X.0C1)}qP2W+қȃbѨ镥_!j2==OGb佂63D.b7X~V8`[Gi{ \o0|6t;#z"# &اwҗK+BM.~ơq1ڛ\:mʘ! TٽyTD |t兆z&$WWnfr~sxR|~1I'g\_>hCѴW-/" 6d )?V:y!k~X,ɐ OC#!?O>ۖFۛlUa ԧw᳟HffƢGӏr[a_a(XO1f@~j+(1HCP~:b;Dtp1 X|h}4Ttu t^sv>zhƟFt |'|1C}A\:ug6xoO6.UlDi0e`ðϳ=T/1}8=ң!>Ҧ 7?h3N;OmVRsL{bPC|_ev$>^ +^'4y ,u\Cf0v씮x"@~`P^x=\>!@uF8~.x;0oϝq5c!l??!?N͔<K4Du$ !\?wZ`C8dOĵGsKS2njN jй7V!>Ϲf]Nni8@`} zֻ@ }SlGڦb sn'<iNYŴM ;e҈V9 #`ۡjV&fj:ePQԁ*U0b L k*x{t&qё * e15݁/_ߵpzyE5彎S?P#Ҋ(+m&$ sfZp7ZD^!2PDWi3,)'J%,71u>Nt05/hŽ#)MA0o qm qe{^O%hDž^16@£ݝfz} R79RڕVX5ĺW&1$HQ @Mh܉(7#I=-IHĕgӁ+H+Y{<pVt~ai킛J@\u~'.}{:Ǐ#`fM/G?}I.#i'Iq!ė/V; )]B<̣UOE"..F"KfTk޹(6迴5= %@3^IPHZkLh7e'm߻LdX Ҏ;-j҃;]ݎ*{I/xwXvldh݅:^?#p4R'_Ş4FO|}6g8*oqDC/¥/ #~IrhFQXumGLcII6绽:^Z#{6'{ٴzp9h)ȑu*w࢑a[A_:/<9z1~g{ N]Ѭxs^hi7d&h%9qLÚ^ZQZ@:>?^]?^t)Z؋`qBdQUP;CKm?ɻ2/R--2@v=}9 ҫ@ǗX l>Գ 0m=㾖Tr]XJ~ ٰPg |ڨB=rg PK¸Z iCbRb,1f~NvwЕ[):+R"rD,Mo<p*yVasH`)8(0-TNI}v2Xg:T ,Kac_c\:\r1$uRumli׺k+6_E ^8sVMfhU; ~qp}y9?94c1۸= Z.t^%a;)ۛ#e[eyW s C:íi 4z.L:E'DF $5t]HzT!z,݄ތ&ؐ{&U tLɦS&O@Cz@1JłwWA@qU %.Ld DnBFFydruhg#D h!:c9|?>n]QW^sO&%Ɯ0^:>](CJ4R=CᾮT_ڒ1DLYud Hąq`i[p)΀W^z3Uz긦'uX4wWZriĥ( Nx7 ꕮ*3G7MµaX%շ*{sݹj=>Sh..<Fxw[9- 1o-I<2oMsSft8+SrPdE{׾Ty,+ t7q%@TЎ0RWƊUn\lR^Wf{j]&^/b*M,B]ӺqlWp#ϓˡx]VޏBE.WQɊQPȎ|Rf켲E buj<[b *Z= yeu([Eh,]~l32SoQ?%.WV}RxM~usۻGu_\Y0DLqvVs8|Npto9 lPwJ66IBϓlV;jt«<"~=$r]Pf~UOzؖ┿ުK[S}nZ% ׽g ]3'vр*9z'l%y{t}$L\BHp̕<+䖋,**j g%o\^V;mXMK=Jlt[[Nabe@QoћN%+@QXwqtF'$b ]ae\ک}ΎM ܃Vݔ%U؅8>96 zf)}NBUKzSLKZW'ma+ݒ1HZqvwpL>6M& xӫ(ěhXA<1&x;a nԼ6-]Aaؽ[;@ԍi  o߆\G95UWVND&)AkM^sYM]&o/ngXzYwb^Um~LأL"w׶eqjLqbc?':@w_\jT0w?(ɱnyW;_ۭcJ= ^['A}ˀ]GmW#3Ć*MLˀG a P8:K>_Z'N>PMp{42Rdp\%ZƼml2V\)> Obh!šMpF1̓U`-žordF\ă믽G9HI"Wq(] /t捸ݮ:3'H7[i'AkmpuԂe^{&f{ыMXk> RJ=TQa%2Ã%^J#2UWp)uۂץl xN""A0Ltj7-з!Ρmhf~N<~g )Ya1& J-RQy6a$vZva.xd(pff6pEuP=WB=P:p0#䵀Q0KLWp LD "^ P'tb}:H ŶC`i<Yb`(0KX52'!qe&r#c}IbpPTbWUdJ*7XPzW@iI蟽tFZ7*Na[Snlfy {8Si Fw1zh->oѦLrlj@P7_Y/mZ*LF@ΖN;t4?v#Xf>Oxhxj*ZY2^׳/>NI7FX&WaDkƴk_MyoC78=P5ܥvڀ='ƋOFĄiʺ/ 3Y͛svcB_J2w[wr1UR+Z*SpްoaN+vwL]Pe7LM\ ]惓~9z.Etb7ol-t7<^gϘ&d4r q !IY p9V>ߏ@n\pZ܂|L7Wo# @R aG]ؐ~{wԄa[Hi6s:o1![¿s`mdmamđzW˭[o hM"pi8H)ptNǩ~H~tuNE`u0o#Hy+y@IRvN'"CVȬl hrަdžitg%'#q܋_i[}+}{Ha]?_W@[YWqsg¶"WI~2D%dݖoUdMo6@f* w?}y.˜ZR#]=9ŷI"Rwo-ziq<WC/_gYFpf`}l,5J]]= 2ߚVUcK)>jNZ @v2EhI 30( @☀1&WSg]k nZHl\*3zg8 "l[0籁췖Nj޶ R_|S+6Ӵ t6oMHWat) :Jm&"TA[t20hPiw/ڲwN܎.G7=t}k.ƤI_TS.W5S^ͱ}t MW`ҝbX6X4ɌpʒZ$4aUpQmwK[BGwK_Lz<;{gqI͡8;%]rmBL~wEדq,50*Xy<䚖)gmaM(Ԡ۝լ"egOU Jw^ђ ?vg;D$^FÔ~ٲŇ=FD5qcEߒV4{UtX:՛e9>s1:LW[Qkz_-^pg7XA$&bOo4yJ{yi MceA;_-wq>YЛL%DHj>E7\6P6"D͖DŽ^&Ի?5jyFrOÀo-u1ޝj槷pCߓ5`]X}iN׀rwe|4 U )gV32l+ǻxV׃b̀Ow%OsOf{2[NUw0.b~<|%.(Lf!?w"Ut/U.+ot pk`&$3]١僚Z h@PX %81;O tBR]P RW$ B ,gȷ hIU9pH$t#Imo0GV? Hu_UUGĚm P)6_5!Z b@{Y#.(xI7KVP;Yp^&Jig`ɨ[ϟ";L]z2Y)jcݧ8@{Ii@{EFui[vUVwUp^~40QTni@{7m>ت;KܽzG!d@{U{7,=O΀|]XdY_y2}/>,ʘԽnͧ?oZJ xzrr==G:x-ߗ&q\6`6qaE_^۪Jܜy-Q?4m>,_e@{gk yVɳcnH,on@{i]q|7%zoB|M6j"o->~KUtXeCTYËuQpcUO.tEYyQ+c HgX-ܾ1[ϾGƀ֣TNU^|5=}KwG/wlrvrS%c?fJJ7a 8VfB,ݻV!#~J8ٽ/6٤Yʛ>qw~~L8xvMuZo(6? 889@{؅|9^?g$<c [@XZFDp:.c҈DO} *kwY~ݗ @,{0@U"1W%&^?P>Ոe*髄4=׸LwI8V)c{ C&Kt LJ,^XTryH<ӏIwYa$ e!#Ggy9P̝u=2|;. 'Sb\5]Υrȝ놈wYq:W8m:TxYU 2^24~Nv֣F&)a炶ڇ))| ,+e.)bEGՊ^q97Dxb`ŭc^ aUT"Z9YoKD1$V^AZ Zr*=%a IzgqK m3$>KֽVM0Lz)SzwB ~kWֻKɍ\ݝ-*[҃T^88nV9ǂP/٫0 KR,aA][Bv&cOݣD{=ɿyg,f?fyVZ Dx ,X bx[j;>JIZ略aG$_rm*׳Q|ixRT?ᱡcUX4.۪ߴ"\i@<̲8RmAGVB4l*#b^׳yg'I ~ tg[K+[7 $2"G'w6U,#> 䒞ۣ>my ޾r7eAח/r@~Dĵ@u=L;_wxl$AYD( :tgq6x/i|J9 KJ&~ "^:Kf t!:7JUnCMg%˨KVA,Vq"sQ؂R/#YV 3@Gla(?~Tr/ٗ\z}C,o,gPNlS҇u kYSH'̀'C+^mյKξWHSG̤._$ڄ^5wʥ^\n\$EU!74ςM/C֏Ħ %f(29AP uG{pHR@\Rjd1 os~%7 e-V5\ƽ)3 <vwdj'M 2'S@BUKf[0Jƿfj <0DLc,n,Xe|Ԃ<:Rr۵Y&44֑P# ɂ:ilQBgA(=G &;h*mJӏv֤L}]qYHi$L!׫dϞv0@Skjލ;‚F/?WGC8{>90IvOo>;+MW ~YyTlأo']΁Uu~C15`{xHݥe=ꡪM wIM[QE'1AșΊb+{Uhhp]Es`EEw=;X%FMk_2́6u4eSa CTYQ}v`ٍvʁ,Ʋ]b{*@H`}i۬tɔTm"CJ.X`}* k`Ω+p0{s 5nDT0k~g'>o_-";5=]cV9rǻ*wEU 㛐PqO s;0!sX!Eۉ%gY;d)Rʤ(Oxرn*L;сFs%FcPJpeX"ˋ:yYִUYr#^98&Oz2:Ď)1%ap-ўisCW ~GN7ΰ :_bwU*@\` \IE<ݝ[vwͯnQs`Cq"y[͊k<+>^*V7)d8?-? O\7dv Mkh(*55)\:bkvKJ#ί7H@Q^IDٮ-dU(=3C=yٚb۫7Œފ9 8 $S&n`ZK9&EqREB=^AJ fCLd=ON1ܻEf<]?Y|';8cKq9e)sPa\"lZM`$0 ުO`f|P 'N2Jm/`ϥz ɥsqzh- \t%)Xٶԥ+c5%`Υ j6Y-G;- "*e2ԀD޶jyғG'ӜP\Arߐ>h6yՌ %W$“eQpb&Wh F σte!ܡ4B_o>A`eħP,uE֍M wEqOw׃umՠ{tRHE',]^|#굾N{0풹0o_Kͩa@ Ϟd7/ڶĮfP<~6^hPv˰U ePq{W%U[1p{UQSnJ" *-y+z['ڹ|W #m_ăW[n3,&%{Uf,vkQ)A׫³Ǡĕ ,P:~Zv.1}_U%7CKP投n WP9 wt+%UGW<Ϫl`i ]9ZAo-KtW0['VîX%wljM e{)jb֣Љ¨vJ= 0ʅ[R'J@%.+I+8A"Lt r^yUB,XmlpmAl^F KJDz:huIϧH>vAX}Uw+l'~UVZU}g[w!k{ɞĪ"Sa _eP6G%rm驞9d1:j}F qkxY1-6!a $f:P,yٴ6S1g>M!Ǧyoft /#*>MMI%r*58Re[5'RUH$`kI%K75)&Fhe%2HSh)kQhTPf)fSRZcm EBK;Uv=9Zvw#DZz>~{}L?Fb2A]ӆJeRViӄ SR ̑t I @k.ʧh(.-iw$``QMhn^ Zu0=ڈ|uBr: ٠Wo{"Yډذ^݀L++@vm.=ykzGg{.36Hq~{6`} M.frHp^VsʪzdF *qyX4]g_zIm2myNm*H htEk`r:)7muI1Q9w Hh5u2ȍggHrQ@@;#Y dE8%;vaW΋OɌ+3u# "_{ٚX54o ƈp㵘[v{_{#&qXӮ2e|qYz|q`u)Ŕlϧmux^ț] tl>?OaUӮ˰{ur@G\h&.x婫ș7ھ:]bО⏮9oE i<8>qtx9nn@@Ϡ>yTmR<% u;-i)8m}ú%qAwBmRFF:mx {~ 9VnKx Maɞtۦpn@Og&PܦiK\^m2mNgC+6?J-n%mbBFu,nu7i~kdb;mdzxAf^Ք{=Ah\uum(迉鯼Emm(~?mxG[N[KFG @Se{WH}ROWuCd\wQ9,D4n#iu+ lGƯ'(8X( ~fqh4[c׿G3 s PGblQ 8Vt@p5s/% 1E Z!Q<@?X͖[T+ !/a;KT18A]B<ˆY"lL{ÞƴZb#Y } pCld89W;[tN~so/alvm7G9KyJMTG VWLVRc>5-pNx!Hk$vw; [KZ("V̷;'@ sεfB`8Z;|R8~ٓ EDWo-l(?- W8:/GC˗۝zph%f%nkjxZJ\R}9|r]d {Çm>#HKDXКeQ|? #:(Z?TxX|MDÿ F.c,ER8+n(҅dYu7u ,8cuٚ;FI/^WIϖgjRIr79T  Z I6Kʒ169D< Vr?n"wNH &WoGޗu%5:=qŪpuz M: lnm}yNCweHNӼtc_T`Ί6zz]U;53~g"RhZ3QU_b_-D ~:_7տg2KB~;yy[m_33}r\9DW':]HhVڭ*3TLL\Н+A͂oReͩT'o şsk}xX~ѓ*j c`K `)-߷"Fe5J 2ǏwnoRѐU]쁭8_?Q]םZSA>̘^FD jMG}xÉuxj85# _#@U_d.vJG#a lQ{vuseJ7L@۸~[s!Np1Ňm>2=-žo)]JTĆ$_h(xENG5_+mMj}EvEqoVġb5j<\<-)n>uSL;[jE#8OՉ-:> gqk#2 aDd۵G:avV@E2w1EVPZ Ǫmn; 7 G7vr&UmPYKҀUJc<ϟyWT?r-Vl"-ీb'{ dU*l?U 43k-TV8r:}Z"AlY'KzP{[A#g3JVs)2'Kë"SS}6UE,awd mzr{E1T{M,qjּҴdI/ `8ZGD*sXoč+tFYG1O(&M,a QgJ`u%gxf6e{BLRTvH%hgM?IѝB@3{3xldF؉.8ֈ:Sa@f|ͧSKPIH@zPE oʤd ,QP>տ\:yFb *d/A;\fƃzHzG˖1\ #Pc1HF@w̖S"8.U{Kk}RNK-N{)qϑm^^*gxeT;^o#b}? 4ۚM{yg>]\ xZ>Tswj$C {N鹊h8tG|z ͸4I0ܓF銩5tuaR%rGdCXNrӠ_'%@D;)i\m>Xx Nd؋+ U}e)$(r_.y<f*^' 7lӐ{r/}|щ" X&'oDf$8o:OnON\kӪa>kTM$^I󂢓?fGnʫ֫n@~Zޓ'YǷK5K3&}GՀ/7=3`1q{s}(nWK_-SIK^wK"$onno(K:[~u4@g웣tU},ʿd/}qJ'|b%=FbP Ɠjb k괩]$j5/=NKW vO}?}܈&l4Iҿ86J{B* 3BwP0Iq0O @q'uIa`UYa\zRH"5[Vx 5 0FFv3)^ k7ߧ+RAw: ?~Aq72DB I}uwQH2~zL 9L;ZA]I'<?rn~1@N :LchK!:>}MI ɂ<|ŏoAЕUܣx' 烼!UE-h4Bк^bxt,rϩ3?7(l(˓rARE3!C%< G<7\RH#[}|G> SW+$ 9ڲn([DWx*8mm:'QOq,BWxU l'SƗ/>^ܤnxWVLӝqwZ >ֈns[W2e>oBŏlZB (v2|>ϧ/N!lwO=*6u1 $.yR5Uk!̭5i/:cܲTB"˯%K]_f>|C!glx鴼TH@/y^f"b$yM&u^Q/TH6aDa 8x:cMxwP}UH9_ S?!o&h8}zi;VtJUR?*;WI"^4{C85XrbYnI~}=|* z; BQn;pR͉W5)>? O\4x݌hidb6MM.Ӌdž'PLf{T!Ώ?A#ÛiẀ ҴТtn$ιk1[PsZe5$?nv(= |~@86.93-X(7 {riE#+zQm'QJi$%pI$n>wf0 pYF5`խ"Z0-e"WTq+\ϲ+keI */V-1]li fh!,Ӛ %\#o_ay/q;̐Zb\h{vgX9h2 wjq:tcj+;]OX]tex"j|> Nf x$ג.ϏCŷ,NY "%uK膥]_3>?ůֻ]i$Y`A:EN)\Bj5}YwNnj2>~(.?~J6ȑh=`Hڲ{l/uetjRrG 嘾N*Q\vo p ˏtsWk@K:q3Q]3~>@ZZM\17YYO1ލ=O?-ֳvtax=vMޝô&n8 Be-7uuv8f;ct|PX*h@ԙvX sXbMٙrYC6g"PQ'\xf1H(Mlw]ɰ&'T[m2*U:W2` gB=w|KlP*w7h@+tQ(>R*$ @%9p=4n %O ~'"]!Ãuw2 68}a}Y5 k^ïxFiμ3n:1qlMUGc{t I5>7@^X )cr{ (qQEHD0q -g3_fMb"ECК]h̺Ëif 'gF=$!d3ta޳g.k%!;EhMdʄF~U@Ĵb AY-1R,q3&{_M8W`]9rAܴ% rzVA"\wWG8$-b\t ~6m6Whm.zݓ6Ihmtr2?31Ōu[Kj7}ۢ( j:Mi߬H'utO"Y% z;rum5H1hH^wv, /{,ڸ$Lg({EAz[ά ;✫@y8=tp,rJq2{y$g}>' Ī|vP^\t,2}Mr+z%-rKr8=~>w\E@[ Yn[g$q=`{YWl Y4!]hoɠ5Sּ]lϋOhx>+kǏׯ"Wj#vΨE_|輦,R(ȸvDQE@sy{U;"s5ReIgL\X=سH\Rqe&H vퟳR:VEћq`uiZOk@Ҷ53YW͂%װOb?V=A*njș" ^s+F8?D׵\E&[\2OHsԾ悉' _V(dk20՝L9Y۫MsJ[bD,N Sajw'*qځסNZN,m'PЂ7٢N&6_OX|e{loMX[X-(B1Tϐv4U/qg%0žED 3{*"e`(zONr6oY"Y`d[Мvۄ,{#n2eC!tz}ugCAxx;^H髆= QgnI[$J ϻ5{?KZǛ/#HwS{Zd ŴEyt"룰S6Wo*0bf(|>/,M{~1FT*'p.EPT|>{/e7y"#,m0<3wkg0*zі̿?*,hLi׋봑i̔Z0F3[Vh1ב켰 P[o&!(/\w34% ;MĒՆ`f$ ٍ G yttܿ37?e# odcov> P~6{ba5t.*67nxCc>=T*óٯωz&x s[݌!oJލw$zP&j/<ϲ[bjmv ELbgi ?e%_Piq:f[FGqj< pPӦ7@[B۫GW7AB˴o/~2o&s ŵqlK{lMpt":өofm#[V ĐyhزՖ `]$m߈  U}^K c\㬨a;C}{WOGp<|tEjw7[^ c Lq͝"8M2|X~^vuU8wM*2uiz:D Bd_ΈKwIY#. u/w“Fڜ=pGN~cx3[2gÛ ` _у!%巧wBd_ЃeV9'͊'y^rφ`Xf@ewD#zjn Lcq}H_T(6?J!ȔO@K]ٔ[&宗9n^в7(2YǚqZmV dŊ0mgZ>N҃| hQ+սCBrnfua~B'!vwwC?דGZu #&3=C'sk ]ٟv4wJl^W Af-LV!#HE5dyжAY}bsЗY\9A"HqY_׏)0CK d6u}jQ`ӡ2=o?L!/]y3K\ydGc!f/<!z)7ӪHNiQ|},{) {ӿ%TI~W! /U*xf_s&*:ݾ{|=%OϛA\*O/^_!(/ui_ Fz1$X5I6'Z|Xls<> L*ɧ=R٩*8!rnſiEy1['/ Thn$7Utr3 ~+?4R3߼Mzk''+[ +pꢷz*BXbW*"O${-ݯuk&*}rЇy*B/r/;G_q;U% 6"Zݥ+P"O.DXwxcU#Ob7W=;Xϡ|"8Е%yAW56: \ԞFt}G>ɩ}'Oܖ?eT7w@s\krÇ}}hDNʢ=NWN#LNg65FigcsD+Qs<᳓2#xLt2r⬘#O|gzꯏL#;yKwrVw_sveL\rקwN#6M>BOQ@Ԛq}·jW\~جܣY&&8"!^6j'J W&A|Y|?>4M6}!|Miֈ^+v%x11oݣxӈ`vD+alh{'E<2Hiɘis/랯bhkGPFI h҈r`ִ/H 7ѷ+^FB_dv*`軋mγCYqۤWͲa F[:"5ʨ7TxV(bܪy 6<0LFj(.&1O҈fAKnO]W0&V\>mTV٨ɦm׈zA5S&ѹ\ǣp߷Ŷ ?t /qćbåu 7й#jaJ\1,:/OwIjTO]17MsnL&?) QŋBxDd]s'@U8s94z\7iWkDVlm4Bu I(.N.~oc!NFbB._cv2Iʳ!Nv$ӹKt͇Muɠl% `Ml]pRF\nse#$H's8IP#@N$,{',BdGgD\sgo߹{|Dg+jD5yV5^IHM;7=gITV> O:#[]A<:j=ZhAl=G#:q9s⺳늳 kXg~kawl2#@5dĈEi=~+Ck3HHfz\ ?f ,@:`7{w@ wvxGrs4џ/F=3}8'|H2b釣`MDik*[`spǤNs (CwkɾrEE /Co,iĤ hΜToY m@+TJg (V{y8 *p|?[p맲{`R3X~* &k},_GwhR X%)OeE &x!qAZE-Kn^+Hh&@$c TuF?<@Ib0F*[v=.TQKA+(ɀ60%, "x2  ޤe@nYBfs2o F'/m b@ OGܧxo9K (i?8p€0ZtQ\1}}`Od-%W-"o X\J۩I?HGS1< 1GB#)-uN2*O Pf*jr؞7EǕ7WQVH'j!ؔݒUلJܣpIWWg iP7v~0L# ~g(p` .MDʣ|<I=a;o-ݳ->dm:>Z`{5Mc{J`*Mrr `yJ (= MUNR|$T|>%% *qWpV,sw{7i@X:Z>Q,d=G?.?J`MYU `ӲVlV,:l?6wi-l7lVa( 3to~fx (ǂ{ 0'Oz;Tm"WӍO`yѪ ^l`e2!ZcaOjw˷@'X\.WRT%gWOW|EﱠsNlp V?=gyrlm{ҶV0VYi/&PdA?XzsV]{7i;X&.wn}`O%aU(wݽ7(*-.WgXcBGP{(4 >P-a" 0pMK`uҏo$tƲ~,P%" |h6R1|50> !oif ,bs*-V0UC@s=[D-w/dqسlH 00ɾTކ·& 0,";^.J:$odGۻx{zN7嬘lgG?.{<о5~40e~@1̮NcCDq-{(0,ֶ}yqnU;dv!AnVqЏXp`o VkKZ6o y7 ml<Ƚi,6]W{&3[:_m[1^4hZ16tiR"!-CI뵻:3 7@6v瓗Kc\z03&F'%t}G'[2=4 (Iku}fKrn=3O6J|]\L>z^] m(y>ӑl1#$]ލnq5i IJҔ_?]yV4ibi16r=F'0JW|ÉWLO+Tyd_YVLM֧}J`*5~b18)F󧧬 Jm5*ޝ@^#ri%U Xy|T#:,J;:x\suGސ絨M{ ,t ʬ Jrc,pa`K&NXE~W(p qJ m]R9᷼m Ir" ~)i?J_ I+>03j5))/B2[Z(Qxbv%JWD*sJ_Q0))>`>}j LJ;* -Тs.saOalHHYqdz!~R59~ȭ5ϝu731ky ԉaŒ8;b p!Qϲ1@^ x_N()" Nx䡮|Zt}I Д3XO=CD?H_X\&C.2Z V*ptLIx\rE.t_%uٸMFv˴ua`4./=|Sv5_NMfAĝXN_ұl;|y9H@a͌1BL{p6OUk?rEoΎ$*vUNYH<_ofQ,4gwdAÏ7+I} <,קmt) fJ,c@1b}ڧ'Eg {PzkwevCpive;6&O)UI=A 鑾.ZItj[⡇o,^v5MmiTX] u>TAmG䜨^7!rN·#N3:Kn؂Rs4&ޖ.Ni`<~ ?G"BR?8j{!kyV_[Ū\^P&dBo\%gBJܣ9릇ZpWO$@ÛTx%XMVzcSr'_mYu+?: s8vD'R# 4%լ!ԕ4]b) m$ϰTI眇^zD4hK iF@c;49B$J$i+^KV!aǡ4Ps/@!\i#i`+s=8y~O7iA@A j ${Ɠ_azDI=zB|/Dݣ׎a{HnF9^솄G{4"\!A1ܗ9mo>BfA&J9̓G:vmZ[M]805:i8~mhÍUr.<} b-EOͥk{/悃%-}9hX~q5ԛQ<Û_ی4) L`柁cRb3>䫒Myl9˵$f;U]74*U%I@A?y(SŒ9\V:Y񤫦1;}Z7cAGl3Ӟ\*@6qxXnh} b;F\V%g5LL7NHn/H@#34U7Ūi&AjEė].K~ϯ{aqw aǧ\O^.3!%ĻȲ2cp ՃƶIT< fk;ȹ>O{OΒ+X!mZ88wq 7 'qmҴojvo77fB$ |HkHg~R|%\`f/UF [GuwA7$c-UZ6$IIbGI<g)2t!{.;[ŷ>SG€IJʅXb^K7b^w+:gB$M&kp%X<..[D !OЙ8xcp I2i([GQ5-r%q\_<lB$֒V='$Iŷ˲Nba3dA5$I扄stU&hC=C\ޱ'e.rINk S!+$:慙Ezobk: 5wm[&/J]7nzو&Yq1ptۊA$iRe*XUŃ($ õ#$Ϳy6#p QҤeD LT}A Ls% 42e\}6o ɬtwݏ`9sFqgt!ߏ? kttl!f| hG|^ $UrDvN6l2]+vj0Wywwuy{1!XD]ü",6B `C;{OgehHkf_BhJ!&EպOW C B%qS8ʹٖ\׏|&PVC<_ !ѩx][$khy6{KxwXV[GQ i5L^ v,mtX !1q7.B./s~ rE6Ȋ.e@b8|+K Sn^m20$ ˕?e q}[G?Zܻ.!} O!sgBBlB?=0ć@:'gU\Z/\][ <bˮOݩr'Iۍ#׆))%ny ?!8MFO蟌 !0HɛX/?nϾIbb{n\}53:k B:>l}-BJ<Q%aۜ ] ήZN&A/>@ͧ%/9q0WXH~:Y7N&m# 84)1;@OJz<G'dMn5 oDjG;@u2ⷍ,"iƕQ>kT0ϓ2 %o(#aK&,q'_Ah?%?wzL#f&I(ZUh)ڠz~UiD|G@ԃwcsy,\No87%OOu5T/..Mi v8Dd?ٰpߖHO<I %A?%w}2p6#wWph}3ž;Nc(ԕv 69m׋;݄+s?42 fƭn=DSr~<a3刺$ϧr@&$Чj ϵ{XͯOvC.9S2ﷹ>~z:YOOu+wF%ˎH}\0sfݛHj4 VCRa켪_4&AX>i'},J95M|yHO]z@}jzv)Sk{EXBrv mg1N2{lك{} 2W89Υ(rL GPi8Gt" ?<~{ӲXr/IƊn[ ğ;f֮cMgRɮkv%g<DnmԚ%r6mE%M0EWb]WOLcr˔"|+./oRW+5s/=08tq ʒw+]IC6#,]@rl@h4wG~tV9q M xU3x= ^[ <#Z ظy|P͐Ŷs8O+ZjHpN,tK!K28yuGVN ۃȒG+Q<Ȍ|7qni4]Hb:JW[U (Mك PYiDLnVL$pax؂G'P6lf'ҎS;Uwz׹rQV% JΪg5EF{tx]![|kΆ٥^p)dxtpG,vv#4xL2+TWp0#1eRܻ3܇?ܬjfk @dnfjyK]$e2M'PU". P^iv|}7ДdUS+3$zh04j/{sTqgY=AtE< Nnp7 Ad ˾d^>nz?~Ad:ëJqpD <Ӛpv dU#QɴܯCEs"Nɴig=дw[$ƤL<mϵ>&ݹ?|!$Ę^fO&e .f#+mbRN Rى N*e ң"Ud\}'oBۊOĒ! |΍=}CyJiqyŇ! p77x :J67[8P܌ 4c5kﵧ`$gy4jb]9v9}gq%3].Vĕp@?&ul{w :*oE ͛) ')@Rb|!x(2 EE%m3FJʴ"1ʫEm{63O  FMEuu[w তT ڙV1jNRe"(tx=G83mxQ tÕoQ rfxKI;#y;#*G)uq%U&>o@ M[~r9%@KINk#i[nJe0[HMAIIUwvлi}K%ylfx 4qxdہԖԉl&~ker{ GgL9[< y'gM,!`շo@ZY6l9mC)-~sǠWF;rܧSXҌCbޗbǒE>|4i X8]2KCXFjKzQ,ɷC>(C8at4v/Z&0\d >J1_0C&9"eEeOJAKI3S0RҦ{𠝤x6M) 8pMJ(0'vP"tCn[ $m`z>03pMj<RIMg'9$5Nr:mc~{aHŤoe Xr6sU %?2@K]RΣ@IPHQZSYL55Ʀ.W٬x6e`wL3@a5Hf{{g (NBm9&$`{\OcF M7ZMZDaNx~_qN| p(4Sg uwF;R, w 2^aG)ǣX\nmk4IP3e 壻)Y⦛ J!i:PZp,@7id_QP;ˉ׃ TJv^u8/EX\+ >;|u6{>@(7;i G*<+t305*cxG"דoge'vn< ԋʒ*>v;f`[T]J"2p.*ޢuM鬉tW Fe%'=D:O/F<k})p+Jy:aiwUlm@בWQ1Fu3KZd`My}B_L)}A̢K>Σr<cMh->kbee Fy1Cx?;!(M_9`͌!5 bۉb se"Vu7 p3m{|DuF;J@(#ɔ|)8qv_ a:Nb#pȾ#N!h=Oik$?Sf@1dև`Z]NcVNB rԵ% WKt4ϑy+,}fǖbQPo'0ei|~@z]Nj  HѸN PHXp>rqٮ&#@$e M4gZ>x~iJ9e8A:V{U|}ܜg`X85 A<: ty}WÙ8=ڪ\W8ߗS^ ?Sj],fN_y$74z܊:dI@mJ0T?s&y5ܞr}{(+}+hiF7wA^8z1OMyk{t*\: &/VmM|82Ge?$6P*o6d,<=\]LN[jS{8T&qs?q[t Sō"ͮG\`z5L\.&PO]+=1Q҉wdD%. Z|z&IhpS?ga+褩-'] gYF G'ur>dL$3 9pv<*Ĵ&.ٓ,N^xr4ٻ:h%{4_E>6xny G6ӧiZjCS,$7%Hͱ]A`+ nF tuo}$(%1؍^)'l0D=L^h2IԻ_iK t( >&S3lbJ5{[n ԳW؛۱a<љňzC9|K01zlUD)͙ZaX<ɸn>js+AkB?R M4DKUdD-俟Ygg @̛V`.'m{%rWf@ijnKqŒDʪdZl(/_ѽD>`>5<-ئSbVЊ<΂y䖠9[4a'S%:+(4E =+ [d+U~~BC=Qu?`NK;QiZ[nsqYy "$Qh+>qͿ$Uo:h+AAh+BWqJb7zo2㆜nOr$$zڠHT&`X%Mvp: ~Bs9(ҫc}F]s(CІr~YyŦAKhco/ nB 9Lv||O4 BؓqOIڦ^5@[QQgP{o)"dP uW u"yCK1d24i&kjd~OS~_|t*cW0P`~j =غ 2g+Az7o8B0c%~OOO9 rÌ x 364qhQ2Ԫ.#`c7r^~SQyg#2Ȳjt}6$AWXf=r.Gx$"H&dn-]# %c&MK&IéC~Hh ijTN=C%% rwSa)nk2y5/\{i=b@SYNY]u tIxϛ:-!ti&޻Ҭ51`RĘ'7\\ԛx.\6T[~7I 0,2>2xv+T/O&tպ*?ĥY+,ɔGU*{ H#cq5#Ck6^IڡKζK;aqd&>Nw;CQ a}#e877'!ϡU!oڅ2JE @7aѮY~<:8NO!oTV}ev6szU7"FIqXvh^uVHqE!o)):%9_9лMc,&/s1f}?s=?Xxѱ8U ?1$(`f.=JO_m(17l;3\׷2L!o q~C^u$O>U?fp9!`#6l'w܀!XYlWǐ2 qcIlgw'40f];|ލ5,7\yHO%R3[!o g=>Tȥad[:'#u R[^ݮ{-oc-vK#C= Fl۾/c)-#աnq K~ ϧP]!oc#Ο&d^L"O]0 }TU ;2gGC`ߒ{r5˟h_͞!}%g zJzxZ%ٳ!oɕq٪͎X|jl2Hhɫ7;!r7˷mXIF3n }ˍvYғ|ڷ)ynVR+/JuWM1@/#HcNyڵ[L<\&GzVhqtAK!ouB9/ɡؕBf<,gu/ H(eZ\xQ`[$#< V,<^!(ovbA&yBtvVyIwQe]pV$IrƗy^ȟ~("/f.LN-Vk<톣Q[U[c[]o<@\_`AO(-OQgZ|q[܉v%UɁ* xHڪh|y",-!ٞp;2эR5r7),(V;xwKG:<+]!(o+]QmN靧OBruՓqՂ LۭI?(@\ ^J,+%؂y4R[n9ќE8HѡM踵 I2+v+(г["n-9ϥtV8Md|mD{t6GkF8.}weu>#;RrwA# ykV~}ԾŊC֪ݜwŨ2[ښ[k7Уp4-‘k8/aN?1sz߄wI e=WK\G5ت ,KuJOX$e{&ORr/^ǁob cv2)ĵn<7!RbwJ07@T\pXQl%g j/9gH]3 $G:W7ndu©;zT$P`k!'aMXMUidV6鬽|S0`gJ;oC9Cj{pRneGlONbkoJ6ҚLF}Mz &]GB@b 6>. :$Ӈͬ_:%.1zbOs7R4HS;s2 s'fc|.:a1Pɷ`-T=ܐ4zaC'uȒcq鐸y>}_l qDž..Հ%򶟷Gn+I<?g/rQ?$26h0<')c6ԥdlND"it:t ,%zQ[홟@H>nbuzw6zvS{zkg_77=vu`<`jLF.=7c]$|6"S$2[1m$?9OU_Ƴ5 ilxm⧭w7Lg뜿9)=C( BmЖBٳAҴ#@6cuB PˆXC<" ea ֖ZwYvϷ\&yˆi!pxu4x0cKi`RCsx&xH=[&erXo<Q=`R 0)@TYww؀:IRRy&[_I ,K}M`RIOR#0|OL#0<钪#=; ȔT(Di{e#;Dy N%G wnYI2oL#e|G wvSI'nLzhZ%ժC2@2Wp6LjSu]9WҺO~x(YP@ɪk>${33m"zv{_&]&Wp4x|(PCY|d@Yeqe)Ï2p oN8{ hJ z#qC?0rJ,Ĭ8z0'Y<7bΚ˷cx x,NC kӶRmVzTķ`>yR_]9~ hur1k@fd,('X  8,6!ϑg9v@d< 7 ,ŷz 5|v XӇ7߀Ȓh}ـ>3x *,ǨzJ8QǨSAkdl^2˔ r1]׻lOۑq'U繾U!E!/<#K,k7nhdX\\M'/\Lrwb9mKNt\qFg#K:wm:F4|s!YA4P$Y*ߠQhSj@#4=b@7Vw`@:e\%~Tap$Sƃ^^\˩We @nE4eJU^^C 8*Qe#e:ne8_='f2J12t+H/UTPp۩r+>J#@矯`הiKn^) nݚיjwmxVTH_*]G3@k7iH@1 2iAN@]'1mpyƗ16wҀLbFe<:j7Lѻ&~MYaEeJx||4_w#C 2Y p:eWSl,8̶>WiǛI )VK \_q 8mz+I˧Wgv5~RP5L&x3 IƇ&@Ów/OϫrX(LNv:uM| Xn6u1L ` I& k7q6hW<@Tz>M<%S#>L!xO`d6>}-ςY.M—}ѳsiR|d! QS?&X];Ei~OhFbNok5o\>ĂmyWv A@;>b.N-M7ssn\0}ނo⩼ʘ]0>Aa z&i{Ӛ?)"VU'ʹ:BȂR_)瞢 ~ >^v MNLxpP`Ä<&?,7(>Xfƈ?kPN<1!n+/'}ՂRv|m5uQʦO 3V.VM9QNi,+|ٚzs/ `mDݍ=mkųouuu^lpL~$>gwWDs}x;֊wvsj/51΂Ir՘]_Sl-y4XhH[~sj Qɭq1e5,8+~7чxֲ?Л^Eo× v[̌g&l'`< Ng4{n&{ұVFxo]qPƇP=n3QMoF'`('aB =<\؋rw O{o^ xu{so̘ų=&(,7! d1~+1{Cv&(+aݑxSt! &|0 J_ᭈc}O1.՚#iQ͓ojYt7(@5ms܃sC&nCŃnvI_Ŋd_}&!] lr2* dRLS3I<8RHx8eY$zY|IzFN;}YDeμoʤ}9dx66Wwh$] e䌓 MP.69̷+}vk <$.?STDYqq"}@-;i I)>iGC_z3H8ъzQ;u8(;NI1gp4 ."7gNa^K/6[ӹ#`釀Yi?a UҊ,8Gc-IUcq:z KwU;wĦMm.OģUI_OIP=?^UK\Q~.*,h4Ruݸ$g?3GgurpgC-fbGy]lZNګrMG14KPNjrvvup'i`u4w;s6OUp&NRZ"JţYaU [i0 M+e0NOV|V6#~pߒ_hk#Yf4tKJ= 8mK%V>p{n"- f֭o~57Pꦓ{O=⌮$)ryb@9ߢʣ \xY;O:Jǁ \OED?Cr@{ugM𛁩 =eP=M^tUl0;ux=4M_.=S&@펓=\;K=-% J=۴"njVl, R@}#cϲ#'_I&w65K _6qf xTi&ce*6~U#$WEd0ҼV.V|۠wpӎA1>fA96)0nhWyɇ1J>|$1 3}#3<@ltGZ=ʟl H}Ĝtoi޼4?Ɂ،r`87] ƕpu<% е_lwz.mcVoˈI]GJbqS.3$<%^<=ԎAΘċJ `gLs$cN\##$ $}aʲma*h#b&>=p1*uLՑIJXU G3?xִWŤOEP(K^́ ii*䎨5*<g`/Zd![J,ZT @TӋ# U[yTSIWнlbi=;eU/[ʬ~Њyy5㤿`RL7AJy]#Hi"h(Y w=J;Gl7ÿ).hrKݧާόA zf|z#P&> }`_8~GÓ"xxmVjh~QR0>F: {1,㫸j[=j=QuR;ӵ'icyHEؚwˇ0R;1;oﷀPi}\x QzO9iDUJr6=:J,_ B<;o0idT h11ɉ'bϸ!$d^xA>+A^Y)LkJ{:w8؜{7}GX[W1|E:0*F̣}啤+EK,)G&u.3N77M,ѩp3^AhU^|23X*ގ6rVtd;Qe4mc>xVa* 7_>Tܱ>s}e):оbJ,o Ώ %3ߘecUpN,Ĕ1I0s 2&}o n3oMg1ٮf NYEeLUH|_8(cxzhѵ{DScŧcb: ɍ{5&ÓbpJƴ8zg1%c7(ߣu@V Ц v۵ӳN8E]T㿦\;or]oɼOXƠU ;~ٯG@j5|\^dĠ*&3 aA`7ш]l JʎǢ+߄ S>u|$'!$b5Qs֝Ѵ{~LiAR1'-˟*@[ >5ƲYGˣ ;OpK5 c%U 3G 6IpUifW5"i|J9 #ClF46z>fԼ5U8JFƈEt7IfW7oW'`qy+>Ү%Kl:Y;7w'\PTS=\FNLX+C Iv{{1}kzl*Zo?kL@X幺:Ik)wxMҰ=j<\Х CVʹˊKiAdU6^䦲bKP/ixyd3zD>uzHz6Zjfۊ|%vk4DP>$oEۋnW8bΒ!1&p/t1I 2(W<3TMd]r|d}U%5s8^j ŚwlH@+FI&\)_Z'm@+ H%69夜Lk=&ԧ8J޵qI\ߦNV[/ g#N,e-W9e֔,uS_@" ٍؙb yLEKBhmH2+h'U4##q綀)g-mH]6tͺou(WlM_6ؚL{%,$o=((%}5ZL)S=s;"hѫ*sUn6k>YܼVks4Mm$VS7&NRzzY; #ɩqe,0ΌӃGD&D냽'85$?ՄSk9?v\ZKBhW^bu.$Z'"3k9thx6opZfwk4mtEqȬq'iuۮ:;ցyutih ^'{:UN_ Gm52ժ&f)Ikx…竮>fkg 5GU6Jpط&֣YnطfMW1KjVM.HL{%[H-HŦ$&Iq|WM {ikFi: ţc  ]/8~eFك}}lR1f,~#닮2 Е5a)p^<<;>xTe8E-T0aک \ f+k$ًq|–X`VWX`5Bsֳ< -=B+ d*OH;a&dFMku|rԊꛨ]AR}ݜAYHy,>ܽ+͆!?9;ѵ]XK ӞV֙/cDuZlkkW5+sx7ZLac'V}za05}6wχWެ8saW_{٥J-`GuQW{.f}:A='qٚ/]7Th9A$u=)ob#Xeyqxwﶅ7`nlqtCDجk&zg8{%āο|eaQ!A!]:\EҋoZLGZ}t3&IJW7ZQujoig*Zt%*K+2 eAt`=4A/ֹe=0Aw>c1A0j5DyN< $/Owֈ]DWZMp7׉C lRsFe6z Tmm0 uiLJg-nw \ܚVzu)f{䧇%v&C-^q}_fvه֑J ^ G_UVS^Qxh}5A=b!bSedLO_ZfEGZГO]ա5L,#glj.+:ZoM+X|6:<#,p0O@~$D֓"zj/* CyՙU!@u9j2w0*L}$N*%Q[O:4MSn{{ml}(!:g5ζKU88cnzvhIYH{ħ-E$:K(uU63 8 #U-OU̺T¸/ wVZKמ5uIaV?ma3֡bEIXZ`FlK8YJjQe#ڇgЁP~P{kI\k)I],xsb=1aIO'@ȺdTСbͲ5UVuzA\,n& kP#:k̖ر{U0^P] <=1U}{:mB*[NqU@洽uY5Y^vVնYM|Ę$Ww=m+s1(b<,ID}w$ElP"8z&NŤP}ԅqZB"넉*98L:VnO/&`ބ_& />,?t}Lyj;"N'Wff5\'y|)-ZN`XQ#O#qC>܋PM##6GBO.:=]s/_jdA@)QB+ށ(M30^, X}pz"L G{C#6 I4t[eDz" &S:R֯M;UbkLCwzaKمTc,z@|db?u wXi utj*`{7[GggG]Yi #eyQ'ҿֳ6nzYZ n:bvvllG1#~lhHdt(.[QWތG0_n`Ol}E lzhr6h `ZWeaġnY#LNZcb1J=m0eAt y_9u,wHMm[6z:uU9dL^cp+lUӗ?`]7[-.#۞hclec{X>68RkI3_m:$l3.$Qbйd^0TXʏ:l+<}m쉜?)QDy[[S`fmaļT"toxYQJ7f#2*6κMmX\q?uƨ> ݹ]27;iFnغaf!j[Eo>c49DwM;kQ7=<V>]y/7aҠZsXc~Qo_IbbV6Q kUuW?V\gxd ƍUڕ.XcӢ^1mh* ( 0ghl|WOb]Qa琀A89¢JܝG9ҧ58Ue"bQI ciyM)Xtz@\u@K}vHv[R#3 k*g@v⌁:sKzF@nkXlAa2J5@1 .=+('^.pbQSYƢ<Λ9UC˶u/;^.ۼFo&W6[_ ަ;cn=!F5mElr;̳j[v[°U:kk鄅9$L[OIS.GU-S˝VWpBf[O&mwWZGd;$Gt7aʽ0]1Z5)=ͫ%#7{͡0'mwCfl3_קPuxʪtb&S<yO0_UGԤl(Dds~9 3eIP}vuk@۸{S7< 3MW)I_Ksx&}ki{ _oäo,V{/["=%ZT}-y^-?? ;ƶX;͒IrUItg#~c~KzOk˘Sq) ic竟䕕`c R W]pL>x {>2IP|{\f*푛;|*2_>9i]s]t(.nL W;'<$<%К!Z!Ih8h_62X[8 E|=/ cz+kkf2 ^o=THBkxQId.JtA[𬐑1BxW_b4 `?xo!*\@Xz_ɬXoO&Zy5M\u5Ϳބ|T92@<9?6IOo{O_+k0NߗC7{=< ϡ&e$j{h9 K*G-{˗}I@pSu;uvR9GTKdWߪ bk膅$D"ۇr@Ѭ|Ax2K 쥁xieumXFWQti#|*P0X=  D[/[RT;U?p؜TeWxĸ,esz<Y+Ktr %5+Vz4I 31E`egL]x<ޜRa'T*{ۭ%FAV1g1Av?#Ie}&Q-GeS?ƚ"@^ػ_av{ J|_PEX{-IfR/3$&ZCn$ |׸kO9ݷD,i$Cw#a-6KuQQ<>tNP pZ_D0F^産s(`q^F-prh(3_ʟx{ʉf2i{2Zwx:lQOL*v e vdfIPX%ر`ʫNnia!~0b(='QB*=mTotRy*>^xk>QnHUcrGX{rXTZihޣb*#r@Xm3|Cb}xB)wƻ7$#4˜ui6ۋw" )֎%n١آ=xY3rR+1"3k'z v%jtdM<V6l,b@5Vb<GZTCփ3;Qڐ,2(kȺHQX8G]Ʋ!6շ O]mo3)w.r/Gif0NC.|sDS!*䝈ו;ΞcǺq R1$}K>&F|bXvCcOR`/6ض$T$Ң&YGNEԢ*``ms̍I9#IR&MzZۅ }$U`MA=-JZCP[/[I;J-B/vU(/8q`nq; 3^vg~X˜:6jšIܠ+>[! R@]GxJQ)iQ;X;\Z/;~Uj|'b0KhG?a~@hx֤^W^mڷߩP୦8Z6ơBk%HOѯUhM#:X`*xv^5g dCf`"0 xiɢgudJ\bb-x/ȚF]ӝ#Ѭ.: N"Wtb۝)hxuԱ/V)V! xKqx<(A,naMA(֘u):PF۰+>XtFks:N$}-> g;9]3`hAK ,ݡ7ZAS >"bkOATyVؚJWb[0?xnQ|zZH|`zZХxEIdGCk6l?V5BLz҄{Z[K&8dX{p9]%֖d",70ˬ'5Ƥr)@kqX-CZkU2ki+5Qt+I=JLɢ'`Ʈ[M;%sԕS)kd:˭9i 5(pgou*s#}.JY3TK'bjZc: 񘈲 #>T\)kqP`v؃vkӇZ2:gs\ ?cdyŭfumuY-?Y'qC;2_+PJ-k={ c)ZM` *{$Rٳ6v<ʤ HYSq%ՅIpRVҞ6kʞ cmfx۩k])nګ_m՚iiVKe; XcxANAhbu=V:Mٞ&ii_'~iքGz0kROGjZeR$+#7XĦܱMyȞ^mԽ^#m,q{8ꈦD[v!۲c;M3lR=…&nUjϽ%ctNԞcMܘ\M푸iمS{@.1;zvl8_{Syw\\#nܩvb fVlJu|+fޘ_gVmil@>_< nFS]i2L}7 Mʖ&ηvmn9roI#|6-I? Z~;5&_bF{biUZC'o_A/w:N՗{Ȝb3]~P+:; hl5홁VWwMJ*O Ʂ=@(5Vv+ޏoHm7QkM nv9%fӁ4V1jI8_![# 5_Nj ı2 s3zֱRȬޝoHLpolΰS̓f̝t>dF"I6`gsa;K|k~,bIƢvY^ӱjv'\wΚݩlm]wk.U8~;DrUE9FL5zl_OO{{k>Tk8ީ߮:JC磺6H5[Gu&汿y۳Zs]mvvmzQ',[\6; :n.5ߎͶ.8i6v~Б%.f5i3 w8kv8е9&u+>bSzT8Wۭ<4VMWOs3a~2sO3c2n~?բe$Ek{~_F-WhQ7_W4|1}#<ɿW3ºgȖDtҪH{ތo;ɪNhfPsէ氅2 /}LwYgAW f>#ֲ<=@ rUh;sZ&Q>=$dCs)282FqekFyoUZ>~ՇVSP&=X,=jO)wR6'ř2&Oێ*+4:iS>K:JnyM虹Z~- Rk9P{H]ޯ ŒV Ig7)P<5h~{˓"{.v6~OZ4>Еul iLyuAle4]9{G7|gFAp /̂ZaC~{WM%!C{,lK]'y,nC+fz"OX}hS"wev^e־UٵA5u_TM#DfG"tֈ3 @M!úT&]"捵+zm3٤1j}Iޣ{FGO1Yr_o,kC|iXk}iTkoכ⒦ \6{g\Cuwt~7ہ3m6vY5IׄԾmT]$7e !t{R-3؃zH~h`zҰeY?>]\MN?5iA\m5j eA!^|e kp鬷j E<#WbZ F9[`퉙+WZ& {_5o;Aw~&v<WV~FMasx)ot0_$Kwzoi\/_i=V˧b~g&@jLsfBfm=sEmP ' hI>[?;/b\ok'&oͤ̄Qʱ:zO5 zx -x ze&ếFZ}ٛ ӛ|7hǖWKTu"j ~|qkyB=Aucm*V]bud&;w#B1r@JQbh';SN~ODΥLf֭?a^(]ּ\ZO3o)k-[חm1 ZdXZH5KkWniZ&8[=:KKjjHW/JUݬM;d+ !](AMoYmfHȣ,&P 1ah_7r[;4gcU[p TTMе*Cꨨӥwyl6acwܪ<GQWvɽfTܯ&ޡoײ Dռ #k_#՟~0s7GEqzhIJ ~ 5:b[jڬL3m'>8:>-kkir꼬+Yuvt\-?]i49ս3^K_6p`0F")L!<01Rk=%+|yN4g{#uhg\K@E[/M{/o u R#vmUB6A" & ld(zحBH}qT5u6|uW)׻ 7p,f :47If#'t[Y/>m{ Rg+tbZT[omRbkn%xe\-YܲE xþ }L/:1~ߑM [B1?7bp{CB&wËtt{,L޼KC]B`GT]c~Vx0*Ԙb~I Q%)#ri9Lr)q]ZDz_ʟl it`G{U,#CɤfͨG %, AdȄ<Ղwoz=~tByh"y+ e'zr} +N&H*htbnoKyҫ։kVSvQ8!J--\ic &>L54wU[O\mӨ47bڀ5>Χʴv:MFw~90lXF2m|jm@ꆁ%Ytͳ|5JHfL>19תVmA|:ND8IH·`S%EXքc-BjeGG;16u36ڋbD[1b:ime|}BBK BHfF?Tkˢ;9bl]dêzxdj{LQKN!MnZn= |brp!>c&=-+Љx*1K@fWq2dq@]Z^}2UQoMxʦ*d")$3MVjuCo/Գ.^_ 4IN!:(S5 [ˠy" U]ʼ#yЯEbV}ڗO|*]Ä>bRV+O%1N.tPT,W+"+L_o ެ|gzsvivؖ&ls}^a;XĬoV:W_h?ezQm-t=RDSm B@uvW$JM+_tT%)wNV1Gۆm) Gx'/4԰9XU^g<1RVTйӉ7{.&wzp;[zR݋1~5{]6zwG(&s N:*խl|ZŲ|?n7Zvwh$A 7fFEXXԑDwWϱn'l4-?1I:|Z?LikO?[̙&>Ά& A-gϋOTÛNU.–}=\)R-xi'P-$:{?;U܉ꟿu6y):^. Z_=&@=#`-k̋pzd4ՓŪdE%>Eex7 xdq:]nruvX^ W`:7O&g@->٬%emvuIJ@sƫm]UW9C؇/:/w4MFEQ(/wS-&許ĉ36lZ_WqOt\g]ڃ{OTu$N?vtD_\^N9כLIN^tΤYI=oibg]ktdmjQ2j};귬I`:GfW`Il$Fa/IZU -_EF>ĸ6Ѹ&zmIMXaVZ /:=TAC[㨒n).JZ-~ U%X-=UO!JVcO{ AyzTaO9=@5իS}Z qKIէקfԄ}jmz9`^jp3!-WH|ɒ뢯i߶4E?mq"aaKwAwK)5% vyqhf `mZ[vb8vF IkK[uhۦm+66/ eii?,1W&Gt67n3/ijN+9Im{ۃћYu~cvRW(,<4ھZ g!2HI׋. VvؼlV^i\:zZbT/:_1zxE Q}c-SUqj[i yIvHugqdu5 `E}n(4Tk8Hzh/z?%}J1*/ܣ5g 𗟇#6wO7˄P>)@ ZTr^ +[kiŚZlKb+֫%DRߘOB~ c R, M[zZƟ$o7w<ܥ|8'dVMg7NO3G2Lǣ4:y Poab\6#`& v_O/~ެ[ubH|8ACVtAE>qϴ:sY<*?LHgUCTf}ղQJ}S75]ЮxU.t ^}I ה@/ww7ptw5cm%_ PI̶HGZ: gm/kedÑቸYXWDLݑ"ݑ̪v|tS˸U+%II4hA=mcU],l+6-T^Im dم[iSF(ݙ=Dik >@f.T ffJ%DF;?,oiSqCV>6HC[c6J6|Hĕɟl[$weeT-mZ[x ˰mVqPG}+~uKX;Ԗm]۴ e*c[aL~L?¨n{Bz?ۨBy>d_wE4HOf0.G- ,hb,mMC9~)G|r}]vo><ocE~,qg8=PYI$z1'IJ6\Ĕz[Xc,t0S8R0P@!$Xc/S/\&/1`g)h7qؤ!ĕ8KvOȵcDIaH)8Z.:4RY5@r1Rq%i)\ (S *L3Tr"{r%:ko##eө _BM`[qH)WәRY{;D{_zy e8!;| 4P+<ȸtcnjAP%H ŌqH)Ha՞_?뜥CPI3<ģ&1 fmlBD/{oD < !1 rǤ,nXjG!q =f.& ZY"{J*Tu(_oeĭ@ײsܱ-"YAĒ¿OrrcD$p_Qg\HwbzIrf0W7r"XeH LE?4awdn/D$@}Ԯ|>bZ[nD$@;{Ib1ˇW|48rRwS9sh~Vr|[$k/'lˑT&Sh><L$Lbob$ ?$b_o ۂ/ }·Q]кIGp+4~X8K )C+#%Mh^^.Az vH'q >/$&äKRCؿFLLi],OL ?<MzR|pKLȅt4E"za/n$b"$&#\4hc?I@+/|0$&׍ '&U88!mgc߯v$Yo=XQwIcMؠqS;A,Mޞ rs_H*}5Fh4"]@Tbٵ h _$mjHuӏLJ^#&t,rO 쀃)Dh ?%* YxeH*<)ȧ14 hF8_\ 8J\My=l.E*8Y @ t_1S zS."&>RtXiFDdj}Rcg\F!R8O<H6f+N#v0m9>L6nЁgVDP?Mi 6GJaeH1<)=96B`mxKY3=""e8^ie0:BF8D򀱋E< Bb{xsc8u> ~.^:[dR4epj\oDJ[L9վr9/pQC4(5]dtC\yHB6kT+o\DW7\mXG ZA0B# m( hq{?$ο DS`؀SIF',/F7|"?AH0z:gQkʫi\T 0ێw9M4o.EReT|K&C XjGD %b9.@u .E_s!R4#"]aq"x[FQx-KbqRp4~FD dI0DjCk6 tFDoːvO.$*T1'FTU-D~vOH#b@@ DUꑞKǞg)FrZמ%xI1<:"R{ԉCnw"}@PɆ 2SYK͛?3nIx,t]q1lZ$Ir'fcC[%'=mBu4 3ǤLÝ!J51"|@rLJhP6L8!dM =O4""s0ns@\(&_HEx,}׋"7duQJ@.Blv5'ccp@+֚rp1Iba r1q~[.Gjy9{d\t J.D)?`B_|cEM>$w.M"4 qr6]Sn;sA-Ǥ7ܠ}hIa`g\ @ yL yY_LL2:]pR4 io>S3F 6=H17@+_c"mdH>bc@vDH-nyɊ6.@=:R^tI퇈YߔzeH{xr'AnL @ &&V=1)qz#A ,5a>E|[&jE?ayr RoyM|eH/cYa"@N%7mW: hxHL)e]:&50፳E ژ  =:C Pf''[)/{|{bbk1t<$U]MSҥ:P!$'>rW?DeHX1zYt>ta׮qA^ K;0( h-;K80@r[!`Pi7MbbA 0pd0a[3z!CDߧd' fMr<1SV1q#YDeFN3'g1xD+,X1 Dtž};0gsvEL Й\s+`V_Z>NSL\,,wpm)%/|&gcpG PNG+ƀ 1q.Fb[ąӎtwZ>@FL ^v5VHL RD$X*q)-Cъ1`rn>teHV|dg|!)0 iIJ|$j(-D&*b {"Z?M^:WKG4 +x*yXni3j%#8JQ r).@W:Rem"P^8䂤1`w&Ct 6t}ACHquh~Ġ`QW5%xYl.OC~0NB ]1(,عgFh5m%D`gO"ڔ=)kJOmD`(%Ě`!/x:ɟ` wt{VƧ)&v%?K3dD3v$D`F$'@jLsq\q$u{|D!Cs y堏XL1qpjC)  _ۉ!%qҸ1/Q%(FߒʯΧcJyws=&xJ#]i!:NRr^q-R\@0CRnaKf''$!ୡ9 ( 0u)34j X V3}a$D`HUV_NHˀ"e#NHlĺrԌnہٟrTDᦷ0E, lM/cW\ h_<\W\ H>NN1"=crE(^ ^irAz&WO̢" ]s'"0s|_D LEO));KDQ1-01SR/`#x"•`4]FQr~LBB`>h.TDգ,XJbQr` o),".K疘"ȯê^<̽q)d0b]wʪ5w1!N6P^1R9fw\E p0S:E ᳔8@C 3Z1yי[N FYL)?Ɋ r.GZMAX as8厈 ՜:c0fx"c0tm2F<"F0qD@H Lt<%?\BOFby CKSqAQ;?$% Q튨|>CuV}r*L7GdSxsl$?OGq s fR#Ka(BNn) )p[ (vR۾Xx[5.?ӓ$1]&uLRtb=w'd=%ʖ*X:nJd- 4u>OIxXH.F$x#GA3aDREc7FJ.;kjV$^FQ8+%NF0a X {#HLmqb @Kq=pp)R~,H8^q{~K1<ឫH^ w]٨gS>(DRCz#.@zXIIМ|<쥀|{0hJl/MQh.mgc H* |56󏓔fWqX>_n&mƄ?&-}07Lq~)3",7WIr,'t6)84m7[$S_,"05nLC <35}2EqQ\Jjt kMAȥHQ\m4 q\+YJJIQTi+zEP>rsAR8@{0h(1)V$y,%M| H3/32w\+O+g~4YF*xR:x(#R-[i,&2~r41`m%uNō-#ucwwOYFN^wDBF !}#r@Iр=" nm45Ӈ4C ÔˑQWd|)>q I c,2KW@r$Z͔d|'=j2q\6@pe׹ n$Yfn$gW)q%1k: Mg s@yGHrowNAܙI`a9KhpC|%Z{7I yNN5uEb+'2mA7\(&!cD,KD" tY\F q>d Oކ__Cو|v`b}\D<: $bq`j5s`K@q{ s@rcqRo '>Ae!,.Gzhn $^) \Ht#:l̓y_a"˷2QaRiԸ) hKsD:9I3,Q磧ŲB@DR@.G0|H!ƗŤ5&1Ð?$a[q%Hw!KT n찐| )1 "tE0E"6vXr ی+ ""L\w%HK@:HFU[ "H'@8H 5"vXV';0HȑF+FtzfTy2AbzZ1=,TO]숑4>L[ !;\&eXVjrRL X|ݬ`ՌX*GIa+˯ox#Dn$\j(d\t @t|GHn3X i8ekb.GwY~FEyXI_ xX} ؗ!*7|"5jwy:D$Hm8h8*"E*6ﴗ5IY3D;O$b{A3y|DVS##gT/t:r)5RUbI1¸^@\+;[\ H )q1Vip)R;^u!$bXi2a𛧑N9O/\YLzNn@{s<F,D u=,e3|A{+G&NsHqc?`[h@kE\Έ#b \`(Oib? 1$w )=CD E颋J"P @F@FM"v'yi~ĪQ0c_av=pPĊPCc;KbYoJnBkDC7]H#b./1)cb珛bQ{ qK, U_Ÿ}Ôۯ6 1L,us6%e/BCEEU0<ݗ|9h@R|z[ xN* j}@R6R8GLV*sLUBKB8E qb nD3-TisBR俞LL>a|kJ,t3c.@:Jp;|CR%EHY#;urZQ?\8 bX#/ZSRR9FXJpveX*&^$hzy}A,kA5qĀ?}P%.׻-5lï KY4@(q1w+4ثsSٲuZY\fצ L;l~toD.25'x:\pMuIիD\&K4\qaq1E&C\4THp,%m.+JP]"Ӡ.OMN6WMQ$ۅv{T_q靊m?BֹOCKmN]0ϥp.WKɶ^1!yc$oc¼eRӓxt!}zj x:hRf"dzrDzӦOݺQXеοYR*Lt:(B #ɾ+\6&;,GE%,9t06kn.$5n?6a1L\ܛ~K笭E%-uKcN]jJZ)Ӿ.%XK .E$+'(&J3:R-(eS)24R_f|Dz@DC7u)3˶@/e3)21!Q/] g!;ԏ^$vx4H4FRH"iҙq$\0uߡD3'#e$(tDB#Vv!wg: pVzڥpD%;SӦKňtJZ  MMHĜ՟qEdKi91^J)Q}j?$%e`-KiIE9nNj 𯆇ث$z aw pήkKTwlPWU!*Ÿ)sԺ4`ix5yDVpLf_O9_۸t,EtkJAd^:yv}L8t DbL3FK-tYz%CU!*YfG{FFJD*5r02gv[J8vhiHr3n0cчCɰC R]JhļsZ-3Ysa^DUKɆD9Oa$Z"^r> yi*6dI\.-rV.%AЛofƧG݆t8%.'pL fyX"L)ې9Q!%VpgoJyTl2+qhkazv °7?[;#Nk]Lr%:W}ţCb)t뢚 `#kV/Arc RJvcW$%\F&"۶Gd5o]J67z[}5ݔrR_XAcqܭb=9$ /8Iq~ã :szO2vS;RT6FTtJ/NjP/+C7eȺS!ˤ;jtdӇ=P ./zTo¯Mi}ݐfFK.GtB .Ȩ,yToïynYTqHyEB_ڄ: ]f7:GzvB*AQ0:nC6hDPOToH3'_>͉ŧ|CB6sMkD { ۀS΅3>v[XIbλƑ Ox&C82.E1w 5g枫9CVLZ&Kr +Twsr2j _5v };$)7{\{Y9CӹXj*;d{9p Hz([_luHw>P=cO-LͣB+\dmz!̡q̾%S!OKiˢl '-6{cWȧ .Nei"|Ț2ӆ= $2w;In4s}7ju ;l%ӆFtD# u F.Yؙ豅.jnGW.XEƍǹ~J9٨^0fE^7G6FQwxC G2!g tL;IS!5M6ڶƑHNDTpHd1N$F\S!_eQ] (PS8l݊ &9ڹi 4xcקl.?M][Q!1uQdؓ`:օ;QR* }RTէXC" -kBtKJ|ZyqF> S!ME"y)ҐbׄR!AZ7A*4$oe,,(r*3Om}yKW $8-t)) dKZj[Qu{RCKaLTnZTmH2 pcm P.K~]5ojO,}A ({K >eM A: &?9G#=X7xC F 㕮,(:?`}qHDq4dytvS!%ř%#V eaVD{BeKIٹd uN]nq43k!)b[=IO{S#XX,WAMdH ][|;d8[0Go8 'e^(vB"zUsI&K]^~xDX qk1ɬz.k4d p_'Di\Dm<,>L!G3C'7:Dfku0xh CD%mX 4zL MH%Ki$E ɱ{+kj9zQ$ GTrpܚoE)l we鼧ؐ" ,& GWTsj6c+d՗rI!Yg0ҽ~@}ˌ F(>F\3 VDGLPƽ*UZEcBw*4آKHDStKI >;ol[{ -'4yizpdK)Nb\[El jQeFR{-a<&Ը[iQ>QnG8G/ `>aVYՀ.i{MP~KAɄ J+OS%!WF)) c ^]4J*0U #QҎR{.]i&Gs֮h(5 5JOs*['4wʸփ#Bk '* /&Wz kAlsMNr\؎u[5׺IEq++N@S#n>Ea ,L`>ҿ=SdPt餰Y(ilQ5CUr}% Hm"m`ljMEÀD_Uza7 ȨG@VqgVkaHZ=fzFy8eXY `Q*6#LJP *xhmEwʹu=D#iP]<\=ʑA %oRO)KQ,fq$Pb孮)x.%y^}#1z𧎂!HWQ:]:[^WE SHDg{#ܨ#*X.d"> ~' 'R[I{O#g>g(`.w c@g}qQ'A8.(B 7*ŻcnʑPoC*xVtMHUQ2(AW**8ӑ.$zrp*yDT+MzLZj}CK] H 햃LÈ"Ɂ]JbY^GHnZGe=\cX,FF -R]Hp5|uu1YOQA iát1܁g'Ȉrj6cDzW"j[uFT;ͼ# ^uUh֩q9*%|1o͇^"*^꺢eݤON)E9aIJ>y>vO R񸮏a?pGu ށd1w>QظX]* $;Z@F5V)dCԈ*ƕ`v{CdDT3pS]Q>2[EEP:ry@ ၓxII,X)Fe85T0,>l#*XAfj-2Vb%e=cCjq ˇS̱,i[u 8M#QSUK!0TGCqqjZ۾q|p/́c`8EG8;#LQqzs덌N/p1qd6ۙ5k64*)e#k!B3`<6Z U OO驞.첦C \ %ۮa}__ $ͱ[N}MH.X-hr(;R1JPᰫm Q0-d_U2z)tm3Csl#uL )F0 $`?A7| f4uȓf P?rX1~.!c EQ-N?@OT>># n}j8$Ξ>'Sx3k&n;pNLBS91[{;\@y "δ\`8D>b쥸Y2($baSKQ,[l-ocl@byGGQ%;1{T**򂤷~\b(#fۿt)Ix"^/䏩P& }"L< Z1U 'CoLE'0zfgX\R0(ĜO&zj y\kYmԭ0)YJyhsS)`D(eK(Δ%Vv)`@8ܼhИɓhof$n)<Ӥά6 1% '#ZO0Lכ?0$9#̓Sp1ԵX= ƂU3lg/~3xy͝ >8F) >u Z)Y,6OQ >۳]g L`8ե$W7{M&nd5Ybj&oP*no615uRkFˣP^qtƎfLKT+7ܾ<)oXH'B7Ljb%睙_j^϶Mުڪeu;zR`|%X|lTK~^ŀhS7njTK~{sF_v3b$_f Ge*OnJ w=˥sL>6_bL2J>qf9Q'2W/V c(|GڻSo9(a!6V (җ~Fh@>2>V1Pk|7op ABIG.=Pxɀjn{(PqK>6 lpJ"XeӹKɦܹΣP{BLP2?ލgI[O(K+MCB]\_c0"ACoo[5%%E^aJ(7$)).X4'kjD@D+_^!ѥB ׄj }UOG'TI.m_w=$Hs+R,f #=QJRa"L{ƵXȭ%]B;T^ft$R/\,ھEn meSRҊbm*lp%I- ~2Nt)ĖÍ.%ԥaO F~lt!Y$+3ŔF8w/<H0vK eL@m$Gs`ϖP#M[?5JIuK̈́ zv@'\Kؒ- ˨ {"uߥj^Gf&Ufj z{]Jn~2EaԥA R Mg >-Ij@ DAԺ=Ǻԅ=, B@t/zVF $)ͮdT[ 0nU| RW {P%OJGDm^Tâ|G2aTQdBH`U]uKpb t5CJqϡlVkFBzV\\G$$OՔMuX^;*1ǻ1P$0mJ1((WvN(`7~;ؿ)l3, {ӷz ^qz2^_;J&F'ߩ6%_zXa rJБhj#q%(ķ0&TFGâ;6 eJfzҤ.]sc,l\UWHD;]JN!WA-&TI0iPTy%g`Y}]uL!FX탙P/2wo,$x ߣ6m,I~ZH*b\5Um0Ve26TKYW]J6e4y|t)Y!xpWpXШٖRv[TjY( d51u).eyqP ˛ݫQ%fkwD_ cC@r*rj <تZ vl&iIa&:,Z:B#y5] M8Q$C)x,Gaaaԛ-*}z _r\ؼq>iGZй.Yd 1O L/GTVҺ/QED¦0sL'v)"q\ %R i y)Z{^ LcxhVZ.$/jFh93uNQIH]KTNprR;ɨHtQ%m|u҉ 'P-;W0JHcK7$ km~Y&[4ao~֣ QQ4ͧX?>Eh~òMsA%ϐc:L0oL;^}4CfD #_ͻyɽ~$x} $1:!UTt *N 1Nf9ǩInVqٛu?-؋PGqKPy~@2 L^@~8\E0ߘK49Jer,ad[n{8Ƈ^ Ge݋ˆHWQ7Gb@BB#MdMZ鄄 #$T X=@2N),Q80~TDʽ'`N#a xهaJMqxCrHV5hYG g/"8Po~=iGPQݛceaE> !1/w !0i*]_PkOS!1[<ïqJ1IhڬCO[/ u9M.'I?OZ%B:Ml|a|W4gV( aYէDL7wq69u) $W8Ƕu_3Q\I 80bcJ0T\eJB`su,oJ7 7ƢC8׽QLG?LO\{6F58HMxƑmة|>0 3-p}}o*N`R&3oHĽmʩFuq*?uP&.V_zL\8Bwoʿ $3 ɮĉn`2?gIۙ0?P)J71DOh4k35KDokɕ0`ߝ/+:k|]J^n,*!r6ЕJxָp~.%ѭίGUKɠrWuCEQk7{fS%~r5]`!uoct nT+36K$6Ʈt;]ʺ$ZGs 7A] vb2 ]x nft9i d0ZօdT,BR%lKɤz_d΄JxLӚw.}-\DDjR(qR%,m|%Z{,եd/&-~4,J.}f!5F^}u\+xS^[@$S|]<鍌4bi.)vq:sh6[dQO% {c= ȠDttF]wH8t3 7n'{$Е€ljz'+L7_44Jpe K Ȥc-Q؆/3lpr<0F (P Is7|҃i1υ{̛=R"Ieg=ǵ2u9fJwG2Ó:6nH6aW(cF8T&݈,J2O59 1B gq֥ggT.,7SE7\tQ`$~v]RvOVwbPGnD*qy1mҗG4bJ1鄅 zJTR-Y*!(Ո019TSc>ILtT!6&u{F8iqdBd# rf.$ #} ܼN Ldt$}ѻ.$y .r'QǬ 0_._%k儙V n.%t+kXG"KK]JK<]?ShF8.ouiR$]B\%GNxp.LX(W6h:7M2p49$Խ>-4Ų4pT>!WYp,Rwu C*]Hr]j\\4R7¤7Ek#?+pry%{1HmS#Ȩ AH\R z I"VOySv{HCQɣKdT"Qs+4.J;]=\Yp={i>A#؂O"JZ?՛ yai=7A ?5iyh9с:4]LFیlX,Ǹߌ; 8>Oc)@%5 zgBQwH&CboRrfu`n4K8pH(M HJn t'qdU au|ht/qx~ ՞ rt+glsKASG>[v±-B?(|\Mw1ż'0ܽfѣ+uny]i[S+3y|otj8"Hj-AUox+5r+f1V$~)oGlA9PkVǣvPNa]DIyˎVmR2_b}GZ4{:v5T?-ma% V ΞZօ|%7>&*_?S5HOt8}CO/V fY>қt9azK4HQD$2 v^*X.dzϧ`Mߏ?OOԿk]O./q=@N"P, >Ju~2̧=)B mP(X]3't +to'۝!ko9N G=\Q%O-SPbtj̊> )=(+m=nd*CTkt!<}m0#,h6E30ҥS2>+k>e3&k Up$j9 >4qqG~eӺd7z? TXĿHպeRHZkT ^sy]AӪɪ\*2 J*[qO(wqIL|1HtQNƌ6OM#KL?R^yݍuw3^ckS[of>Օ d_V:SeyXݤ\o*,qE1(<$z}Hwm1'zڢҒXV!-Xxvp{N c y*7ofJJG8+Ŗp {ܼ>>-.ð#0 q*Ayovļ(|4R7\ 2U=GX -#?,_%O~U+ V>^XKZ~4WTl4 n*%Ql_jE`doF>e[kuyؤ ,jo~k96@ d&͋FmnWϦ(J@`\!>t䄳^=L5+"26嵮Ңr:w.DeDڑaОs4VArXfݮ[hPL6kPB'&v:x~aBq z̽_A.AȲ#/$_GiJl`\_Sƅ+Cv nw'c :ho^-Mȶ.kOv$z[h 1&u᧨`Mx˽!װD ]p4tj^B@ "٢֫;]J]</Tڼ'AV/>tăausJF@~޿ D-0+r/O !2M;=RXY4EnaJ) m GjFTH ȀBf?f;$ ~uҨ`V8}hn( ZoXQ$:r΢D4TA7 P!q$0j&F@qHT3^'m_{WGr IE+\~Ƒ_9gG@5!>>@-;l1We95ezxFbTsOqIa>a^Q=LuD~B}FJ=SF, QhǝJ|2muO@e v~0N@zbH8PS ރlˑm-vJKšSI9gL:Keb627]k].A5.ۻP؅~wчkj0`:s_TuauXsVLK}S2 =ll !xCr@nO !e|;QDHcį'ƈ_@#9!w0LFs5LF!4LFi0@ӳNHedC )˜l9>$ #g4c(ٽX/@vPgL^jH*I9yHR}#L-W@ U\"ÓRmɑ.'vl]N)„(*+B.k4x m ;v%`WmB vư1 "_kfWʬHM 1QɼO!ۼ_kFHb9Ѕ! Y5f+u~a[ )k } !Ȱ8(Fl4($ڊpZ)DwRaRtEH=7T\pxDEc;{!?i R-j6NZu,6W!ߺT%&WQpRg}=}.+cT2ykB*)8Q3$M_.P>Ɓhr)8)UHYO?\ݾ<402 .|lQRL8]7C$x띮 zߟ.%qWSz1ROG˧B#Xw"P |.${خKZLA e{]B¢w[a:>i"ƿwaoƯvƢp&y7CJX lAlvf: ^w7O3\hQ2l>ֺg#oĺno/ÇB+^镚$j{/!m37f0r(Bߜ `=8 dšn~B+kP!P3A&N' fĴ7f㆔F_=R^{:Xwb"xՕQj)`RWnֺPNJs¸b2)t))ЈBNsM4\ߐ6Ã8qa4LNlHa>_GpB烯KI\nUQā'fw?^q7%\Dcj2Eǩbx{?lwf/F@pj]_ptlNh3:2xszm;^sasDEgaQ88nkuGFpyr.cEQ|~:m;pֶ#n '6k IQ|'85f+@cqjǐbdOpԩ!| ` "҅ RJuԐ(4wZHJ%{ Q|!gN<$NGm?^~j58&Z혰B҇|1f ɟH2)=A/G!j'G!9p]u`]^C($Ȗ[Q|,^wȊ:m{2ٕ/A`Y#:#}u]:5r/˺s-׸b_& Aɯ,:#}'|Crq}"n~AHʫ!^:L{˵uT#fN58q5 6Kmpҫ_Q|d~&yE|̛#:<(:b'|lM&wFͰG:5cnqQ:IcîXZmW<}S>0@RcWݨP>v뾙 I(vw,p@L b淾%$9GD:T+וF_L\4٩Ljg)ܦͫαoFP|M^9yܙKm5uYzS1&r_\ywk3C\|Mb%$&M}e'8}5c_1nS׎Cf~_miY |r2 g\0hh8 z܋$nO䊀}\E!:1[wB]̻1&%Qrcy?vv Ӥ!$ZfL}8v6,%8ϴ Rb,VF;c2<;cFSLgejZv.<St!_ٚu.N¬mbJwÀ1V'C#BL1,Bݕ-;'Ko|h/Sw{bjɖj!âP;ðsB=Q[1E#n%Ð =BB9f-,`j>}be^:(az*-ITf0B1 Y{1eV{tZuS69;io}~^llSSW%@wʷG^)y͙2.xM+1aQz)zN y5%9頤v.&$]ca+C$ëDtWlޟNSvAz3Nûœ:-`ͤ33wz.bUtd\Й|~8/q1L*wr.@8[Rn; px+zԲ84s/[3]9_OY nr})-D][4yj7vTNL:5!ŝoYi͸v Z_Yy;yi:Ѡx&C[` ]8&8-8 GCnB#$MZ$cg\G%: rF(z2qBc {}Bҁt,e]i\9 -."*,X`1aN6HBH“(Bpu4܆rr{y}_vl릳KƋY/LOL{\t';L'Sv9wnM'e>"IGlX^zuRY҄r\l{e^yUrHifBH結jnl^0ZbtAUȲfY9X < {q YY W< 6Zȯ+5`B\;2/Lʼopkoᆋʄeoi LlvoVK<f"P*HU].&d>IItVbi}x .jnLE<5{G%&r2'y>zEy3Sz$>{|N̳{~</pTڊc=D׽xh6}p-r`+ tqwB.r4_ 8/ vG#dA֥Gx ?mű $:c `S/kA")c-J17A $K*8C6 Y 2]Ʊb;±Z@¼z+!zIvk!y3gqv1`4,.X *ȴѢ&"p\TX8_N2$b=N~ZX6i,AfjHB*[ HZS+颶u@숐w07v (.^.1 &MW,f;H@<^Tĉ<\x;B:}\a$_H-Ĭun.XTR_Fxٿ3!NKu;;I;ՅDEK/AȻ+=9"ۻMK %^Q-+; ֖'kmlfٖM%^HHQZ Eq1։CƽSUʇvhvhu #{sMIG>/gHq2HCԕH#t<3#B "D3 Y$^Lɝ9[{5M-:tշU,\< X.W}B! yWtbtQM Njzzoőt?eIArVu~Qd]UYZ#Ht(q0K OrٟT٢BDnX*- -sX3;+ : G %{&}j `U(?]Z~u 2&ť U}GY"aVrZ*\[3e!D4n)26W7R:PXߣ҅}ܺWRf'ԅ wx>7;yjE9mN+yn6"J]d"u&!""8+]Ʊ D(V̎b`?<_^~fuRp04 DHSYj. U ,+Zb*mc- ^TDǹ̽\~\A.w *&Ou 2,_ޤ}}J6gV+~Wj\K8GEc KS%ıPY_TڰEdia΍h/9LQ"BnZy #;<8mk(kqؚ3آc$YP.Q&(&9, c,x0^D*3Dqnkwn}sK Y NQ>hjY M'3[n%qbÐo07""U/ĩh&C_1L-vt9H]hJU2[^Bvc3@$+@!p)CԬ2%DP|,/:lzkñD|=T HKQ,;9v>X T&F|PLUɭ*^Ru+cQ5SnX P: =uʬ,Njj\W[-rdRg|Me>/GY Jy3h"f.?kDȏbH5g~ Usaz\Z`?-BjSiZ۞*!"CH8m ]dhq*]Sk;Thy)pӡEʎQO@ŋR=^IH1Ok{d`VCJ*syj_ܜPJScw}]$Z2GDe!D,mza3:hhBX YTj_9Jd#-nS}qIH발ܡC^'ZC"lR/Cۦ)iCEQǗF[&F'Fl1^3Qh&U&4YfhayE%S1}.0^diTZ׍ K@%vEY/H7%.ȹxU % $ѸoHrOpd=iU7/ȼ_˴_‘UU/(v%+H}<,[jj6*]dVi5Բy=ޏXECbdB@P [|q[p7C$/˼ҟ}&`eTH"@畖%a?Gea>RG iJt`ñQ|$mtEvR.,s+ŮD{*stqq. \I@AGPIhjҶM@bҤ.Nm14O-C3-ȌJ, -HȉfTN-S"Ͳӛ.oL6r=,WiU-z`{Yz{Ltj.8Ժe5psv=clvCb j2M-Ma}W˪j׃7F>m(cDC54ǶAILZOjwѫ#LJi,*^OIیj^YKkpu/rxܿPzNcH8 "tZEc5Xu'2XK_ObmšE~fEnV<$NL_'Vjbѩ|q6ZE=>8T8(+@\s ln(/Geķ<GB QzgN{ )aNoX-9.R.u/ɡE>!ģ,#}1).5DJ^/3 A$¡/mѡE!iՅ wϥm ^,K./q7Fu8=: IKы4F\BY !.'!ؚKl\ ^dD*ZÂ# ;yivxgL./r#zj $c cRW*^vi=.roԲ]]J:XY^Kh-a(-'7Y Iԫ$TVaC._$Dž:ߤEΤjZS !y֯o.\,TPQY0 k f Rq; d]DZۖ]]ZMjkqvU&cGG$aA0cty)/w&u bta;z Abűq~c5S1q'/jyHTΥO !JηKN!B(};B=,Kݠ/}ԥ]iA:EΆc-Jb #%R%؞Z@N.~>]1LB 7q =ȏL'sw8ʪ\s)}lOUGdr68ֆ( ;7ٝ9P "66PfvɁ9_0QP(փȩ/TeX ~r[R#Ѽ&GXAjfTIФufcK0R#4mlT,屌8ӵƭx":ח&.*c?h1չRXt?Y~+\c_X EsX:ͭ.g̺fæ:a",QBOu*|Wťyz؇yGV |{a_TY]´GI,KNvY䭸Jk]Rm(d¾R2b@wjmVeV_±*>h xGecwa,=jz ǪE۲Uv@$p\ETǾi*DQOLVt 4(@}dsvR"fy:[~mGt⢞Țt4|5Qm6,'?~^cÈ.;nG]ih6w8,.FI{T9Lb>FQ#G4ՍGA 9QG6)1V׶ģnmn6"[ا:I;g88yq"'yEO QڑF9E0@ڹ Qt_-np:p7FnIߏj &.X\~@4pz&(ƶF9lLJ mWMhXp xs~\ U!)+jXp QO UEq i8kEi[` zBhzy,Gv-$kA E]FVj:adY"F˛(.Sª4AT?GM4~Q@h&%q y5XfK@IDzJnY$Fo8Jbdy+B7ηX"qNJ⊽Qæ@(=:ô@+V{\ŸNJ-vw(s|_Yf,zHy3G1ĝ߸zyT$u/jfb>VaRK+F#.u-#1|~;5Q"OYGUԡ8Q#Tl~.t-8woXl8և.3씔BG;jޏ 9BYJdcYZ%2~,C r { Q~8G2"kp۞=ݙV=* a[PF9dR53cc=ѣf"+͗fC19WU16/,c 3~,9P2B ~.kx_8R4z?KhFzny?fYޏIsqc}@4~lHSf8&mPxG {=p25vK82:We>YϧF^8@X Eiw"|jh- 7-[}hYbk>E4rf_s3P)-8 jb83P)n3|jkX~LJ}3|jk8|g⺚7) 8K2imק;~aS`$xWv} ldͲ4e97O^p?K W>rƧo8<5~̭NRc5Z@6Fq7|3Jk8Qf}RWh2&$:AfǢ:܀1aaf}jLufy13eem Pm5Ί}ʧEVX\^OEz˴SQQgN>u(x^̜4|>UfN>4| ,|`|[s\9ȧ撤O9N{aFOAvȹtϧFs=>t(xP'B(C$dDZ7m#KmQNMһ4VD{ /Xeq/X"vi̧v1>Zb~Gfnw-Fc=ݧF^~6b~:5? Pc}:ǚ |)CnöSJɟO,Ea՗TKh{%4,HO^ʄ]"<ԇ87-}*g os#ȜMV~u (g=7N2R0# d^t,,;>ruVKeW˧NFbuhElNaHS}͌|R̫{_O ƧLFZzȞLL&fȓP֖O,wEuħ@F>4[t-Er8 Y[Z>%2fYe?S #y/\޳O&2GDٺ)C3MUOpf,A'8 )]E DQR}Jd$Jod2ϢT5VnRXGAHpn (HK ޗ~'N&~V_: SGʄa# g"^``/wpt^r (] H$Ȭ\q~H 61 ?]Jlq :ET,8n~)ˤPG"TDՓNS@Y)YٗimmFW(~Ҭ⌡>,F*i~|b"LLѨ 0V?zh@ay׽z,}}!Jw8VřZTљq>10μ P#78PGN܌)<4h3ߎ8S9\t@}y)@)#UxʘUj)}h!c}+"p])̴̀=X9EYo-{1rԪRPP,GUyyR)# S:l@3y@a?n&nMa7ʥJ6Jqe'Y4ÇR9嵴GY 8nho_TVCDpmzd"DD{FhP"rH ϗ5C7#nPN dJ5ԫW^Hܑ}=M?1WfٝﯚNۡ$Y Yg3}Jyl϶j[X`g?'?sO0#rYls"rs ^ Ǿ*MK-^&˸V+.ǜ, z1|^7`w@ṡMݗ+`xlK6jg2r:o5䍀cE_Ϛ8Rx Հx0[z%6Á| ɴ9|V`ߞt0z!O`PxSuD5<1vqk)8̉|gq q"~T>s2F+w-t'9az??'f:#DdL њ@bABƂfռ.~NŧN9aɅt;I"tB,X.u@S`ބ8/.ysB W0HzN~[>[/N|NIRsj|@ΉL;psBvThuެ*!oVRLМͶZ ^NVURthzfì2ur Pop>W\|.#JY9aWĜU|Og%wĜخO!? bN]mǦp9!N*~JB8rұRKV./' &u䂕"+E,]d+2FN9 bdr!3߀ sfwldsBӉ9oʦI4[DA3MKDAKMC1q*'K]峳*'Luv.K=^` Bvń+K,ً9rAr=ג3.Ȁpl\6:PlQ Xڛ4ֵ.mbue3B")JNq'( 9NtFN&p@$本"_g: r6<@ zޮVZ䄷vgqv`Ȍ+b.e|ļ(fCA4%ܐ' g1Ѡ8IsŲ]IһtkQipu=+`/jw#<;r™uoDUKYЁ$/Z=DNqsb%'RU6O>ERIJ@0Vݚ >uV)ɁLiq cC'8IӮӱp69PqJ!h:3.];JȒ(YьL 9p:i&_ϹDpMAyc.X'|pOCNE\nA3 882ݨ)܊}fr(S"iNŵ2Њ8;pJ fN ꪾo,@Ɨ7rA\ܯWpppJ(e9`pJ0r͐U#&)fYb5lURqé%i5'򺨧r on~?K怄S2WoZpJAm0 M=<}fomr& vrUR. v;y/ 9-7{I108%"ʃiŅw~g육8U" J>L& :*"SάC2#moRwU\t0FGm{M[u56y!y:\18̌` *N;z-P`om/L#8MS܀?!U1)kBǤ+Fg 12) dQ$-.ߛj3IS~hܐ0Edz:97$LNrnH" {:9'lE=̓ƈ\O''$1xOC+:Jv:YT710G os5B+;\710!GU%ejM LO4930ͫGEK8_*H ,GM8%I L 4͍|!o}4_gba U"$bS ?20CdbH,LGM-y Sr,CgZiba8֡+6SQHLjOol9 ,W!䫡 :dۆ0f].2_d$ zl1puuCR~4hpJ)2D0C`\$Ũ@X콸r`4P7jYя=$N',BUcJX'&;û/A 54|*,Mi2G*q0Aʅ ZҗߖxZi3/3C IfZ@jTI@k%)/~ ƮWAvt5Y>d.!c0pE8`ܓM(MyBP^Y 耏Cv*_0cTG\S)߈,N% zxSnv8S]MW x8ӕ+9كo'm ~{:ٺ {:@m _C: .C$ XWpy` #ADӢ _iIU^ t!q3<1NI{b: PI:g6TMׇj"1Ei۩DLov*):?~"Z"?gODKyV/E xW'Cs2oY I΁׹  .tnu L?SRc)9 z%2>Q)9Gy&״D? " `<7cp>ogC'Ssyd+,%\D>t~X vTe yW¦JڠV h s>?PMJceFKtRs@邯_Q\qQenO:!I*A lbHh,%6O^--/SRs;Ǿj@c:_o l|A̝nXT z`Tu!י: N3>}>KV`iVF{M7:#iwܜ\@A^ėH1 !$|͒o*j`วs, :]O\bAA:*=4u\S'wt}\<CqDwfX{p-lgu2͢>Zy*otthC _B篒.q3Πj3QL2 2FOQt tIc͠jC 6y(f~ 6? ,jC|{ 6CkeVޮw[[P`FПn%֦%]R;{df 6Bb;WN׆r1\ g$3p0`V= f0|M)0GVmUԹ4"Spm|;< &kj_\ݦ+ͦ\ Rilmxu3S=O`LS׆湑9p S_7Sz$/SB*)z~T 6|EQS0()BrQ$5enmђ1E_%lF @e\Sզ x|3({C:nخ!'@%` b"Eʭ5)xgϗ%Qt0b]tHS7:ݽ}兺H|RHsЕ=ḞN#5b>tc>X<˵vc>v=Ұwq2'r"IZSX>mx%\ABזࠚCpm2J t:r·A.QsY"X] n͠.p#ڎ9uPt1t)„k`r` | چc aXֹaזo$׎@ibе%ԘO7srPy/RNykKP)3!$Wjh]X[BR{`m:3]Xgu0 .]Ѕuÿ S.la]0uÿ kXo `hm|?vd `5[r̶"!`7swF:؃gz΢lYJ6t[]{ ٪.' 'k|8]ېWbh>\[EwzҔtY,Vc1C?X L&e %:f7hb#NvHKYCQj"mB$BGQ0.QyY n" %}DFi_<vpN`l?w&jga .噭fL&n *+ %!c;3m ,E_P%/&6F a'L=olKEjpWf205 7:S ̙K~VFL2X@Ֆ|Dj-4j$ Z=%$mC$mC|Z;ˡdSשMOAs'If;[.jFl &>;{@g}Mݢʾq<4}ʭQeVP%lz=z2`4MMb)u0?7+u5ɰ-܉2-a,^S$fy8B";8A"P,'DV`吠 9炓C*ha`` *C)h >MKh*I{*vܓ)6>ŧPdZ_}++eҠ;|׼šs43!ʑ, 6۴MPthyS~o9Z< i-s!'~R,9S'H`qI:9C>7[.v|5W 0GP @a:\M <6?|7QD0դ; = J68$:@"j[a_PVUoWW^on$G0`ސe\H*v!ÀxCbE F 7$^$`ހxד-?ucat1`ސo,/y r mc`o/+' /-w7!_Uq%t 8$\ m0pH Yxe!d'+\x"L0pHyu=04 8$v*4~jI W f֋l2(Cf쪨|"70dMдhC&[Zk#L6R^tg_G:,\l7j2@hbx^GDW׃8 lh3`dCG`hKÀe `;f0Q=sp b DW`"G > lp݀QI\jf |k`ӝUooĥbF  7", ^8p:ܸ5߈[ڿ2# +ppdG>o‘n G}q> W#>vSvznGDߒcR&>?uJGֵ[Wԕ#v 8qO'e&cǑM:q{أ4㈓S$`!^I[IcfU[v<+[7)M:؂0WpqDw% K` ]-]G 6j5t0.Nx9'#T. :D\t=t0.]9w +d@Qϊ/GQ0(5ylv_L:؂ؔ&DlMI ` bSVftv3<#.3=sP/l]L5m\t\)s9"<<!9k LYmԹn`>G:e>G=!l 9",ߠI:؃H* ;H i3C:#:,:.׃9\qA v*n,:bY=Tt0FY#i+ ` uJ!҂q0EQ,UGb&7S,x:J+|e3Wu*1 RKsw#و~iAM>m7<_?`ĞL C {:nkG a4_WŞJ&MJt!b);niVSj|gX,S7C*w,I5@.Eץ8 M X*!iϓ^V 열fW .p}l k}"@k$}}`k\Pdt}ה2Xw6?eJ=l#@dϠKf@kGp;,#` >J v̦2@lGp)_ Cx' |od_t;ULN`_N lGp N{:+`lGpʷDH|nɱZN lg74I,?tJv$LS\@:5-C|MN&L%M;MΗ4dr2];_Ѵɹx¤'it)m];X6 ڍ5`|0B*X4Jkq~$J+q~ZrV'u]9=f v\4ŵ@kJj0߹!d k2A֎˓~dW;N!Xgb @c{81f@0{{lR`2S%h[O\.>EcDo $BH ѧJ qN%qRi9Nb0ch7]eă2p2sAk)JK0< αyPֆKI q-7;H#RUv#][ޘfpsL V09z`b!9mR yTp 8r=`Ub3;D\MOX"d?RgC0s'DrLJc"4ԡmj_t [6u^1hyx{X'n!dX#ɇuhȌ̶'1Mg兠দ:cx嘫L'2%O?kuNG+$o^χxZFe ƣx~GNdF쏻1p%u9i_O?<|w:+O ;%#˱9Ia!W]R*DJCsx*1\c}ahxnLN\Ҭ1ڞfOOM@x@B?W=ד@6C.tl[1Z W~a!]NSM+( 9<< %6/L;e4Z/]X+Rw3}T&Btژ?"\apu|xɥC /WIyHОXݽߞ?ܿؖJ>^i$tss*Xϓ>_^k/q/J;s׼9:Xw-wft[S0jF(|asϡ#OR 9^ﴙ9i8c~?==o]'$k;m}lvŅ4?U}C؆MdӱYah p2d~x=<(0 }>LL%vLjCNJ`Jο_LNrY)BXzOňDcI^OM%^498٠~1GMX)Ax$u4=x5'NBOzxSQtW< ?jd0{xkM l;YGrw[`>_R:e<~GrXdIӛ18W9MFA hzFV"0C4h}ɔ>iL'KG󺤵;3zEdNbx>.h8&_vjnNY Z='䦖X#VO\MIh04Ve$& U,& ב̓_zE DVHM=ݻ܁IKBW]5lH_pې7(gC9 i|,Qӆ`]EL%nOCcҙ&.^@:Qs_'T8 `@gF!}Tu 2x)G>\ȄDȬJ]H`.A^ᙙQE?c7-sqm4tbC`Ow4Fܟ\^D(,A G9?͸NFIl7:@?ݷj磘eڝ?):?WTqu#-i2$ Ax\̎Xܟ'F .ڟbRٵ>W;=>? ;~ :;Կ@kU`󁫷>x#<NwS2au sYN_G8I΁Q遣1~b934p}穹=ޞJ;)y ':|w) :ŌdA>#8t.^(aE=c6j48rwrK*쒼j>KB |xz=FFN2ӶtFٮKg9{^˦Z$J1Ad4=HR\ckAU-_N;‹v` !ٜr؁I"'FvA/,;&?>hɺQ.a|FOOuŁ͘mh@}Ѳ].8v4h46w/J1؆Fi"R z7?ϧrq|v|Rvh߫cSHx=/JŁ _w\7si \m޾xy= p9F: zݾDIAySXoZk[_&Gռx,[VN doƮ#>NJeiq75;Ɨm7|΢<7C> m:}]=0u˞8ƥ#s y'Tʍv?6Z _A?-hrIGa8 Po(r)i 4o9MBq zc}L=t`z;KI:o>2ƒ-es@G(A+ٚ&RؙlW2K:2xplngS>#_C*aiۣҕ lϚFz-III\Ep|#*_S} n}v8|?Zۂ orލ?|\.tkA&Wywzjߋ % Ny>4_ 9J^\=և'Wz?eJw̨C1Xoa5DbIe:D?sK A1pru=mt 3&,Og,ӏe>+~jT-^O^-DDCzV1Ĵ\g6 o -: yq5b!&[h9bD`|;tbI.ݡ$efEnkVZJ`r&{ Xnb9> H7I_Z"dMJRNt4Wbn&^߿<10anRtʸȕC Bs;}D1r eob`trXhh^=IA礲*/қn4fʄ4OFx2 1~1i#{ ƌʇ6/vyVb_;-1f/]pnٕ^5x{=<*{1{Zk['h,[q}{:sOXc: G%.[a0{:<󞌚q-{99ŀ-g8NM~t6[9h+ۇ~Ua$vf[y˯"{8`$(? r* /ZVVz P\#;Gd -A[`X xr r](G L' Dv3`b uοmyyz^vH,05e>w٫疝<-;'r@hn93"v3 gnIMihx,ɿ| ȅ Lnu7< ]tD1l>3DHoPFDG.RbO| ELS a?)@U!P:msl=&m.>f,ͅ;nVZ`<~s ~D¹N(e^G~Wp~vlWx0;1+$o/t̟ΆN 08An);8QcV_Q@8^{085ȑvbeH|&cPM 0~8" EG߆U 1 eCkp 8S(Js~ XGeֱ%Ĕr1toCv Qcp846J@ߡ/ "Fx 7y|O'oނl,e8%/fOne,6]6-iRXpz~$'n"+fbK #ͣɭbc7ǴhF>>& !sЅ)WʤA ؛tT~Rau"%o\/9HW4Hey`5_&IdnQ -]yǬ !EYN9taJ`ެetG(L8)6/_ Χ\D6IL7-8)("E>u($Ůǣi|(*0< XI@Qpy*0pLU#e[ < ">{u^;N}x4ؿŎB@:V[w#G_ӺjG6Hi,8e.EQO?N>L5xķ7!~G|nR_7kO_d?G|cz^﭅Rdͽl9g#Ev2@\͕*;S݀;;? ( /AȵqQ]'rGAM%ux,qQgF0Iy8*q3;$b掸`t~pjk3\A#.[Q MߑYC/6rG\+gwzN^^)7RvDt8SPvDhWzO ȎhsL==O)M롡aZ3ᝈ&pG]t  I @nR~R=ol4BȏzÜhک)ngbIśbvLێQs\T1߂c.ıZP vY)XI{F`Ih|CA1 a7ꁧFϤkghrH8~H, T,v?N4hcMZ>]s|t`k;|ԡ˧Ǔ*)}7{)u@$`x?bvQz UtD]i#fVp#TГR)V;.^jFW;.W<9NA֎N:ov'@x8ao.&jm'!fRrKFwr) g:`}b,9)ڥ泬;% M+p2iN3 9SsYgc>++9f#דc>hVcf"ULɛUssnpF\hU.3pjc>zQ;@C]Sa3:`NAʱ]u}!u9@qHwu!.n4oXsbfOkP;?LWp̅'==*{Q)(8: 4:׀c.9M cEBÙz48N/3Aɘ^+_Qtp)88 hɋ] XaG 8i^Nr<β7!0Ω 6kY9&'|pI`ⅿyT`ᄫ:)"I1>aY'\K~dL;'KmrT3)8Bz P,O|JpuxL„}Ě/g9S. x`%̟b#)88T+6>Qػ;r[sr@~#%~C52ߔVgQg/C'Hض9y[zH̲39{)C/Y=<6m=&.j߬D2)Nm؆{^ a  ۹K'u.DcPpH9 ݖ>AG,r~2j2,ӈy$gFIW IUوBRy\CqT?rUc0DӖZH4<,yV=?ɆA%mjMʷa~ Eɿ_t  }HM2Bթ&L4n!92"wAc\KjCh%OX"INFٺl3[$eBZwopnO??NR/c^>4LJ#J8Qi`~P*\hlaN+9y*{m8:ÿXmzPDIj;|-,ç)xka l[UB'Ek` ,?lݖI{w9SɖP'Y-z%Ѹ `_YYZRZҤ@hx68lާDhUqKɁNv "x";;1rO@c˼k I7\ׇ-N'r:=+eqɁr{a[NL4{4PYpvH׶ 6?y9?ҵ@w҅xjr޷@Å\n[լ/*t˄D.c'it4?[ pl|zс~ҒAԥؤ I1YwJ{ׁk.3 Vf_#Q54Féi[C$օu;9ˈ,h1٤66w.ٷZZ& _޲Ϸl |%@Omy!r^@-/[˩}oG8A|-^N-;ې7rm~-CJQVB}ÉJ{"ڢ3DV=F;9gqYWX"h9$CIS+9^Zj wAFۂCr"R 9u%Ei "[苜RBr2(p_oP .2a Z>| yвqljdWn8IJvL*ᶦ^C*֏_M3J$8hABnsca%Rz]UD9@Jny9*Ow]dgL4E\I=sٌ1Xp[Di<~<7?ӳ$' )u۳ird 9;+9Ѥ[%i>4y۠WFx<'ԢyZ/>y8 gBđx]oor[d'5oWlgdfmz+:uUwǾ`U U2*fV M 9C| r \VENX2RUn/$k..ƣv]l1e2>yϗkYRJ9iZ7զT3"/İͮl.Na춙WrU(M!ȗNjEZݫk!Wڶ76F,D3_4]ojK%,EsOR +EA_iS?R"u0>#A=ULDB&Cf_',fَugSq!f2 'HmojE#Hc |f?Hr B8qH ( +1.fr1Fnjtu3ciXORoih_fm9מ$ch$h,õMe$fT|Ut]57?;Zn^Mno|ms%׾KȥmEEJSH)xN%;GL+&*J at<,w]?mc`47Ϣo6ڹ#/5k;]v ESJvZ4̓F2C"X%uzV aO;[ooVԝ6km´Ղ{,5oE>)2eYhV?9,"zۿtc(cV_RyyU^+ WF\kOfTkGBK?_dߩ#h6vX 4OMۛŰ`@wUm/`à=\$\sPh}kV} F;'KpR#•-Kea:Λ$MV+!h@(T|/Ƕ*"XȘQEk]< iu;GQ [ëݢ?gI C5%g|.M^E5vJ`&xLfɞxƍ_d]P|mMNwVZ$0P|ߩ|m["+ 2"ouS,jD\NShOv˕ѴN(D@@T&=Dp{`o~,W}R$p V]*`(d)BXiwJ'dޯf8D!Yo;me Eq24`H_0vDʏ[$8Z{6L2d?ɚ -zךNX9[#"&*5bbeo|?pDg Vӭ䭟!?Dۉ弹Z̵El"pcE|"AjQA  +1Z6<]j%=rZ*bUR(E1Xj=FL=~;E fÿn{"/zD MYF؂5&r`$!t)ʻZ;,FMz 7G{LF-JA$# .i O1reCNr_ʈB<# >-\>,|G,M̙ffIJ4"j`+h&scv?yS_f#g2FF@%#^Jĵ=𖞚EffQ(nEo.n hE׫# aU(dW^A S7EdΊ6|ղԱ;bBD(8Vv /fBfGkV-)ZZ&8~$Bo~WE|SJB)#Q V\eMlۉVp}Q&ӷ,OWJ-_ۊ M},D Q46Gr8B\%`L_J"R/SV]D$jMU7 eKAHݙm4"} uͦ/\oQD&DW6Qz5cRপE 0go6:0\xl?٫VDЁ˫AC3d*\va)9Xh:]CnS [qS=,Dt8omf[%-㩢a v91&#@WzbĀͮsS xHP!$w 7 Cs炨&tov u_`$H{BL9lfVh O$k䮻ExKlx?!`J'/Nw5+eQ0!]O #"Kpݨ2]j`>Nv6G WTVk" ƙ.Dh` ¸MF/2o8Դ*n" |匟7:i_FCDgd;5K* -ծ"e"wYZj"w_NYl"\͔BkQ@ƾMFNuB 7fԻlM"rf$__ "Z.SN?XV4+/6B J"`&ԗfK}2 D5{qR%90D8ۛIAv"dTfJ8gGYnRK: ^V ;%1 R!"h^!7׊~Ha I2{!vKmD2%D(X38MEь38S*AKpw8wx!{p".)um)oW_y~K^(v~"GTB!+&,iAxmxI@}rD>5Wj-rm! |ݏ+ a s8s2>6wXC5QL -<χ'/HG/Ijɭ!"\b+om x~mWV}{U2ϑnUS/磭JOd|yܖ;@2A%X5}}r"RC\pp[!5V*x'zn۫f;j>SÒ\IM  ઉ2)>(6IiRBT!B|m\ EBD˾!`S3NfMT6V e)\ߦa nw-!`V/*ˋּ\&%[\X]OLeRa34rylt[Qդl& "D ]M(|[{eD (ۤ"OiEW/Ն@mBt#BMo6g!4őfem5쳥!4f6g@ɴy8Ð7ސYej_!\r!kuI&BOU *Bg̊ g˚lMu_So`,6;PVS_mw^"PB>F.pE=CPd3SQ!_}IX'T^1jNlVCKȴN6V[UbKT -x )]8D^vݔZEXߡwԤ0_JzYqJE矨/ 3"TicWw"D4B(<rbگ~eJe"@`Mn3N* N- FBJs Qs՞J5!_j߇8n38*=a}5L6ݕv2|)~'E X1dRG>3е\xqPi*D! U0c<0/~M. Qߜ0 fm "B/\=[Pȣ_C~MooWD3_։iT"Ed&Bx ##'GniQgF#J2y0:˫-g~!ͩ÷>-~]ɤa .TݦmspbbD.Gӥ-)//bK"z2jQq_KzT{2 h9s|ejIP,HFrGƁɴ x'^jC!n $BD#䄽0WY*{b ~ lmĵt6q1T{!}{ \?,8Z@ 1մs"b+UŸȳo=Te;6fÇꢂ8qT,0?~? zq1J{"."Ƴ DC"03ewjy1$mw!AtZ7P!q~:12%K;."}J bޙc`#s(9U sw~) |s?-BDW}e=1=pR)";wF 'هLv#iG:A#|/>?l'J?) "jM3跠 S}rQ`ʙ՜rpEKfwNja)PeߖuNf:/&k=1!dA/< tpSD|WFr&Ep0󞩳mA(x$gBRE^CtȧۄvͤaQnQinCG EOz. "!ΝL3x2g l(8&l\wQF>-l?Z1bl󡧬"bk.O; Lն 4|FnMQˆDlQ =lk}!jAG{X&E?P&RD0FZVھ\}_ np ]!AS="(а HZLDk _'Og{Un6|{"7L4b|rA(qdPX/1RejC,Gۻ6+٢/hfFzq7IsAKcm_V7bvEdP W")+ᜮ ;jЩ^4!U/JA)rz9X Y;rߐc]Oې:M8nRA?Z`r(J4־fН^Ri("6t(7)r:=$b}%Z3 ZSG9U28erѽ!5|zEqu`өKĽ˿ ׀?],dS()N\2eߵӏ |?6*[C/;@U\\[wrJ+xQ*=cEN׆T$()#7{APRZ?:4M (+2J:3$eՍ|( I"U^ XB 9=Dmڨ(d'J]Hс]QYR.Uq=_S<5h}|.YRkYcI74kF>y&}'QZi#tB .ttbܐf>,vIPfnD}TЏKBskp8kUAoFNXdžK“B4HAKKwSXcAF.o/ 袠o##}ϾN/ݧ̈́,ȥ6$T]J*sN鏾 )m z$J^H{xz{TGK.ӋSR8LTRzy}S"qŊ?;GY|0x$G0{@EwI2S Qjm7FMYŪsSpڀ)@=beӠ7U*銀O ~0(]   z$`윣*lr1%0K($i_Dbxv*R8Aٹ^D}rw {Ql[[r$-l-](FkC}=R4jBAdK:%V7BjZJ"+; =e٤0 AsMؒNB23k=SFa#7I|.|~q% גn)ХEj/l Ƴ/:K !UriOP`Szunϗ%`Nh 'woŶᙁ͔OV* d(央߱1 8 7)%IXg+Ph(') Zw<\4n2G6:R,OhQRf~عFO$:PacMDy1@rHA?o+)·*r7cs53zuj-ExhZ]5/Ί,;ݙ=}|X{6d>++zD͖+-!lVӀUģV^NGV]V p^(%fT-rCoMbT'-S'h*6 eU6=;  AQ>nNZyE&3Ҽ` 75)NUF6=ʻgNN)ռ{Q; ,Tj؂P\l**9h(m*z0#9t`6$k Mwps$Q&zJuE40;\VP-:DD:Zw}lL宏2 QYCwIRR@{VFIIĶTlZWnCWA+|(=pn_ZWXC Wgݧ.ѐ/S%zheR]EhE_IjyGPwEhMɡJ뗻 TCvICv YCvYW@?mE0_%Wi>D+J>:"WB`GWvkL-FMأU%vo)'1}%iSw۳yOSCڐ)-.Q9-FoW~R{6K[Re=&l&eUf!97ao)\TFW@R5] vIP^ݰ :*9Ϻi =iQ &7~YEG"1緰$ 2GU+쒫5$*: QF?@%;*! [+Qi~uVټ~(+7+* M\!K/bjOцN돼/i@"J%dZP~.qYMdAlվiyA*~?ɥ.X+IqM}e%)/"Я$I_uFW>]7Y)=~%uǶIU A"LC{NT~xq%v :)w+g$2V@A1HȞh2DTRU#yP+w I$Z/$D[hm@ ȵ7|bE5}aƃ^PߟԀr Rk|X.jOOQ|_N0>K dU@%E3  JHb5+h_l(|ܡUPR2v )(#iJGD{%bKej/jR:/jS(FUDP4@tv+@B#֨)d2AJH"I,[P$5.܋a@O%:V4ԭT(M).9FڡpRTrCARLR`Aі쓣dI 2@LIkL z:X?J0o t.)ho ]/(n⟋OUV1bT7Ϥ0jF0#[!NM=EW6 `Eޕ#%Ē぀Y/@yg Imt Y L Z~]S*5J0@YWөR<@Y;Sb[])I1 \:ku,K^xKd@/\z 0zt7:jt5ĻE.8߁ӷ绩 Z_GjbǠOYMC ϗGC M11lMk_(!ΕzgRHEGK)ZR1@OY6AmKH_^ Zet~]@;P̗ $*W;K b$:\($L[sӔC$L;o2 |"B )ipvGe3ҹ;k *$M*muuDMG83m'L5 ٞ5 0ݙ 0 v6i&R~'YkOnΝuKBMgG RZ1B,ۥ#?x4PKOI`?:f& >a -N$5l M:uk9P IK~ $D(zQP5Uי $B yId] FD ŧBTHgQA({a*C| `lgISX?IN `YǑ {'IL'etMIL.'Vz$15B K ,w(c6䳔cQlWUeTIo(!ӼzÊ|{U5b +fVCdn%ht-=JBPt]>;$d?+ґ=ze8 $"2ʭ R͛kI KvzW (jCTYɁ[&r$NXǒJ GUER KR &ϔEyS &WXtRR"ydWkFD߅N&jkil4JQSvVj8'at>Hr=.+GNHť_ $A\ .k0/P`bIlSU Jыb[3sr佄^+s X 0)kcKbSqn(:zOY r\ ]_ji$%^$%Y.I//(nI_II'X% "ǥXo=UȒ<ún< BUbW!a+6gp~V`$%W]%/7.s"S{G+20U!PvX,\ڦQʂP?)J^v.HeLE*W5;Pخ" g+iv#i4q 2veiJmHWZ~\?WPW™C{%%ɍԔyJkM7nG,D6>iZg)5o[](F加h(E\ (J,FK(Ki|mT))2y[3W}RJ,55Kbis'AFۀcDQ<)- c%,N1%(&F+f>S0zݖI %i'e:dq+ɻ[[ZiԮ)?{I:~2 ;+)["Z]HP[@;rRBm)ܯ-e؄ZD:&! L/tKHr؟sgr7 "m lug"]l&%`<Jf"YRu}0#LZarٴV!#`i.؊;3yMt* ^FCם^K1^M3ps$tN@FfR4c_F-Url2RnM*#9պ 9|eeGt?ڌ\\*[Јohx4#R4$lg nTvhPEcy.VVbpT%Ǖ[(19k+*F]ʅ(< (duJuGW-'s~ 4u'0B3 5/ W!#,[ouf%^68i挠\ ++eFL.& y f%yyvﲬdKIrڢu=߹'w={igwld6NY{70!Ҷ1ac^{):k^FWKkv,:^Ltn6AT$su+,0 s, y'V/xQ|B.{䡔j r1_V0מVr0I, ;da z赒{X([j^RmN%r s؉^+&:nLKř5_K˓jNaqSs8dYZD_F⹿y,ȵZswZ5 촒g}dZ9oIQg\NIJav<%,ȳ<. r {L_6 ԿhﴒaW^+/*x~;Vp2VUcZIYk'G|oxf P=PE}k&Ftݾ+2{+ӝﴒyr4U]vZ7D[X*ިVk i%*{. ="0\l$_|p5WKP "㶿yNw!捚{ !H )E7rš>Q> E*L%۳9v9|*Hdָ2:LFKoqL6fAㄍɹ;k8>&4}rmwJă﷓w9+Ro0wHk%ˌԷ*V Ȩ!`g|le7znȯ3f8sC%rk$`E\_nmܐ__rC v[ӖLVLFu]5O8<&LK3V &Y_)#$D<:ݗG)~bVfzĝfس}/i_+{P`8y}8BtB!g> ˉ#XZn%+I"q8B<[?'MDHȁEBH۾hB֜ kfI@BO=|@1}m/r@/sonrbrΈV2Mʏ BJa 05P'K^;y}8Nu[iۓ*|7P 9f!+3@B~tq@PB 9 V K:xb\ wGH뷅?GPsorm ^rz5qr8}+D{{$8m^zdZ Lwg@/.!伹+i'LOgڟgdh=/OɴDO |$z^?1=MT=r^:aj ($[dsjLa9MA4e}5#& pSKϏV1Y#ÝvZs\Y?鵗loႈAr tC $@5faLNa#,Ϟ $@o$$+D Iz Xc7S}N;mD r͞R(N\dR*$ywAGv WDr|}b:m/A"{[zk.@n_5g  \$R= {l-s哐u)3>n}r[\f]A @<1$HK .G I֐^+y)(AwQzA`of[䢺et/ V[ʈg?|2=vZ7]YMjIvYm0! uAH7R8a&$e=f= [Uە`7vD ?2ʟD zT3$p7][1$/Խ!ԡ7 . IUk/^$Zɽ6=w_AԐ65U˛ )6v!rII^f7fc[BR;T"&ENa+HbGy2"|H!TnփD*>K&Hk{$䡉w.^oՓx"L;=o"HN{}ZM@}e $HO$Ro]&H%7þ Ha\]&`\{D*gZIbuP"MRiOvr F}2-D' `9+'R2n/9_ON=$HSNayYKBTrpz^ڒ"p=x./K:v3E*׏"~ + -R)+R箷[7QX@ i%P/۞˶$Hht_Ja;gCITʵ~ϗ[U@7à$H4Jw੽'e?~)6vɓ#v)qF {swsX#-c!@!H^Rp@h%G s"FZfF*0b7}m9aF&A[P22@E׼ąvۼ)KŒ,}I/242X0=jdF2:B [>c. 1$`oa"so#8Z41n.Ԓ##3 u8#Kjs F&.m A$` {CK~;([>Nam{J YG_Ngdz:Cai_@$,FFI(22?5hI`ք 2.UBI_4=WIp\~3E̳_,2E& _, -2 J./o#ŝs#vѺWs/ZN(Kc=8?y5rgRM +>~><%aE%s5x'%EץGaH_ 0rY$:񾎸#{ Xwo. 4TJ<z0|{b'($ q;> X&X7+"BoGs&UK~'ZMϣxa;si?:>O^k0Zxtdl2^xD%z<<}:L<O_#%M D g VQt1ZMtm4( [x:D燸XҜ|Nfeb &x濪_g Ͼr~ N&Mr4?D^Obk`ua`NCزEiY:/=&B'mʺT(cieG?jyMp@3M|$ⵔu+8 >g`1)$~><Okc觯O@0r4dӣHb|2>{m GY:m9~ƃ٢ r8}UZoߘr|}ef?!ϩa[5cc<N6U# 6iZΔi·Xlf 9 !>8Ӝ^ˡnttfG糇l84fyMj xͿ[܀|t KRkuTSM,Y r4=haI{TsȞ uz0L (3)Z'9^v[m'VI//x}+֚l ]|'0)x2./_=dNGc_\#(ͰvF}!:ͧcԛ&\UPnex2'JXNٳZߖ/@yUpT;ᠨN':>XtOoX&$NǷ2\ϣ?K Y0k:ez A <lģ)B h A#niR_ǏAL_f \~0P['(JXf}$Ө)ѣ݋GѷOES )c)Bj -gVtR =Fz0mp?&bR` ˇ*RvYjH[| |̖ßgW$ Ɩ쭢G';c]1H5o%,~X dvd4L@ +LH֠X|MbDaAQSP4LNRY2X$8":𭮢 ^s7xiroÛ/@l }4ckuh'ADZexljS*jPg0kN{5LGSM5̖ŗ֎牵%_CoȒmp|::úyXp{WOz0^lQ/+O2a+V2k=cޢ[gr<S,<1X^$'g>ɻkL e$mܞ(M`+em=~_d )-mtll-en*i-$z8Y6TgIrX^Ol:2I+p%mqxs/Қh2ZWdY5a EhPQH/qA y<]lzP)~澣 m>|i;`mCAĶG$Fu86!A6N}^֬ Bi2 J̓1>GЛŷP4.u05<~{4<=ԆD{<},x6]icGhkno- H)8IqpV C̤Y,ŖWL>Χb 5<iE6:Z} 1sB8v38145*b2?4b2P/)l _>hԺ@bd9Wh3S]/L]NB0:F+<lª gE e05+eY$g|WlIaK eË%--P-0J5$ veݸPb uک"סgƅ!v6y^+ u}+u9k vni F$dz>ಫkh3=bW#A`îF/8 4kЉ `s0pЈrio)l ?Uמ hwaWE\ aL+<:~<ˈ6v]yM`l;cdULem(I9c|(n9BT@56 mWzC ֻ޿Φ J9YGk@Zaj?h+{ΏR*L|&-GX>4B>$s6N!zxa΄*tbn$@@ #0snV b7r^9 W c!غZZ h:ROd NlG'cY;IFQҟ >!'a}xN<Жݎ{Vu8vb1~xL, !&@d]6Φuh ׭- L9}=x(Lȗs`Ýz{M9F'CZ|{)S`ݭa~=ma\U$dB ) V`vgLDd %?w29&Ő\< i0@"uj7ƬnHgq[gk6zLj[yj!TM9ڭ!uwC I]bD*[WCA\ Z.Um!V"DuCc`'66OLAM*.t_զ Tފ?()M{`:5*y,B RXc]],2@^&m o鵙'|] BjI^mRn.&az0'x);h1:!Jq\WZ);'L#2;-?ttlH]c>ڸ5 CÕ$n^8WSG^:sAͪ R}@`9 8g^k/![{05UP֩ɭi"%:2X*]X"FQekC-ѓTD*sѢܥD[៫jv!gsU@k=hв N'Sn09;9;9j=W"I ٥e"> %hqLJ.x)PI^,&ٷSKKk3Lez3iv_g&낳C/,͡\)p'i\H>3 %)zj9 <, AS8?N% |dYAPB7˷ }v.JrH4MTB&NSqpySWnv*)"$쐣K䈬0k_>\]/wj#UwߵTRIp#'%$_}qH6XTJbTJ6ڵGŧbޖ`3tk]*)'ghM%dM+RI@iI~=jަŬehKNJ8;J~J"n /iR6c՝d\bmx>8X)CTV,}&ܧtvGh4J)0/PI+ndc06˰$+ kv޾O_w $Q+lc?xߘdޞi햝{7_:^M(:Ud,G+ s>gQw`5)ʿdfJcG.nl}fyrEp[E}Hް!ruKbyh\lGKjs,V:b,mƎP`mt5]<yl>e^WK5WD(`o͏8 S;HG7>U_kd/,Qom|<clDFW$qM)4P?! 'l1P_dd:+hk~8ogW!AVLo29hX(h?6pR۱6{vBՀ)b_&|Gbc#[㡑cW {h>N_k4 SzNgkn7w,16dҩ5e >کzU4N9%p+nA݂.OG=mDXS>,Q;YV*iMe izĮ+צѴ!Tlb A>Bta/c~Ǻ4EgvtfElB_ܨּ~2.l8Ͼ}S{I>2OM.*XJƑ=lkVi/>ؔB}:0cmgmw;ϣM\u;c]{SaF~O{[u3__S:_Y}#-j׉h>|xX)yKNjD[\ꜵy+؝.ǯ׉$|\ ҕ̮̎DU"~>I*GW ^|M/=䎾LR,v.nvf{\^}ݿCU&+~ň-#4U)ٵ7Mw]b?? my6VocK5+1.:CJ>&v2ѐ^n}W{vl<\vꟕTvϗ7b]bwh삙;$5>Db4>_S_eҿF6U=0Hbwq&Bչ׭_&oPRLf'Ƕ%ݼgW6-ٙ 'v.4҉k+l xzIp _8`bS=/]Ҿ{.2sLUgQ<0O#K#o[ctIڝjGaI@ujKnD4-Ӟտb.sx֯vdΫ&W ?uҟL* u'+2di鿓jQF\)`ԇ⑱ŲFL/>:nyc=.Uu~A/a@jg35"j&CԦjOXS B:җQFhvhI./Ka}Mhj?7s;X#om)Gʭ"u(R^\//^0`hoG7Tޤ_׿_O"ќ0^%x6vl;S;w$u `Qͫc-#O._xZjHmڈ // mPs*~֫+G_«%4?L;;_x+.Sed5'o{=v5j}nȍi;V.jȈiQsvLՅإ,+K̫͋G6w.d_Y> VI1aNF)e]f䗖R^v)+R_ÝeIAe69л]yn2WV`Q_`k_Yfv*^-J7H;TD{]d+Y˰z!vt@ve\v!,}ҳvdr,E xd[Ɲߴue2؈|v`!. c׃7$;-VtVVʆ HD%\ƷF9~dR{ O~Xɮ]B\Y"HF͙}UBv*; ԚFוI,se0`짐~m$>P?uvG=$eVk$d;SP72V us9hnhp7 L 1a+nPo^ 2%dE\ Ԃ9äKq<| Pu(DS,K{\.-tM-#gi[L}V5Z&ڳ#xhijBLjBDUS+N94zY=x>zܻu)jڍ>-.R-EWs;Sc[Ɵp1pW#уLuH(Pwyig럓ڟ7b{j'QtlE~2sO^ݓd &_/H}pQd(E&'/磛`/p9+&bZmPvbO%~doa]@o'فʽɺ^}q)$4YmYO'cMVצ >iܓi4]NpY},qhFnrĸ#YedgHГx:;UsQ{pWEcչZ6a84]`N (N6Qth83rL#d*iO;vjY. W$v֓-hX=<Թ,8ӱˈ˻sbNA{_orYeu >u]l2'c63FՏ^@ ZT}irYH-4mfk??ͥ<ؕ㲬g?X6Ͽ wUyOTSUK;5vʎq\֪7;Ԗ0V&(,vj>׫2؃q=d*Y,x`֔,u}Ĩ{{K0(2gAóԍ94~qcm| tnsD˽JK_\:LObr]ۋz)-ܸfmܩn?=[rG~`'NE/X2w* ,h|6u`G[_>?:-'XKq>.wN_7t#߷/7w m=v}Қ57:80ȝÞ5e$znNMD[_7~&4z`q7k|s\al1[8e6%֯1qng}`gNMAMfDrgagf80<즊Sҽ1C\<>uitb5t9݌<6I I.Ov9I ]w\P8}OutN<7sG>  nB}R_|rAlT:O*)>b֤tk-~Gn95;m m_=4;_m-vGEsd4[>Y"[zb}S: V#tڛQz~ t7+5K3芯 ZO7[*yf'6lM;qjk&r/ d褨pSq$؍SԼl$;aE#؇l`N+X2܉V\̽ow*Id".'kͶxc>>ֽ̮4T鎴"heTZT9{ݭ4x+yW\dMJN"^cef\kh;(YwҝEed3Pqfb c;a8{(- ;XKmRgUg͙2r(4:7BG 4ȴ-[\ܧَ㉻)|)(4 uIVTv^5? Hy vYvXӸ2tݼ -=&8S*0vo[;e wR׼3i]Uګ\<*FWk3 1ٺgNҌD]&$6ޥw#5Hk ~%)OϭX&;_3,zM$\y6~u~:=d|Ni|j2]4^fˇ~BnșF֣ࣹ{Zͅlʩ=ҝř-G'ˢ'3 +OUle}֝T;^y}s+ќS{$8kf֎ *ќ>'Rso1eus&#I!ue hR9:vC·t:d*10ߔߢ3pL\E6f9&ZOٞ77Qpp'u4hK:(Dl˺.uT-1nY1; -qր$1µc =pmhsvgyƸgI?Ww;3{|X~C31M;3IN)G B!Զw4>I'օb%(؁S(CjgF'Y>F?lҸ9;6mNF;3IٙdЊ݌O9uZNCOxj016;7HF}ª&0ݹ^bwޝ%=r)9H*Npsge/1h|'a͟Hҝ&ɝmO[C]A$GXXj9.]2 ?wPTǖbwU; ;풸wq\a`+xQd1t/IܱFxrV^Zo ~ߘN?5/1.wijFr%iI4J۪= HwqP3\Q`Ů@)lwyݡ`Ckuʷٿ^Cw%Q |Rnx<{9o=T#aWؤlj=Cf B|[0)>kr Cm`+޺rǀ 1KrQ+w̨3#rIi>ʵۚlxCʝ&e dҭ^6uӚt3,괡@;۸<&EYޕ;%L*SQw2T kDM0b7bY>أStꯌiz볉LT0/xGWeĠժ ?.@RcĴ'Kd7fu?~Q#8_ZVa0jrNJi#ՉM5[C,z$IOft+%}%bYʝ#؏FW]ki/;L͠fדtu4lhD?A`jR񗬡mnrDž)FrgircU40ť#85~ܱ_^_y ֙`oNdwR -+n=!vNRt[-K^1ނp}i+O~ `~pCٺf&Ǚ6m??]]w8r}_4#̛=^;9>PR[LKV{GSK ОCɌPd@nխdRF T5.c\ڶ'Nx2dt0ɨN O)\Oo﷞+\f9&E倫zk ~O ]/#-@G޴}KN W0s?SZÝw)mZ}|SڶosxUW㪒@O Oui(N5@6ߩkPyT;hCϩhK22I>oQN/;e=Er#7qPuԳK/sgwdd/]1<KA}Ì/^NY.`^>Κh[t n0[ [ӽ ?p#)kٓS+z9TBE~%jsV 4ҳ|@v>'59UDO *Z+ˆJʠQ#yKzNKɯ1e'_ Py5? 2h ݛTl7]rt SAɩq?kDGε[_1BD}jG].HnT]ve9H*iݯZVf$ˡM: t)+dԄ "n6m{'AROJ^'b$; W߉·MU!54]Zg"smˊ^U+FYXI֥)<ϝ%\4Hk^:Yd~PIR9 _7hy@Ul֛W\ubE.d zDNϣ30F#yW$<=dÿ9 z$9. j2CG|-ItyXv%  K抮ㆽM}00gZTQ+_VksI.i)ƕmxAb"2 KI7ʰ` 'b/䥞cݙ˵%7u;EƗ6T_ݻ?G>?}n *xg$y\'rR9( //j +@<}I9Fef]ؠ贪lōlߜM*Fkh W:yX49;h~WS$Nk3NrtZK'ٴ>>'Aq  m] DmCB\3c'9?Ī:"`+XzćUu}{EH Xr2הEv1Ug_;¨(˅?`LM!l$=*QDFijW!s NV@ic@ -3\Z|)F`sS7A_nuHmt𷡛0[;wŗ R8 ]f-mZrcfIvhv"g eH!61"d8Us,Tqw}1!CX I{}¨9,JNa~<:=u~{/~}wh2jȮw?oAݚpߤײڒAfl)~xUbVugM| |t1S]'d2,:ح're`u}AՇ#պVt YS[HLz*>v]=AzDw |)Ho^ܠ<mZ^GȖ-xWŸYιX_9z G?E[ \c?_]?PA5xF5˭g<8 +To: gd9!fP4*?Dt5Ok{GxF5}DD`DwLtҤ>v5Re#[:dUƿoy \w[~Mw@,F/`惋JnU3NRqR{_4r19* t>^od_7^B.A]7 M|QS2$7[rN "DMfw9%@3}Ɠ:p|[ 'e4B3.^o\AK,5GYpr"] ݨV3-tJGذl|OÖcuS+GZ598?cS:QdќܺrU}R=^ W;ug&NhHA;@&h[|넮K[gvԞqI6@Ү1/׏dXBe`~lGz]b6bA͆,ՇKS]%ϙJN^D>fy׬2sLW0hb&]d.~y:f89S vYr628H9CP"=efv!CoonAEe~^ ť:>FGt-U]n=lY~ #zi?>?>^,85[-i,lU݋5p9?w&fIˬr t{o)~~?7~k;Čh\ɐ|p}ߋG ޢc"0hʋu$ b:t:}c[0`,7cڷQTIX,tſ,_>Afy} 眃}CC_abks?~agnïaGCm!Sl5˧KϿ\FZ aVczW(b.g.rj&pnV '1^*e"*AYo+UQ$9XͪK{:)OmD_?`A!j Vu8tPmVA}YGzQd=4.=O`_pqHEZD,Z+r&ioR8YRcW@q;XY* hBfR/.@9 e$FFEFg=PhR~;6te폞j70.&ABCK,OE?9X/CB6Օ *NA;jHK\=q'؋fkWn*Bf@Ur X OAj>z9X]@AUu[/R OrVK ԠuU7`=2  itJ|C +AHDr9HrN֛0~JփY{Z`mWږ 砿*#ȯʚ̧NH-td&>U*C g؛E< a6*M>׶_c,+_폩f4hu, 0M4LX <]'n`jQ7$sA]SgscUMwfP>:qF%[ͽ*k Ec `jM~: nW>io?-IuڭTq=uz.k <3~vNGUB.B=iQtK=ژCxcLVmKvKNUm 1Q}__жՀ0Fjm0d΋Ⓥ,xPTu5(9Eh0P"?v[\8jn,,L !AXaaj9v*$^HoU jłY@n! :[ BDbK@`GL.@`GNwGlЌkdSQkOMn3?ӓE|#Tn\:a}71]c/-n<i=dF! 2m#;3ޞG*ODEȚ oYGCÁ"s wZ?z6 B^(2$  ?y$,qGݵyV hD r}#Mu4)j}"OB}?$>:gapݖclKLP1,^&t҉4ql̍\xe1u%Qj;1X,wU}Tf,xI6$VΉj94FvD81vrNJYvZXNNt$-jRQ2d 0˃(2}+ȕbPw֣Bh)c7bDw~6̩eO2jKjID ?NYt_ >K;48sHK ʐĸر(%qU ފG>r}@Dm3uJ ĚWW2z!e۸{9zA}z$hq|ŕ>g^෸2&2 [CG>h*uqU}KøtLB1LEoSS8c> gW/ Db4;J9=c $x6dž .~qqm\9ȉ%:65m N2/b7|"kod;֯w1ݜqx6#}8ە9jb$>nY3/q3rO9o'#{ݯ\^fj1; t:zfV0$H{F}p ~.EfBi=Aqkkyq[!w/Z|75]%񊳛/N@?C`m>?WUZ,Y}_^Ggo#ãn?^xߪ>?Q nq}vi½#lbx}= RoNC{¸(nc[&^j7?(JzObx|vy_Q#X6%>7^+A%a ]s*Dw[} Qp}m9Fw~zYW)O*F ߰`h' $s*nKBj}=|nEKg"})<B}rWI!@c>K.2hs阴aWF\Su1%K;z"P޳ms ϸFgS䠐QBxNJM&R | |tΔ(\Ɵ6JPB,?0A!r>Q0d3í$'M9@d'P|eOsk6@w{j*:֢v;רr̲ *QtnJpBg%;Dk]sd>:6q.E{KLA5qK1hdFX飵z{a_KHyOtGݡ7[`Mw8jN;>63WĨjxNMM' 4=?{<09܇ _WWv-hA59?^)S ℕl@ Xki>ǧ|@`xn[ 4=6G*@ [nC<=QeuGX4+y⧿@̧BfN?:>a4mn'6M~zh a5vTDg5'*5>g~6+;29uWUas+}IJ>Q%E,ǂe L0':2ꄓi}usD'nU D@Y}ujj;tz9i7Fu5V@+KVV'ؐE47RXX1J+Op2znxȞ I{j<`nKJgH89YJ#cy ,zWtjMrN݌3#ΉA ̠nهW߾hU[y~IY2Ùł%,Q9;@ )G2pWZי&<6Ϋ@I>>%.ԧIi6'.1)-;7NUcR`tTcʩ0UVO94G&2R`Ť/)aR)vS࿤Gb1 T$;2uv2vA̟Dߦp]6+_WB ꣺!+9,L).d ͤvZ&.ɤ֧ A/MF2?Lj{\#X3V@h8(n-Z'R(gҔU/Q&$Nu5iӹ?ZM&Rc&"6i," J 4U߬f@qkYt {f{JS-CpЬH֞)vrv\k(}kU_ ЖS gaت r=i28oDfЌ=OVċqx~xkc TԁRsH+}0t<܎h)' AAU @.a!(\Pyu]^ҿjI`C:Y WeɠdͮYWg{׷ nN&R-'k;Dl+W?y|hT0z}u1Ąr*Prv7Jn`o}٭|ǸaYNwV`TI!7hxj&ҧ!H=KOm*h\RfKGZ cm.t ?m1f]&4H5? _|g]4#,jЂ#犒zK} Pjd` / #Dqǧ]p _;hqJa]"TNTpM!T-bhG ӆ<B9R:s)Q;_\qW3pF 5KuSd}8O .5H{_\ȌV$_} TfQ}S[ >LI=Á99<M~a?I@Qc#[ vq|3TO-o|t{ Xa818s ECEess$R} rBQq*&dɔy5m"Vy/t͔k;/rLt6dc95T MY޼X-rmnO6tT'+,!#̀^#p*4II V&N H*L^ P49ri%*}n9ra5-6tr,C7Xprri,ǝCbA͑AqQ3fyyjѨYTyG.Cɨ!Cw;kaN-2oC:2J%%Q??{pT xU xV xW xX xY xZ x[xd][%+ 3'VF&{}D j*̿_'C_WWWk?;W_SLNGPE;ONLgDֿ<S(!4uS(wq 8%)BmS\?٩WƑ=<_Y[|JJii?WfCӌSͭ:iX, (ҭ&J|P+ʵzM#{~dϿ6n5)m:iI+''>z_YoOzWZܽq|&_*.F5Fzqo{ߨq׷87/2F}bdֿ7f2߄;K1Ԯ!Xfu (mAZ ʭr[o:o#{~ 'm:iI'Mғ&c'4/5 ]@kwZM,.1Kl0 '|o?VsjVdN^42޹ ZM_\_]@_]_]4.IKi@#y#d$o Sʕ ZOkTngXV |,|_BDzT}],[_ʵM__U˜^2'sR0U6K?phKO ڎaz6 S n_'#GƻGBϩ8wtƽ^kvUUWZv^uЙMl[[V6GŔ9999'st#s ֶ;ӻP&2LlmhÐL2%s[VwmqN70 XLo4Ll4Ll0S КVgh5Yk Rk$j$jw{Rkb7ֶӵŸM@ڝ͓HZt9v:d7R;5bzbkb'kb ПTml[]'*6U!\t47QB;-G'HcN2Cz 3;!!;AŮ凴`6 Aj'h?-|l2͗fBb9,u>ri^vMÐaH:ÐƲ0wM&{[= IfZ&b6 l6GqX0M6Ϥ鍼vc}XmG7vDb#ӫ,:crF1WHU`5AL,F"G ]ct˜wЅ1P9{ cxH.B;}9{9{mVcdyFkNOۨ3v;Q.qݹOۨsIgb#Ӥ3aexldL6Ly!=ϏvF~q7Nđf'Hl=+f|l$FLMHWs2{TtB;}1GUZ|&vNC>6R6b(dؠ ?-EI{$u;6$dy-?0?5 s0 F>ءc#$ X!؃8SgbrĆVCjbPaO_< |}ui:&?n0580`ylф4}u;>3>7>7 sڇ>6g4jwӜ a''6HlLz̾y'Ӄ̎ɉ;@IAIKG;ꝸ3pĮ:'L쪣xl$#2@zq:+Gtl=gb#3;*Z\Nb+lZ\cۢgҵH6 F 1l}#6ئLelB HF}6c'X WL$yu}B7+\-YBmYg e.2n,9{yw8mc|ێV؎V؎C8>6tMk< E%=#i a$2$D&$v2h9V3w:E$wi[-wmZ" ^ ^ af0!Hνҝ{_kwFjw469Bb5ν톩c#zhNo Ff.']Oj^^IxuPJaz#srN HoNψ[  Cz#q'*vZ/7Ҹ 4hH žF:;}Wq p7ijy%1g;̺nYdoW89ʳxlhG] jcV&^#q2؄]c`f Q`XTò Ȁb?mY´S򑰔q B~Ь!xKFB j'D'B'rƑ 9%]S1 gzJWޯ'zd$N##WAM>I]>IHi$Cغ!LdYJUʚHws} s7ϙH>gHx zL lHIoBQT3Vy̴f1gl'N(?l`ϑͬ;/deK't祓I73db+J&6'TNο9KMw浗skJY;J' pNkyd 鐁V>vr|l`'A%foJbט=(췥ތzwqC] /5 dIyQq#d#:vg1cz3a0w.\il#|a&O,&h+[^W&pkngV㼛 r D$r vN37ќ"a0 Y>7̈́;ivn]l63[gMF_K73X֧e@{Av,j'cQ;)Ia;5v,j$-M>6pi aA=70MN!o3t39n6͙t3a|H;LnM [}``5/tk¶cO tܙXR&7wf;*7w_7͝I`$M}IFxV$UcYYn;VUX*c;VTXF`FSA;= h=wpTDV]1c#`A⩴q5;Y֬gYy?βV4$hf}\B;.W{xmjSO`b# >- <<;g,%Kf&,r晱Q:@Ss3OD(rDӉ:7_sYuA x, Ȩ7Q"Qrp)d,uNcܴܰ[:X";KkbMm0uQ Ȳ"!V$e&+rcDn:+y2mјӌ Һ3,溦];c=\)iN_m+]P9GJzv!A"W)Fkq]aR ZtV_+5/s8y)/.9=SNӂtt[#q #7|FӛaSWx-/xەcz|<6{ ^nC|Lor$/؊FT0K5¶Ҍ0F+ <"yMy͞y-?qoj9 ^ר^5PWjk\zָB]q`bs`\i[zkFږ޺Jݔz[zO'OgOOWCeO[o ݊|D1 `L0< W'Nv'Nv(^Z1<_rl1nC#Ll; L:j36s`c"^+ya+{axa'Ո׍xHWn5%mpчvTw$%&);0IŁ ]0I'i#HAڲ[:GoO>zejN7(;/`N;5|[-yKI|8C2i {iۓ4דtד דD\eibqi>w}V1 V@]pF h>31Z>=魬vӸrD8{‘^DN~f4JW :61K?zfNfNfEo" lV$8ԏ4FFF1Ҷ cS^BI> 8\``[oP=iƛw@ @b,awquփaͳyY`ΘAUXe8UU k)TPVl ̩(G#JN⊪jUSPUAUUjUm?zí0 í/;:ZC 4}yę @ 3@^Rc/yQzǓ?x<"\Je+dfy?)^* R"_[Xdܷ _s E@n {d[ /;|-W@כH#qՂEL\;/Ҙ@b ,ա22fpX0>bnW3#PȨ fBFdۣxQ{%_Sby3G9?<#3{KyU0*{o≗߽w>|%O q%8s 2z5%]M5?jRZB+qwJ4;QxnsH"I8kP\ƵB bjEOiZA^2‹b2~2ԡyn~}o~ccH# <  i`bHw/&뛯@/0MWKvەu%eו+^W㝸xF<}}TeGY?E K%ثj?pܭFN()9 +y )\KvKT~JT_y֎'Z;oxεK5{9?<S0fxx^x@D[نF)x?%/ѽmm?xWդP"&5jRZBk 5w-nSzv3x.XjyN Jf+9>@5˰([ [q Ĺc8o=k8u-tJWtfufҠΌS3㕆캥7~i?E/2eP#2Ltza:=9mP%%P_)P_9R_%XX-R7|A; YeIPɡ.RB]ƺȏNTF̟"gǯ} SLqu2kǯPX kh!4Prd(}d(#X$gW$sr/u&tY{P餌=tR*n`׼[} oZ\W%vZbWe"ۃZ"ȴ0?LgZ3Ͻ-pTz+zGkݵ3EO,op!Hu9ԥP^C]zu?:^}ƺSD\=9؃Q=5؃Ѣ=@==@X{0VC྇"ST,-8f7M"4 T2eC%S dXGX(MG6XihZ6A8k \)ZMD%O6LO^Ol 2\ qڒƥwӝ.9 > gSd"d.qyƭ=M7%xgp ܄wqiu},fۖbB\1q?!k o[qQZ4.SEujѸZ4>BNn|StE+2]a~g*?L凩xmM%eu@W=$x୥ލE/mN-1 Γ o;ӞNq?%"iiiily ukދ# Ŗ,jC"마"|.dp˳A2S{k<0皷@yOWm?]~jwUx*kzL[d"ô0iavڃnSfO=?nwx="HEFc{0VːPB]fu%etz2O鋬`8T=WR𕔵|%Iy{!npߣڦ"S(Ru|'4 44  wD]?U;1I'_`/XЩҩҩ-͘&4 )q?k9(s,/QMO{ <^"݉vqe+tZgS"f'~&}ƛ 3'èDpq5zQu0)"7A`ϴE-2m?L晶iLg~UG=S >`xHǹn.=g B8o.2F˘.GtXL`:&N xoޛ H&8X9u "!@e~ס<;K3'|3?]!_ !_!_SD1Ez@U-jQNB\ i3E4)R ՙՙՙ"ՙ"ՙ"ՙ}*̚2k, +#9VF~*^beȷQTۨR"(QX)R FQQ@o^؄75nE`#%xͷr1"4DF3&ԡ<, $G 0g %BMRLOJyTӼRT:JϪ[SXfW~iw+LM:l"}YȢ,?,ԟ"!7DWVޯ +lۈg)> F <06bSd" b0x#R?TCux:e ?7~+S~Ieg}Cn)Sd٧ SIe"g%0a-) kI|i%ɶd%:YIiNVRd%`))KI9NVR.?%/Sut\'+)d%^)JINVR?E/]'+|'iD dQ%\'+:YAT S1NVO鋐K+,ag3%l7Kj~ L`Iq$X l9Be +TƼ:Y)Vfhuy+O `/Jaf3'l ͔$a$)~6S $l$v$ %)|ġ͉C9ơ&}MWw4o4&uxuxuxuP ~YEiF*X,PD?GH0u4D "QxGH w4FM +tZk&S"$ QXy SƯdsJUbTJZ6"lDn%؈›}PrF6~L_dy[#CP?TSźpj%}>`qX,9Kvq)_a\ W̡2*3[2GkuXj^ίeM.k@uUW WaXWf+yW$$$W"!{D3̆~^5~)׬K6 @I_WK@^K@^hPQq5Tb.WUJEE$kS$kJ5G9R?TC5{jZx"%ƁNJ1ܡR uĜ`?:'؏B0YbX^4ؕ9<vE5juVh8sY?Ei_peڲT`JSiSikO^ls5G}d,[*&Uq3׬>R6mD؈:Ruh#Ffuh#F)2|JTCuP:NOuNW\AS#U"cWG+έ뚾~.kPI2CeH+#?ZU2jW[&`"ÚJK5~N~JK3Vp-u-WZα=~P7d427'W8+VD[9g5:g5:gE5:oE5zw]sWZ$_^RJHP?TjThDka`Vka`Vkq`Vkn`Vkq`VNi2Vbi=,ZƯqVjE S;TG Vbh%ƈVbh%ƊVbH~}՚;K3NXl Dfͼ3T'ļR撈`aͼ:%|K|gؕ~fΰ+OI~$٧_qکdfMℵE#aW;vsL9ݜ`W؞j}쳧= ;igOqړv=ޞ_A ɺn~;Ywd=z ݂g񝬗KJ諫1|d4u2Įp +|'+.[B'5""w2F vxu*;Yފ1NOKc ;a ;-l6ػ:2UGv]uqfݻYw{}Up>":CdSA!2\D~3!),!2 B )lܮ93SMg 吱4@c (Q[ >̇ B0Z#=3},3yZE+3v)0AS||EJGnJ?qZL7*v0 U3(Bt~>ا吁14z QT^nX4QO+jR b`))a nSpkMAfpq ȗOL\g5'i֐\阆ӯ0.!'WVr;#c ]yJ>`ej.,x 2X盙 Nd.Oj"~ *j $ˇ/D'\lxp4Ü1!AL1$aG Ç>䗸H)A ;Dv'~9Xˊ!u/bѻ\!z뮄>=JNdl[2mqͯ):TNU:+gX^bYlJ zڽ߇v+Q?$*Ě*3"AU5YUi嫚Zx[jmnִ(5(fN4 d28:UsF5x\Pv>'dM&GIJx=YmfЫ9xOi8&?rǏ#wyMFjuåP A a8/E_?;>F42}42:GHOȰ#]5Hx]ฮ_WPܻT2rkլUX k@I$;()URХK2~o?SL©eU_Q> +bNÊ˰Bt"\˪"G"G "G "Gs"zz",|P q q q(;3 P2 )2W2 aΆmaTW ) ㅔBxbٚ/R DTB*z#G]t%+J* eBFyQᔇNy95_՜jNW5iNy9ISskPTxܽr^y9OSq͋2ZX^3##^7 !f@ 1醘mI8F2(U'7}"xWOgK&@xOϿe0q)2I$L\$(YI|e2y bRd6 KMLX xW2E;/s"R(ȴGia=ô0힩JJ6Q)JMT nR(u0%{Z0A)nSd")h1A).&(кZBbbRbGĤE$1)NBxSBԄ8&$Ņzl0# Gj5gNsH}3w|_U*1ԷJ9)A{PBQSG5d ӣ:2= 1 PsYRjFfS_,噿Y3/ӟS>%T~Au'; \/q\+r>iqCEOߤ=oReZ|*X!_uR.uU%hh#eJ_Z_F_mҖ-MB)ٕ#ٿGʳпzпؿ5R,#2J_i!/d7})v83ӗ|fRLtU*2UE&vȄN?*2gYSY:Y?EYO_~3]LtyakbH2al=s!g4Ez$A*Kɟғ?)e?)u; ' d3o0(1p +%t+%u6bP\p+%f*bAmn2\I\I da-w~)}j?j?jWjonhߑO@?Orమ2xvGG@87 OsDcጏloÉf :gYgx0pPGGNl:>\^޽o[CGz ¥ x F5ą x E[a<(2F+2,s 136WQ Lux_qCjŋ먲qGiS)Q]!Ą'HȷB1!N'bB 5v~/1 x)~y+tŭ[+Nn|H$r*>*!3P! -xB ΅ 2 /d Y"@X[:*"`}韐'?U׍0t#Ln)=0ϙW<:(fJGyg*7ѽtf M!'y@"C>`;/_B2 a9d\K 04HnL`|;s ?CF? XbcP"?b_MM332T0@b z2\OrI Y.j /j`sHy"}gP- EAVS%DjgYP!;z1Cgs( MEa*zO EBQX(Ȗ0"DxԚ9`2ϩQfȍ /|X5O=2z@@=$l gõrH K){Tއ9C-x*{,{ه' ky@)AS!^S/ SLCF"ID ;7/kdI> ׋=:ymo|7|36I;[B%'^}%'x_  #.3Ł<Ҋ*7xҪo,UYJY µGzn$vA@P4.*ZMWb=Zh%ԣPl=ڽcQ"W)V$.*ahw !]t[UAW}X]jP"%)ي9£֣#ĈA;DOzi[|ŧkq\3kP)^+z-!efw2? !Z?!ڹƧ }!$Zٕdzo5BB%1UT %vAB= BHQ+"+ ""*8_EٞO+(G#NzCb+ 1$C)kꕵrB SQ2W)N&τF>a$ w$b# z$o .T{%6*klF7.H%t$P1ゎ*v]ЩAw| !(&' 2 2nd@ޠBt *dL #]a,#bD{{A[Iq#E|#TƉPR$-&A/$qň1C\̀XD=ĵ-ebAT `TX* DZ3k0-bLyJ4S D[@Fy FSM1Se$gvߠX m*~ P l O:}po^._1bƲbpۋƿx gg1pP oRgP`$XCqGHO/!Y9 #U& `}#B//v0AOck/y"Nh sڕ oWX^ 0J5»!p!9D!BQHm-$Ydak!HK7?'npkNnn?@ROI@b߁/%bBةV<]B$",,|'nF0tS兡,/ Խfyaf9hiSw 0@:X'5B?n[ 0@9a9d`e  R`iLEW}<4\}pt!e@ca|p tCLE<qpd5'Fl㞪@ @ /9#U "!2и $c2n+#leG14a߱+ r"<}R<72{.e588 74)RXA)JQ)JaO8EU:/UࢥE xu\?lpyD68G{0=S}|@X@/a75252&wm9,ʍ1 tMud+<{ 122bdtd 1?^6FIjiqsĄɅ%~? VCLư!@f 'ux7ΝaS)q]mqTh;@6fvq`Gfs`PQ8fD9/Fl"S ~/ e~_w8V㈈^8Z8"f# 7ü1?iHv]~pL\Cok̀8n Tk % T~u3P] TU S7 ~Ϩ:ﱆ坏qЌN% 7)0FS UFm\]#6D.輘D[bG f. J!v\ C -qڄTeW>Z9g#Eý|y6 8!G_1RTc fU-S2C !بb!d ]wɽdq-Sh <їW RJ)5E@*y+bbqޕ+9"{WDv/dҟeP(T %O/a2#@ ZA 0x4K/y4[ȒRHa>EuUFPWA]eEuqyGSmlO?Y9q_!fXBDKe3 (;3]9ثE[)󺠇y]ä zجzzDoF" nbW"/]F##Xx] kV3e_usF1b3s8K8k8Cwмswм+ٸŪZˠİg߼kEDJ "%[Ȕ5/K+f0LsF0ȒYR"K*^dIՈdD.“gdDAVxDN9‚Hٶ:xd_NPσ(G=004 M?j_`nľ A7r2(FNB*w3P9P9[V?O?O?O$'Fy9C 3"ty~4M@&D-. w2pFshȑ2rA“^wW+]!}g.w"}g.9S`^U%VcZnj9RȱZj9O-eiZ~rdQDJIۛF01%mmS3`0_ټSRbKkdIib%d㼓"'~"'r5/E2W4( A\4PPӟ]=Iӟ/[=^\e+^ouE뭮z7wHs͎wYvM#b̈"kv,p^shCEfGX5f5;bQ;e^]uVz[neu_?y_?8FuU{PWA]uFuԅ Z3;VڢB[Th mQ-*yڣB{Th ? ? Q=*({1qb| ;x 425*1Ό@ ufx!:#=vHͻDbh'~`}5n'qF+J q$+q+rW2G3 Ŏ 0ĠY^sP<{yA=4OCo}t=Ez4PxjUk%4~GZ?5n^ߍ+zW.!hСGldܷLϲ#d~PEw]كϬ tfP3fC/mЛ(,$TBB.kyGhyB|xN1@V~oY^:cy9XC85uHcQŢzM?.^kD?_˻+g 5ݠj@(P-9"~_˻r]>SZ͟mGM~}^Bc/Kzuc9}:fcY9Bf|/4s9B怣:B&q , Zh1@lo@? 87  $`(4+p>IAZhE}9~AVe,"VHE=?r׏\r%9b-6Ri?GB2"!?'tt9"B8SgL-p3qi9"/#!ȾRƍsd_ +\ޑ}%MyNSKML".F/hQ{Te 1%ALˀvdЌL^qz[M^n|t< 0(9"658ҟy.@$˟g(IY? )z4K>A@A9 )zcA=Ł8 "(9`Xf_ţ ]2xR/t9yB-c'ttP=r> 0@t 5&ʠ[cr19 ֘( oM x O0G}0G{ ME' >ޱmCޱmSc:txmНաw~gt̕y\iqS%H4U= Wyjb1"t #QDIA Q'2uA3+45Jj7ZƺbditX4:) lJ3J\Q9Y9]\V^W+7 qRUMc؎ :&KyǵUDbD M(AbMAbAb-V"y^ Myì#bΈ"X̖^\Bj$+n="G9E9E{\[5\^foهÜA1}E$$l%8kQCwмc34XyZjqOS<{Ajko٣E(r9kkPM\%`0W [uO~"gH "%YbM+m)Db-%vKqR ֥%f{Up/1۫z[ҷgCeNCη%U= o4ܵ$w:ÓdO`U'yC:˓/jՙ`Uzp*  "}PAi K[R[r[~|!|WڏJA/}tqzR]*g>;I٧ڝ٧ڟX/*r@苅ϑ Sַ֮Sx)%S>{J#yʈ)F)5'~F²;x!Vq]#%$%v'q~S_W=eq\dӯzo v*-̸,Ɍx,YĚ5'V+ڣ3誮*NWh$>dHΧ|hxۼ6ͻks@eP#?%T&s D`O@"sjQd"G9cJX9s%@j!r*%(qFIЯQ\W߯r_1ׯQAB骬P"f5lk=UA'GIQWuE]U j)堫VI˭Y܂nq6 .ڦ׶ .6:Z·8.@jJ޼1Ƚ{c0ƀq%HFȌ}>`n#l&|@M2*FD(D##v#=qCn\8vu T幮J{\W% ڽE@byTo^ 7/ƗRǛckg,7/>Б-o)t%v'_߼\2ŀ@:bJG,Req]!]:K ,)$ϒ纎E(24zɶwKnIԁnIԅb~U%H,)H,J4HsK,RW ߯J_9{3wM&uh|פa]:,5C&u%(qF+J+\:"5#VZ jj;>1YŦ25% fv fu6Ck|=s&.zfu HU(|@Q7z\xzw9uJ\RjHշ TE=JQt׷ <"[]=2g1 {.S<,TY|qT[fGNc֕%ڎVyHI}t=O oc\c )dK8W 5?W\?׺X +}J߱S黆vuF(a#RH+4B]AtI#ђF"?iԟvF|ەa۷+f`!H|UoR7T ABCJ!WDэ A Bb|UzUWe>*\: )#v)H<)jPQBF %͗l+qgD\q{ęf%jقf|58fNϋ'f. % г% &U4UmH*3FLIl,ާd>%)O፝l esLJ}LJ}LJ}?;7f0ηvݿŅ;u#DݖBT!A W$ܞ0'O?^ =8. Au Cd=G`ڦ:PۼU˰lzCjiJoLޑ`_~3ଭdV4 pC$.`+f>V3#ψg$P&j^[zMR[&qsVIlkiwpE{::\%uEUi0.[ypZ+MG?9*'*OK뒝򰴎 ejyeM `Z1!ƩTjy1@x^ɣ| ̳XC9e\'r-@2ɂL0m3쎄Ñv *r{;Y[VkkY"cgCdx;\PA= ƚgY''By}:99KuB*܎gaE +*79dQC@vFig5Kp׬]ywMu?P2vgwY;t,bݡciKXwXҡc6d^bEqD׃ vw-L`[0݂mՓvU<IYޙ?U+WJURyUT3#∈3"q& L`fL`fL`fLL9s|tw; :G1㼼CQK E-9_▿ [)=B9PL𨮱k>U^cX5VyU^**o*o[Ux6 j+PBz%%-DT[{D⌾+૑Fՠ\hࠐ7xo50]˭SGrѵ:~w-[1Ł%q -TPA8l^!]b.Wh :$m$.H{쎄Ñs:.#A-vkiXK;Z%Үv qt\Kw .)t'R`x\*iKw .)tҝKw'ң;R)]OQI|*`AT -XU`AT廵Mw@,) K|C!w&13ILW6|ָΓ)|W Z"v,Hd"ā7 "-Ȗ=dUbX-VyUޞ*o[*OOOX=VyU*1RWJ6Z(dc_=+"xg%jقḟ,V+>S^X2]n)̭םd_m;%^wJ;)IL޲9̍ xSI*b]f|DnGt،l6GS!WH)9ȑ ,@PБwޝ{3nM#s 7CLF\{̅\.=D{a9#折,o$Sxu8J _)!c׷k~꽾^n\WpY=g:9qVϙzd깣.Ks!Gr;讞z 5]G5R*؋#q֟*'˭Bht[r ,nBcQ*Ƣ*rU8"⌈+"nW!_ n`UV!(l7z뼹[H7wpJ+/*{FR!Gr=w|*߱S;VUcXWyNsUSB<ʑPy<{UN-Y-Y-Yŗ,W9#∈A\WyG_|UrU)W>Uؼņ%2 b_l= p=wxɕza-uIuI9LO}fq3 Yho[)[首O} b+ՀZD֧b.GBHV Rם8{^^wރE3PԾ}QG;tG ]H~B*G|*OX3VU>cϧg|*_oX5j+}D>EU|}_w]=9B= +jo㮝$bX#VU>***g|U>oRjx૕V%[%lP|Vr+qFG)j]v -jW{y{ș>/Yy?od *&SP7d *3g GgD\;sV1sCf_HW̤ YȦpI?s(9_XKp2 #t;KAz4w0t t;*#pH`EQoQoQoQoQoQo2QoJQ5  qEoQD ?B7fw$HD] ] 6] 6ս3נ "#ȑ= 6S=jP=/G刾/rM; gxijg@-;bGBHX$Q%[s=\eJvOiqޯ:q^;yUV;yUV;yUVڪ:D>qFG)8ryr}r{rCM`I Cן?hi #1x4@9Tsw\( "H(w!}O)"h6b6b/U}MЉ|I\ I3k+(nv[PD',:(Ik&-ݖ#"Έ"=dϾ:y?y?y?ۍ픩rPvg.U}\ޙP5rP5JP5jP5W5TA9#䊐Cf33rF_r8#⊈; WM&`.?>=_NkZWk_A8UqTS:v ="8#zwDp)ꩼꩾy_!EA>H8) q^S@kEw He) S@N)2GDsS@YRp^y8ObP ݖffǠNa:=bPx:[ $Jbp$.)0HqW㮆y]FPлAqjծc w5H9 1#!6Ԣۭ$sA=ߢ\PPUU}U}U}=9R9@ GL'7U=zP=/G刾/,qր8ۃCbNGBH `-uytT_sRë_|Z(dkKVqs@#}[W{_|㫽ODI'EEEi4_獴"9Ĝ=b.y#༑뼑뼑뼑wސ~Ж :FL0A;FL0A;FL0A:FL0ds* ~WP0M5(&Ҟt]*p Jlke+yJq&A_R:V[iMRb7"'v#rF6F6+e+71B<#x wn+n;P(zx~#∈AtI 龓Ӆ!taH0]X C[!}_H 5 ꫻&Ae5 b5 B$&A]wH]wH]wH8ܚ\Ws_|+V_x`MՂVλB*N;!d/NywE"qxW)3Gtޞy{:o䝇< =~^h(*m2>Q(*m2.xpM0?rhhg1Ӷ؃"<SEy# ,FL9,FL96A6Ip(C$tXH|{hWcAlc9K,6"Ym\P&,c00 ;ykvſg^&H?TN 0'su‚sX/ Fa-S-ALvejォ VOR)URYqXb~J,L'wrtfttfA/k{9qZ KA9qd)J0NS5qamCy 6t`)5d'"tKD2_Dj=xkth/"5tiN( @rE>@xG||!,O<=<]򄭛#Sv'< 0W<wh?0I1")C$6Dtڔl2]Ůb@C1g+xf3Hx)gi":"XWp{E>|X@A3d>+J$ V4>7 ͷ9q(欕^YW I ɱ$9AZ[BQJ(5P(J(FtM57aGa5ZZڂڃ:nġxE#,A?dXD O,x bEծbYu! eaȺgoY[,=|v u *ƖsLP4 |1 A0@6z=Œo4\ l+Vyе¼ /(,VfOj 3acΗgAc搱jf†> g 900=< O43d ?ݹ,"0aի, !; C1^AzyꯝxaPm7 JiTa8 1=!ɏSSSSASQ8S 8SSSJ7Ռ[j6s1XyKj^-Wz 1mf36 >mfj m0 7^Dm o% ;V{2gĞ'*sO&q`t n#V0_O*X==,Y}3=fD{ |L3g +XbƞVXCs=)8֭xc7v(Lx0;`w|w;`}}`6 ?ooHWE BZ O4h|>0T UB*u*uƪu ,Xc+9 r(p+So%Vkrfz f(p[m?hx=P^Cz }c}F!wC2H=%zcl==xl1!Jqp l?m\mxˁGîrݴ?ts<EGб#LBL{c]\pq-]%2]r(r0r8rXӣ⬋%TXrjY)[R[T~5ڪ+і_{<%>;.^,A{0=`N#x0<,+׃1˯Qfta),.t`Zt1;M}tX!B˜yu$R?T(bQSF8;eԺP)#EpnݔQm <.j`ËK/(dfba@[ IǪq&80Ù@~A2?meW(N8B2?|[ 9ȕ;;,0XdA3r\)g>L}r7~17~17~1#}qr-83ZqfCfҊ1f(t(v(dgדȮ'+r/eDHb;ih";(`KWDtmA-O%[-ŚsE8mᴥ~K' Bag݃iեoZ? 'T`*LvZ- ;VAˀĭuu/VN~=z|!_oC]](=boƌhh9odSs@4&|}YJ,5@@~*ļ߾l .nn!/Ywzp WG(\pһّ,,,DEoOO8ާpa>)ۤ u=:G8*Ž- QB5|D,GW+ k46H A@A,t7 ZփhZ/bwFROzE9RLLeTL>'r[~!di9IP:kګڞUG5|fYToQ9KX`bAA,Yޢ{ݢʾE-ԔoQ,OXڡ_%~RtR^\gH\##Ⱥ#er5!g\r{țUUDJq*M7Rh"WqFw@<Ҹ*K㪘n`S a3DY\W7pD7%*ܾ)QaDMj="8#zw᪘=_|kUo~(Gy}w0Y#:/y."8"|Wty37Kpެ~4.yfBȉh :P3΂[NH Q f4^{orS_,W,=bMWtC߭ԫGYծ0۽C.XW,pm r _󜇮}sJ Mޖݖ Ա$e{RG^KFAN?ɏ{ {rF@n}Tu;(KJq\R{RKJ-AqFG,p,p<0OD2l75 *+ʆ ;*lp﨨ŗӇ:="8}UwUKW-_|+$57L60I&IO$#:&)P(z r}#ӈFqD׃C#%F4J~(mDԷI>ӈPaxPe(WF0 (00R{PaDF8U~0@U̳4@UEYA4LdىC2>$3H# T֒cq#JGe?,QGҴBrH[H~ m!:x$5rW#RH lWƗaU$}YULB=G&IgD2"wPNk˅+?Rɻ(rpwW&{Wp~y$λ{%qUXtV¤Y _[.$-?<d2e$残eg$F9<|VPu_JCX,az"]/VH9 1#!6D7fpa%b+ ;q^Rm C\*)\Pm-jkW[!E!G MV9=E/WOG!F+ f_r%H^:{J((rICʕV?j-ǃ?|lhH^QFLT?LS65A;Br S^-v"8Tƽ G10t #Jw刻ʃq  kzz}-Oׯ}ְ\m.0v3T1<j@7C'nFO Xs5:НD>[XL*[!ab } J04G`Fq7 yr$܎99l$x.&ݓ׭0Ò[`=2_e[6׭TӭU[mVo\1n rD!Wm76dxU(j  =<-%RVVbo=x6Co+CɷxZt|[5B[=>x&{Yv`)XFyXTo1Hm_qCRT®֣mD:"HaT(CbeZa@8& P#W5ShLi;h=L@,bcL_>zHl󸠄!%D(*;*(8aฃV`yփ!G^P.L?$~ SM|rO|2B;H ahL$lN46E ckSV U5Z' gQflDÄAod%8%R~;{' Pog$v:|vڙA*@9#䊐B.$vXk:,Ha:G=˵ROVJRꏈxD,up"AS9@!3lQp[)H2"Ɍ$!QS;w8N!u8N!u\+ZyH1#ŊO3㈚d-Yٟa%vx|1 8apyŽqJ1v lۮp%錙8^.%M$H:)7 ښ~BŠsa[^s0W4}O\Ң:W>VN5r:/Ἶ$y}X sD1Wf>UJ Yd UKv:Jѩ;F*1V SzJتK+=2#zYvT^S9`0k}0k mz[-E_>[l-߇" r3銤; JX;Lw0{/&rlf}#ڒ#k k kGG螢:\sL3L+L90bD]&ZsHpT-%Ṵ1ʌHL+yg# x}HC|eF% AA4'U֨TK ,뤕W ;}#A>0 jCЗ c_e[/G**h0>0IC*`kah0p2:Vww,)v-߰D%v-ߠ.%\޵ ˹k쾲k19VŅ^de|W X_#G!Y+չz\Je/ TGJ l~vٞs!C;pAzC=?]gaYxsz圞q;7d%rgn-G8 h+`~Wv.l=Z] [/^?l=l^Ɔ*`Z xx27M.i\ `!/h'ݬt_Q3.oa=3أ]>$I i@_o e`_o LqDo eZ`p<4E*GA࣠ QP(, 44ml5Me>l;?l[D_Vnմ$ 4t%_!ɵ$ɵ(dB)5"5"q5"r5iK*s֫rh)\?rh)GS>\+`PG@)>JWJm6l˶*T]h)ՏRuJTN~SfT2Y(UjTR6?J%l͏R [V>l>l#+<к .\tL,)ҍ`4 Y&Way@z/|Tካ_\|wQ?F{p,s󥵙Sv!lL+D}2ayLɍgMn<&LRLӼ-44WjM+}4hZۺ-m)ƶm|v[wOqwwOqw#`G]R)0{ 27@k/\|0yҒk/8/ZlZM)vV`҈Z_Mi4єG4M # <W ؏\6MVǦJa+e#t-OKiRZm)R귥oKoK6|R5iZjڏh}Kd}K,Z^?@SkM4Wjڏ-l~zq$z%!I!, ,pG n M8$GCS(8 2 rl{J1S3(r8g =cO. +xj੕V0c 1,4r[$QfBN Kl M`4vVj;k Z(lP$ޡ9C)|L̿c=bPPPYYzJX3-KlN6PNVrbCN U5Y}h0`ĹDw!-V)JqOoT{zR鍊8QQq줠SnM #d見cE;8IttOO&;&;g\xIxx)`?&kzW'Yaa3" ga]Sj;Z vN#;R$=톴۵LɵC~Ig*/L%yRx 2ӈ3b̜/#CRe,*cC./I_b2ÿ'$eogfɡRv6K l,ݷ)5YfSYOe?TsS-*[Ԑ 7ruʬ7ru VH)H%*He*H;(H;H;(֠v_[C{ko}o qo&!qBkSSԐד3!C eZq]V捶eh+R捶dhBGȎBVBV~O]v>v}zёk}v$)vyvu[=Rޞ5,aEba]u>+a]i5Tָ7 mN5K`5Gt}@ØHaLh\ƄE1(f4.J^gXeƶj mɳqɴqڸضꌞ+z੖ZjTcro۰]7nC.wݬ.wݬ.wݬ.70ㆹ$놖y@ݽ&KkJ}M)T)0=5~s0a*κalܸ+7ƈ3zn蹱f9znYf{<7ousDusFus}nnnnGݺqWwEʺqWwUQNQΏinOo3:rD\!9KO2?C}uʌz~ׇz?]>;\ús Iq>']UX!Y!B[k<`-9XK=ǢAg]@&} Ȅ1qaLi,Ryuٮ+0vݱ[˱[ck#6ڊj;xਫ਼zy<-¿c/#V!/LX' I.93HarFqL0@L0@dz41Be'dX) %a5b5c5g9^om dpWQ.9[s.vM<4egЄࡩ:G2^tdTy?t;! p\B8W=`jt&0YÙCN!I9OA&v\Nw)2!9a])ľd xR Am..n7"Hvd4ie9Z*ێj2ZS\ p). +.1/.qEAR@;HHsXA x!ЕǏۚ|6|ۚ|v:3N':ul>;Il泙C9#䊐;@ʲ ǡЏC Ѓ/z`Kv81mgv p Mᄦ<&dABS=A9#䊐Cr=O^)7 9^8Lp]iϟK[LۉN&D'Sv dnt:8t':Y%:ph̵] l;c8`tMP~t5K]$)9 Cv ; t HHXa :-A%v?a^]>=I{*M7avGBa$w$Na%RM"eH㡉DB&NUWU˄eBU2!h^HK1w)``rHy)R2)R2CT4¥P+؏fMLC0]ti<xfSDxmFYv`aaGy/׀[/mz[D_>Gl#O‹ &d@:s % 2{sFb8Er(*ڲ#˖YkY\xezrɹk;]ͭE.4=dF/f&Y=`f]Y;xbv~"c}b%.\,X W')S~R~mqY9'B% $$\'BI~*px x7XI.p_I'V%VˊHm5Q)"D$k%t eR2-TLj&.@|RI H!TR.!TR.D*)̓h"VQEhD<țQ!oDr<)Vt^ہ@s œ0#䈐\=bX#Vx| sĆ99vxf Ř9c9k-p9Ř3BJԯz Z(ꡠkUkUkEU۫)fUțW!o^,{b/xaЀcB{h@ɱWu4 3[Na@~ DKx[3D X d 侰ZuQ]Giu8V#đ4&+"dぜ'`I}4`IXF}\-rnp A"ºA"#\ rD!Wgk=s !q !q !N"#yȑC+%x{*GT#6 s> s01[( )猜ܱ+ȕ*rUcՉ9bO9r z#GTrQeQu1"d#B;y{}_ɱKdv';dkOfjr:x؛rI0ӡB8Oj L!6xiJ۝#2\#:=Br"ۡR};Tq 0a(w^/sqi/.p_/"r(3#5]FRd@tG[/vvvvFҦY 2k]sF1ne)YidQJvOdTDFUqOdTz"Q(+##Q(ޢ2"ˌ,eQ   sЖFG}>SŌs9co=<s 2W$݁t@CJ,Ȫs#x1kVxE)uP]]݂Y{Ģ1W/$8Q&1d8w s]sf,6 EKL@-~l}5W#W J9df~< &۷HS,*HX&,Lۅ[B65tqmnxqGXv<]*tlӥ⦧KU湝yv~e}}s83չƎs\O K9UX ugh;t<pY<%3)l(Fq6spC="8#z~!+zXB zQ'(Fu8 ߍEp7B)NCB)Nwt rxB g E@*ͷ k ϑU$dM_U<[i-xܑЃ pC.O ]\ӗR.]C,% \;b:Y\) ]V1W. 2b߶hELLb!=XFmf 8c VӔf$[rpF+y K<3Vc&x6f>Q$$NFITaH' ۨ+vbAWWnQlc%w~pwG\~paRR>EK|*jTEq}mZۼeΙˎ<T/tU|o9V r@\r@l韡 Eykje,fdV| ldg'Ɠ+ Slf;OoX,\oX(Bn nV+/@DOOsJǝSP>sJ*ߴ=FX!Ge CZ.|Пz5F(=D(bz>9N*)TR;d3bpTsb}/ugr_WԸi^;j@b.dWOK rD!F3AYBqGa%S2!g\r{_؅K!㿳2 gP`?V-9b`iLlPBT`P_\;hNم:gJutHf@QYlYc2 iÏ^' ztޮN.ErB=Pj&U=E0H–?tRaڛ4&Ktނw&W]]Dh%B K˗*nQ0n1m1nocHnv0?=ⰢWRz2Hs8a#)ǹ sx2TsނWnn?44mi"6$3FQ/0Qms9Y?}mܓcos:/ʑiȴjdc/bUtbyAub',RE G] ]Z&E ҥE34p-/ %3XL&+ZRe/98Tn`%fJ.2w42o(t(;-[[z`e>_|t&]5i}5GS9 NeCҀ"4@ItxV# &5"U?_{H1eȲePn`@QÀ<8ϬLXD^J WN*~LrOCEM %pG2@`B)CJNeG q"j(wrgQ+jD@LʯU ]Wja Uw*mw* ; i FK'lֲe[i-r"㖝>eOkaDq:%ؑb (0GEGEGDt@uoc\?rh)<֫m+`+o[[y Ja+a+Tܻf?灈S@)y *s?~<"2맕i廾|?X /z_,?k㻖5夎j9D4=@W~4u9Zy6mo#FF޿||6m -_Qz(x`fh51mՄky6 bR}SZ &U7`R}SZ &Uߚb0Y'GDfc[N[>`N l0'cɵffrRex2}T>^L*3E/qMmzo%|∊([+M_h=F m[Mqq`/O`ab!v.AS;`/=YT4Mc_N;`҈qnn_"i,2*q* >qG#;$.C붖E.V`9[ӆkX[q0^X &A8[OGݿ؇5\ >x E~/lN-0;1E9`+99+pd4eiv޳-m$MKQDfƜ3aXeڄfڄWg%ĥ9%ƥ9GrU%j+>6MOuܮ"mqQ,F-[=lG>EGX؇3'rW!0yB[a^6Xgt6Xgx6SDvDDH%Rt6l\l#ۂ|5S=[j;īر;B2;Ω|JmwggO3c"S(G9|*'YhcSfck`фuQa9y$*Uźº *KKrux;z<:ᅱne\~nNO`^2~-qiqiKypn)3y7uYT՘NF7qs7y폛{͒m\i ͷԽKǧ}~Jק}>er|{))/u|}^yy&ɔ_l m\˴[}aӵ&¦kMM [pV•\]+:s r/zad] W?X\iumӃ ·=8t !"]>.>.u)㫽H^_it&~ܼ\Rn.D7TKjI GtsI3\~\RRL+KԹ}Jy|J[꼾S>.SRRZy-y^KyW$x6e㦊 IG&)+aɰLP/Nަrp8MY; K5N"L ϸ[,?pƛ)SjV Z:@b.AYC$VjN Z:Cbn X J 53<*ܿ¿!钋X񄌎 yBHh`vG؛`5Ӊr+o-!q(Y}]w6znsӞh#SwTK5?TC#UO2b-'΅Ʋ-F{-_AnA7w݅n~`Q$/^S?J|GOhSeIڑjj39rJ_!6߷V5 N{8IR$Z9V}8`zqM\dΧHAR7Mݨ>u֍F b4DKOhro{팯jjjTӇBӊsx7E{MMvp'# wbAocA圳ǧ砳KUbh%6VbhTg xI1@ђi?ZvSZu;C H Bme*-E8ZtʫWe >=`r .«`"͊ nkW[SғodqkwNp!vLnq}H>ct3JC(w!p| g 9<&@ ;aqF9~#1Cz페!#{nrK òp,-5=[̠5I~-m9vkyl\X"@M+%=pl׵Ro7uxۺ4{w[$2]/;ebJa8 9Ko4ɔbY -l$=Wa-y+^"rCc?~F3]F3y /0^p/`MGhY~Ӳݨ.R oNK-{I-Mf4ř;x.zl&asi"= u+ enQ7ɰ\/wF62;)-ղ̨3MgF&VLY&R%w es6ɖqqq.rK-9\X9x9*ގ-ظ`ʅejo0Bn>ҭu2w51~Pc͏nPu?'F6@X&rEr6Fg|Kھ='V2bk+rB;ډNl:ݮKGh#又V>"dK2R OhO8K%[?6c{a|?,6GA:a82>WYJ"A9P$ѤEbz -%rKŜ9-r5dwyB]gs|FD~b9gTW'u'$ O?~$,~$nIDX!G{fN#'_9n&x_ -\c^ Gjzv+1x e_h #a7y}F uօCp|GR)G>O?#.T?b.*M˫4dr5nJ5і+JgvAPUb BUj (C+K!,CXKx|~l]I8 \:5_`n~FƚD}K[ySv.wRG6N% :r kA*y "!i ">*i "m>-TC7j2$2l!2^ )ׇo5#'NX0a\r Q8\V:f+tv2B&T2RlK%SVQGm MmmY ǜY s{tlH!AiaيΡY4kE^m.8A Kv,ڱJfR+鋭K 9a$ǺD%u$.?ȹ "Cn;\pH\NDU[jO$ PjT|-=OTぢ6r=r"u܏ynsqAq&2\D4$Y³Efi J6M[P6mAI6F|, ᛏ{}Ȅ @&P|, $K9H! \gsz7$WX-ZZDu}ute+?ɐ8G~:ӯ\ND$`)coC~pz8:JC,:JC~C!"+H-8 TX*QaW^sT9*Q5GPgfQOr-ZfEˬh-ߢeVh -ZfZMM[fTM=SˬT='HW!a\qMc'ܦpSl\Wj6gj3ͪ|=Gt <*r@(Z{a’ /:m2xcN 봹O`!ykz A-WוhJ(pe%p.+{uUݫJD&KD^1^a -^!( v'@q7n3Էi'*47'3y m&؜f~Ym&K,^QjzMT6}e wo×>|,h}*^OnnN`pR+P^$ب>: rQ࣓(I9-( |z[Kѷ+qMB.3귾Bϧoc#w&or.Q_^Nz#gqO'·$SʄIe룦[=HcΤ[Q]?Iʙ g.c@qZ9?k^%w7O]l5n;2u((umX)1V' I۟f  n\C3 3|}+Ŧ 7]'1~'v$MzW'&}ܚa v)ӯUG 28pTM0;pqr0m!ߣPuAv F naSvPaIkGU!"Xplb V)ƻgHuPP[H8ΰ0״0|*2[ rs5ب/c$|a  >Y}m(lpeEFw[h$n\n\ıaR"No fk5MtT2 kO&dhdmb9ID!Di,4!Q OVۗACa@0qP ;3v&g  }w0rCm$R3[Z"lH`G"iD[zɖa$a$;Ey_A껶\iwmw922ao|p׃\:pya=¿J¿JZQDm$jF wmRۤ&rM"QMq>o>hߞ]PyS 67d=W<ſ_wc6 Pfher42 Ӷ6s&`gM|a>0hg4pƜ;S`wrR"ll|]^kN' ^0$pxѤ|i~EbM͗&^4)7_`x$pQx[@-s p +й~xfC.0sG{6Thφj =nVq{ 2B} 2]dXH3S茽;2.L 3XBeg,(QT1:\Ө 62twK9L*ўI]Ϥ~͇hDTS=UZoOvxF{&qkgjcejQ&G(MZg Jr&`[Ml{=Оhhg4);9S`)$" jD|tkR3aGb#LLpD_ mLP[^ȑGs;:Gs#:-an'vפ`l(D{9[YnfPh9wt}պ[a.-sQ2 Oe4liٰ>`VwOL'[HL30Ql! 4S{ RvC^/[ЩeBPwB8_&ptjo\lAR6PEs9#]׻UAbG&u]Ve L=>/tƵEg/(^'`"<X,_@A/ >h {HKL'&p3D6qnVHElREleyJy=fΞ;·\R8GJ5 jqR8[5kWZ Vw-X<%iKחje#TÝzpK.tj&Hpg丹ORϧD3yx/|\pWwY'\2|k+PGN8|I:1gK#Va;Va#VeFuYmdFrRɯYFv%΍I ,#u#,B[S-T|[&r(U,ƅ+wy O}a T@CO}a zFGwkf///<!x#j7i ?F=%m5T:rIqӑK\R\;rp%r ygD"}嶝Km `ڶzT.t*M{lo=zr {YmW=Wy1N׫04M1%uM6Ezl=WK9Ci0gP# k᭬lZ;k'ȵ#D<XQ f ZJZ#:noӣNO5yH;p=q=q=q%3pYS^q#F;}It*S;WNeդLEs~YXtw<"oMڗT&կԛĪw=ݟ(wvz/48fШAcj>&n(sª~>>>hDqj\q}WʮEgWɨ:dTrM6}fǿo;N7㉇8]r YUqUqĠx?]ӠRUQą{9 r@UE!8|qO1pù?jPLJ-\BJ=ƢtyQ=֥:5[f gk[YSByh)N3kʳ4EUjB*8$?>LJ:*Jn+&}PKNAJN*)")4Cef$ :f2Yr*+иIҴ@+ 4;Ih(r@9s}ĹHJaZ,sXh#Fj!sP'Մ\q=q%q0;=D4uD c^[1LJLJǖL.GU.n8'<&>!|CmxK;i )}4N=uS:ig2[EGE g+6=[٥B.&-;QT鍢bMomzhCp*<ުyi6O:40']tKS>#)Kr_4$ #3n||{oϓzzԔ;Br ).PNBftjFf5#qi@C鑬)94#5@h\q$iFBZrփ+W!^$$=xVm۵*Qe13 J=|VY+%=~<=~riZx ձ'P޿^jW]_v}nU]jsoҺQcwK zVNB GzԑSaC^C{{{Dž<퇌n2KULdv٨S5уj6lN?= -8cN-qnlZZ~hiIKd'-sAw86qg(ME%{(+G ^$Йk*wbbOv }!o"v~A/"meM6q۴m^MLj<}lN;KT @N5Q38XNT\x$xdR.wDZrJk9TrJm `>ߥdkn;y.@]J㻔.%*%oHj'H#N43SxP07Sm-/kc]s05[ZL;[F]/r=[{GEOT'*12beD12n9|Ic\ʏ 12C=b[dNI$Y6VN";oXQPwK4>uIP~̋wء6{ϰgt-#duH?Dzු~x[Atn[>*Թ}2WlsdRɜEɲC5۷΍64ֶA^׫z^Q{jKmd<M!d dNdUuzUsdddE*{}&7Q(\"96UmjmS+M6A('ml#QD%+Q 6*aƴ"=ĝ"vQvQ%G3Xg y清iZټ{ d\J|U%Q]>-f 5kWqU<= 9 ʉs[/Y_^OΙU0O' ߫~W=8aj't[nk8'Z3-`v2E3ƹ3]^c 3<3<}=4gLCG CV-C64NYEqɅ,rxK$^iZ,]ՙza;\D=TeDDD\vyG"":,)[ˍ[[ۍ[;d^j콦I56/ Vj$Fi/Í^;y.o\4=۟O3xe\+{<|F^wTi>EՏdfl\EB'$8B˱gCF|\qj2({!cDh!8JZ?$!!H8EGk,< * k[ILS3jXհ &aɦCH=TEU\HOD//Z悥6_ v/2.|Ss_}ǝM8vƛOCl7@'bg>8ˉ0q|".|y{(3}ƣx`!uqXcntȦ"=v"="=H^AiȠmv\dD/v7)8N3ߒ.8QV|WfJ*Ǥ<-ov%Fe! bν>a}DLJWĤ}FLJ;b{֏p{dX-q䉍J+W8)9)9˿ç`z?py?G ?bhC늡%=f+޳xGV xG t#_bw¾Rȇi8"#"k8"Ɩ#"h+n;;FH1Q_'壒Uլezx-2z,2#0!Jf8!jqA3h8#7r4B\DpyU$V.B I*e2@mΩR)nΩR,n[[;vd$[?K&q`+^WځcK]i{y 'x t^]<7'Jqe$75J;v=kq---6fRz~  "J^9"3!^R9PLNXƲg& }gB! 'ijܝqʷD(٥ri(A1t%bvJҕP y#\H%\/鵆Nv¥B~BRbJЭə }o }O }OJM_BzA%֯ZQ kOc Igc@e܍y7T.ˡ=ﵺZk{uA 'hAӮ'B W)+>"j)3z52W#6;#eE%L2!zwBx3RpA^C8pȃz뇁_ kMP+T# H*;R/ʎKKX7Agnp}L2!gτB0p#\=^҈D]puz]^ׯ?\_u\pu~]Orv#k5W 4_%֫ľ_qAؾ\Eؾ]z&l7nk|EmD6XXkai?J(Q4+wдAӾzMj9Ηp]nWn AC)1hs4kj zn ׂ^j0m=VX豺HyחAߠo+hpL*2>CiμY4. ~$ B`?!V(P w@tD%+Q NTMFGW^VܹxXm& :2 !H Am1["(ҍk}h \>ƈWO缔`zpvBHy9ΰtz fIib!n'lFfrPjTxV~d}MbmZmRmc6L{F&2nq0A*&:US~:U3Q;`pK7..:D> ?l*pѷeG&;q!bx K7z1rn}¸'Kø;Kø}RqYRS["VLmK"N;ߋ J5Dy'2q-;kl!C1բ*S" Y̌2=So;gYY,A4\!W%+;ѡL3CL3Q=Ǩ-1tXuXuXuB]u_kx ^}_wv{F,,+dqqk>qk_s;D.ODngĩ!-5wГ^IOr^q2zayNOEsz}Y6_UHG%KqpS=}꿨tt|a%Y8 nu=~N_M>B)ǡ~qb[ƥne]ꢰwQVs.VK^N gu+nTҟWSql@ֿ}Y:=NFcoҿ?:/wnRѥ.r1`äِVjgVK]rYۿn[~~P~7LvrVfM[ vK?PXUКqA _ҷN{ N{M͎ R-Q[Uʩ%s\؍begZ_6"`Qa+,bcoN:}#QwX(>{oK\RT; 4}xcw*:~_w1T7j~c7g7CvthGv{ؕ7/uR:mdIvxn(D 8nd1ixn(D$qET&C1eQwX(߶wXRRTFzeKx/1vﭒ~_ה-KzcsIo 덡%نJ1[;:ݔd%R\&MY YQz:DYp?p?,EGZqC8Kѱ(R4<&* QZ,ky |̄C@O@w,EGB"0[Ƨc_#&T^ Z&@0I 0aۯi'4:͹rݷe[}/>ws7>aU|*/k\F#(LE)aU|ڪ>m_Gϣ((Rӥdux^>ҿ@XNܖ%(Y(Jii܋r6S(6S,9͖ճg-`Y>p?GpNa 88htp6KI! PhscN)e>,a' ,C&ػ]$w#pH @80?Mf֥YY[dmKp|\yM)d|[6Dm߷eCd[6N]3BΠf 9Z) og-_ܖo8' m@ŸK*$]eA26K:$i%Β }ZgɂZ耵Z`kj,z;48NM+Q NTL r|[|y\t;+2~++2rBho g+8rö8y~By~B`yٿ0!'Ärn9Lȉyًoɼ7׌zݏ j96ݰ?そ'l[|a>0xD|w>; IOU0[Վ0[nG> 鼵n+׾\t[J>StX?SaL'|㼽omG<*w+]G<%z z z z : .;rK}wA_O;x1ԟ;Á;FpR#l^}Tpr;E+\Ϋv^uVu[Yaeya[a[a[;`skq^ںFww^B${;/ ܽw d/Z(8ײ.tÒ#r59lb7,90!r 5$<O&q9ݶpvGp+3x>B?q^$yPCjY7."G"dݼ<$!UԒs>uCi93p׃\q%qWB -'r: SD:WHX##@̼!ɑyp"n Pxti)7HQdr7!):o˃e T6a 46a 3 ˜m"6aɶ".Nx$*JQt_'uq8{S{S{SKӤ^׽G]~`-弎"{޿H!'oApSLޜbsa : P{޽9woAnJ6Wے޿9oJ&n@ D{ѿ; o?÷'|⬯;g; {~R ׹ln~[9m嘷cV};'o7ɛag{结7n}8oo5L_&ޮsL\{5n<^y~pߍˁxO<'}~a?@O<t@o<=@g<:W8E;NyWkv2^Õ 8%;~`-[<9p^)r^)r^)r^)3;:}x]=^%x8e͵6S|6Sh(c_܆M܆LRchbH)Q]D; u KhG$ڹH$t_p ^|z-xy0'"Sy䐙Q/,9drԋ/K"˒| s|p׃O\/ 3JgԘ;(h9zGpa.E'E$DPN$H dyn9tq 9'(mH21" gNcI]>`]vDs .|kabvxcBMx$!y,&Z72RDZ[~틜!z"Kh9},;%&j6Z'!S%D(i$BIk/$J#.~!P[_Iڢ ]Ҡ4U72zt^iPF-ERu7E6`}t3f[ ,JcIRB8/)PJyJyʦyʆf2pn6lCJz׳_vr9N7R_ 2x.zuYWԫ˪ʦ^]S\bc -_+m:to: o:Lo:CrШ˗6Ѱ ĥMe .m0,qisaK|@\[2B5!D{I@*nķPRq0ZjsCUy*$P5h~hy3[ ͳ6>4B>4B>46>4*>_>~Miů]-/PБyP_-|7nyNN{"ie-$/t'y iO2hl-$#GԚ2L,Z:U-D`Dh[:({R{R:t^?6~0Jm|u㵯Ǿ~t7QOdvo"ѣfB`S͕c8!Y΢:ywm5(W_ ౽^ ~0cawF-tgF(A#3B QX(ȣ/z%ѿd(J၂Y w̵,P;N@ArPhF!}s 7 9̝TQHd\B~rf@Q>@QR +-ҳ BYF!䲰² mwY,PϨP0%jόP%tF@^Eԫ_ Kj(WmU%WmU ȽjbAU[ RڪXzVUaѭ:atƗUKݪnR֯XkaWq=~0wܱ٩c5%RjJՔ4@4ҋԐǠS$vVu}WݿU]Ґ*W9;ws.$Ȇ]St!)qSt.!St^)~z_uJޱUL w?t"=,''I:'I:'I:$ICtģ ݺm5D& xn=LEn힖pOщx .L=֌(k# F8rA僄gu@??z^Z%~ /RV"nn1qC?^k޼ tCMC.SS¹f+^E!,z\QB@=I.[%-ȫUsjUw8 pjޏI5qwǕoZ|k@P͇j=TBbȊ$2k6∘l#麊7∘KyC8PVLPf%Ub|^|_t~5<>=vbxS24ڶ6b@dlY͖ElY喸'^0jVbW5PbJW zߩĖ wT8w˜:a?0A8/ZJ(QRLf,^çsO5|\x]ʏQzҫXZykQS&WĥOLzl+)&+zPTW dYo/?#hi,U^%zQW*/%(Š/bPFyF}F{F?xsN|,Nd6أs)K}hn%QYBPk%TtQNZsJsG- yJUbGU%V{XTb0δBdpך]88rҖ\w$i#1M[iP$iC Eb;iPJL3w=Mi$)KLR4j*&Xk~C=A2kP\TxxH\VŜ,AťUW 'C_%,|pyvꍻڍ;NQ?;=.kWu8sk5nܚq9n͸[f-}[3>ĭwK4nitf--ҌEqJL;l-Rꑥ99)#HVRr\|,NM_  R`[ҝ h2K3QFQ:QbIwL1#\'[ᄍ%%ٯNZٯN3u$vdvcK-<>×\CpV/u[궞m/y5k/x"$ZK$V HZݭOHխXgv`&=HŔ?g_X&2hCA~"Y]!CQ'\a9f|8Q%+th mljvIQڳV0'|3 ·\]b}ڈK([F\D؊4ʥVP"drićM\eE!,-D-5:WXF|hڤnia6[ZX9ˢbU-2noar0nFF\M/(`3XRG4:NOV|LV 3ZAAg$%`:B0*ڈ3 *ڈ !}-]&ƿ0ey_5_:(m%ȏx1#^ w1=|sp:[A(RPV~Y݊QgIɏlAf1I2Tc,eY6PձsWEvL n4R4R\T).&U:%0S1%0SZ],A0.r8oyO8pG9'*<)$WU7Йp8~&El!(l*HMD)H:cR%Aa lT[/I%qT7CN3qaL765636蘒6?fZ}LF;^ d]1q\K zb_A!i.K68о} .^ŵ#k]ؾ0>%`> .js`4u17D'@Ŕ <Üˁ?$h1P0%D9;$9$9'$Ȣ >rl>6&ba7>Ƒ5 V蠇_Ǚ< *ֳ k~5<_wWLZ `TGV G--B伨ģfeb8b^$NmՌĥM.`G!u;E麝l~Qng(W_/ggx/$>v džBQyZ5 ?Eo$T 192 aF!66yMFb~1xHJK/?Es_p+VFد[G# vKM d>GaqkJD.ND($SH[DxKXKvRpǃ;O\χdILT,҉e]:QK*ȹƭ6 w=FRl8?9B @=ީ"5p_p / Ѻ_T=qQծGX|raQaQtFq5q\}:Pzb=AД/ٰ4/3pe2¼4bxxx\feD7S)ʌj70x<^1Wփ@{E99y@yB⁼pb$2+HT<D%ۨ6n)JbUiٗB+);2tPֹs%U3+%I~JqSm 4GP:WRjh9FH'ׂ) O H),á.P@(I%{|(؇Q5Smd4|I)4vSyV/_ @'U1@ֿd0Kgk/@8MN 5*lА_<~p> 3df2 3dnu=5,L(A(RwͬZY]l5.B2!]/B9~i#ܼRgyp߄tҗ dB]MHȤVTAۭ+ Vظue S|nSvYT3"V}E""Hح+\Rw Uݺ7 · · JI{!E*3F*3XXe!Ṉݺvl$WFrSbgFQ2#AD*T1LƇ3Y6m6ǖi5ªv*]c.:W Qzqw Mq`,,f2IV5[*n7no7n8qgLy eŔ`vLy bʫXKQD&VAmqnxb2_<~#C iu(u(2nLZU*\dԭ3[WVeaY[l(O ɐ*&C"TL-X:&R5R5]斖)&80^PY՞jNYC OYkϚFQ٦5J6iTiMMkoZ[;i佝4~PLmR oTC[iTM.oqyhu3.o䵂6؟2@]ۛFQ7ʸG]YG>ؾ0NȌCxG_q-H|`f7@t89z܂4m\?D'Ϸ5HuCЙHyzO Ź wKiECR{p~w\0]Ί-~uQ} |GcB728[lMˎ:&_=:AVuVuVu-oUz]C2ݾ>6Ey,"ob:߃ɂS/=ݖY"|yr>K`Vp x=Vh}ne>2'kSצ8Mq\p'G^> 6NhGD(P&2)VwiY??Ӯδd]MU7lWGO`O`芔O{s*r]ij./,r {QRMQ2-QrmQdvMNe[)ۍ/r?t"CE_tq(xɻݖ&jzF;VYS3ڧ]?dO9~LI `[w7ӝv"owtQutS3tS S t8^w]>ys8Otx˩C=44 QKZ%[ ٯX#%Ue20-ьN4DMh*!@?diS>+Y )ݴ,DbNhqncBKB4 x`tXM }Y9xYZ@ I\;o4 p`w=s./smo!d.jڮx5mW<Ǐ+GM .QYV/ϟH@DD1Jc\1Q1vYt́,+Y, ?μ\B'}N}r˅E,E,LYYDY"j"?KXǷг,n^ܼ8FRj?_uO7W6ThI56^:բ ׮e2Z-xmmm]>yEa: O~O*@_4?7ЍpKUNpv"' ?Cܥ/gtL ܾUVpz[F-^]Gquf B$ŸuҚq sf\\' ڲ BIv~2']gS^R)g|T8Yݩᨕk~TLHN&\|'srSa)90ɤTdUȫT!$U'.RaOqdw d wN(k ߑk+'4"7U$a  ;e-2Ԯ(iXӉεujsCTPg;:Nu!ɛEC28T(%CR6zfueVZ:~Nj+vhVzDu}}]_/ Z!yu=K/:4T֡c2| /_%\wGAGˇ -  *v_ BL6\Emq'̫AWك JyC8j [zICC18Jxä98bYH1H0H1H ͋PrM(B{5 H`;4%kalmfeq .raHg\co^v!>Ő\el5o9i͆\c}Gb_".&" fD.ämAm^E{a1x{$E;y®ٓDLD7uAd}bK "vjNe܏Tpr#ed-0s= $ Kfc{E ̮mzn嶺[-򔌀z` KKLvLe~lQ?ПhO43x'#=3`zv~qǀҍ;YofMA=ﮂU\'~Lt]]<މgl/8x=^`Bvnb?~Zl}k;O@O@O@O@g@===̓ \~b:Êb6Ò aMxbX\MbX\LbX Y q//|"$~K;C %Wbk|)_q|r- %W|k_qs~〵8`)~$" jD[ &[&K:om;8qs\Ӱ,62Ѽo5׿{dkiki;Ny?~O M N$ N4Rvxa<0xO<3xin#3`8yHcW{Lfd= 'mnW^z-[w>ϋ$ n/ ~b*Y@ DTo"j7zpK9Џ[X"aW8M*a0ww,ђ~ݤ#!TRD i:"|\2n2n)\Œ̿+d࢒1p)d \mXl;RX"q7)MA;rQZ Фv-wAF7.$2AE$x{˲V{oYvj-Ϊ޲-Ϊ޲ٖegUOC~YY-[Q2Q>V?ˈ e::O agtgv&<%B<;[aɗhess"[9ѱ;{w2pǃ;\qcEػNw'hN:ޝt"۝t"Obt۸okmJ` TI P/~}=$w+9˾6H@7 ;|Eo bVI |[A$q76IsjF6ֈq)2FGm+m+#ÛNDDܰ`^Ϸꕘꕘꕘi/֒qk͸]|DkPpT󡢇uQB+ՌZmƍP^~ "z!ZoNc~sܽ~sܽ~ q.}Yu)@?+7QR/p 2ـ}أ40Gi)!9|r` Ɂ7Qoe՛%7kVozsd[͙(Ï2++C_V&FPFGPF6)dljjYIh aVlR¢wǯ Ӟ@TU´'U=0\e{q&ew޸88+ɜ++dB}8Wf2vƝ.=*X9u}ۗ۾l͛b>氹9/7Vrshj'~iLTC4"8;[[Kƭ•զZ͇"S}qbR'y| /pYu@]Ʀ^7u$LU֑H>VZu]o6]봾כ;ҍQIOJ\T2Bޕ-+3zVBۻ2 n҃ʸpgUI'mhU3}cwMiz׀c=|j=U7(woP:mP:nwχ"~ELwoP:ޠtܽA鸶A >e,t|M H%hzc+iS/l~#c֫i0ŷ)<^~`znJ,Ņbw>.\[z"+娸DT vP2x+[;lPajZeNz;l3 6{րQuwwuOmSußf6|pw]l%W\r%c2=P&(CݣS7Ƹ1.pu |ZU7Q>rcط?}Gx8xxxø$i?CD?D+Y3lwwܸ3IL~V&/Q>q?72YvH)ъ]]o"Ac| ԋM$PO7)B7xpK.߸},ھam8˃ozo&\ٯNQpTNYO (r+8۰そ7,6A$Z vӨoKE G`|}LI[DH"G@M"EBq 3`(^gpZQ~AR2W6~`Wl*7 ]6N6NVOVH- :7LTiԮ)GkJrIk9>5XׯHOXA n{,C$rdÍ 73ܥ].f@eӴsnKTK;$$$u{DsK.?+;̝aD8;u`_/ 1iLۀs=]SrMR5vTbTLNBK>UŒzGսC*}Rtc# D?"w},Dqv?p}Y*fI]_4"eee]шeF# F8(A/h CR~Xg\N:oo"N 3$ѡ!l=ַƈ"ePyW7'`ex,܁Ah,b(ӘN?+',,\,v,yz]J|FCנzD> P9R ױLy`4i ,kp3]ڵKٞ|2T"DXX(Wu"guBwubuS jT^7!=QI#2A&=n"q "( q "UCsK\m2p/IS^اhD(O} Qb !AUuNƧ,Xr B5 Pf͂ 2MTGo{O*G6SNKG8Og9iJ ߒq17/8O38í.֥"d0:([sXGekhl/k6nlk6Q&AJ|Qx|pIO^~b-)Jt\zuh8PK~҃ʸpK3[}ˣo-|D< 7N3,?;dBRzZQ(R{ :%>m`e؊5cw0p|NҰhapҀ.Qܸv48eQI>-" XeS|Шa<@T< CÆMB(-m!67/| %Dk N>/xMJ?JЫJG n%eR'8/9ɐz]5'!!x\*7om< >^e}ࣈԛέ%Ruzʑzs#Ga7v ;|pwUԛSoNX1 ;Vy0"9}7ER qM}7E}E<];# %YOX%1#QFbY{PF\.Ň%$XU{FL_آ-N_Z9j4rw8FƟ>]#2Ї ,aed9c4 }XYMB9c4 }} e1%0])R>reх,}p!#lXa7u*^wPہ(e _e0rɹ`3=ph,?EmG/u66 h3 Ls=M6U^3]VJ9|˿6㍱j`Mӯƛ_.JP\ʁ?3>e|׉okTUxZpδʹ̴˴ʹg OFק O 6 igƷ#܃1&()B=WM:sP릀6ܘ68={|1{|`:_W`hë6W78i~Jš/`Q5_^ǯ%g$I؍ Vxe72so +ߺ0ڸK%Ɓ_/XblFYe7SJ^ۤ'$8x%3/IlCи"fs[g-vgo-CJkTFlTB6ZVBr |+@PItr9Z+hշ6Rkp@uJ8o%x/5BC7QƻXG$q8loAtIp\s \8\8@gl};B2{Xl\8Xl\I;{ ^rFDc$POi2PLVyqx+=@F>VCc5dʿ| jȠ.P#;Mx@|ZH6lZ:t[8?[2X:M՛2$:l5=?ː"u7.|\q +!he]Dw6l ظa ;7v70T *,Naطlxg+Wx^2|rlq+`Wկc}MEO^=|S׌+*(|ȿ?7( k(.5~br\!&ǥLIX[azR|Vq+SjVLY22n e k Yنm`u`uC8k:I8o:I8o:I8o:E8Hp.B2 ]S.k0"Le^2P W(ۡqC[v%ۡ{VLYN2(2㻔A hGr&'~5_A=%kQWs#bu61.VQws#bu8' ZjcruU|-A6U0`#PMfo3TamM;mM?qQE6?ƻu\|=˓oGd222'TrA'T|>E^pN7[tXCVicE;yp|H=!qe1}x Y] wg~N\ظ[Tv%$|\L=ʔR\7"0nD`ܸu|#g9i6cط>}뎉l57Yss57Yl{~Mt6#ư1c Q+Y>w>r_~;˧,N|:et#g\~pׅ;j C dV1Z{ޑx=+=+=+=:`K+;+999_ 7[9^ â3,FZӁiMj]ftjevf_(1:: >.'88;S~ί5;'zzzzJ FCF,ئʼnS "Au-uXH(FDLH"8_ө"PKyw>trDZJ8l$$j[Ҝ }K C? &^s5*@ǫWM_vTZk("ю͗o b-|uqT7^Fd:&ׁN3UP_fGS zM>;u|}7\}w_5HfOooo ;؜D.Cw<=#!ag(4=E56=dkl^zHA##wee8pe[xAzS D]@! k<8dMG5k!Ԧ`Ҥ6qG6L:r0ͧL.?+bt.8b:cq;f'ղ1A%F̹$ڈ9'$ Iy8-AuYN3+if003hp2 ,v`*YXM3@I%3¢4͍hzaW/ۢ/<>ew1MMMMMF+{{{]/~\-"-";]-ʐx- _&%pn5{z\qW{%^,#5dl#!K2n=xCl\r'!Lr[5jO[hFt5 WE+*_U3|L6 C$5| p|/x|Yn"-͂t+T6 ҝX^{,HayYڳ he F9.?+pE7ܥaqrؖܩVDE n _yjY" P|6ذgJ(flH_ؐ16QAeie&*LUUj{j w<-e_w>xlߠ|ZZ {S1in硿7{[]+^^&yWz҃pW\<ѪW:4:c%}/;5m%*Nc䫤Jj5, _%7-,-#/-)*R -o+Id-q+,q+,q+,w+-.A9|T>L0ô2}q/pN_Ɲ;n\s#ظUQXWj}KrO&g? |  :/HBg\_(Kv`~{eeU27jOb<`Jp_4."q%? .\}-xaWV3PHѮ#g5G5[#t848GbDP _A4tCω~%!WS_M]f]"kC:̟҇j;pw]nªˆ+K(5/QT&쿅Zm`SƒYݷӗ֟t@e#>t~[ո5#& OXL/L J2%vB ;"*e(1=ơ;Tm¦6}aSL_XjeO(1]+F.wPb]+7خ {l M5"{*YB25*?O:?P]bkʨ+nxe5ޤnx7@H(8~wQH[ɭ&x9./w1JD"(Vh$" x^@H@H@H@"~8;\zp][1:l+UoA jE5զSE7஌ۿ˅k4FG-ch31<;h^ 7۳ܼF'.tݾc񢍱>} 1&\C#.p̴vFuL#d2h0#dPC =&h1ɛ:}i Cth; cY }dHuK-Rpǃ;o\}f>p0U7hd\zmgܜ]j ju@)Ⲽj<aŻ Ss{:ch/.uƎ<.u^bU(&Vp$Ru]]BGyK] F0gǭqsv\~w(}K]:ұǛxy[ĸc RQ 7ł7@PU!DXr[EBU+F ;vƕa׿9CDDqeaqtúm5öv}e8pA|P)r*+ UxdfjfjXP3פS6^vea-Îoxg㍑7f6ޠx|Kr-mdzLea.;RP7ȉԼr,]hjV9.rbjN9FXsEi4o\:5KCX"x\JU F\:*uFU.댪֤ΨjMXUvrdWs\30 =+ 9Vs4Xi:~x}*NJ:-9-:-NKm0:-ڮԴ};D%ᶯ&۾~^vV sYq.;+ify\V V.(U}gGAHIHrl^|-֎w[hLC4"v%} v|%)Nx|t)J $C ]%DC."qlز ز ز Xݲܰ#mwƹMA|P):RDhvolֲb eb eb e]l76nl X=1^x}fu|/`jlg ^-|!h]D;?Βqg͸eo\Yp O u6Zڂ󪕠-`Nj(b~,Tcrj,brj,hxQ享\Q.(:{kyW9W%:T)%u$d\йrX,wh,w& jW^z]+^zDk"֨\>r:?z5jhwt_ZOmA_-ףe$ -#^hIw)>ixpUH^z"A=:HP.BK5 k, K5R˰oؘknܘkn`:*^5˞ap\DDAF<(衅^щZH(RQ?cQ5U+ƋN?ЩS]-FzL}?f[7%Wķ}V+W.+Kq z%؊V)+s̑bO/2G= RIRJb/4^`-)4Ş6k M% iiIғe$M SSd;4ڡL27o C% 5.yAaj="y~M_ [zԛo F!KEЮonxO]pǭGoZA " Ն-֐PIsۢ"⧨mOStZS˟"X]?E?Eb.;J5ÎaGa#ő?fCD󻈦;v ;;n؝(pwJA'zO@h2d~ԲgŸP&.ƅ2q1n+W-iea@1xܴ"̈ HBMW !4~@uPti@%V f>^1D[,aou|;U$%>)FD>O k%O\Onr>3ث'Y-zK; g$IBp& M™$4QgPCIBq&eMdf6iNdp+S57TM 2UV*#ØBv<oi;팮N3:etu"SkuoO w=6ՁwNWRThL{xg㍕kLl(2̖7; ˏzG_6lM{[/]͉kڿt5\~,gK7V/]}%޿tU? i#DԬ1MՄ.5@>l!>߁TjFXSM >Ufџ* kTX5x%nD39Kjh,}|l2ުo"jU> xlޢ;Lfqj+<+hq?. /"Q)"B6PLz?Z=D@vH!F Tȅ0%qSYĿ&~Vfsfj婁_i۸~mFʍ;n)vŭ)ԤtR_ju,fPK jYO3$a8j?ODuU7 dI|6Nm888m Z87~ÚLb[Wr Zi5̳fSǺ6"4\eWU帠,Y|i4_/糠ssss$5XҬ -[ebOQHhu$i@_Ahr-Ͱ {DM>OLLLLLLLXm5ȁK.?ĭtDBM_J/{uG`(Lr#j 2ۦl 6U.i | >[BU0VrjU5W ?B\>ߔּAMf0S5,<v* v*zSI(NIx<0ƝDj[֦MY>om:=ՌmxezmcFgyRzxL<#SmڄhFE*$0Ӻt^ L5S-f~ qm3ô2pLysur{x$`YZ|A|b6>[1*+w*WwgwNRyP)69j8ۗ徸}/n#PǷ/(ڗg3 ,^OܕGV<"h*yJ/rM)p<""NZZY y&.%k՚P[B u\U@I,{U͢0TT tUE0i=Fhci;uza_n`Y]-6ΘΘΘ| T#!nm=u"pɡLU\>{^^wP ؽ:j[e{{}q/=ň|(3>򌢏v r=79&0cI sU廒lgfC A D3#4D'\(E}…R$'\(EXe)w?c53qL/&O …r҃pv򹾰*V}}>mv6;vA`Щd5#443Ar! 3/=AuYN3+ife 3|ـf1Jnf&M^U@UM*͍XǢ}Ss+]@tPq|"4&zaZS{D{D{D{Dۄ%9Z)R;"f}ez-n{n}"h8*x-J2D^gzTxxpK7.wG6KflG6c#~ ͧlAvU;H >SNH,z"'Qu֙Vfffb'?pǃ;\qw[3_ilJc5ilz4F힗} WQz~OQ% GP7UBpT nuT +~\~pׅKHH@82DD&EnAH+.iE}"HYO2}b*V$4OLq >A0q?5 w>"O9Q%M{R#ߧq#ߧ/? Sg4u '5nv):뜛bsnι7n廁KR.(<L\zWJ, k/2ȚFG^UȫjyUM#ϫ3jQf R1H~eeVnz`as4> OMh^CkP vnC5\;T=<0[pu&~VbbO6Ldyw޸~j>o~Z%i1nԿV~F]|vԥgQ^N3$a OOOw ?7n؅qs @*2[_2TuIePj' IEjEp^$\PlA8u|~w)xo_ NZ,*P`O>Sg*ީZZ"|>_|;;ȸm/~ nw6x$|Fd@ '8 u>"B* G|Dd@R dXc£L/'H H $I!!䢞lACQܨ r"¾ c-"[ nJffffjp`z"!C B0=x I BH=x 鮰HLwE}+ RĻ&6.=஌]ύ;PGevdT[6=-jQ1rc b bKHYqoaþþCL|,< t[SzZ=-AwQ~rL--cwhٸrw޸&\%^JԫdU3ju.=|eHmdjd}˗[l]Eq%PJnte֗>>HZ,D: (#"K QWHWHb (Q?I3\DgxzIz8̍0Wj,kFbbiE-'i"E-GX$"{I(" BX$02DFa)Fظ஌ۿ˅E0D!DE ѣE"FQChz V}+\T.0*oܸP%#JG@ր*(]$I$C )L=ZBBz*z*h (J ڤeS<7ui2WdP7 jqMM5~?ֶס[mYߨt[:"mhDL"ߐ_H`&QO"4_$#"L)JCĴDPir X[txHPn!AuDGp"(9^-bH蹬?n=NlIeo'$mD$%Z$2Ssݰ##a;oXö Zh/ќh/ќȖhN4c{そ,ݰއއmp, p, p, lu,A @idƋИ[εИ MdqͰ3`?㆝1g[_6*C<-I~qց\(4nj|N)$A\ zo"tÉ3#$Zʍ0y.\JA&S#"E\sF H 05M!ra" bRzD$ ,xXx2B6 4rgȑ3u3|U-3u(( ܈%p# Jj-*PG@ADC.6bl@ ؈eF60T  s*F&Qcyxl<[tղs6^D@ ؈%`5Joxcd㍙7(oe<'J <1M)}&q= 9%ͭC~CgrHޯK8PO&_pe!$S$M%PO1KC HficpwJ_DPه#ݷ5Gcz4Gcz4WcN1sX:lu ? w|:uG=Hh:hG;j%C]j%,W$]+ rj~wy-hhKeʧK rO{=1rYaeeiU~9 ѥuhkQ+~_.'x@!I2o{ڇHH\ 9opp7ؿnȱf Wb=\g^ؿq2lx` 7Y~LTETcak`;XaM| 8+X~=#c巑f6^\ƹmZe/xa ;uz9ler[ۜgs^^xz[WNNNNv<1lٜseswgi@gL#a]8A?d߱EtIWObT:UdžnnCz=j7n"oF7n74aL҇갢׍BZ_tQ(AMm>4|v;}v}v^޴Uirl4 X i?M.뉈͇n"OaW-_-%Öz?-}:<*AT |iWK6^Z֞kYU:*= ۾ x>k-l6ڼp~p·9=U֯\^s{ ?`K,?낍T7RoQ9G=s˜Ha}i狛7/n9|?i4ix`9rrGIJxjh , <^09y` Try}/=^gXxbֻzח[ֻg$/xk$7*Jn!>eUxJ/V*x!ηV*yX%^D$ƫxj/VŪyX/$IFW􍮺7ڗ.,Xgy@$Wxk"Ԑr EciE`?;n NI6HP Au|lqFH: $(ŽZw>.e^Qr",eEX =iXMeK,?+{q(s| |RThrUf6Oƛ+\Kڶ2Ts-]v6|`v=1lly~N?ՄmS5S)1.gAsɾf΂#9ymGө#Kw8ˎ>42S#K2>⮾;7l>r_WQZ"*_?${:|`v]e8n:nnn=j8}S^~ln}ڬ\}s6W\}-`;Xa1qk%l.ᜍ .s(3BlVwr{k6go}Hsv~W69G2K(<>H~WC&!ECH``K$&$Pxk7IJ,)S$g`Q, ;՗AMKv%9/j'Lc&ҵV7u/ښ)mMAe="}vFUU**rh@ q;׻puȓt>=}{8cLppm8ck*{ʁAtP)0TJjY?:B?]1Ȟx8Ojfu´OZ~Ld'l'l'UnIюoJ*1ƫdzW ~Xg9޿Α[g pKˬ=Wkڵ4j8  NDsmp~ɄZږޢ!i!1jvHE!{V(OD>  .P LÐI 67677x` K_DԏLJԏLJ=3#w>tz l@סx=VA *5vT 77|pwEmS%UIg333븨|ʍʸp5bޕD<+Ǿo틙]~h DCgv\ι{6m5l9xC}zW(V[1v.>x|? H,ā)p)Y&1VRMb]e]b.hĝe]+g'~f3'P+*32пΣFпQ#_u%r0poc&J ~Ai 0uxŞ,DQGzK{n-g-al&8/_ o{za[s˸o?}+O?3dw2gqߢCeW =ܮ:]_ïM5d =9ߢ"{T[IO0^`*IaU"fqj@F$0q$p$0З~ k0~-㹅[Vm\Z}5B_o=`m{"rR[s˺oa~}-=#t[s aWGUr;^ΟW c]%,oo=u `RL|PR=<=%|󡟊TS}"تJ:KM1]lti]ӥͦviO6%.m6KbP8o׾G_+wD|ɮ p|Rǯ!~#~#_!"ὢ`w*Ge<~NTW5-j5[ZcliUSҪliU;9Qm 9Qm xҫp WRȯ7=Tp8\YZֲ+B[u,uTG5˒0ءUVD!S38zeiCHCH-xξsB3(m cT`oQl{TGoQl]6*hE ]e+\t+\QpW!%J8?P}(\r=9<.`iZ1OԊup&_]JQ*/c+BR`Yɪ|eƦA5NVeT+22諌O*#(+BRW[DEc`|Ql-g"Z窆P }η8|η^gj N/LME #Z N`Ea00 )F+ÙW\ ;xluPlB 49}q`=U[AaqxP҈ӃFz5WJe|"|(A{č EolkFHa|QD1,I Qm)yߟ#T=vk(vk"[ X(ɬ+N'`HW,EYW(*f]2bSP5)cK^S2d\I~P#T+feN-_-QGJp_E p;Z`Y8,Br0/N 0OO >q}Y;\zp獛K9|r烼g؜Ba C{=О|hO>;dUQo#yh_/掻;\zp/"~'!N=P '}I_~җ=j[<+_MyV|3\-+L+J^|KPWJ˰?づv>+ ^ՒW;ɇC|o>'ƓɇqoWWFs5cf/^s6, K5R˰o/v3Vq͒{2kl֗S◭X=5E :A$U,y=n3F8KKOQ6jBƍ By~W{07u9]f`紾7oL$(:|]W"tH` Ú.[89u.8!cyɺq[^anyǹdFづv> 5.dEfEeE_J0,=],_s2 Rp}{*F_+Ͽmc6ƿmcZl-oӻx`遝7z7prz5+x0B~>WUG^v<y~)u_),=],_.o71B풲j2 WMO:Г@+g=;O;yg{l'Y6)gٜ9溲lr~OiVOi)adtY 0ɲPHdIԘesnd]зY7T;5_w뽪~ HW)T Bʡ>gɏNeh BТo),:΢os$'?`iyFyWC7F7r`bs)&)r;e_̾J1x+fG,G-Oc僄|rZF֦ƊM?]Y-˔2.@@ pE `"@z3YCWŐUlXوFs( FYzQ/6J/6VHav> kv7ۿj?hVtXΰ!s\t qR`:T)tUh0y?|͚͘͘͘nfIK|`KK륧2u,FnU9Wu髪 Q_-JRT[VT{VTǣnE~ Xΰ˰\ҏ&>\>Hsi ŐG",oRҏaF'@ e^;q@$";P/&E"#)G-Ѳn-|ixS/fz#mi%#mi% X2b@S-1Dƌ"4{t@S~җadXKAh=h=R4agɰf27& MhPP|hS[#\ୖzr嚗ka? %r`=GS<^W8F!9w@r/A;QL3EQE|) [j--Ö~Dz7qn3c81ƹM-6mjFqC{<T B _ꌹ_WGdJꥷK//0_L 1>?v~o;{qc9&Ÿ1gGd˗㋹(1`z)i6s 9s),C-;TFV,)1S%:퟇J`]%:&%VmXuf^s3lZR"k'ce OD1OΊ֗z)ZDWy'8q"qs=TљT!-a=><NdOXKp} nB/dnB>a O@p} ;p' +rgpJG\.$պ?ln$6}YiPM_3Ee˺&@1,UtʊNޣx3CY `ӻ˦zMfiX`u @xG5}ĸ#vvܰ$l> qV=pEv+}RR˰ {Iİ*oc9}cunoϞ7Gޤ˹//חJ]5îaWaEO[+oqWX5[':38;3:S83{`ffd!|Q f V Єt˦U4j3Iک]dzubh&&+^jfH_vXy3ai8kcr+C `ku-2~qDxW}UG%uZԒZ v-3ZZ9,VLhi1ʶ f9A7ºd-W0}HWgmEf؆ndfm(W*\ǫpU8>lU(Zģ =`9:ŀu6?:EQnE a\u}ڑoܽ =PPP4ϒ7kҶ1>J(m3rG]Z_'NonooL9>J;` j7JjZ z F lDQO$T"H$Ř!ɠ*ڗ._*!1!ɾ(\:5\jl[Q56׭7Mo]4N={s{>{F.#/{+^U [^ ;zRFO27{L74yA 7mO2cS 6,zXI6ѩgT! b!1}?t*t —3BQ̓2dë\ x>>TmK|ږPr>T2>T܇jusLZ%,iT`iyD>K# A| |$#7czp9||ƕH3v`hG=g\q 765G+㶂*6ToM] [Ӻ\zgsS HºHAЃX ;ubK)x3 rQIW_vm 6rl#6ruv  V7n:sPT|W_(*PPZu-W=QQ  EA$DVGu'RQ4EQė@;6vl8 qu0* oQ5QjFTPhPֈ* V+5 ; e8QČY(J]{FWzl][G7bjR=g[GWF=~W;;\qeXSjWTuٞ5hdK4K.d=E4LjWwTَjW4GԤ)_/r)_/wEJkD N JLKZХMBB6 ]W ]ڄrZ&ЅXfLt=Y,]f+t!"42/GКZ5~2$0O1Гɇyì1͖1͑Ӥow6aބ!{Uء{T&|!NvNvU-DUh'^NvSNvk!X"ܖ g) YK"(30pjkCbiM~ִM|kۺ8.{Č^*"ɰRM+il]p_G,a5J΍2 Uy3(#k&뼋@u K'A݁Q DR?)џ)%ƓIRB0gE2SW ScnoW1ս*d6kik[ a_7e( =?SyZi2̝ڔѯh_p6*i6P֝HcNg8z'W] Á_P‘"^r9wK$gܕKȜZd9<{(3sK$k9DrKT'c\}]yW.J--QVnWK$#wK$#wЅyz0lU_;sLȚ摻HjwjݩvGGvGGvGGvGGR##ݑ%>ݩv~;BAr;BAr;BAF] HHNemjwnwnw$?89ͫk!) "oUϴN;ϴN;nv=iGN_vLiG'h=iG|rIxݬ9nnN;ϴCx\9&?鲾']VE[yg0_WmT a& {9l$%>ld}68pJY"CjÁ68Hyaa$sGNt6*ͻ\>HdRj/ I ЗkЗЗ0e=qVjԂ9ř- 19nt_fYᶿlo` 6ƿ[qKo9>X[kmm{mRˑ?j? |{go,푟=yI~'%qB9?X;kmxVzP> j#b JDY |u~Z-HI$ !~D$0(Zg:nyk/~69M_o䀶f=쇢+}"Apli^;YzimxU@" W6apGh Az1Kn)=\`{jX.=zXod҃F D)j%ETeX0# ,E2 ,bv[! ,~ OS(%RtE_=PJ [ ?׏cYOOiS>˘_$cl p|> }PSBxSӞ4eԤ&1IQ oZqǿCޕV--{o0]Nm0aͭ@MX@)rvz7V7[P-_dQцbq<>v>݀[_QIEO_U/$x}gHezm)b4ehmB(BT\W1dr P zEX)*$RGP+_dr0mH$L"Z owFB\FABbu"+:^ֈN"+mFUs;Hu- KZ~1ꐨ)HCH!Xu~[Q "*x }÷,eԴ E?_*\!W>`S^%~N%~ucz%="8tJC.aJaB_AvQY¶NAJ&'!m#שѰ|Wש4~(_` NRjò/5:HLi2VɜܮB(ŘYIXO`m꾬5CR|BdYψGn eu?eAV1",{󔥢DSD ʪq }bBvBQm)v촔>TuUq@ s/:т9+ t(8-2,2YhBwZ儧2vY+YL%nmpx] w@aBPb s%C#mꈥ(CvI MHsb3"4ĭ4{Đny"'2E( ~%|Z.u"E Rm^6bӊكCf셰msخ'm3giaE]l2\y:M+MG ma@8TXͫ5غ+0xF)YneY,)-㴴d%^,Eitub@;8}<>yT-C5F[TyB%j DAdݖe] fJmD9hJmމ6DWɢ< WHH}Ou$H/I>bEu"'`(?apˌ,/Zeo1S7a3tx^?emwIVز_Ju{~[X_PM 5U7!ʰ= Q}M D5U YӽM2kj]߮~yEoniҳXj~_({cm go%ᆬX[kcm}>v[۪i-ǿ6GGmf' dz}ni-=ǿ?XkcvRҐZ RҐZ P,% iΚ!ӝ5KICbΚ!ԝ5KICtn;k 1abP$a+alaݡhUjDF c@Βa}U݆UuX~iouUh=8+¶H7`eEN,)UVe37`Y<Yg|1ŷ`,[+" Ɛp1,tD|:(0b ALyD؈1 ;!$p_qPuؒO /'*/=աGC[ZڎTw0\g\iO 5MKa]eF+>fz2C:ԨatU^_RQ|o|Zfϼ#S%|a;U°QB#9ΨeTSS.Y-8P:UJ{ Źۇt̠+w` ȃ\?ԕCVT v"d;r2H97H9$DJAt(¢fwE r4BEMzT٢E/5|xabU?fcFlFJ6|1|6C=v[*c^U—3/.dT :Ua|a J4G[h>=ൿ#jV n úЍ-4+khWv,iG vlD|BLH݅YHWԙM}5H]W>)p{˸?w3%*mDS\K}庌j>. .Iִ.fJ4d3_|6+2+WD#G(Gf)g"5A<58[q3_1ʍWn1_%O6'֓ ɆdúaҊ3BӚ'=D*lti P$*HCoU?"m~jtH,epDMlcd.H:$6MHmBHH$g6ɂęD.FXAm(hM\7$E |D4!I N^ b ρHb|+߆uz 72QD|e,Hᑲ;^gOS;TsV| aɨCjp\a.5a{` +CgeUV ߃NAl0ZF"*@ճ 2~:"^u:E8>댊p|xIPൿEj0] ԢwzTn i7tI&ԆBa_׍:~]9ګE bG@XQ4 2WCk.ˇ":uv r+_=҃hNkdeuykq֏ ݰ\3, ]kħpOsUisU1{7} }%&V; ?@qLpwX4揇@͏"kDaJu1ja{+vHM]*S .jp Tn\jmC"7l [;nX/רl(*[(C5P EUW=j={'({ f$摌'ҿ׬KQ9P}@uʁ39d5%8jq1.Ǔ I$=@O2Н -{Dj##a I$üa~: OmR~jsc8l*1'aoS[#?Ey=59-~jX"z'^9~j$?O2 _gԿimv@ѯHkZD8ѯ}kB/g20$ x֑[^]zvvv۲f [ [K1s4|YgRhVl͆]T" V +h4l^ޛ/ ׸ Y{{oݸ+p@m+Iuš3( EqL(CgBQѼ{x\s~ƬhȌ 4}Y>vB,M:KCͬy3ѣysq(RX:)<)rE٬y3̙S5#a遝z`F~i-=qI&^6n4i.t0K:づv>R"=UsV ڣXh8aHȍA$t >RՔ:2fYܾ$[O$[|v v> 1R5{Iu _5zKuk#խ[ ' I$|a WC;tvўtGfg3v=ɰdXO2;Tl|bxj|dd>M/?M/?M/M/ov@HFnhV$D#"!OE6>a遝z`-_:ή0f;ғԎC(G ʼ  otSO$ uO@ DPC}{ju׶>]ۆptmC}ml (C`H=f# g#ƥ ( (SFQhBFmf1j3}fN_]qa6=m;;tv@O =3\]V\DŽ)Z_\\kǥi:uX37Ckg8+/+qqˑ##G)Gg+R2hZa=}8q~58|ύ8}G@}_Άl%g,W6L#9ZAyLHcBTGev d5'ìW2@FsNxn5Br7w֫=ݪ GJm-7I9p}e[S|,JJ& wn9n鶸n+Y7u[V,$*BJrde *Eʼn3L=|T2qc?ǀ l))s2O#zj^;שfo'OC /EE[|o( =I]"d)NKvRYDR>Wc~K;Kd)ԞPxQa&X'1 4/t2T{:>zT-=z=WО@ Yf QO[Fn5l1cfzT-T[$|BNHһf,]Npz^3.'8OzgK%W3z|qb?S{|eBoSmRynd|&k6ndmۯʶq lImdg*ۖȻmܖb%rm,a'jl;Xi+ٶw1h+ٶv)] ۶.vc~</IQx}GГx}Ax}A8Q_Vv_Vv%_Vv%"Vv!Jr[Jn/-_zll16˷r"6.$r7I;$Q)=8I}~\Hcq CuH!:U^]u&E(uٱ(A04txJfүDuG{BR}7_,o=u,>Y }@=f駳o4"(EgDfF=#{0({0cJp|{~1ɟfL9=-aBX(! %"c1?xG!@,1VCf2[dA]<"VIdez2gě4sEIc7'ݲO; =-#c̃5kf,r[5{{dğژO1S# t%qT(?L 1zz 1hTT3+7!ox}˾G)c(Ş.{s{fdy Y}{ djԖY{g{d3i-c>i,}dM`M`yqr^[DuXd_ ciۂI4Jmoe }(Ah:|)']dQ4EQė"L\|yGkYX10K @cF6Su B)<$dћJJ?)/=b*9(b*(bڙã a2l|H-(Roidd@@Z+2alo3ۡ~(9sauls j@"daen'BaY<vX.1ÂO2 |'SҎ iԄ6Fx;ncZtpnL4}3=5ԽvOMH;JIOz>5%8Z+==Vrx[m%+2M}?5aH5'C9Zս_͞Q=GVU֪Vj~5i{_pޯf_\hg2ࡴH4tm܎lW g%72 gx`遝7ug8 _Qs8G=s;z)!dDX5EDZ x$pZ;&Y)oWPZCbWXyas۰޹mX6,:vwGǥPP|\*CY5?CY=?5Q2rq}smՏC;l~\ -q}C{>~\AGc}}X:$za+`遝z`_l5M>SQ)3E}o\58G}/E<:;\-w-%G'rpwT>ѣhފVTݿ9volQ:H>V>n0fe7wcnI{=ОdhO2'ڝ -G-jUU[z{lu$C?dE 鍧6dL3d1#i-pǃK|p׍T"Ybh;;c" 3:Ȍ-[DIe@ |LC3]Rr ݸ0d/6 _;l";0w8;~p 1pc5-p9qwֹ9tn:lEWCU0lO6;C{HO9UUUU[zo3V`}a=ɰd;~Uo. g:K>0#`tmN@+7xaF恰w$I}Dyk-`9Ö/ÖaK`w ѽHto[DfvfϛʙT#!нy5c1;zL{j-Sntmjͭ1/cj%cj5cj-cjǠ15JZpr+ }]zna)W.3f_97;ߕR~ ;Z7lpHpHp甧/qzL˜][3ѵdYr2̒a \ihGT]({TfȷHvHCakNYs2̚',~S/$A:*nǃӌV;|<#X!`CM+l3H`t kєOkє̋l}j^l}j^צl}j[tq{˸?N:HPwQP4FsՈKcde.u41sτJVD5+Qȑ"ʑ#E+G8Gj~Wf4fwfg>Ξ}#8)8|a>ٰlXO6'֝ +3hEce=Z|yј9,?O2 |'L*ɾ-\ZȞ# @*rlD%lDF= a*DA(Nipck[w,MÇun]?$ x$ Z$ X,x|BOH`NDy;[S涿ڔVTmJg+rŭ)"\PDy+Z9Psrq:v0Yˑuckc83l(1Hr" ;*^=ë^FQR7‹qʹ)"V8A)"V8A)"va[4xL[bEPt5"m]O?ܷЯ'fӧ^q '%/ gz phE> U_D.f;)Ƙw`@> KƔrx cJƔ)=SeLk {War2oV`\>HJqql$ $0O!0`_H&D鬤kpqc}Kodڧx$+Ȃ[{119xp7c+&r6 i1l`L3v$"WHEWfcc.kybWkƭ-Y(^x|жA6!!>`[˰?づvƧ!YiA8> >qf}nS {JXB,;JrDf~+9=omg3`v㰣M}cM}1}LTG_M*97ܤv&=ՍFOuSnnnnnnnzY ɆdúAjj7jVD]`\ Zfkݵ@mrDKkc@EHX/8IGqX-ذyp  ˇjA.D$IqE&`WwۑmGJfn5GƬd?O6 d##}? //~Wx$m[.ݸbǮB"c;BM]'1x3cs %UKNZr:ԒӡurzJKr?%P\O֚Y[f9u\5].g\ؾm7ؐ{wTԡSRHJmtv(LB|®3l2l/, 3tv;A;HqNqy6Ǯ/ףВ9JѲߣgǸW($w($wx08,`&H+3* 3*$K99iu%'=m>m>m>m>m>mmm>m>m>mme֓ Ɇdúae:^6 {٬k\ Z"XX pQIP/W@@ |`dGQhX&"(|2rRAd I3Hn.Cb̼jaEQUK8Q XhZ"߽o-" ч ڶ* -d"HԒe"QK&EKO "%MOÙ: NÙ:jp 4 aHhi3AKr3{V#3/b=-u쁯k]HpopVA{~) pQɯ^ɯ_w!$\B H$ޯC~~~ EZgjS2¢TY1UT"S~,^L3>L 82 [ x1<Ők<O4Ɠ/8z $lHɋ0Z c%H+AZ)݇}™O8s g>}'90ǎ8 sgqS{o&딟^^dG͞;mv‡]cN޴M}*j_Վ9D9>xܴޛIBd?._K"2"ƭt;B$Ds/DXyZD EDA]S;a\ʰb驑c FDJPq~<#]/мfo7+"G꛿Ј7go$^_Iğ ?w}lS=B$٫}y02˘c/c}YT"aͰe5+y03~0aYJz z f*YCsjg 4PǗ\CuV*PeU*?׏c댞[ 1l4Z٢i5^8C뛼pohO^a~F F7{wMG7sSz>܇}OCsih> ٧msV2<D}`}i18-bx>`=N{q }*-o-= )38e2#ESfZ)31?)3.ys:&}Ngљ|tvPaZ~S{o8}gukfY>}/^a œ}ZgߛF M2I8^MwCl%\oI)+$"T?ۚVm$‰(.\ş{;YoR.` zMPh~of0|~E` `ؤ-??~qW ,-j>-aڧOK@YjS,j5)gZ3|E>JdxUMBW$$u4ޛ(meg}%k9񁗛tM4MVf)lePhi$ g#>R>DjB127oEyf(s۬u}nmV >w~?sgi+\>U跴~COq'뼋|huEX>4:"yŁS)f`zX~߶ r0K4QX7jjzc ?~ܮc}`&-b!ﰽbd:V#ñWLk PM5Ex|ߖ-eܷa  uZw1ÌYa0c8jLlr MhPf35ЌMCh& 4uPVs q,?p,?p,?p[B.p@%IDEPDAH.UkF$kF$  /"$H_)2'Cs oqzey앒 0-Kwأe}- Dc|< $0)ah/\Y/].pI ]%p G;1˂B 0@:!WHe"~%*TIǁmC }VhZg>+4 G@8<2|p׃nb=l \^/jDުeS>il~VM3$`-{dEw`ݯºzګN{Ui)OqSZo:);w6ɮCGbv0|h՞aY}QdUy7Uy7Uy7UzdFn'~簬HucGܫ |\[Wkmp}YcZz[KKZګO{i~xUx׬65w^z߶M}}5w]|׬5kAYgG]F׬15kw~=ҍg,<O?<~x~^~x}uO?>~h$Bсg.\Vte#%co]2Ir$\|& ߌa1rNT^e3 fk9?1y--R. E3KܶA]7d.?U#ը S#DQvQ /w= Ŏ($;\:)v\^MdFM/${ι?r-,XQᇶB p0:[a&EeUCeY1T&CeĬρAgڮh~H [:Bp67HB9f xJ.>mh6L(QܷL|Y0}bL!3}0F71t !w=o+˻[eg`P%Z@:yŌ` .\\R}\rAnPM\r>r-wDŷ ߁֑%ճB@ĪQ!&uW|>rGȝ\/(|jy}lg+o{gk=]py'ԧJO**zy]6q_*1>Ub|ĸ~gXN f{l `Əi 1~L{[xdH߷H'6~s~ĮŮtD3P7@19r}OCh=a,A?Rʹ~hBSr~l!C[~9 -[[q~@ex-ƻh!VXQFCmߣ<[4(.\(V[^Ŗ`'w8x]l)[Dnq*0^R=?y۟/e|"_Vox?[˶2˶2`d'\P"Rtd$cTa s}1$ ;" &Y-Q#*1zWabUӼ ;\ ji[ i'Wu$v3qy)en\~zTf;C}J<ļ-袤8^vA<5d"[ڌ]n͘~!z;2cj;2ob0'yI2.os}[?Ϗ2R)W]aMmLь,ErrtBY6^mÄ0Wdê7FYmYCuVPնy>$XU~BO3h;x^יkꇚ5n-GojDq31DaLpM㺱z ҋI܌Ot3:>9zsLc42?F#\Qf]}rFFɯ{-X"I`0Gi%dL ba51@=`u3fäQA$T @XmnTPOiO:?!POKx<o(.e?')ߟƹ1!n xӇ4X.sj-a<Er /]̽vQ ^5jf`H U5 /CBxDM^ 7ЃRq=(LWCX3b[%Wy%f)g"d>TT auS=8nGA8S9_A(#nuK'z蟠mAG4 0GŹ⺭Aa(>za 2H:nF?nfi#KT#7DnCFAӴ{fV]nݸzPV{\ kDS}& R>s=^ەլFւ֜1ԮvPCT"3,Ovb]֭;L֝ f 4CtO,?DyS\Va}>'ܥm0s̅5ލŻ mO\t{0Fz%nWb.;CZDSl>|+qcF 9aŢA9aɢՅ`ѰՅ`ѰՅd†Rh`p߇ݟ(SGc(Mf(AIv4vJ\pN-pG#dMC–0hdqhxbhDr%<ȣa%K +aXhX łGK8.aͣQl<(6lI|O`?x [nX [FJ2QU–%˕^ z ndMC–hڠ|%.WbvzS? Yh\$0cɳfJi\s\ɹ}rn@z}7xGz[Ha܊*bAXW  X,(1F~se 1j>mb[l<2ï|>jC#ǠaFКnFjn*2JM(0.D2WA̸=LݞOĆ,S3rL{#aRҿ trHd=C9(g%!$a>Ro!hq.*e+(Xw@r̓d2C!,u]C!ɡP7aY!ݳBGȼ~-V>ՌI~q5UۚYۚ]֌R-绂Osk>ͭmߖ =V{w[._.y÷bXeh Y=E>~CC쇑|=\ȝFOhA?r1FAYAgF1x/h8x/tQ1",UA'o?" 5酿r]P'ؕxC][ b$qIt Gu/Kmh,ԆÑ Jx{݅?݅?݅?x_+^ugf0^0f2&2AzØ+ \)M]x=Ji>ʘk#b:c*U$^\N熌Aϋ%b?mz2v.ӹgO2eӹLֳsIlT*ݯ"*rmXơ?GNo: mcЬ-sT;Gs\иrKRzsDKR/ImZ.Z߆m(.<Ď!y]jQ?j];+@eYL;+iQ ;>bGz%'ZׅOZ?TZ74PNm_DK<|wƌOc6>m܍mwv׀X%t .6Dnh߉г_ςWA \]+ rwAzj6֯⬽0h KQ]F6rUjBDvd4SC.w0h&Ӡ [6l#w~䮷\\\>42 o0*f(pɪ[>G/\µ~̙VM'{&|(!]'!]'?a /) NhxHwF q'?36zqe11%cҴWY3I z|df!ԅl R⇸hTE1JC\+(P t/ꐹeG+[&Q9 mV%Kd? cL#\{U2#\2H\z ÅwDžoܟJw^7qoEt[ ?awD1(?;HwD!"##tn)v6۴6mμ aaP84{d\f,# oY[jYXK# jEJܯxD:'P3tu P7 $m$m`$m ^6t128MðKA3j:L6PT̿OS1>uNeyr%Wb?\/Gw^`nB+^d Ys̢A#k+q9+^]ze׫KzuM."*'.Wz%^ԫz95H>$lPjy˩)Urr@`zXb \mwn/:.Q^9t&n!h.ĝUΘfuX4۬fpl1rW:fU^VWw ߟ5X&X&w.D2œlD 'r dX$e8˧sdXIZO(ǚc籦a;11< !v~ĮX?bbR'UTWTQ!xJ%P"-Cdor)a J/ *GTzJEx|l@[q}.>\l}5>QwOŎWíu2 CO6,(Wի~Ķ;n]xz5?WszU\ːwŅɗr[/6͠ mD5^x շŶ[lX|[^M'CA갰aۓ'-gD[e?#֘gD[Xj׭Xj%!~S?5}jDԈ~F?Ha >:#N> }˒[i*Ko~HxߪMY}7gd5ЫdU\Uo2[Oq2cwMVIXLs_CFMQ{@( 3J*pGa逞 +C8RZ锾 H+GFόxf% VV%?_%[Jb+x9(@fW_E2~|AU6QO^UQO^W=x*>{W q?pR?B-~iPø8O͌'UfqT4^fZ/seUss EQwP Ľ$5\bǕPbCQ%%_P[ nqk[{~b+l_e*>lMlah dޟ^۟%?%?r J0.q<qR!* 㤄WFI $&>*j0pTD*_%R*G FTb|/%`vg$tULf-#{259RdJh)c!R+pSqG?ad.mC鰍ھa}6a öaA2*vJz?%} %_9WJQ~Vr~iz)WlF<\=Vۓaj=VI0v!O@I'f2m[>2؟=}D/%z(ۭDg3ZLmJ+ڛu8::G\/c=:CB"c{id&Cfo94,jy-=XY}Ґ۲vvlF_t0{xmqx};oc<_mmQ/a݌O6>=l BaW I1Ahx7HAC Cercd1M~15n#My}åȓK֘0̬>V:*V$! QL6fb xB k/ 3{LeWbu`*c:cX t \sRHz+`p3Rj,Β_:;;K~lcR;wT7/7/7 !ECECLkWf1Ǻ\1HU83G=Ak1dKΚ7F.y_$HB:˕^ΧyCM0coSx׉1pwgP ^+.WYL^7GbҜh8#/.Kb+#31dzqA4b^_ǕJ!I~1 \F$0}H/GPPC&ڹtL'Wq% wn\+V>E]JܮĸG{B.聎 \|-zc#'Pe?,mGV}K||Z->i?c:Y11?I[5." c1 ZȑWxT ,׫I \![JCaj`  D$1d;qc!m=r \ꑻR끋g6sBtn 6Cm |O0$g=4!2HM-l>Q`rl[n}u3B6ـٰL,#77:3b@ΰ=@u[ɸ?:\Ceҍ;nܱ]p閟ߟh;uÄЍrfccMK~>i'$#dB$vjk췩9_/Sw5 zi'Qi]6 JyB(ATS ] O5w5A ?CK1V>1(&膻8WI22 cݑQBswGF L;s I@?F\"f~d,b?!q܈F-a".qq qq qՍ8FC? _?A cnWnn۪Ie v'#pb@N4\#(~SC|Ú!(kl! L6%[8BWQ!e8-o7|I&_Gc$.]Z ܌!$vLvY UMt,&U.0 t

imҢϢ'7_ǕNHwݸ`҃.jST<땸]y<或0poxK~L-Y;a/7f+Ⱦ 2b>CHf;P$;GaY7.9YF;K 7dSjRm(X^.ʕԵ 'nW~%f0fM{GH;HP`4$XfU﫮:hglVd جȌYYY+`$Wv%'GVD ,iz,&Bl.Pb5 ~ŋȄ&tqMɗaiBΚ}->/ty%S>7!NlEunVޟtUCaz3,7:t0ZX+*bn ͲFŚak(y(V :4?, !#BFE-vź#KG-08UNsCdc\GyH s Up68*C}y.G |? ht6ـV@kIݑ1uqZBc]B/OZmg8p4؉g&`'S"V84iUM Z@@[OnC+׭n-uk [VʅtM=tF9=@1Ł}>'d&Bq!9>`|TS Ƨ |i[&\CBR 8\=M5aJi5aP|h hѪ] h7*ЪoV|OF M ϩzʅ[D4N@[uO|Oz т\ȌB֡$gLr \[ß=)ovT E!ErKwE]ea"ee#jbo5ީ\c5ީ\|Hv&le @~Hpb{+90/8hz2MO>ɰ3 ; HK v=0 2·<챑2uEF wY~q*eܗ=@` /{dG!7444גA24m$ƁGyb;vY;L]BzYKbŞYTG{֘v])[ۖ@J@b,N6̧a=Q 3$(H8]Ɠf{+jL@!xXFCԻLE114:Pq! ՞h0]{vMYzң)KSOz4eiƓ\.pOsCi~=P?4ꇦy"L ?6aPMtavS0݊ApoDFu&'.\zl', y=a.4c{C356=x1,tl€Oe]>[V ;-nxs5r;;ٲ}*A> lqOjjKf!-r`x惐q?dZk-Ǖx^H5@h >b+F`P 2,$b.kڧS ?j:S p6)Hzܦ477^'Wy%"5Р9N R R:iI5[] i׼)`<:s-cw`X`A`Xs +sFdO N&SmO cO5>W-T'ժr I5YdPp2W~'߀ҞPoT.Tߺߟ앟u[o-7PP.or|Oqυ앟 YnSh1&9Wq앟S>7ԥ#ԥCN"P?~*BTzWS] 3y6:`Uȫ=Y;#9rp0Gg5~Chl.2c+ :v]͡4L6u5cW׮ąii/ 2ZQ:`h%bWFkG(L$SFM!R r2HN4r.ר.)6Ce伆n^ogzC == o?_"e-z͔ l[kF-zs6֊ \ո\!5bF12k2Y(.e<ϥ bV|1FL.h@W &=ޚ}2&zU]KWvR/ \^JdJ4\dLNoer~+V&C25EK؄s9\S,NM{r=5Ԕw,yZ򜢠>Ʌ0 `ȍ'$^B'YʼnT`qTAh1dҪeD@'YqߚҴΗu4%BC!4mTp!p[P;5mVY/QNQ9Eu>?'ĸ[qVp' Dxqb2ed48], A +Nt[1^t CAh:,Si5oQSp?,@`;64']gw ̈́>bw žVA}>XϿl7с̮Ο2QK b2B+4t~d;$bж}C}Cشo%iٷ˟cҭ*`8UŦۥj/US;UV5[4/U:UϩjNVEL5 \.*KTDޅ? ;ά"iu] o v dI 뒭JXYKfJP#KԼES. US:B81l\8cX\3 B@asFy%^gbСMY&h% U4C+Ͼ_4%EAHZ)iev-_@-֤iqisv&y՟!Śyy%^gbzUa(Fh¶h"l.6DMj˨VqB8U-% ҒqIVkk/][{KWoyM? [H,Bx P]ï"n.'9Ux^/ټ4fS.2ԔCjd 2l94]tSS1Äp|H0PG0DGYMvr%Wb,k/1W;KUt0-V%oaC 鉹I=})\y̞?P]4Ls#( ύ$ $aI09mPHmPwqI|ROp>쇚`l*1uJ=gh&6 еPvJퟔܟTRhR[ߚc;oI}ޟt}i*G\g]N>͋(jǫ %0?(QhO'FMF%sn@bRy+LۉKyinBy`K[`Cꕗ>y?y C Ð5-/iAZ347-ݟÉ1+B$9t&D泻qryHu3zUX} ޅ5ǧ kjs/pC>Zf,cQ({*y"w8V1-&UL QiA4#/퇑v sƸ8V6 3.r&݊>!}~u^3?X\nj'b!rI™~.ɷOu'bܾH7jϗZ>rZp<QfDq|q݈ڃ2zNҝ֝d4}0mT"xėhmfhZgo[;"aZlK0(flP8ON 9߀!qɅ| j7ssͷy{yͼ]zS.*!5!,\ = L =ӠB{OM5C_$8]#DP2.5 d5i/f%xֹlܚKyi6YK4^r&{{ə%ԼLsiԼLyə C],N^Szǰgi)pZ"}ѺDRF$Ch2diH]If%Эx.si.͒ed 4Mij/MIKƩii]4SS^QA'?CW4E;#AqI2mNBNĶfJPO%h*pikrͧ{ /9%gx3 R Z ȉ ωdSNr.ȝ\SwsMIeK'9H4SS iT>r.H>r.}\3sQ#rDKqƯ3DS>r~gG/i`:kȧqٷi8m(@}[oӜi\,g\rNM#皺K39%9$}i>r!jܢ%j#WbR6GO0}[Iۦ|JR62R¾obY>,QNc4@k5ϯMȱQb#.ٸ5fҌCBf{ IKiCBҊsڐq=[}Ak_Peܗ-پe0HMSKq1C|AeV,L֊I[rK`7Pٺ5[f95/.>elil>Z<y4JA%A3w0TlsGIcHuu :+ƾ=&!u$*u+ɿJJ_̿d G,[Tvꗨ!I+KpVVqGQ+~VDO7}@**((do> su|(pQ6( .JCD?47z11?83*]\ ه̥Sh0 jKh2%|Ȥ 29&W x wk6 _8]"MhưSi!ng(!ny!Avf-/X=`s?zCMl{2P R  R zٻXoC/{/q0wj]-\򱣿?<+x_̓ĜA-`;L5 j]ӰXW"K3FT36 T+&ng ,| P 5k9 JO7QJiB2$ׄ\d_`O*9AN ս$ $zUD:iV(`' jCMZԄ,9 RT-,M0[Y3K5vf$j̦Iؙ&ڨBd{=iG;=\0H5Ba:OZƓI5L% k)[\}d+{J4H͘5q{cMvuӣmD(GocjH5~&r 3Av$)AH(C^z[e7^[8&ʼ<1oބ==)PkzF3&ϨDQE3~F]gT)~F&PJR8YJMbmkX)wm+btb%L~T[.|x҇!_%dS$?&&6/$Go?=yW‡՗>3딯uÁwXf8⨾*Q_ # F5(#gb=,=ӽAJ{<=hq4Oi8d#f)و%B"EZh:0aN+i^Pշ!@M0:'PVO.Sx R!,]8HyҍuˏICL2@ؔ}/7܀|j7+[͙hc1A i!bMCnS?D-1-G18ʈā4Riݪ,5iꇚ=a3MꞰ&uOL'lI Qmj6wD,|rn{!69Q?ȝ#L1T]J"`odjx4cfX>&+,? jՒ=x̪ T~Mm{¦іfb{V wO؊A 4l¦Q7 ѡ1x IJv]hŋ .4 %HfM" @Ca whF:MA⊒A0;0i0f_ #2?E0GJp"%Hؒzb|lI=2^\?VA j#Xm$qϡ2(\ ctU/!CޤC/?DޡfXp˺3,i8 KZT S3ͻ*BTPBXU*ิh m~Xd Cx)V=Z!RzxCXcH…)Om]iFw4N8n|m0Lt2Ht>Swc`SёRXJ9Ѧ']mafiKQ4%m4-FcWP JgmBК| *ؠBz *A٠BZ *-=mEh'9=]ےm,J`+y!Z<n[׈oX3jK/P8x͗bZ <QweL gQo=w7ЭQYK5p"nX)KZR7B&_hM?,\ o/kfݍԬE? 5G=k|wc`!h2NVX%ctJ3Tc /^ C10.6=Y+ICTlMH@wqZAjų!7G杍?5LdrM|p&k3\S*9 2yưzt6֣1وbh6I3O7xSp͘%Y볪0PaZU1Hhp?Ÿҹo.11tj+;9+{8+{8op?ĝb;U#[5?ej;s ;s lGY c;cikO7S\IT\YT\i(k]ժjVdðUm+U 3Vd& *o^ M2dnO-T@Um$AU4BeoTz[V]el!0UnZuWY$zyMɩLjU;PU;VV`[eo'/]pCt05[T&(Ա)$(ܭVwBR+JjE%)SZR֋Oa6| h> eƓ@Cy,f+11k:Bc ;eP稈^>0A%{L&XA[תNJȘ]6~WCMkקfAхI:&pgؤ hp'D{11D` цAӸE0 _}@ݠ[KwB5dOOYc<(&868OF_RMᎰ06D.MpP7adcoH z0bنЬKP7޿d& `'; O@ VkmEc@[v2@Fhթ;pgXކ/o`AD&tiT0+Mi? zcj ᇸXߖьq"Nc'8-ྱ[n!@(\d<Rs,xp?N~-O∟˧t.}~}n> ,aX߇i'=|qqDbZ`P~j%@-v}bp kޟ%TSm  BƁ"9Qxߦ`,p5ǘɮ i 4ۀ]scb1 AjBP8\D*፲\/\īgH::y;xY4cEԶF8q:Y~8Exd2' $u !vbp1N,W *!DnfwK~T, 9t[`mAjU?|ÝZZٹ'8c;Lppహ!!ND'kymYH-7 TDI va՞#\ɹ . K#XAa\Lpesx|9b#x\-o\+spp\_mu!p<(#^ \W*v@̴j nɴ̦e1=2k٘5L) a  icCZ0-W=֦-,AA"-$`me-%hA.E r9Q^6=iF 9b\8 ` qn ₯K(e&c݌11D TM;>rGz-WRP -Ї;d~21MadX?$ExM M M _ѐyP.~M hLxR/( ;?r[|ryvIv+Q!CN ~C*ҪtP6ߤXO]SL35A]SL045EGLp4hAdvw% \6rW`! nwR]Lvw9}e~1f°) )5\nw `tpkGJbhZiW VvPy"è[nNo9ruݥmwӷ]vwY:e8Χ]DwIS1{a]n݋Y1O1+39'0Ìc@b[SwobANVS:ʥo[-u@A(#6zG Q@ACȝ-?nmn}6m׭m^Lzۮl׽my-wQ.!!!!18m67js{:B'=AA (wMT܁}"/+%t2N;%eXٕeX6PXx EKaGg~(1Oa*dKR 냹smSu+יw3X&\LJurI4sE3AZD>?c mK ֆ.@@\|s四\Wx /?h'U-fT T ͘2h&zqPb3zqPAz2H%—';?r[.E\9xgna*S.Zhv@ MR],睥Yۆ D0 eh@m"-OBm$ԖLmNrԻ~UfAڜAڜՁڌT/Bd-vQ?b-)d B߭B Cքpʒ$߳IzB M'@dOIj)5FfARLg,]J;gL*3m>|>u~n2^\>LM6Kbs:Kb3Mp9K s9˞+RRw>mߍ۲R 8LY48VamleiY$@YXj=ap0(ZO ly5u[^pEQ4EV4CHw m'AYc(Ps ydϋYi:a%K *W^3fl.9$h|r6gMۜ5/wlsٓ"L}*rYBlg9vD۱W؎AЕ $'#(|=,3'3K|rϟ].C  w<]7nܚPPZ0aMo$c TA.OչھԖnS[Mm0osĹ\GxG:\[[[փoQ-}, Uu 1܎;;ʍ;N\id3,ٔK|T[nU3 pgqg}pۃOܱ.DB.YkU%*hy׳g5~ Oq'q+6?^Yj,_;^}CR5!"9hbT$a6BumokؐtuMMM!(!0!8!XcS?!2h$ƒxPNζf싗6,a8H`z<„EwKm.n8PU7(OPWἺ( ^k)l^x::0^s=b>b>bZ܇}||<{f8>^5յW xuyՠKqIA M d6 ^6L"1?tTD"˪ QȲB!Yhcl +zS_U8_T(=$ˠ$Au;tUm3۱PdRBQOw|I/wzItmq[mQ_Eҵ]ywww}ヤ[YCƮM %KL=86:n{p;N#l5@6am&AJj(ZyS ElkUS l`;صA5 I\P6 M5uuS:.zlh]LlɇuDܸ>'6˾ku]Zw.w9߾]O QN.#]z>V.V{Iw)^+*VTꭨSQ ئm;uڴMquv2ىPT]&eR]&ue]+ZE-j鶨"59sn{p;N\t A>([n<ژ xbcn{E'%'KO8g2k,8|p׍;ww"0|EmohlkjT$;*vvv"H|M5M5M5tTc=Q9\&|mҪI&X%qw]HU-*:OBΓ($< r:o|rBlΓ([tWrZ)qP.+Q!Fe)$ʭhΚmR_IM6iäQ70b H&I ތX+F#&шI`4taR w>ƍIՅI]1~PVTѪIPڦƦW;_`/XL Xbu%`ySS46T47T6Е>S:/.RMJ6)ۤ6~0wݸ;psX8\nz;/yv^ګ8TBBBB?MTh`{ٽsnƦ榚Xe(*鶨ۢRnJ=,pnpǃ;u U,hu],NX4յ޾]8|7MOuhOuhOuhguQWVR3%?ƣhc@)18SbqpLz2.>2.2Q&#ݞhۢQoF;,c<]7\PAcU#?gt!hHc5!7Sa=zڇuOa=ڛ/vި|FE勝7**_QQbu/v\<-*vDmgJT)Q-ΛrLZ2yd5\+$y:;"eXU03^%̞i1y:bt&(Daofv( x@EEhsfi"AN4 o+r^,+ Covz VW譸O/+e|ʕsn!jZi~w+2NsEi~(yiHd[W"թJJJz*gUN6E"^e~ڂW9SiQUNd&+9x@ U{[U{U{-'$ԻXj/0B|0Ȃ?HHMYIeX;HH U҄D5џP/Bv*d5*d"Lz>eM}T!BC2[HADQbM>M۫Ow<]7O eESYq"cM=q> 2U@x/!dEHl)&tSzEHcJSrLQ$䈙)=J ю  AGWADib:lmn?q-xچM'_YykklTo<6i^eMZ2^&$'Ȕt)&SMԛLi727Mi/4ݿTݿPSǿo}[ǿ^g>*-W =3vق!c:;kiW56\j.5  l_;[~gP󏣂dg$!j;# Uӯvsy+,y{nvF2pd y{(sޞ;ܱ֦U%B: qMO}. [j`9m췭sN ֭@(]+dޛ{oNޜOuoǝp^V\09 T\rh]kWq(*Ml)]o[S9lEٷN!TTT4nN7n7n.7n's|9?bTXCIŖyxPRP79 krKDF:Yqq"D; O$0}h;J8qV%B;짙׻-m7]ʦ [5M`ܚ ?:p p÷?|÷|{ۋ(}/Œh3!^3PXc,U%%) dFuuFRoǸm}oǵÔˋߎ;;OqQoljߎwQVY>\v[׼m]벵|eknkb˖[lrmn?qC=9|(AO.Jԓˇ%ˇ%ۇ%Ç{0jqOѿ6@G X̀J w\''UpAOBa5 ܢ|ZXrpnJ 87z1F'fE(JIQ> SrcXuS(m)͏Z_f*ߦ kT551Yj󣸶M?ĝ{NEC a^4{k( VKrUh]^V=em{ݶ~SV}>?ŵOqG~j<|w<|w|jjYm=uVVFWE3[tj췭sܶy:at|rzLJ?>\ᚏ׺|XaC y Kk/1Oz<"XmC}osU~Q0_`м`]aYMJҬ %mC}ن o46RF=6A1WsL9o@;MXj8oC}xp烻E--'!Jߋ0c/̽h Vk z`Ik].Zﲪ:neSV{ʪz~ʪz}ʪ6עP_m󶵯ݶtغ~LJ{h0*Lg~|8 бֳm_[}}Ͻ~ns;p}qWqW}pۉ"w=|ͷ}b`Z,NˊXmS?!m2CkEd[e" dGd0(EH#"I|lI|Ba$ Q30[>Sh L|^ |"BҼ^%30[>#30H);8N}WaaMGyAZtM">خX|G r b,*V2l-C/7a,S22DDj;޹>;јMYe>@t[ѿ@;xH+b OiilMdzLYڈJ3Ff2fi+d"҆WɌ VL!fM{w+$673B.@gyg} /ye>_e. ss*5> W{WĻ'*Q?Y r.%J,1W(X;ˉQpM#P4 R.JL1 sp= (LQ0ךH/;:Ҵ^%C"D.\O}$?CS2L4B5ע$%ܻ`-rR?;Yj+I^!jg @ Ӣg @Ԣg [^,f bOi,fQ/ RP[bg"V?{hEؙEbrU(-,&/%ςxPP 0"0H"mzFЋ%^WFײZ2C5 P/l?D $Me"Zx«ܥ«ܥh=yrw,X# &L?8̇ɺ`d0$5N, ˑFA$kIMS:r(΃)}hMIHhՁ\^sJBN}K\$b:(H&2$.O+h+hL$)hYZV:F_hYR$R\u@t@Zt@Zt֊tVtV ǂx|Itع|勤Bsc+Y[>9A; dvҎ2h+AY:E[|$ 7% "@!r(Bݘ'=]n ='y*, ba2&-c2&:˘SSC+~ʯ YTrQY9(U~i")IGNC 6cWdQZ@nY%d(j'.%TLѬzS`Omb [~(lQڥִ|=;9}siϯK{yI!Kb\$Uѡӑ=0 )EegL)/;dJx)AʏH[Cve;YN"2sDY,r8B&raAr~8@v65s\n4M2@e܃-] ^trp$Po0S,c!_M=@%‹5|+@\RrL5_=a^̖bDDü))> UH!aknvIzj0/LJ=,aɏK}XNQM9=Pv&6ky̯1 Gg؀}4o(֔d~)[8h93iQ< E$}mn!W(݃;6!WwpX/; xWgAͫ3_ a7oN:Ocw)Mxw6$GAyBnv^Y=,1\fF L(m(ymʴ-IHQ>;SڔɃ}vo*M禊Tee9Yv/p۰t$ԣjaSɝsɝSа$;s<H$tra}d ';pTxl<7U^J܀@1dCIdIdIdǪ I/Hb74oz78i02pmf?>-h<բ<բ<բբԽ=ףڰ4Lowִ5}VkZ\EM50Tsh\ܴ﫧*a-"^%7zy*[*aԫl*BЫlƪD|Dnb{Blr", 7W?q+~W|ȫ&z3W%, 6,;hRbE"^&NGN"qR/ן>KK" Wj/p W2(ۮp% VAmWs +l ]aS{(TXkݯ _qsw.[7~~c/*}yTYˣJėG1 Jf" iXd>DކLY:6sY'̜oFͮu7jۨx>.^Y x=b=b=b] m@w:pKWOӕ|t%.~.ĕ9H^}np<ʕuC )7H`4}kB_x&x<lz|T^+${Ey`"C Q߁ǦsSE൩vL.x|Nc2lN.6dJ$='&E:^|z #C,P Q-| =lLq8lmfK7o6lZ=ifxN`$**}3*Q[?.LETTTqUTz:09Hk\cDd3gπg>e\ /lhyiZowt|rj6z"Z{EF\{EkdY!5Ek6 #y9B^;v3Uyac2no/M 2Lq\GDSf83|Ot\NcWH+ I9h38g B9 | BĭO!E (M *iJ`Ӕ"Ӕ8WWXSFgUrr@.e+7Hw#$⌻qȥDwƌVn^]!k]! Yar: ջƹLZbı'1@O]i)/]j)/]k)/]l\; UO(Dh *0 *0¥ 3ʚcuM1! =~\ߐ3P+x́0l:ڴkxE@WsGK M).n%Ȏ6 DB-1,ݰHE:BQZ|'( H` g gp{npǃ;u=ZnkV 9Bx"4w~$PݤŗzH/I$SE9D\/_fmn?q?4!x|LwbT.*" _A#%wJ"BD9NI R|R?R͉C.%=Rm]vurqeDZQ<`ү33s왯+=R }az4a<b Na1 ڼܐwM!4o oZ3L /ӴHM2-yM7\#ǖjZ]C7ypn]xP^ab!X@@Hݴu2:cʼ͛y[7{:Ò%ɣUŨxPĆxLJSbWle|v-7[0|K@F޴g&൙nj9o҅y0&kzB 0yg0_ FlbAV|\'2u"Q6L2`ePU;.OMX̿@,d 5Ż:y(Y@֯A~"},d ~_Y~ UvCey_C}"j,D4 Y~m |ÉyyyI!A/u}*1Gy1NA^;H!d(d| ptE "69M!%X2+%X,@~V7#jбli;fd"@jƤD,ǝq#jí|6'_ SY(OlYHdJq,d('AR>8;8$ }Jblܧ,f|pX}eowx{$ި+$Kb^$d)J&o$x<$VR5"-j$DZNH8iq WբCPllbe,2n,H`fl__6n4:.HpyM囊S% >Q~sqk+\G]Zv9@.ؤO['? dm|9_h)GޟutTRD+:_Nb~SH 5Kb$Kb$0[Lwc d*:d AntvF;Sl'ݶ/ 6}SDP'Jogu9 .4 nc^yy}b'UPk}U,ۂ3[Yg6Wl vb t3r$1ܕV,&60D cK FB`b0bX3 qO/r*(OS@zV=A]_t}zO0`[x \,uGb ^q^WUu (saQN)8 _ |EK|k|k|kj;WCy:fq`1_ tRbi [̵b4smA8E}G|97H,_ ˗s7%1_& (Cb\nb7ؼ*L𐂔1KbH@4%~$$-)$hH!CD#+%KDw>ŞbbOQ9TrVۣt\wM˷pI*`)^Qp$s0 |WtKyAATG|TCu \7׺E{aZdT@5RYƇ+ XW Ƞ+4~SSyT}^շy'o NWk S Uf!e PP5P?F;x7QQ_ |藿Y3 ףзCoBnB\2O\]!cWHLDn!\$ ܚ?IX!Cbzʨ /|>)aiti|[Ӿ\ Ka*Ÿ\x|)L4 HӥUd#QZNH@H6et Fl$l !&q6D2!=,Hz`luoRVd:Vf훕6JHt`윸MRn6mu"'"`+,>˴죿LK>˴lLc6˴lLs2Wdz!В8^ H1` NX"%w(0|"!w(toM<߽+|ݻVE=x|pׁn6u;Fu;=ݯktv )>CUV5ҭjCVkqLUbmhMSpi.Ȗ,<R5=E;fm f}Ǭ̶5+"j^ADsWy'DIT$utEORQ^Q!7n=H>&<=t.}/ 2\> :vTn';MvSe';a`!w[r_ S;-mi[qpw[qp%>B(4M04BM S,Wi\_i }}T6Q>洼5UmUujK܋Dk<#Y3ZCOTRm hKQa*D*Zb 4dLURL)R2UEK1dtJ9p]*嘪UQ5UT!3Uv54YdGQCNZg5JOQ]ͬ1̺n3wafֳ&d-=z+jQET4S%S%S%Y%xk㨐>Bhh_v5'Ksy{9蜍wtff:{9sòsXOݴ{ޫ^:>z3MͮAs9k5;;Sv)Zn>_DЅ4{\x$"2Fin@R Bn@u{:hTur("Zk$:|8iFÇCp5i+ꏢ(u(cL77,7'q_|KbADʒHzvP"j6"j%v($•HPK AZ |6~37VNbfJRLVʵ)>u+qR*[05򵸕Mfeؤθj-Ћ1U+)bch5:ElcJ8V$߿hcJPV q7Ba,E*(ݮ0ך\\_vK3֛AEh[d7l"(kxrTxrTxrT0aZ d;)xA!.fZWduF&D#}>hXRܯ6hv<]nvp g/m̹ßPG_g#W󧜻9s?s?s?ǹ8p{}pۃq>?b<b<b<bb<b<b<b<bbbb>b>b>b^B}4=ޛ6sft) =avbml?a5uy~{eyO0WMb WM@QM0QMȑ QM"(Q QkυA8R5 S+ЄHVpOpO&xbIp_䉡&i|}'vJm}'Ƨ;lX!O9!D3AC[g2 5d ߩS.Y_T r]L-s`+1i,z_YƗZ*$`Tsɨ4xEAYƃzdJwq JP Z H' KiI}~ΟӉUI+,HZf}W"fߕHw RN> wXpCY*`<`xV#1{1ā:@9cbRK'-Fqݖ"`*&O**Y~jI@ K2UPvkW8 qIy8 dDv7[{A^`oz<2 !hǭ G[2\ʨ*oeWe"@5dT}٨B$ĂwfqY`o{ox0oü}/t1}XWNڙIhW4hG֒5kǚډcMZX'^ğAî֓;'wX&w\|c Ɓۦ}SE౩"4U0[ OĿ@{쉤{WZ!"*^=DVCIy28QBjPZ$nə r!ntxj29k@TʧHDBն%ƢBu9פO(o).hݯYheدYheدYhmkZpx pfrY)ݎ-Amںu?("jo>_ixЮvHP'K%+6:O _72×LLL4z oagagag9`g,;n,;`&`b1!2}4\_0Js۟ކvm2l1S>:S\%sV%sпB+bwEw=BtT #g=BtV&s~NyzO8O] gw%ߕp6+T}n3X3X {{+^8<.w$aJ6uݸG=M]7gmqqm, _ X+ }{r{+g׭45ey"Ė2BJo .>C \tmN#kF&:ub3>uu15#PG]LD]RO ui.ɻ u̷KgM6}O~ÀnX4`]tԊԊԊԊԊuՊԊu׊ݵb|wY+Ԋ=b|w]+Ԋb?++s:p ?W_t:~U`p~GuqWϺ8nNs~\o80Ӂ>ov՞P @cG 5̀@!3 Ccd6b 1^1[ ~ $ CTe ťD=dw[F>önK)2dw[J!qq=dzmn?qWX܇o}o;6L#2\G q2ί1JF5h;mk $0Jev]0`ci`ciԐuiA7Ҩw<],Z(xx/N䴕跫Ƹ]5zݪwP=YnYw<]uO ҁtz8O:=dGEI'FlOHHrNj=!>˞dWӓd;=aWZIs+gv3%L*MoS: .]$k։'5J;U^:-~谕iC-N:l9[J6~bC'?2e mܲ nYC[n4H/nFm?F E#[ꢑ-Cu).u#եmdڦ{ad^5exh\ˠW |qϹUkUZnrKݽD &7k - "@wm̎qu+w2 b6.ѝٿ]oaY㑔 zI$5 lBz'!Nx;+$+$ A@9eK9exkdbrI9\,F{|Au^wz~7q}q}q}qXd.}·|Γ/|ks,s⬢;ADk޼_kp6~ZSY.5BK .#_j0K f](.9}n{p;BYw}M't_sJ"œZ+a>4OO]+w|ߕ7?|7|"?!́IDe!&Zꡛ@oBz8Wpc캃d< Yܤ#8akamm3`j'PֳUַ,Eέg)rm= ={vr4<ؿZDXIV+xע,]`1v$1w$v |ΠbU>@A:u . c#o!2|w>|wԋ`UsܮQnUt^q*7n{p;WvCf:.cz9ep^>Y]_J7n7n*7n'n׿MM'_7dM;e§M;e§M;e§ z&=[ބWp{ȺAdYs);&NX흰V&I F ;" p=  ECaE# )JOȺfyHvo)HcJv8ScPy d 2h 2PC8G@0!#t%g}Ma.`X*`*h*p*u8bHv ǫp שP 3n3 ܦ8;T8T2M>Ɔ ia{LP=YZ&HnR@HAx.U\eaEQ4ET$sD'J7XX$E2sET=6ET=7ETL蕰0" ϐ @R6 I5؆׆a}_llͨoETJSg@-u>@!pJxoJnf@,Ppu=G]/׉uTɜRXɜRX2S:j]7 X X);+jAtվ)uPT j`fS_8#OTIFY*DF #:'0s2+:'%¤xrPnZ(xID+e~A7Hl*ZoUsj܉Wj~Pp 0:Qu:᪓:U!^iC䅒Nuw!şBU!j|^xYAˮ2j0zJă TڑbqKWŴr#ԖfzL-͔.T!6!YI8vbH,W [eP^aBBlMs% }eM3,94v/~*)$H׆WI6r`Jdk6-BiZ:^bCl/ Z$ !^Y@,"KLVbѰ!vA2 ׉WA}7;b0Dv K%xEf<.^0vz!aI!;VvH;"uAMx1lRJ lR$ċf/JMx1lU$ʋN$\p"ᢄ Ua~83/z" b8+*UH@X@l0 B,60W/N~%K+r: bV9+0wA8,{ ;"ZX"io'cڧi{i|i|ii<o'K?H|IN+_סwq;ZQw8NNJ@פg䥾@>C 㓚\s'Ĥ!2xg/;aDaDa3".`wՁ`EiO%e$ %$ % H$J.XiITeK mmab-@ZmkV8y|Y$0 ^X$ֿ݀@[Z|qũ^/n}5kYzӂC,l~]0`` P >6FgUve϶jFĶjFvjFDD(FDyE8v}+=Gs9@9%>N@NR Euz-SoQ_C:UmFQ??ʋ?"0a dQ@ 2SD"O@9\!HV+$+$ A@ Wz-KY=.vZ([rS8^2UQq}Q =i~pѓ{CϝφZ+1fnwS[>SGO]NlBd|۵`JRZ0vo)v-\М%ݜD.\=$sm#!_'VVwpP_/ņQցĝ+%xt\)-xt\اD/H\, H]]ʒQWi}['+V%7xq̀-2b\oP]Փ7nC8K[ e.gL!k ^\t#'RH ~"5HDj_V9?W|GaN'[o?P@ Ŷ"d`3[\(:&lq1CD$LMذDI0F¨>P`G 5p8ix~z~McUAb* ; .n$PK{+0WˣJ LY%$NU%$PU%$X^%zxx{z=/Ak|O{zo!3 z-dJ[Lh ؟-dC谎J7]K7f%ͲY X222` 0΍vR;8Wζn*I=glvH^|؎=n@^NJN+j~lU~EܩOwEƶK.ðQ"xSW!28(9ۜ%$FD//u|EN dy[dx`j ^cك[,{p2H ż(Z"JDq K:"ZOqQ"Ў džv\B86ˬ#z6k1Lol V{#޲Y9 X)Rr?'`%2J9c6OmqlWU~5||}viKhvs.qN%2iDƹlʭVo޶o=Ja?Kgϐ^3m!7f>Cyʹ}P>Cr\Kw(ϒCޠq d qU2g ݬCxJ@B 95J֥n1yv` 'A f @gqx"9܊nPF&B`|4T#u s>{>m{=m{e/>PNJf ll^f l^^7l {$b.9n2dẋ̺Ɍ&3AF6ݣddRp&3MfYٜMJ !4XztYxh4d88!=Bz ^ePiwE7&wrb-QozvF7=|+qpTuc,X$;4plmSEn^̰I]lZ>T/Tcz%Te>?^/"zEٗDٗD ٗ Ab8x8rc/ABV1U~P̋#o8˃[`\,QQ i'r۴oaWuX ei(pdDEe@ _TSL 'e]׿@6~8#"$=#E~p†PLPUݰc5ÎwM; 8Mgk?q}1^{=fdӧ/:qӑ_-YtKe>dQS*G>@u GS+@9lLHJ"TN{%*ՒvʑW ?:p:Py:`9:pyêztSo8 #urQq70'!By̑r$H$ddH%M_ 3>doH3.#镔uuLH@Z<nɠ ='42;NJs`+α+} y}aw`a=ׯz_,p[h>֭p؞o^n^vzu\<7U^*$01 +ЄiQɝ9Bu2 x, 3+=z(TPkSP6r>n{79ny;oy U*oI<)!;C,[,CY.,$gp =Ŀ+陃 6QMvaq؄s4>wp຃o<6U*b/S%-Yr#۝R'nN%;:dL3AfI|` k!K\z;/yayrb&/ૼ6\(/߆ %m]B1+sヤzRHrkW\'2ຒ w%$SÝ|z R]=Qp; xmܾM[TeSzu:yk6o+:N<Džz 8y}/+;SHiJC``OcĎXv{},H8>q{}5ky`>A 1aUb!{ؐaCFfTeCDs .(])LG10ǥFGsD3LApfƴV b;:6'IrZ${j~$%I쿧'IZҟ$|~'OX)e"'r!rUFy%QN64.!ցfJMUGX x48dӭ{jz}$+'`+j:;1ojHPsQL(4;JW` "7ov ,ۀc 3uҩZNբs˙e T-L}ٞ;-![luVsZ~xwۋPՑK‚RC_*ATŦfoY i#MȮyY65o2FM۰S"1M(1Η k %(? H5Z( P@DwI<}0??|u1o7}{@L}؁:/5BH, !f)2ŧ={ f|O"={fǾ ޹=N_ٱn `rm+;vuN뺬wf˚},kIv=oi!w;4;4;N>5Nבa)=S ?tlie x=iūS9]A_CV9% -`j% ֬$hzTGy"nMA6C`;C`E@JhZ-w %Z}iԏ .R,bE B>1&hĘ 1A3311?HH|+R"+Ry@-U۵|uv$?%77 iֆUl.nH6 iF!H{.nH6Ў >@+v@@rZ>يG6|6@(xV&R$2-[QYZBC*.g[ f{vls$Hrh3՗PJgO+jO+jшzd:\=;Bw7"Wes$ӴV^9:: z:^H/|gw+%t_s9uNs4nG< qϺbx!Fa]HY<.[z yc]*$<?v҉SNdT=ֲ 3y64>x-;+lZv~gP~:[LMZq&mU\+:ك\<9.`;N\. XzPlDZus>_t3f7sJ͜R~3T '*{}J=|J#|>|J).TeMKH "$:2QdҐ"w5$CȬ!BEf *2qHgP}*TLQLPzP?Z9 XV(`M5☯52_#52_1۔7Tn l l l x@LdC=9D/!$zC0?0?>̏Gd~DGd~<̣yi=ϊ:V=Og-,ͷxB8ѝj2KŻv&Mf"`Q_%_ݎ+!HfdK""lIX$- :j:+%)Ao ΊFsN4=O>96,Y)XDFpL8!n0y䒥yY<x? p= eSOZv'-Д]bhb|<|W*O+U/k:)J8pő+x$6ֳ,C Zy_`˛.],׮:ZY\B+tp;WUw39g|K3/V%?v ]J#̯ 0uV@LW“ \OXr2R(l%ݕKƌruZYPhuZYPhuZYtPh봲hX2?[c]3疤)OW/m4> ѬFCKͺOB}'l{|oo!~ˤC x{qeޞfَrZޓ82QZuvZr5>dVJxx+6&,<{awz0|)`X{On0XE컪a#`>lbd$J6У'4s\رȐmuFN`p$?&z,B %\)L)ΔjR?S OC{)gJ/2p)ϔ̝9 r r 4fo:dzcbB玉zbb'&f*Ą[A}ԗH}ԗA}~P_#5R_#"jH|Sԩ5߁ 6D5F2Os)`i5{\Н:dW}_fW}r٥Yu٥Yu٥YuKeGPZ@Jkڷvq>Jk*غDLg.%!ɸ` DR-M rW{ %=؄8 ;>)Spb9hA@ޟ@ޟ@X =<hrs)>.\Kw,m@<ܱ莥 K͙eqƕ. $N* $j3SgNnϜv)QlϜjm.%jw((U U1 Xb s%#0S(aw 3>~4d %X|@,ai s,shUK]y\g%Yo/$|G;(+s Jfq`A9M$sW3 D+]&iJHB6ErGð+wG sWmjYwog)w];dOV%깢b=W@B=%Jǖ-Z%Z_̯̯z_?jE#N7i]Xuua՝ӫօUwNJc9*XwNɺHRմHRդd$J"cG%kJ:Q"^V)ZGi/[T)3i{[J&fnav0;.U/O;^Tٓwo. wiuKWijJSUnpx'-](ϕ#%3=|ao(in(Vxmx7^{^{?W>vG p-}y\QQ<~Eܥ{ zK3]Pz=QwPSg~Rx=\ í\аs;P :[uxC|Nx6NeӄQnMeak0B\'#C3A8u N]`8rX3XBw6wvuƻ[M^tn[Էo)PR@}K7MAA@@@i3uh%1J~cBeuR:w%R_"%R_A}H}ׇz,*UN٪UNɢ:/'mꜾ,srRIMښU4I[&5ikVI($wΙ|u(.ǢN]0vY@nne cv]ֺsĴO@ޟ@ޟ@X r,* z(wъ")0S`|O7P963XDND798cuސ-(*,[P4X ?/̗|̗|y/̗%2_"52_*HSuY벫fĆ{]Xcg{]Xcg{]Xfg{=m&ea; x-z$+-Inlt l(WL~O7CO#[֑-k.:KD׈!@ ݛ; uyaCb mr;#5w3Rs;#3RK(syAS"PO& E#E3X79gGwL '&u.spmj~P??_P>_ԯW~EW~ԳΪмk[]E!t@Yg:lYg|uV!#tX3|OSj%|--Ap({p=\qpŋ^dJzKp6ZgV^Ǖ޶-4"m[Fo۲|כoMo5r+HaT~(:EUYgj: EMgQ"7B`9a٬jyc:cY_!;eQھUvBk*$B$Y> \]_ӌnqw$\It\^l^wjyKR_z+ԝ\ Ĺz?:9M{]U}ѩ_`;5tHE&@[aEܹpCe#L>U7Uko`M-O7qΖ'ڛ8XOGho{kśw[5㕜+dsU\sqϭ8[>tnUs[˹裔Wn\B2+~.92s6U,9´ʒʱz]~rZO;/n_.T= 0kd_ll9bg 3;PbQȗSM>G37˼?ȩhޜn֋S> [ʩݰSp.0d0vMo. VJJ[)r+%2Tsp_RsZI8zrMWζB9{ ԫջ^eVNcsٜ' f^Or R=A!.^˚^l;dPo}ѼqyǰѼcxٹciqm; vW(Z^eu4H_VG.忱<ǔK.'_\%81ݿzhO5垽Iהk&ap(_SٛSnٛS.ٛSٛ$ץdlWSuT]i.q 9W i圉rNsPȰSW\`)iOt{:,|uXPa+B'_Yt)xcI򎓚8卓Z8wW:gGhZ 29h*c;_ݏv?)&rMAzy?^x[>߲u˰vR9 8-,xxh l?mJ_`SRڤ U&xT)rUa%"EwB-q5X?򙋿3m<#"+srΊl^bV9+><ڻ=#Sxi&YJ7~LIUݬ4v,=KJ0Ä-0lz 3L@@6΅@,/?A,/?A,'?A,'?A,'?A#?AN.urκSޠR9gIme='.mIm彈$@$=$w|Whlŭ[Esk.[g[uk.[g[wkbDxk.]g[ykbD}k{u-k ߂ Č Vn: -X6}9\Xg[uFk.[guF r\(aer!\{qH]l$uFMR$X}D?Q& cR{{mv%alEwm;vv[; ^;'sgɽ7Prޡ>Cq@D؉F+[fTnQA2eFaˌ b/3*1/ˌ70h2eF^f[fTnQA2bFCbˌO\ҝ?˝?i~0??_0>_̯Wd~EWd~]̯91^$3$YWN|ealY{X[?Q B $MRҕ-^o,"zl(6sef\ل>W6se`ݡNJ&~0BB0` 9 vuV3PB[ N'1>o̷[dE[d=wa l۫m< z ܱTd}uBH7,_ްi|0?>0O9lRΙejv,Tcl^,c *IFHBw#'J}=^6QRm(ud^7Jv)QKq]o^o}<C`p^`8^b %$ %yδ~~P??HH|n< A%77Jni#cbNUqk1QURH}I%K/)R_RH= r@=4{<̳p{N/ {N/p ̬'bў \hu{N/p Iڂn^_$N.\Ѵwj TS6 ]CG2/&vE_M횾T'"6|;VvATvy0''-?WeUY'wwU]PsU)%3>o{dG{d?nbD Č V1R1 Bz Cb#Ġc!1>)2Oy<}0Oχy)k?PGL]m|v'\+zO.lO]=ٝXg{9u[$ͩERٙҕdI'$P*YdžrjUL*6@-S PUj"JjUeJفnz@T7@= P E3X7 gbsTfTfTfT& N)7P&nL@!lq_>/̗|̗|yOuE|`FkdF|`F[dE[d=̷-2"-2qudy$XĂ/kPڌ,-:}֛eõ{Y t֛et^m*KEA,umC7HWq6(Qt|U7Z5P@)~[E&Fd# 7 KBoY&_p[_R4)#ѤlN"hihگjl֭` F n4z0ѨXBSs_ ݝ<SBdR>_ԯW~EWzHNe."thvhvhv@gRs@" =12AOL4;(GQTC"-uԷo9R_A}ԗH}ԗ#ޟ+]soUWYuU}lUWFXuU}lUWWeU}lxUW5 I֕AtUm~жmk?\õ*Yx$Yo$}x.#IW붶K"ZwǺEr5wY3jvY3jvY3jvY3jfdZu?{@iMnZ8Ӻ ӺbgȎ*07U`6U`6U`6U`{-yazayp`~P??P?ɺ9cL+R"+R_馾H}O={ tSA _͛8q/,<pX׀.> gw`B>{` $`EQerz@w@8;C g(8i9gy0QÈQXU|yRg}9:k K1;[ޡdC{?o^-(dV7 c%2#?2!J@'(d>ŀNPtK ,(d 7 AvPb#.(6bcy^7`8nAq\YPOǑqdA\5;QlG %e<6aZ p] xpa<(ŕϦ!X{ gۭK2Cu%E`I߹o_"{o_"{o_"{Ώtmפ?ҵOFT+k9-ߧugiٺ&ng{-rU /!5a׸mragȍk?C._\kijkx2B4u~8\aKaC*>{Xg\i#"2hڈȡŚ>;bMbMRM%h>(Xgɶ7B=d;lq Dq%\m(Ʋ 7X6Ʋ 8n,吓8Pr'Prޡ8X$_qH%8R ?}$<@2~,Ϣؒ@c ̳C-31ю:A g%! I1߈h60H r2 ,(]@]@!#@T/19Wt$\qޢWk>MqQqEgw\ٙq=P 1cfs}OQI%[oiwd!"zTfp^5! jzVm: :ퟹBg! 0 /RAPI%*9m0S+(`VP2!mpABEz\;IGwh'i/i`ClP0ۡ&v E;t(@~r;ܻw(P: r WtP ̡C/0$ytO)Xj ( YЭ4C U6Am!3_!B+ߙ[(]5[vP9"A>X*ce5'J!萢!  e RxHRq#l=3WFe]K=Sm$;|X!y\KW㉷!9~N΁~o7X*,E{`r,9L2^ q?,/],dK 9 ?lUa [D~0x= ?$N©Xb;Ɏw vE-79c\i۾KOS+R"-3,sH.D3U4 Z3|U=<$d6sȹ!mzYPH2$KlM/N=h^zжm?\u q,/IfH$| Ja1*c_< ȿ`yE1*lώ=<%qv6_`ӭIκ6 ` &08N&P(1l Z1,` LY@ؼbFA!pCYr]P_Ů\~U׼5 ]SiTʂ,DdQDyIj'M2˝$6Z;qAjvPC]O_\/AI,;qI MS48\ZlZ"J"JPed{mxN`qL l'#{@> l76"u$ĖlI@e۴N)ۦu@&ȃ[l P-u$^mI$[$)i}-i}-i}-~.y,.Ijz|%xpXE‚2(XPF޻= b 1s ]B9 hWynw0lظ^03T^\ /,\",s=\Grhɡ;~$H>t*n2 Cx{3.I Eؤ[ "l-C6ɖsͶi涁r'Prޡ侼C8Q^iCɝC}z`C6,\CJc8 bq}8Ftbq6mݰXg̻Z;N=;IF[-7jqm&_\OFAْÏ$-IZ~DO|9KOغMhP67BMܬ 5)mY ͪPvUL{V׈kxFE}DA*B"0;%h씠SLO 0=%h䔠*ޞ7UĊ awx(CA;<W}}}ء;3|b vGؙ̏1vfcg>#Z~kKg!,:#GE`." QKg#3r|cȌoūi$)$,Qs?A 5Qs?A 5p590}0 G$9_IDܻLAdkK4euLԬq ʚR郚R V9KEfX/`aݤ lwQ\ v^!yz` ??cˊ)PZBk X52||̷h5h-h=h#b> ב<;=Ő9D/!$z ![{dGGd~<̏=;Vww*jK-`n4#c""YYn]rNC`+sW{`j\q=8  "A DcNj`^s59xvk @c8C8؁x͹i ^} {ﺏk}k%u_+D!j5%T;jiz`ZMT ~ɭY BkZ,vw'V[ AČ V 7[c7n޸졛z覵iݴ?̏̏x̏#2?"#2O*j L|ϽQ* Q Q SMc}7$f覵imnZw7Mk3v ݴ6C7MkUb>hjGSbSbSbS۞6OzyNp69 PK4CH=7$zoH\ސ^!sd|ρ={~/̗%2_"%2_汿-#+\3+TVRضų`ZEWh,B+By'ڃo=mqm[~I2Cu%Uў"%=e&j\{wQhOu/'񺗉۳xYd,^w2q{"8jRtBIjŃ;QC`;!K8(pP±B )RK(CV>zS"P?0eY"'w@8G&NALɳ3gbL?.wn8~}P"+R"^DsnGԏ)P?R~@H+1ZO !C+XGNll.llnl7<"c>@+11cV!cEQ.fn`n)+\ L\Ar0rAVe~N;-Nb'v0f}i>b1vzN*ՀkCw7<`SoV~#]wFwFwFwS [nu VA)@P #0݅A0(t˜0]j l@rV˭ETvbOmS+X u~}P"+PO)PO^Dyn)E)E)))):}LYj{CJ9VcO9TCO9T*rA *F%ԨF%ԨĞSzj=5)4jT?hm飵Rlm)4+pX*RA= TK QebLb=A}G{GC}P?>P -v`ĂzcYi|>B!8Os} `[&3m8XĄ #Oe8^x3f~›7Wb9e',XN b,Ⱥ'_xCW OxxN[h:_T  oisFMIi&GYø,sa\90.rwv,qY`9Y;,'kY| ~ oFz7 o 4s+4sA ` \l`pkF,4lSm6kdGcdJoMnvo`B˟.@I[\䊻Naj晲 1cWS2^Εq0|8!$L@0Bdwpw#a7u8raa.^^1݆Qy@/<}J0xĽ.ذ/7κ"ͺ} 6ݦ4@,ԳjSZ4^ͦ¦ =6YYn}2]4d͈l=Ȱ(䎬-~ ]4i(tPGA@qD|?wpa6ZhdhuՍFV69ipF/big(TPCm(`у̶2j͈ld!{HI>_X_XK0ybԈBb  u(E1탌>~  .)6|GٶZ+z؆NɾjMW -itВjMUkZ-Zj%5w-s0ţ"VDfj2WːZL2drC5>PQEvAE>AEE@,^rJES/ڜ=hsJ3]mNڜ_r%5-=# ~JJJ J J Ja^yW¾>%)A(A(A%5% (\;|Pv8ǷY_@- a?O7 l(,,_]gtaB,e]PՈkt?9f;~=ܬs9z`:GW``m"'Gl#6VM13{r7 b!A h԰ moN :a67'YbzN\i(VD1S@1s@1K@1kl(aS}*PؽTvzZG-1E%@MƅlrJ/ YN5D~D'~bFAUTD\ T؊gIڞ%,)NS|W|֋^K(~6e`B TL$1LzMZ,"6&(txj>N-G0g%Ssf f i|֓zrݷ|Ѳ|a]c(fO{{/s^ռbx<rrX?yM:&l9%>bP[y=g[y=g[y=::dzf%:t`é+0VF)QQ313'iHqhm:6TZweqX "AbĒz'sGWu}.` =}.`w;zrX(Т=U r0-;ۋ Tͦgŀ>(hGOIP7QPD1_Gs)s={OV!'葢=cI$߻K>fqc}!C(2SPd[!!JY"?5=(jw}$jOJ#= =jK8ٕv歄[ 3O|{۪@ ^N `{%P`ig I;HL$׼Mqnz@z۪%nʇ97l VXD>KgcVƸƑFw;hv;hvR㼚cio;p6Мl54P Ť2!c '():(?#`|ISz}9{gp^g&$~Κ~,K:j`"tzS%xO =k"4C77ߜ|EP׳Un܃\J>g|W0_TQXKyFJ'ҟ(T$BM(2cn&]XeZ_jX28O xw6T 0멣&8O%-6m:6U `]dZ& vMtR ţno+)9%5Au?Ⱥd~0wlll٨ܣ{}}FNJ)G*#ǣlf7 (fDS^}y>щBBؤ&uM*=1kAZ; V V V VAK(f>cI.sM)mzW9lv8lv8lv!Vɾ&u&ݵMFk֖-;Z]4i,)Xr@c72[h?L' r uO$-ZE+~V6b\:ydtGA핹hTj m t:= < `mɣVQ+4g\Zu5tDAātTDAāTDAātUҐ)( kҐ(( jEAPN AȽZ4-=#Č%mܷ;s̵ݙ)-:=:!Eq(ё5JF5Qhj "?A o:A`6; #SalF`+3 %5~EW~EClai^QB=QEֲ DTAČ "H@%,G?RœErTf}q\ Y8+eB.L 3ԯs-z [/ob$0Wމ E(L\HFb6Kc"ImEv@UfiO;i$KĬ$+PHH,)h(h,(HFdAE6$ h,(HhMKޕ'[#t~r~p~P)^a0/>^xqTbx9[a2_qDǯ8/!䁯3L\Ӓ tĴdG 1*P*HGJ?iKg +AdI(]I$7Z2IL|-ui8>94cIΙK#3d;/)ڴ-"|LaAXPyCf:<~E1+J7˼2/k*U// d^zO+} h޾!QMZ/Z'?FF݆ͦdN7}B}om۹T@v f;WAB! ;# d``y`6`DIۛ lo *7WAgPl%(Sc;5N}bGtovGԏة1vjc=@HeՌN}/,ft{5`-S˜R Xԗ2cJFU2e0e^%N};I~]7_h0~q~ɁLQȥ!M{}\)R#XѾ!\OUv0r=U١+ vQ2+:OۂCzjc 3o`72y1KcL׎\u)0ukw&Z _ bbbbx;8Rrf &dM*=!7h_ H/S cN@82E?<<<<bg1vFĎ43>bbPCOp[/_ wC xQK `g `u,7Xs}>ޫ}oPM uߜw'M]@;Oj hY4w;Ϣy-W_`~}0>_3g" xb@L5Ab pEp9LlCu!1s{Cb #3Gg̗|̗|`|0_"%2_"aʍj4EWg-m/*YC?||-h%D!$ZCštWXah2[&Cshf`MMMM|W;sooP(k VSsK yb;su 1gBLt~|P?"#R?"~|P?>S"z ֢'H2+|׬(T%QggSEwL8#1{9BLL 113O4[O9;>)GHK(w>mI-)99im> r S$lo'gz;ʼnuȘc"c㎉97&roL<9Rs>H}ԗH}y/ԗ%R_"%R_e"d#u ϒkgόC.]m?C.n:]tn;IKo}$رԳCK@;F;?ZT/Ӂ5Kr.]$s%g7`Ζ.PkR_Z2"( xE_gq^Fvy(.Ox <ႅ0d Ks{@{e2g/JxVTi\qlnllll1h ܢESa M^4UޘV0U`644\U ܢp M E3X7Ɲճ>b}Nci1v;mFvG1vzc?i\( ٯP]S9q#:[9q#:UCvFvFvFvS}~0"5@P 74%}>f,: uBwgAX=E3XĖU-v);+vXiunZ];/L̯|K-[o)2Rd|K-[QBt{5ԫ- X*Cr[+Vb7uh%tZ ݴVB7J즵inZ+j覵zwӚZV?hjGSbSbSbS۞}b­*[1Ub lTASAhPzB=9D/!$zC0?0?>̏Gd~DGd~<\OZX5ҙ"Ȟ"Iwm"Iwm"Iwm"ɦi@=MS.MMB!ɼ,hgҙSYe9Z^Nl?\ K+ɂ HʪjR勬&UʸT)#_дEz7^*^Q:~\qd%{ʂaOv"m6?e9 "Eg9mrZ7a@6 lqrZ7a@~i/"NYNc"]TnNjX!0C!0 XBSqpP/ԗKDK<bE5` j jATrf1&:3uz5CL:j鎉A}E[EC}}P>Pk VO=#|k1X;E}~]H(7Q#cEGcDAb rӔ=;>D`T#0Fٍ0 nQ`Ff3bE3E3 d*[;#vGؙ̏1vVcg=jdg}cgY1v;#ɖN-oUd2HFo7x+FH9;#zgP|;tbFD ( JAȽOy]%v+I|®35 ⴳScOEB`Scդ70[詍vF}P"-R"}P?H}H}zsw}jc?FU#TcU6F쩱#=5Xr(ԠBOmP =AwOmޫQAGk;>Z[[[cs|3X*o~UcLcbkXbb;&VRRSjXzJ KԔ"""PX dڣ#RuVHfX[ ɌK+Y!q`q3+$3,tfUdҁά;ҙU*ĐU+n$5$iwB-WڳB-WڳBۯѺJ۵ۯ]Jٯ$7rN' 5vb% KI]6d bѢc [?(7ϸZ+(STح${ߧL ,*l%ܻ?M3I.-ȗx&` L@=#b> `yvFd^6j6Z6z6 l} b~Xa2@P lc{ }}ء;3|b0;#vfcgؙOHJZ;oVy\Ek rU7մv}s[~n&TkO`7T$IӨF$j,x+pgH~AJ@+{94>'](>O?P۪z|2R= 3۬6_ &cw° 'g)GlQNP J AČ VQ HG?m#7;2v)#m`^iHWF: A41WF2҆H`}0"-2"aWC0)#B=2#=2#2?"#2?"a~|0?>yzז[Pj,FKҌ` vv@ؑ1kGj q 9#;vn`+```Hp }zA,/+ %X{9,ْVϧFcbY4dI׶Slg`;;鶝Svvslg@$W!H$˞ `O[J-5O%-eQWGR:m\ %Cjv- *X{`u䀿חۇۇ[|oQ|VX;@ z|f.6__D$ &W0oQ#j~D͏GCCC#j~FϨh~OJpk36{௧_%Ī$V &z05IyĊS}Nw&{Ԅ"(mh]]]mMjkro57QSz5w\Sz5@췕tD0JIԔc5DM=&QS$jA5r|/ˇˇˇK|/QPet*e@C3\ʚ.Pe 4T!VBQK;Dl6g[jOGU nUtUևׇWT_QQ=;W.&wTQQ)>s V}NQ9ETSP}NA9ߪh;s D5| ٝ1Xw`yؼ"aB\  H(> @ Y1Sv)j `nzVl "-ovVlL;>l}NӢh;vvzm?VU Bff ,> Z`sqX;4~3o>ZҝC w 犟PPP_Q+~=_#6V##ZW\n&h& 6W/()ZS{uIA%ݪ/)z^ A%՗T_5]9$D=H*C_rhK M~)wOq^@&JiM_KM2o(q~R-Ia~RjzOJmS+CmmKmKmKmۖV8H.-K 0H.m=;)e%D&z 6mCC=GՏ~|~|~|~DՏU? $y?hh/gMY)>g$ƞv:iVϤ]N_eo,8ڳ]v.I]iWs]CEOҗ@|fV O[yFA^ikU#s]MsU\}jU+a҂񴇃UUv 1jm| Z,ڑ8L7عc;V-0[>`|r21? @X~/Oo;D۩%N-vj SKZvpNa;5NSvpFMHCw ҰAMv#Js$6( gϕ*{ Psp _ &+Ӑ_ԺWƞzp!_k=7Q%7Q?-~HlEb+\p ۋ`V5F/w{q}T+RH&Has,fYYfA͂4R HB ,/x-zmI8<%M@J9"GM@ZFڔ4%#4'A6OEnT${y*7/ >RtR WJa58+L]'RP,X#`t6? N#$LGё^uG 2$R"Aߠh,)"(d R&R$jRR$jR6RDLD g]3'ӯ.'?tfJBQ~+SIJB~+o[hJ(Z+ɩm>`cA HWhOhG#0~C_')Z+;A\pqKgeXX%K;)XtO{Ƃ.<| W=' m^DR򲖓βY:<0#SK=[}lpd#ЃLܯGL)xwwNhdy@C< HvPh$P;O(8|GI>#z $jA}a^$氪f9˄9ćdLME/Hkگ" 9$C" :9$C*C2ɤ1LypL<-hP>g9b 6'oڅmGJw T:/lK$9%@$@oj`ZRDmipIԐG'͖j T$ԐjbPbPbP%`CmI J$T[ϟ"z)Sc#x&AtjLw0+Fv v W%|)WǸr{(wΠOlx>+J#J# =6ٱn瑮>o/}phb7x[ࠃq¬gϽi1V# yFHGI%E?̊@&9"̹hGTR# (J ~$!eRI$+) Z#P:3mwė𜂢%"uigh8?u &!?4SLQ34?SL%dѥg)h~g5?vhZFZ : 9l^vؒl7,\m+9bʁb=] r}sԷ훣mmw7>̧ٙ5~0.&A 1GbE}Cp_{+G [a0W, slE[u1 d0 NL81 bbIvvQ.wi+aJ˕W_)h~W5RJQ}ByBy@=&AX% V ôU0m{j-Jajiô~W?ծծծծk.AGbF!v GW+GIL`#DI͏5?ǣ5?G|4?\'!ؚ/Q#]3u= |kFGatͅW(葮<5^ԳG'D]v>ZfYbǣvh]vsigh3G8W׹ԸU%WPPQ+~=____Q+~EկGK]];S4Vuk-`{ް|W魱_|TzhES`\4hES`4CħkE[rK֒?i`l0wSN ; )(yD!V7DSH^;%NDX RymNK嵝|VNa;5NSv6%ҘFa0ƯƯƯV|R NK-;-iNKmwZjDw(F!z D7̱0\hW"pE 6BE &c)]d3B.RrjgZC0;R%#;Rki0WT_QQPPP_Q+~?EW;Xݲ&4;6;6;6n9vm9ZޑZZ)~iarzGj-wr~Gj|אc]ZQmmmm~z[]tH!|"p.RH!4vAN m_)D&j 6QmCC5Fר}}}EշU7R ѸQ"]r]P+wWvAu ^]*2Cug vJ;jvTѣ9~ #xz˲B}e5z~䄻 o[fSVvzMZKڅ.\ -'ﭏqm.pfe?xUr˲lHe_ wׅ4H__enʛX_u~UK!vD]nb;= vʙX9Vs+ Vι+rnELA(StbE S<)Gr)S<`9NvJSr|N))jD)%N)vJ SJRyOBiky0f=-`zZ̃ i `>0ƫe,3dYw2 m;-ж2 m+:~nCtP9 Yk? ,(itu"kC;V ߒZP}J\[P,jb˸Xg>' 1ʒulmX@˒O]Z|+:в[9ׁ%ʹ,\:2X;BAAAT vVqׁعvx7}+Yw5jg L?4)SAT=D, Wx߼9ԃI5_S|MA54_yj='Gh 5_K|/Q|Ѿj%+A-3–lM[ [k4 74743<3Bozi%Z `6X-9;B!z^Do7or߆ʈ~mvh;#Έ35jg|mgDvc;mdu o.d{B o'dJc۷RhVm*[5}m[u=XzJ_gȪUP8/yh~h~h~G5lc, 1hgU!YuUvV]ɪBP _WPܠ$(pc-$ZNI_h\&r<ADtHBWˇˇK|/QѼ8vJž~8ծVcjh[ rn9ct1:IL`-&\pj05i-LMZ SI[}hm]m]m]m]m{{UOt 0@CbrчVbh 1уILb`c&1>4??4?gg_Q<,IHⴸXVmi1]lC;?v1.u~jzgi$t)8 - v{:~Yv$`Rl<Yj,ƈ񇎕m)#ACTy F) KFJG q^T~vu 'Gi=8 zvMiLuS8>Ntš,Bv[Qz8GRČ+BBtvjq%-vn 5sK-mUs$Αc8GRA@P}P}oQ-=VnQ=GGCC#~DՏ~|~|~DՏU?O9턿L55SXºk]kZ3k vG(hE!NX5@VB/ZQ^kgͨwOls%zkоuq;!V/H D],(Dk)Hv,)؎"`A;#G9vF3roGwF^F[r-%`Kaqtno6~eߨj`kxb-X')JaSCCC-Eշh.+Bqb-Z0.D|& 뱉ރMl`}6?T?>T?GTLJLJGTQQ=;Zvb/?HlnYglnjM34c&=M&PcX-&ָmbltJJa~6v|###m繍 3ALa8* 6:Hc&HM=q'P>e.Y'3XR_kSZܯs)-5@.\0uxyH!1lipe i9sILLtS$p<= \Cdb}@RX9@ H JNeBwfeBwfe; ,83Ӝ;vf;Uk!,bBv[P+Tirh2`Rl܀ENvjߚmrM:̕ݝWҝ,3BRCҹJ:e~FH²y%=]L'D¦¦Vnʱf\'t бfxY'm%o7o Xf!KkVN[e;oMvt"ߪvВȷ7։|kYZ,ꭖ~bk&\_;ͯͯͯ5yL%BɡAၘbEBl*)M %A<$(cE" vkk$>c)jb=CO)[|k~w9h~ˣB:$k N(:e`P NY(:'D 1%#teo, 11þqyȰ?n SYTa?.πwcrIH @x'!NBaNB 0N[Q;]NB杄; w0sݳ;,e^#,/L͏͏5?ǣDcEQ3j~FGC3j~FϨ5ͯͯͯ5ףF5E+ ro˭+rư;˭.jL&wEx{˭3Sj[!P\Q iF#5G.D$kmupRar 08"W1 !}Z⑂݈FB !q#MG n\7PF.(^iX!dt eaCsg(2xq)۶KE4PW4fhخ"7iXv,NN"w^kTx A5*> oQ-*(Eޢ[Tx iVZn^͋ &u:HJ%\8O me圆⏻-%nH"JB ݖQ_c:hv е4A ~=eI)oXai.@Hl },S `q8-ѩ'RЖ`x ־!|LBS6=dNA$u ֳHAzO8GTR򅌿 'S zX28 yQ(x{^/$SP n_.4 OBJ6pAjzR>HM[aKS 5=lv-N,3=7^#̨ Xu9Ū)=X+7΀;q'lW +n_GiU>bzd)p(GS%Xɻ)($ԉQvG_ @ʮHzNWpRRPY#lJC4))>Ş@JAJ"YR) )IґB.xx) '+NB}YE\hUUdP8qV#*RS,]U,YLjC~(2)4RO@)G_[%JD `pA{$(ڑ2W n:R]x Μ#N4;CQo]zs8 ԛsaޜ#{ 8d)0u xy@hBk^Z7y?g9xJߡ V;|;OAzv ӣoSvxB跳gٷƼ6F^["NN, GdB`AYVA(gY`<@V">Y@3*1aȲHc%j s-#:Rq?Y*ԉ|đQИWUbQNEтcv͕5壷֩ xȁl_d"D6Nu9Ɠ}RCAsbxRH)\NquGJrw"`)%G-y(l#v5*5_VSx8Vh߾|C8AcDҁp!]HHD g LoYpOyxXR)z'Ν̟C ,aaNCCC=G&)WQG!\88 10MkghcDpWd 6R."KgTQQPPP_Q+~=s;KHXⓎ`"{(KBQ #Y(JֳPCRp,B~gY~Q'ki>GbJ eeweeweewee _ebE ܕX Wb)D ig3X R0w%+ lE}t ĉj z`8YtU_kT}}T&)a>D.պ~~FרU_շշշUߢۣUߢ{T}TѪdIHɫ@6@ڌRh3>J폔m͘ 1['Ylw; E!PMmQAXj`PU/H " /b?pJc(x Zqŧ:sաA{i<^Tr=,9.u<^4>4>4Wߏ歉u_ r۪`ݵm6=v/%}:}AӷIJ o5}:0,/؎`o=`'ZhqvD3ӷӷ:"ַ[GkDY%*vV JUNMQ;vh;5NS 0qmanVݡ;O۷Z~۾V߶ov}f"| V>`#ֈyF,Pl܃ymuLb1 ЬiE30 #\3 Ӯ;i'0ͯͯ5ף5w~4}P^#w s  Nn; qa+#\w 0a|GJavqG;GW?t}lu!Jv@G1#z vh%vM$j&QK0ZIL$k|oQ||||oQ-j=%P:φSYXE1xdciiU[ZGV1On>mvgS{eo,>R>F9!5u) ·G2<.Le]J>vcaw(F}唆O`WA 4hl GG<Oy6 `S6 ~x d” X^ 3l/ R.cK `XUc W 5\=pP5r ;{EPPPPQ;~?Ƃb~@@1RHx-jg$v!61Z&Eܹmb4ssmo#rPHUHUHUHߵA#rPH9D՗;ӂ :R鯱Xo*lYvؚl7l-QcF"D1#z ͨL;-E0\p;; 3$5bbGD HҴ?lNmGvc;D3h;#xlg;ڠcgZB7{h̏vgvgvgvg=ΪY-B!ֈ3Bo⧼sa0paX=lEcMC@d$94 DvMաI G]D;fNa6rzGj#w6r~Gj#|fQ9GTsP}A9ߪGG9|D՗U_$re%6>&_GjD #\H-0RGja #H-0Revh:>T6666?-,zČ+B!d zڷRcxlb`#ĘMՏϨU?U?gTzT ? )G2HC²>¼>"Hf5m}$3'0եż- { ,<?FtGm?GT)Gv˥Ih8ݚ8(ޭqgT3skpŹ5U8nM;$kWփ[>| x=}7T;r ֤`ޭV̹5)b3qփY>'ApxbF@l7~NmF۩vc;uF۩Ӣh;-N{lQ= mRamamRa6M* ٖIEI {60`? La. La  dW__Q;j~GGך׼*?4?4w<=Ak )hn5_S<z*H Z!' ߚrJӷEVu{{Zg`e`٭2Z k5z fX֑NMQ;έ[j `:nӷ:#q!6BlDž ą Y7_[a;-Nӣvz?lGvz;_Hש|mODQ#왰왰왰LX OGoھYB7+8{k:Pt컂tCCC+j~Eͯh~hkG"bkbñb\>&k_+ޯI^h)_&R|KQ-ͷ4R|K[o)j[o9h[-3#J4GH-Ю|1zaKh) [BXF`1Vk`e(6&lVIajjzOM\=ZjGWbWbWbW۞mrs." [ {FO+AፂIL`#DI͏5?ǣ5?G|4?P'!嬬Vn5YYnYY >jeyVV+CϳZySVV+㮳*YV~rg36fuZX xXUJ4P77%H;[ƕۙR`4,Xz+qs 1w< 1#Ċ1l(HA; ]ߪ` Oߪ` ֥o=`Ћ dʡ 63l 3l9{9GBB,K6U_KT}yT_>T_>T_kT}kT}QQ}%Nto |&hRXIa]&MMD/[`Xe?Ҏd`;F`Qo0׻] bF!vM Fڙ%a;vfmgFۙ>lg}Ίh;뱝Ş׶fw֊&&{&K5D` >ߞ+4~{Hj; wVKgXKgY5ّHQ#EՏU?rPA#Տ|~uU1? V!x⾨AD&fM_e61 6QmCC5Fר~~~FרUՋ+ZhYGMh-4&~7D/&z 6[ރMqDd0?#O;5doSCmGmGmGm"k391 y0H3 ǜĊ&&V 6jnX__Q+~EGCCC;~GŗƍariܠN/:S8']`l 椫 MtuIV7yl) )r)nhfʂ:6ɾKP윅vf,5gݸ8 ƵYh7ngݘ<{"D‚! x ,`*?ͯSt&) *Hvb,5(}rw f!]KSxi Me,β'''8r `VG`j3i 8Cvɳ<|ӳ$=o=x;$o F{k0[1hCA{c&V4~_W0ks]&=fYʂMd^E).ۗjK@)1<%^Z4K>=f{se!KtҕqڎŮʿ#SSlj긐R\7R<0f%#+JՒ3i>~BLѕs ΁8G@#q~R:ZxJ)Spׁ}Ewef#N]3'~U-P[J@UcT3U-:Cug)bةc_B翎>zO=6q Щ=Ӯ]_G=@q!xDW>ګ:a̷cu;tɤNC>S}2HHuZלo=z9[O qד4zduz4LW ށxC!vj=x+x;x;x;x;xv,̑4Li{QuWZwP5WYF2,P'ȌkF)NfU 7] hu\b#4Fir:O.<޲7KMW鬢৞Nwվwᯧ]]_#`tud<1QˮJTL;w!n[ n?=Hb{[>:֡#oQ:3'S1oa[~^Þ2Yoa֐Y {Bdq_z@Ow}si=UV *_V{Z3fZO~;@;xCc&tN]u]]u)gR "3-˴b}gη]5)e]B=go=x[\[ϒC&d:#y!.K .<5H\zFNx3=LǛfz{B7M )t3]=juxVWZgP1SY;ˏ!>tY 5THAj9eR &}AHAݤ9RP_o7i)N)pGN.QWwf9A Eusb@̪X.-`Zvb~vbjى咛*e'D-;jىՂLجtWٗkV<^N{y-y}^u.I ' 3j@}B6%dHd%2n0 -ϋϋ% @s] yN= yW]D[v#ZZv^\}Ҳc.Ҹ/1VeoA+:&@d&-D;I .(Jpu 8.4+k[i[juMٲ,qGY#غcJ_"IEڇh;"(]G)]GTlpC~!'g<+|@ClG`o3Q$\FtsEe }Zfm.HfRl]=:!.ިff.ΚO&Gl]iֱuօ!m Dm x?D52eql]gָZLWGjy4Sq0)n&8M 7r&`Jt&`J#jRFru0!n&DM C}!%_{oɂV,Ho}C]oڃ )_qGM{/&}Wmg ]IqEvԤp;jRuU7c3M)t7P7P 7qf!aQ#FUF~Mh) 7J~fzffY}!~6' gw } ywo3)^ݭJ)xJ)И-R mA#InUJ:ˑt`YPmf,I /xAmGd Fd Fc/P&cRJI1bCRyZQK"Vk⧓җ9ljXṈIQJFJ5znwS*RG@st; y=+GH9R,q &e4 8 aRSlHg@ņtFqrqD12VF~<+,I_I_Qm/8Dz-_{}!^c麕xV⑎#kBM ! (?#G^&XQ}eCzd4FL!s|Ȥ]g ҷ_Ardnp 'as K4;&MJӽ,ҔwU٢?dCzdw2Wʇ̕!s|\ʇ<8TybЃbĎt'#:5LP AHY h[l"P9rzO6})XޓM_ #dӗ=Oɦ/t>'$}±6w:=Yl"uiYgAt ? )?ҡ>dKg'R>hsJEN(!Ec():c$R $A]C? se`2*Y@[tK"S[/}mE}-HװrHAU,:"toN[jT,BJнX F {= 1ja@r.K Ye)/RPJxDuK6%l:Z1H!Nf:ak:a k:ajHY\AdѠ' b,nD} A:ݭP:FFKu\%LzX:,W3@'ƶ#j==jSBtϕ!)d:)\R)P#Z c^pnylW<6}ENH> H,+_YhԀԈ-ehgFK=(5ZF)R0DzQ p<Q=,8Yꝥ!Jӡ%eZ^GӴ\38ѿ 45yq!%:nx` )`ѢθL=fO9-ŒțuĚNJG(~=5)sF <xf1%b3J2Ji(g YJ~rgGԨ4mѦPաO~D]~}-Sz7gk]B1dhΈ(~Q^E~iD%Ho,5֑NHtrG/*FsO`v7̎1١ 2«HxP~Q|@O4ղɗW6WҦZ||H/Y'!l|^6g>/nE_6(؊l|^6flͲ,%]Yz+*_v/ 9Op C50`Ӥ&$4iT|i<ӤS)ӤɓyI,$: 4[mi=IrLxT?dl`!6)b3bl`=6),~te4BpR`xܕaUJ_eUٶ,S }nh)nsc;u )fJ|4mkneB8B6m -mɆ/t\6E4Ȇ&4Y }>b\WP0f?/h<_|@E Eh))pjQhɎ"EOR RP-jb<kw7ϗNDlI*VT9gaړ3&֞|Ę1#Ĉ"/UD{ERD"㮌hB0@Uޚg<ɳM{"You:NJ!7J:Ni08%#C甂]3$U$F!Br $$(0wR@9!Йs!:07':ʼnݲŲ}& XR]g{US,<(]D['G V_A8gp9Üb[8+ڲ/7m+yp[fKj^h, 'i8]R E+OE}e="ȾnKUdWs)DT\|}_Y]}77k~8l*8 4ƯH6~iƯ!-)T(yv~i_EgWU$1$1$9H4␖?߾o~&&MMx<#Z5+neVˬj׬4!ށx?|2+) g nrh:ixA`\|1? ZqM:d%B#p|K/<(Yѐ\xe:qttzFÒq@Ii23-WrdGӊL;0t35ZP9i_{xOuߌ3g $/%c;AklGx*FDw% v0`l/b{/`l}c)/(i44z01XL{zLkJbZUW9Y% (vnQvnQvèu;w0 a"(HnQ"-)T(E(H~Q FAr;v0*0gw;"0xaTKr;bVnQޣaFAv;Bv0 !;w0 aT02Ru;TPUawX##UH02R;T"RN7a~QFvEah) _lQ4sHaz(L ˔R6- H<¿mb}wnE07 E07 E07 E07˪E07j[s;E07j[s;g`5Tn1v-jg@N2C:ʌɂ+;La-Ä,LE  SwQMMMIԧ,NA=rQWcgImE'1q厳$zgIj1kl36klJzWb`lc#ۜ 6bW /vbW_V ƶz05Vdځii`lc5^c==1im giLeZ ExӢ`-iTjz߃!!4_jii^j9ry^c}MCy:ܯxMV5kZa*90J|q[mQ1- \i^6s b5 ,maVӃHA q0@ojb&cR& jU[5YP;۹;EΝ"lN~/lN~-lN~-lN~-ݚ5tΝZs\!n;WULg;WF0si\an;W3[T3[(f DQ!0}+$5m_[1C@yU>ťx䦜‘en)|SNXwH$m|5vz=xUn)xʵ"xJݔS@mO6VRXUHacPjS;p!)7)f!rC4 iX?2_AԯNZ2Yaq2VfoeYz45oZ2݈w"_ d/Yf7! jՇ=l*X>)fS eYTo R74^Hn29J`Nr=;mqOV筌5y[y˞=o!6ҋuӎ:=o6 H'ƶ3&9ƶml+?O 5Z o|޺r6mxüeZ.Ɔ@ y|6-ԜӴ7n߼Mk|ƑGJw7nܦ5RMkvH6-1z0ĔmZ#۴F.i\/7#fEbftE ɳQ|a0y 5?m Q|a0?֫`~VX Z!j201۴ -Ni]v M0ʼSnęWpຑ{,)TPԮ?WD2U&N KTvPQ0'ϼ#5AMhЭlIŒ6cϭ,( Ù/߹+$Lӎ ǩp WTHrlSX!\ c9˟(ɵ8Bs]Zw тhA_m.-O- :ypDKd"%1/q:Jiw,YBs%.9Z}0qM`5e_J58⺶)x͈%0qE,IڼoetM]6BqӗPk iBP e5XbNXe~1 PXB{ /TaK^}.z[}n-kɴ#'qZ/s-K\*_]]ҥ娰~/#g.X~]x o:M oL}Ӆg.<ZC,]³tʺ_@fw?lfS b>%>|J8|pa(NX:eS}Q8eSmqʦ~S65NTϛpʦ)<|Ni+xd..a)[&T  qe W3 PiaS6[j m &*Xx*;3uwgt-iEӦlVܲ)'i 9eR:E>m.V {R ,bVJͿ7[!IE[Qӿ0o8,9$7eJy^+O~QL y?<68 =0GKHxFH#)g9=0 aM!)128ӜTiPF|f_r%dVu\Kb* y`p][jܾZA=Pڛgg -_ԽkqrDʼnz^|ث ^UR0>.}^cW GF壸Q/EGTI$F%s@.sI G݆8pw2u4ҞW%E:JHDK#J#)KDn|]B ǿbbwkZ;FؾdQs5kleXV'頩MJ蠩LJ蠩KJ蠩MJ蠩OhJtЈ[(y)v|;^tKU_r ;h՘iM 5im rR *Z<ݝhvwAZuAkqWi.B:%EF4!~^IY/*_lU˿XN̳1TB,.ԏ_RW4?_} p [ r[U>9o7s_o?Aw3  4skA4fA5uПsԞ;Pw;hAZ5+ AkPm 0 tL,`1\u;h-nfY|8h ~Fbږ;h-n>(n]>[%#?4yymeB:|AsPR;WJ?_-tA $Zu-NVUXoP2S62۽Mm2YB*ԈYH_= YHf!ݯfN~u @.C%d_zPi., 0dTO3E@_M\!1_(IтBg,µo q[1̭jsM7񼁛n¦x [ [Ц[[A!|kqU6~zݎetB6&ᐥeS,]B~[-tu/bͿE׽b ˜u/űS]Ăc[_ {ȡ,>ݱ&{\nBGB!v"AUϙcB_r;J)DrI:0.ҧMqN/cB>0jp⦗Ƅm/aӐ1[9g.oT12UW?=75}\( n4P4 TtL sj\S!RQ @5מ B1\*¥Cb]G3lUXW*NçnPe~^٧S >ȟiE槎2uG_LŪ>WJ?_)KlA" >DlAC Wu,v< bSQg öG"ۣMQ. kۣ\֦ۣ\ m+yJ`%  `4VhF=$@۬m?4-_pcD PmANaJ}H^ K$3%d 0F2aF{jQo$HF 'u 8Avzvzvzvzvzئ)u핅 n:*%χB Zgk[ik[k[k[VBԍB;Pb+ԠA҂I$4ı(8t# 웞HR`m#!#ahu_ cؒERg)lwZʀn!Qv "`{H?!CAXmB`(_T \&`@rȈ_X d2Wb>ܸ `,BKZ Zchނ"Fb~-)({IA]Lz,Ne߻PkZ݀. vy7`Q ed,[x o*}ݿלkN9 hWo֡_ }\xY<UJtQ㋅CHp9}xPoZkڵA:o0BbQ!1,Wegz )|pM&]4"IDhPc#4 2 HdxA$Ô;[׊lEBq 0T4 . GW!*)Lg%⬤P]Vܑw& \o3/,U \ Ņ]Bͼp\U+®Z-qml#6O4]2yAMklʱf^Pcݦ5۴,YX^umʭV[7A1:2--f-i-l-UnDՁ"Q{HvHyH4mp"Dn -PPDB!En -S0L`Eҏ)r[m"b)p[(maa2n - -@3hA0maʻ]fuc jlB-p[hn mmZmZma0n DPx/iPq17.Qw PŨ;~b~b~bpb1?E1y˼[|YG)|"ZG)|bZG)}aZ#$0ю+8)Ծ NJ0(8)$ʁI$$vbQy [VoFbׯĮmO( `l"rsEg֎ i06DJh7D&~il"h[cKz:cKyJ{x0z0Tcl5?VmlVO$:VӪ{U NZ+8mZܦmZ.m4Opj"ol3H\ SxjY/nZfVkzj+defv2AYvnóvnvnCvnvnN2 >tL+XN23:lSvrŔF1o'QLi/?SOÔsc[ⶭ۶?l۪kkm֔fnT-EFcKiR;\B؄46D9 (cXD&$" ?D^77=xH6d"u=Y&>s`V8+0@+ Њhh f&)lY&[: ) ) )i ) 7!oyMnS:)kpםpܶYլvڏyGk vxGCݣ!|!xmV9xGCA mhstTs4H9|j;GAT )ׯ_|~ܝdt \#w #Z5ߕ+ӐxpAAR<$<~w%֡ydw${]WI]w;~SH=nviF&q]4va;~0kB6T0Y:T4c -RsK?Ovniʧ}dnlc`CalOc[6oc[Īg%t< 46x|m][twlݱ+GǖVvl ̍i=`JĔml%؄469Mxh~"t(BiZ1VA-i0>% i iZGsPܐѴ aZ0RmZǴvpô;aiVTFuѴ=Fb`aZisVM7L3HsnHߐx! ҊCJAԯA}XNz[Mnqfݣv֏=Zmvmv}7[ xZhfՂw4H; vJa hs4H9:@Z7=r:!ho47M}XJqvV",{6#r򜬅<'k!'*ϥZȉ#r<i!'*_ZȉrKzbRT*UMV7YSdULa0]V5&1fEUL1+bYQS̊BVTc,R0Ŵ` AHCZToyQM9\ $;lN95sv;lNk!46ml!@*a:VQc1c11c=;ӱ3;cl>6cl?6ǃiփi}'c[1Unc[6՞~Z5܅i6ioͱՄ4-9M2-9M7niZ[ixb g)ApiR~DiަӺMK.L9=r~0rb6-%Ћ%Pƞ/FQ b4^2X;ef1`I1`F1`D1`BU`_IlqȝI<:eTRBK5@4P?b۷5choN ܜ2:e)t`S|h_$ʓ( SHЮ(f 1P' 1Q<'ۯ&Wī}\hlY)Q-XX ڈ,|Q5YXpR̦ڧb6%ɕ<ĕ)",A/lA/nztZPmd}7Hz YFꁄD8n%?/Dk4kR`2 QP Eΐ8|l冫prWL(rb-PQre|jjX{eݯxEn\H*~Y,ARZ1Abd"~!Y< H$ذMo6X+.͑@o @o TfH8xxـ0U\%oN3q15Eͼ045Eͼ0453SS`LMQ3̇CSS305<.<2g)\epuYf WpׇSxu-1Sls+ ySxZb Wh)\%pHLڰd8j(YCСdG>TG/>TEA\zTBZx+a_Mx=Y=HP##d{xD] 0}TZQeH;$'R$9땭ͨD!f)8[xMcc#?~WnzG@B3 @oFbqQ2M6ojBif7)LQjhxM7,etI ^a1G Hڊ {g+\43 ePZ@u+%5*C5\c"6S,*l%2S-i&ˣ/cᆎ%KѦ  C Mt xҿ_mL,Hb-ԤDhwxe<|ݓ?8?(AJ‚fh _w m뎡-7|1;ch0RmÑÐWr${%G^ɑ+9z%G2A?Vx01$!b[ 9B!6#j^Iлۛ]333ڗ]2 Hsvx<Ԙ f] d/yHlH_O'{Y_`tyTQwUܵzS eBoV&+vHK;Q-s;Q-9NTQ.U%^ё?Лۉn's-}s-];גzصs-];גzإîk_i+|gPmrMiG@،}rY˂W/P*=I0B~ 9 ^Om]t9Sɻ}>YpQ}r b<-*SڈҞJ7QJy^+2f6'Yqp~u-_%\uG&ퟯ Z$C2hpdЍ*'"9}I'GHdHbv#at#aW} )! li-#4?[HdMK6Wr~^)+)/Ar%[/QFy kT/Wb+ Igg@RڍI Yr8h3 `L5g1>aPՂ"r? , +&!OBb Y $c!T 022Wʯz=[]-v! Ԡu^+|Ⱥc#]A ],vw?ea7$:zZ[P4vu_~eaT{PS4ԟ2 $$v*m۩`W̭W+Tb})BJxe]_3"]I H2 +GSchͫ{jJ+]SAAIdzNiz& C鄕D!}N'N?@W']w|u^XJY+6Rփփփ!  RBv#`Yv JJJJ`i=`S9(AT?rP!g?iuflr[ h.q ݘ#'1 FLyL+GN0bʁrSL/yaZi '`?=&');ÿ7C*%("@"ZLK$HDw^:ɇ)T˒!@3πu^K| s4x)F|'`򝄂ۍ/o~o"Bv#9!{-io?a_#hZf=PF^!AlunMPC\ސ_\chC`#S>ϸ돠9f5}nu9RQק k<_LxC~xCD#B!rHh6Vק$P]\UZ! Wgww}VpgM͂w4uh7usvק SP} jWAݧ]vĦ]=29mOLN&=!2lOL..jj"(w؞\=2lr^=!29mOLN۫y\Wmu؞'D& i{Bdrٞ0&Sc2&#*.+-h=,]$cb.Z|ڥXOkiG#5ڣƑQ@: Ecf&0tBuo( %ZAB:7:  dfԱ6;Sꇄ"AxHx@l7;vC{v( ڃ/h꾠=}/h}A{h Cn_wо.68~ Pls;g}=QaDmlgp= i>Iog;p;٦6v߷M^޺?+MVD drS*d2S `C%StC ?EDy^xB7# # 2#˅Z#uH?.zD@u#"PݴUϢg> ?e%P~>HeFW2ebP@Gסx`a3ѕ,l&6ҀmBz7ĥjqK Hl)ۿCV<_G4 ?oi -mWF@4 ?oi3Td8-[Z)h5 ئ0h)-ҁ/~eKn_V7"խo}(DA}VD{WK$ͮ gG+E}0~: )|Էޯ Ib2'`b d _R֗hAx_=S4 g=Sg3N;nJذ N C'Xg`Q_K|+cBᖿ/nB%U!DOUSU1>Sv>d(s]z,Loz6k3]>k<ݪnUA[5199J*{.ܠ0US؟Ej Y?irP\68|m㫇 'mo-|dm̲-w`ʆØ6fhYXZncp1 SerPPbOZOnP7ZD@u="PC=RP8~3=,gy_iSb2pD3I5 |~1Y^0ym3}L'7 e3gjoi>|S=_gd2p᡹ \h.6AI,SxIO%?r^l|l<_<BN 5f]ƌep1sͯ1r=]u<]\,K˘[zǘ[yǘ[cmޏk>Vd Z^}k@s (H( U|ijRA $Yr.%< $gO <;#a*ךB)w>宻\\rP 7#.{4ʩZPHGzD6' D$[A^${Vܭ0[NM$7ڽHsz LNzQB870 +UC 2Qϸ{,X ^K濎Py[uPi\A+C}0 P|u.9{2E,:r.D9\-ȥ_÷!"g:Z+}m t\r3O)o}J}S[ҟԧ̳>pW}|w[pA&CF#TH%'CGKsr9XG.zA סA QNzAGETHwޤz尷z9 ͎'4;9`gd{0duLYƶ :-eʪi)SVNKR&'N41b WJ;_jRPdT0Y-g8LV˙NrSd5I*3I93XXWbzh"}m;ާڶszjihIp8:@עw {2g 3z H:W ds|$믂+ W_WʤAOu9uWfG x$uQBH2Ȃ$,8<%JOIaTd[ɶX$aVT0+|)I-*ڥI?㟣|'T6WԌ$LuLMCztrK&kc?@E@= t!W8_G]Ɉs%dĹmM>TNF+UW'#Ε+ɈsJ2\c>VAo6%i[ؠÆg6?y4Ӗ9U6 [3Ys2ys,4% QQHP8QHP_'*E4H0#*D2WėZߑ|l*cz U;8z*C-Uv;?oL3yeOHXW0&>k/#r*tѵ˖STE{m9Amʿ՚<ªAWf#}I$$ tH!xd]烤{/H\{~˟b[{ɢZ!6 RW MGEi6MѦ#jGJy^+O U]g`A Yt{ú̘줋ˌ xtmaGtuڴdt=8񈮇 #h˶E[%(ڲ-Aіm nKPU-Am Jy^+ R/hϯ>.뢪ϯjo_muц!Aּ%a ZVp%aoؖ7 =,p`=yK+=?mھ6m#ھ6mSmhUV_yHP,&ׅ9 B 66\VTuan}yYHo<҈OBz3)ް1?[gwV0'鯬tJyH_r/<$kHg i.FB|LrZӨ ]88ow +D%*lը +xf}~Pk,E3HoC bW6A\)m\_bB 1Vk-;ph`XhHwm#W+#·"WZ 5k`϶oޫw dq`[8S}Pwq}SBL_W<ե@mu~v5N /~i>30g:爍%*\B`-*]!c}g 9X^`%=J~+&kI0R\  oΐCHR8D$X V%d Hl9) rRu1%?,S!`K5tP(s`pI $t 7@HGũQr[}mO)wDTտ[-**[TnUXTnU#6_ov^v%!S .Ur<q<h p@b#?Ԣw AVEyB 3ڨ6Un;lTb*^ HG4BhJ+|:fi4B*N5h0)Bs(;/ fq_c\r9W_#{7z"/u#ߍh'@U?~G񨟏udqxO% l7o$`6K=HrN+Wկz_Tk:Li`!~!/u#jw!j_?TDTö(8 Zq☛'dTIݼ"KqJqq* t ni`N85v :+|`h 4G԰"<>gkZV/XU95?L_z;Yq#BT|8z}†s#>DD~ 215h"Ω;Stf鲲4.T3Kf3K&̍ Sf+ye h 2KH >L/G(G,9EkvG-_+xE2K!##J.G̡+A0mF:a̻ƺ6Iv|7,+|E,Y G܇E2;^m*6fmFn<B=>^*$j,7/%" ww-}ݥce ˡy ro@*c7K!ʾe:60-wnyy*j~Ը ]8w8j't5ޥ>ұxIB3-,h64/( DJo iHGU@yDADCu?HHĔ)}?HATR$Z5cC?5 0Q3lϼYb<>ϼYg|Rb30r>=u}-gMaypGlf"=i`jB bC 6 6ƛFiphiȹPh!Ć[l.3$3@2s $@2k $^8mB%AdyJXe-gAĢ[X<$*G]0?_V=hJِ/ "HF$#ށ%AdžGiXS:eKΡf>^$Cbf}~fNgf]H,9?gГqf|M3p$)@r $@j $^`b )EIF [eBb7բ77ͅnnћ U0Yoћ E~o$3%'w$Lx0aR@ 9D{άx8z7z',6iGZ=:-`8XXtfHj z֠Hj zH01M/a`Crm:R}"{7\۸&=7&N$qM.Y=wv6c5$hɂdN于+|0% L/륺ro{^1x.YBS6h M _=޵צGkۏw~<Ӻ9J8Ӛ9i5xn<;cn[n޳搝z h*7U@ N]4O^>3Z@oK#|QWQD!^ExEd*HUVPpC}񨟏uߩ>ry(ƫ( C * 2īu,F%=K~ԗr/V_ڭK}A|QD5݈jr#DT3~} nD:u?Su?S?SĈ+ n"9Gst _@>sơouh u?{4_!p;w7oCߺa񗲬K2(C.(Cu >~K"o YBd!BxKϿꔏN}l,X O ȵX!'"T-'0 #H "] V|k=A)ǡ-ư2|im }.'{JJW>OG|))^))^9׈r{? l=l#W]i JyA(TexA O[+@&@:l-@:k7k`\WܭKb+%dSi[z+O魾_!"sO@7tsO婀,M$h׭"z aDbm8`㳵憇6s>k]5wѶܥZs֚XkjuiO;ص'v'?$rT <$CxIkO|ܲ*B^ iȇǎG%[pX\&B 85-bAf<]0(N8CX>3@8G؜Wpf™X9]]]ul(svGl _eN2=g 8fUV+|Zn@9:k)y4W*y42ZY"]+  e[`mO?(._ĄA@&hr2aEp PXn:4o"X&Y3JzMHXFFR!%#?2 Ed@IX@F %#li$ , $0/8@b[ w/wdsmmmvmޞlH5Aow zk1ͼЬ|g5F>kjF5zg2D]>ktѵYkFgg[;]DzX_ y>ehe}}tʀ}v~ nA2"2"myFJ`1b= uS:~Da_Aژsh?7l,}N`B' $G,OBSOB;͒(C [/`Ȳ-h)l+Zʠ-ے2a#rq Yr؈\F7"Wc;)TY7" Yct֐EVҋg$<#F 72:ˀl(PE.iAQ˅B6m:^uzжAk2mV6kEڋxQźPt^ӋY//^d=zq#{#DY j0S`5o ]1vE1L<(fP_d?_0/`_zuHT~(:# $wૐ zHPq#'BFS$>M"d4E<\pќZ&hAF)D4w ,)\l#'? a2ȍ  @/zt ~HB MKNV*2j-@@EF< txc\\bSlgSuխW"_݊I(+u LCDԓA z`h$xFZ-Nk8zVN$gNn!zS | LCJg$jU]Hg G/!1xsqq7֟"y[)d<|'ެ`z`\ A[u7Jo|~S|}Nfpz/#'Z$P<,+ HzT$V,-í(wM5A֔ b|۞bS8v xS]4܊V[!5br»#Vye9ĒA"qbWb sP"E ߻I zY -MfMfHMo#.L͂L $O<LW&}P].(w(OK6ϼOĹx %Pr %Pr%SLr TVr Nve4\ۦm1m@>-Rh92WR+b5B!5l(S"jJvn^+|Eo$+THp{ ]&bdћZ6MϦTW[Q?ڭ=uWp\Z0SLlE] BCQWCn [9.D{n`Q T@ Tؼ>y;i\ `f&O.Vg@pkbcؾ,yipO1n9NJx9NJ'-ʌE῿גO;넹MI&fNsCC|rְX0ԷXy[z6β&cx#w🧾ϻ]N}N]n_v2%}W42D2C6o4ƕ&9ظSWs Ar˛Y(9Gxp]Xo9|"4 k6ti׫m"j%$?u%?ޕtc4.xtrA2mmP-N!b@Ǒh_O\%n B="> D&0GI:p$ZX5;irH-aB qPpT((nR RP`S (b!E\w< WM}z~b?Ï⵩EBO!5!yn֧< j&Mb59Gj`s /`"ZE7o踦1[FUi,(@ m{ŠɶZm@LF( &#?sl:,ؤ`BW&#Wh?z{=?DM &7MF&7MF&7MF&7MF&'#;o^Oz,+Ez̍?2vP'#PEc<~.w1Ǿy>]Oc>e~.N>eaQeرtŠ؉ t2 ޵ފy,\ oce.E=3_̚LX'}1k2lzlzacFuG^; 4Yh=?q;Hb4vC t<b7;2>'hrqyYIA}% ,IDV{Bks+ W`u01^̵6:ƾ k Z ue/{B:r`v`S`PIyD%IƝ-OÙ=r5Kr%vqvdt].wY] Xj=ր%< QR RދǪAgH{X%J{/P |q EHG+.wYfbrfbrqk4ƾbrيM g+VX"=dI4v$nJn|zHtzD00= !#2|i,2YY:ezL >(Q:܀ vJS'mC(k'L)4 CVpё ֙)ݹ>;7<ާt6):ާ&x{B!Wm0UHY9@O "s\Nudi1]6+tv.H6B$yJ`sYCbRvO e@_9vMbpjQ7]81v .65jbӅl/O*(]c=*"k YYL"L@9?zCuAJɰAt,'OJzҁAӡA4P'yVʵ E@E h=&01I ֎E(KgfvUӢa@\^4$bC/qib|Cbvͩ#6&1ˊ^GzYNkm..p:x ).Q P6=Ak j~aI E %F=]lY6 cCE:  cp0:&ٌٌٌlpCrpRJ8vsTA %շyWJf8{+EN2ADžbԄA= չG/ (T@'TET(BDE8`˥;ZI&yp S>8gqg/^7GY;O֝gor!文[E)Hhm}ɶ 2m_ CK)/Y^mKqa Z}mZ炙yRpEiĶ[2lȗBlW3ŰU_jl|M?[׬).t[4`C [ҁ^%@W3@XG"L~t׼.r9/;ׅxwVÿNUwi}ZEcf"ıqVHظ-d86 ^Ć6=FĶ/^~A0b/˃l'4`;MЀ9ƛol, `*ol^卭NI`k6$Xq,S<%ɜnHN2?d2G{+{i_K^G/Xl+̶( cd\ۯ G؎W0J#ʄړ2w?8!26mb4ʙ?8!J6Zsd+~]*η4`;s1hvbЀŠۙA>(=2Ϸ{d_f ]Wwi_ݥu!##o_lbm/پfbƆy[/,n +b?$R?נs Xw\#5 etKtCYK6ƿtdV2# 2# 2# 2Bh"O2Hk:"*j-$z5!aw$[\ 3%v vůzvr;_\$Svj8r-WkXHd*s8j>9;fOdY(p|*s8u\ ".Zz%6DhYy`wg0l;Y(`5Yجp) F/`Vo؁0 vjmذžu;mmZakoָ G[$d2', 4 p~7N݁r<[5x7.}_D^ߣq"og&;ѝ'$,^-ВxΤy8˓@5#&uDq6RƦ76Yl ҃ ҃  !IJ;dkndL+n\c/3_\r=&EL&@Lv&KC hWw/i15 Ю-%p m5ISL.%ĩwu8W94bzt esppjES]֋O͒r#O32r䭣ip70`KA Y JYq]8s>`9kvzù>8q'|XsG2s7]/]5uz=ӛ-]L(w%l6PB:SQZEv)=z=Κ {=M7MM7 M7Hbf)gMs^Tئ{Qbe tRFqΣ 8Q͇}CȎ"5k}.'RzZhzI&y8Oh7F˅ yoo使FB煼ҭ9ɯtQv@21.$ǵ##xv`32K8S>8)7c a a |>Y.:CB쨢bGHfn} r9;a{zU?^; ̓4h皣Ĵ[ܞ\1/n_հLM"X8[I&ypn|7 erP&t eBS_5ȍ|*| e"'1[+hMķo߾#)% $&}Z 0%ju(I_rI_rȭO&`RChZo5>?x7\[Ck'eWhr6VurةQ(gbsk؞6^ 񿀆}FCul繽Ϋ>® >cЀn&Ͼ>. WOL =|Fր54a0ne҈Fրf  h@׀ k9ܠehΑg74/slX8Y[iG6&;r99P^.$gvG6\qHD 样 Q}gN`ɔssygJan ?:(\[BVӠ4d'.?_sXyFe,tݬ2cm.͈7)[L jY5[T~N5[XBQ3dc$Zݙn2yH 54_@C(wF^q4+q4Us(2K .4B hHjqL!1)$<&74I~26 j SѠ0ōH'T -F*Y3l1XNP$g_(0A͐II.I.0p<;?rG~[n/^/h (XH.olIEbaDZ..^;eLFIRgTEFs)PDkEOyhP W3?(k}= Z(K:!9!Wzr\=cFLn,׈'@.rH8 EU/K|PR ;);-Д3n5Ƀ[yVzg΀0O2YΓLD[m`*o䫾F| 75c;w 9s\lk&hui6(E:4?[_)@$Eh}-v{u;fx| JLCsV @hhYr;RƳ>2llkCU2RgC(v1ўTJuph]A]UA>^$^fڵtvm' `\5%]ȡǎ꧇ԑFxGz!|71ȇ\ǼUpD&)76kpSi2QfډSJ3lqd4#ۥ0.̀ 14CrL:͐N#yL:H14"9W#sp{5ⱃ۫jt18xv`ɏy]t@ t<&yL:s炾 }n'ee$PJN;պr(\A婹44ѥ2. ItPf;@Y.$] 8M1R3G8dȋF^y\ky#7/u\ȱaa*lY̿T 8 86DL0_4ơR`̓0(0<(mĨ3eo3մWÐ`I2?q 7?q38x8O2_gg9n{<#18Oy#ga.cwj Osg8H&)@"ͥt 2R:'YWȾA-(^e.'ÑXð 1[޺e=.\c!_|75ȗ\׼F}}RM鐉t4G).}~)PbmO]aC<TۅE -G`r1958,"E6`T& M.b8L<@'l8g,7r,<#3xFy-Z/U{y:㭋7NrK].u=:?Ģ㝉E;r?mVSVShvaH6DL-"`ht<"]&W PNyOfZaE=ji0Xd7uMEw@Zu#j9xɨLFs as|pq7 <Fj wE?/5&+-G=r+-Gxg9E2Qc:"9']'r%=a)f~$ˣO)БF?-nc0ԨkI យយយLXmrgrgrgr&6S9\Ux#F>X/Ky#?33* hTlZ_fG E@dr^0O&׫ #\PK0[tDgң#:8 zk[tD1O Z2KS e Q˜.+wŢᮞ.X`];8O0yBUFFF@~f*{f*k3U0\Ƥ .c!0!J:f*?\tOxPbz*gz*gzacg}06S=ܓ3S93S93S W/҃U@Km4$^UM07¬jzL.fUӀ|FXm K.V?&*ްLf檁z: p׍_ %fg4`EbӻpX?S =F#Ml4 .~yX?ټK=fzUB i]]fzkwk̂;58~0PЗ[s>P_Me4^1W.&P5s"W)y9iGPiz,M$P5,^y͒5eD )P DSH?ڀxPLRt խ3;$vfUן\&>--4> W',L 䮐LvvxR> 7ʞ6Zʞ6Zj=EZjE@nrtݤ&xf+۬-z+۬-z+۬-<` E E?\>t Ԏb@ Bm Taq ET\@jzZ X;jz Wg. ^3Y1$]Ƅr7CĬ?Y.XLSjԓ !(?P~u۰?ӃV'PhnN?jƃHP\+HWAq -(nnA0@]pmR(i?e )VaU`j 찪].5Z\G]ۿޭ=/wknPP=(E,ԝCsd͑aH>4M!8S0(H+ ye ȒDQt$H1$ۑC$q$H"E A D,]6$ӥ%(@RZfpՐՐltMhRZZRZZRZwCJhl4Oc㈤y2G$͓8"i A 2 %\"."6 4`kgy2lAfF-٨5 Z\3hx@CFsiM@8VL1P (B.Qh\gmw^͓Qqz=pch -EDnuP W1}-ca]^X!'Vsj}~eYf˰KBy6K!4 I]-oq9rqY#w5[n8{yRlš-]pmxq mxqE6J\(8Hp3v8v)db2pJh3P.&rgh ?cF?c2f1Gw3ϘW͑\JyOH)yB X9FBN&t)K57sIjFNCȌ}ֶ>k6drm2\JRg]t}w$"Ivqh ӎ#٢y7☍ϫdJy-rC[r=-9^ե@\BQu']xSխKo]`L0n]Fy;wXOtEWpru_!%w_9OD3wY2os~l޷9?N9>)Ok4!Z9h}gbފEo"j bԽm 5<fP;[s+݊i ib^evA9ݥ@;fz"j!};{0};{W;0};Պu׵` \"!jpLfB>˥@A^Ei.Z\#i1-hf Z0ق6[вf Z=s89 |0p牨e;!7nWj;b\YX߳٪Zdz٪ZWĸ$`ғ.g-BYA_-|@;Yy/@v3VY@ Z-fͳ&WY@ l 08 08 0$|K6[5kͅ]5u׾VL_ZW9[[n-}hf_L_f85&gW|lWk]UU-RhB ӗV,0}iB ӗV, fҊXφEA@j?[ [ [ &t) R6`7P}͇VS_| -L_|vdzf쳙}8s58LꓤO-.RoO}kW60}i`oo&ު&mohضj `$0}C9IORgĥ@߆JW܍r*xŽ$f*ӗ{ϗŽeq/,g?s8s83YI l}RṰ@ [! ,|ne&YH`"[̭ͭAjL$)#ե@Yi. |@;}"}}:g}kvsnr 53@!@d$)#. RК}}G/h{З;,M`rWZ6|0je ,\_c;$|R..12NH`aq ,\.W>x,^&pA4k ,\;0M`q(ͥLKY(j_諼[vN4[0l: 30aJUPd$)#.I-B;n XŐXŐXŐXŐ,bc@z19jpq5$|Kv6[IvXC<H<H<H<Hf sP9(Q  =M:(AӤY0Zt1R9#1R9c tf å@#Up*8HLv>ԘcW>PcQY ңi8ա&:bT"&D [9ϳrgolmolmo%Be*8o9oʙ$|KAJV&gFɳjdj᤾hu8 ZN]MMB]MML@y,3Yg[[N,Xñ:r)C";h7<P'VB ţ*HsbyAXCP(FQPZxRNl!<-a:Rtwhl 7i1` " ~DybYAiYAP|g(C¿,7}%sÁ`ysÞK;>\pbɄD_ľ{]LR7gb9!)E7g:na68ľ;8ľ;HB>ӥR V-Ot2gPΦˡئqئAMWp2gL[t2 exO]8J` o5 y̥<";c3Qz/iB&xACOAJ& +yAH Pw^{0S"; n BC#za #,2 6 Y(wȤt!uJ([yEhۢw[4yEhSmߵڟO[y[{C,/1_][ߺKTDDugE%*kJ_F5+/R1tWaJ`Jio[zkƂmw[ 9qB3tmI:  5EbA-4In qxEﶨjV1ޚ߷0-{&ihm鞶{&ihmko]|tV/%-3ԁ3ց 3ء)wYm e%!otu܆]qRwYm{eې:nC~܆. ]q6tmmm8$^m8 W|܆} ~܆qm~܆qmahq܆ C6nC}܆. ]qN:uqNsϮ6]6]moaenx nCL,jwR7*Xq CuhZ˒72Xĸ1iBQ?pN6d7\qE7\q#DǸcܘtiosiyWjRj߷-x6Y⎐qf-aWĜVPMDi4TPW*!(6y{ ΀"- H- ր"@1Y4H(@f hqOR&9lΏ3ݘ o5#<|2W[> ˩ H,=M䀥IX:ViIcd0.-Ar4AFec1TDPU@޲x oxI@޲? 81k'@aAZ*Q@62 sX>Go'Aл޾L`}SbSpju+||˗|1_JqUX*~W>ʠTx`OS>&|~Mz#UiBw] O]O-v" /gt~&ު.g6Bfw/hPk\t @R5 JЈ." fn`o+՞YL>[bq& lgv=Æ3~\K2sE`9;m4<Ĥ15_4&LqTC4eMAy =PF~ ZTP_,~I_)ȤZ8&"! @I_rGݗ\%܊#~_@k1X=Ӏ!,-RhLhf=%WAE `]w 4h<<%xx"3F$\"Y  Hz`U6 [p o 0G7'Ф,֛t\zRj)hu6 6lR);n@)h=? (@yJY}*YPod@YHVF$;aS$%os09۴Qlb)15;aXHLb*SE-b 15AaXA@ZdCP"a7b+߈< ۱p`y>p fayS ayC)Xht`LlR?JR'7?zYEi 'wQXDT&\"KCj<^3TɁ14|!M=yxR4U\J1~!|-<=J(uNZ>LVD)~0NyNC 3=B_) BP-ΑL)P-x_ :!H>R%Ck:Wc4@C0#AÚZpnpJ"YLm{.]{t8h^`\2b͈79d9k&4d95٤E L4T2W֩q[q ոn%V,HoeA4X;㌘|3b dvj"_]Uޙz9c7 ӤzpToNꝪiRC#z[6ب`}~ebx~1/`.`D30' )H `jri5ɹE`iP "sH'!geo; 9-{IYm,!g5ok@pv|Z1 f1<(fF +bOJJg[3]d|aeَǰ2_lcXt6VX7=0aפO)+vQl[eg;C/}1;g;C7}6.˙ ? h+ 5&x\+$g ͡B9T\hf3l;v6lmu1 (VF;@egø$ {M:cR[zu:jfڥZBf]$0[w3# |$8Hn=d$T ([Cщd>.DZE 12wvҀ]NVdJ3* ܪ$(pV%A [ (}l v3 #).jr}UI~}ɯH~}1  /5UHhΧocڧoC p{,( "Sww;cIx&Qd(.J2reCQfy.e1F(H8A #A-ǸQUTR>J* 7oJ lJ kG⻦qzzzzȚadͰfY6FQ}q/AԞVވZ}#j퍨Qm|όWFD;!|i==5A@D+hb2խMִ0H oݏw?#ڀ$,6 jOGxɻ涺f@m &) qQ(o @ְA =Pj@`ՠzMs&d>lf[f[L6/Emاx$Qd,IyO )B1!.]̓q|~0.ȕaʰre6?*ZFx ODkmwyJL8UeEh}Ƞ"Nb$4lVX2 8I@ d%3 A8h'jۉfZ)P #E2QoIe"ݎSX0hR9irBJbJN{\ 8b @v30X#%r%mM@o1c f Q'H7nO@ʼnF%؈+QBS`~ iS`"e 4>PZL yXQ (h&=Ƀ h@wP J(Z(Bj2W4jNdžaNͤSIVfH;t6t6t6t-DsfG:xՠ$+^5,ɊEzkYA %+ר9V<.Qsx\XGxh}|FTQioD߈Jx.~fD2" '!Z"B5 mt܊Ǧ]XXLphQ_֠=6 \j j-jHAyt@.{CbzcYD6ӷwuHHCG>$g@؋ l l/8x670FU8rPYXXZZZ`9 `dE62O>A6 a bC1BFBF+##z22"Y@C+ӞQK]0DWLlx+p.Ls#6s3yNtrTNQI~JV8.*p\VZḰ1aOi򒟒&nJZd6j^JgM/3Hdv8jrp|EvS;&iS;&j5RĀ 'b7 XùD=hn_%[WǖUrD;ْJnA4Nt~nCN_W $˳2U|6l`66񉚝cCcH _E/_w28Ǒ]@rY ,vDfԭ<3$ < {0-^n6aFI$h߂^LbЋivzŨ4i[K3DUwCT0xUw(Oj[c^Jj[^je^zH#NF}@炂2u !mrB)TrB)SLكb}A"F b:h(ð2` c et*JΈWZjMWgt5%<=qz򰖋ҸA> \/_@SC2".AXdi A|~8ECPHĹPqQFB.D/@"Rvrz¬,9!F.RsJ) &=71$'aUmPO6!49 D] h= b$4A!e{1;*v 'J 7[9l;fZ4^Ntj].Y+^ܕPNR >.BЇ eBc@_@K=-ȇ ?PR8=TCrzH\ȇC)&C;9CrX;"\^tdf`@XIz z PaV4kHD:]!h<ѩ ޱSQ@4!Qm\5Z5HR(w&)\ n6_cCfa""}{u ef9bإsԷg c&),ug]WA܍u]->1\cϏUf?8B~zu7ZCNo0Əu'B!$=~ 3}#|K믭뵝^㵍b bo1u66؈) y yk5MX>Id5HJB^Xh /&t o?ƺedeGEVss")䑹9hԉ.(,*ELzA+McCV>!{?P>4| ^$f[fZ&hQ2AD+IJ+ jՙoj^lLJ|Λ6ێ6A6ADm^߂tcu@m)ZMVDϨmW6;DoE֓JVQʨQQJKLVw&oHb;?lׇo*K7AԿ'AҢM d1z@K|h"U^f|hՆ]r}5, j> zcF)9 HsftfXDzԖ0{HfWk,{U&_.}"r'bP_3D^{qK<^H 6G"3$E@$K+~Jj<__Ҿ{${%򔞷3|hهfHd|ʇ]7[<՞PzͿV)jbd$T51s@gm3uۍ\5 E&Ze|hP\b, Vbݹ_N;95oq_b_b@03:0+:0;:.X(|ExWZb·3Gtz"є4ov}-N5pl:wj 8DLb5BrA ou};IT@.P(buRzb\Zތk}3b9SG/LŒ(~&Ykң!qi|@D[Ks;<s;zL\?rD#X|h֙'AghZO#{F9s;(;fܝ/`>xp%MVգ^U:~c|P /+M.q%(#QG[pߠۉS]|ovrkhftY?nWDvs|ݔO t;<0VVzU^[85UַV~>U˧w}U5v[{|z˧T^wUwUyWxʻ&qnD5ΣQؾ>[;ҋ36Σw<IkbBO(y?Mo(i?PQ~~GE(;2.QI3$EPSwg̹г7vTuCza' ;A@W7hffޫ9 ۭp[bomq11<E u 4xw w^գ|zoUѿU=Ʒ|zOU걿U-Ϸ|Zꧪ}Z]2U-juWqBk KVk K{Xk KZz-&nŵ5P\[XC"oa Dla uv2N;ut l5}M l(.3# J6abjZ.30QH6d30AH@.3sG5-ϼj)qx'%Nq& bk<{Y/<>aĂERp'H D%%75/xL Ս~<Uo )0oU M EL"Dg4)NeabSNNĄR-J,@LT53z%.q +ڕ?g(l/M](BOY.:6'Ɠpu\ d.ӈ)ʐmM{%↱?[W- oyƺQy7!HQDxa;q ј" 4uÁZ.F#Xda>Y6T&O8Soa=_a( "8Xdؐ4c۠)?`C^m\c wܱqђ5qEK8-Ywl\d 9ؤ8pېl} 9hqGCv;29xA>4(fD"P@Y9.i&suӎVnTAk2Z;qک v?hQ˺Q mAk@[@{@NjYqxld{Xs".>Ȧ{lP'ck+<0<08'sV/r\2wJA[6(BL*E* SD&@(@D8" FCG4nE$DOI9 GNDXNvȎ{%7Z J/ە_>l>l ŻN(|_ssAł4 Ë~A肸/.^}Rڧqŧ8χ3ɛ{ ٲu_4+y]/PLKH?\NJΔ ]TRA;~)( -E XTasXK(HK\x`-=^i~"{|G8~u}?esSVQ|*kOY4+]~,:;XLuvXLuv*|ʸG#0)Kj@j ޮ2kҫiQ"cς08'|j(D-'$i(DLm k'6XX;ډ Nmq"İI k2ڠf''&{u 7DqW~'&HFzَe;vyr7"n*ETęa3;fQV2]M89y"nҳ}7г0_ u t ؝AxB>oRD4 +O)4ǵGc;e@|oIogE@BHnm= у;cX;cƝbS$ИzP&Tz2ւz2vo4^4_^oMBӑH6R($m&m3nImN3r_Kzmt\*zCQ9zG1_(s:YM!f](:\Rtj KOY|D32_>n.kgjг(9R@3'8=#NtCcW;zsp󪢷 <ߣh=x GUT1ZP*hAxdm͑IMp$̻;sy gH2o8o#dsQKb|D-Mh)`95l`F v6ɲ,kx5Hlg`}b8}b8!#lkH'kS ~=H^ tk8_*bʹ~q.I 39 /O'{]x5dsL'#=5&ЪU>h@-H@oB@|;21Z%{PgzP1atSNfʉK9q"N0zg/J0z"J g$DrLV&d=|$VrN]5Z{~ :qv}ţW嶯.g$M=l{yf*U0giEr}QH GʹG#pz88l& lf/ gq ~z]C4]Cې's)H.SG#G}:Eu~kO/>>^}g}>6(/BMFd\N"])3N=@l܁BNg( Rub:C飳_U;Ni<:| }^>Tq 3ssզY?5g`\~|{OQ?y>A U]Hd%%D>"w~Dz`xXT|```a7GQ,C sK埃 G)Ko50o-2xϫ趣{9(^{{{w}~oG:r(QF]Ga}8G3]t1KŬ.fS'L fR0*NРi8~@Chr=XnҞM3wb=WwKA q>!q !C](vp.u\{:A$V4.|*<.f@"(,_;H$uHj uA 2A;e"f`A!#g m#>'ҵNe pT)83NtĻ (9(#f`VEI.J~uQʫRo]bPsJ9I#HA -Ѕ_ƺyfaNϸk#hwU=W_6xxM'Θ?yT@z57C8z1䁃{!헯qe/8|-6{z`#"N:ո^jTAYS=5"{k@G?b0o1]Ϸn[ i-l-/kOzJc=eyR Ju(Mo49`VtTr=PVTZ=zίz.zznPǫy?|U׫_tdR:J5,ڀӁ)=(2_e*젌nel.Xd᪳Z_Qj#jN8'9A^P9,ՠւ_m3_}=9-Qaaa?ރw 39(uQRG{:1RǼ:VoWgz:Y=Hz?{3 &=Ih1UBW}{ޯqAX8 CYJ S0mUȶ du n 鐪 ۶_@vXLCğL4DL;rI@$RX1/ Uϼ<R7,HLj,0je.DaYBU|ap6( Q + 5/,ќh6mH(uEi+l\:WٸUc:W8MD0 w$+F$sLҨ t_:7zR19/Qf烾 2;T@0FnS؉D9Bx@.ΡlP gRCP(, BɅBɴl =!A20Dv) ,r $Z$H)H.GNц-Ѯ$ևM5s&ڐ+6CpT/g"^pT-gҘ2Mr@oy;U"SwR7zyeW ]e\C{svhi?=ZFv2&z2&z2&]( NEy~`S-J1*%7U©QT$G Ja=p)cp H%lB"!i$Gp.!rlaRF4 O4 6~ oB2S e #A8n0H3U0k +J7ZW ?3鈼MGd Yo:"oΪȨizA* 41Qs+6?((҅ J[xATIʌ}o[`p,Y PJF< 7gajSajSajS,ȺoY4&y5n,R$f6^!vQc-i )Ԅ{-h-&]%7-W꾌?2?U&c܂|WĠT*|k4I.*MFE?6DR28KR9(Ks:J/Jm2<D&[rfCS |P\.3zPGWQSR f~{CTb@a税o:b}i'ye$;$-܄"7$؎vl9D%}݋\kΕ ?iSk9gw as(ȍLc(K#89~ Rrs'G[j~5ѪfgYdgYdgYGYL{ {{w86&{Jȴ42MӫIiR@1MSUF 4ͭdMӮ>TZNNFDž=P|\D6.=lF`5jZ¾^86a/ PcTFQY춏QEа}*4Nm? hBo\D3x+L HD.QN7H4cgiS xWI[GNiޚed+#ZWvG4VvG4N]tw+ݞ//.QY3HLTuqgP Ƌog~$PlJ\b{SҫDɶ3ɶJ(JPxh^+M:V(<^$y$+ /^$%_HJ |OњH/A0 JUDCU|P_(krY@=LC^9f!]C*|w/VINv(1fyEj(Q6+:CI H $?F\H6 UQa9mU)7*,t78ZT\Z;$[A4 A>P6 ,q:E޴ueYF&o%Y/I% O/lo|G;o ҃^Q;tEwDaEwDـqԇSt| }%}k I: I+_3s8 R&r OU꽟OA8g f"}O:Sy<~*y?r~S7E~5k*Uw[:Ly?A⼟ qOdH ~ :y: 5tFv#0j Z46?3hly [xA8_MtjȠSou;xZE%dz*d^H\$'K %dz*o,9Q%XSq`Mw!BB.FB  鐷> P@נ]6*`[zH<-펔:pI!?wKLIb&3%M gJdJ"at%/2%T8XUPbBH9tPb2@)1߂ Ur# BR HV@_$9]HrPp6U:;[Bg 16P70e @nf\> Jƒ QtG?.R |NA%?e锫tjЎa'e5]]X:s@( ꁀMDW, 8ke1> xj ewc˂c˂c AH8V˷חooo' w=Y< F*$JqÂDaA]"@ rP-07n_>w`>S`>s`> 3Z'z8aA %ƤUiA"1AtH nRgnMsnr[uÜ8D5! l A$8ňRY`w x'pDbo~SRLSRL7(̩ "H4=*+t"C+t"Ý+t"C:ѳ)oa|O{(SDJ勢(u'n.NE)3D%j!,I(T2wE74?o qH +R?Y[,˭9j|އo|wJOꊢ+WT˯V.Q8/j=q~ +J}ԉ m*u"dۇJ+HlPI"Q PXphQXpپY6,5y^zzLDy/d(s(s(s[߯}#=>pǾpI;w(6~ \pcCH#`\|a[wāGfQf.Q&q80}lj>p숃;:8P(eK%~`VJ9?}_w_S_Ϳ"׳wy&АJ4 hMn&nР27:Oî  p@ݻC$+Xъ%*S ԟ6RȟpOO§q? $|IRHihhhG5?#HR F F NX@8ab> `˦dP?&1S0ILb`&1?4??4?g_ׇׇׇW_Q<'cֵ*hOq[ kyJj2=㼈YԑfSGH-ǝsNJ;oOө#g%L,]uZ$2t}dچGfQfkQfLN D߹ŋ6ނ8Yd5K@y˃݄](R8fv98k'Lj 9˛9[9†ȹ^Ԅ:1jxNCq<2^sjB2߁[*snUnUiz|z3{8Gb;AA@uj75! i`HkC6$͂'>ЪFu@&P'Hh@v%{yq_үpOP7y@Py@PZ] hAib#"\\n`p4_>4_K|/ ]R=`CC5jFרh~hFר5_ۣ5ߢ[|{4'_@kLULjv*XĈT˩`Sv/<^N!2s3@ư@` M 1wS~C=Cd T?>T??T??T?gT>%1?@;X)X9Xԟ.^n&fnFrV Q;~GGCCC;~wUTɣ?N=N=$խ=#)2EOA%?$Sn ĉ![i*TpL 98*b D'lQy 3eE˙~MۣLL0LDQF]X21dǔ>';L \ C91e"~#Z"Znu +SWNXKXX+XXk7 @!@L/1,/1l/z2?T?Tߣ{T}DFuPPQ#~<Q#~DGCC3~FϨg~`s"IȠlU)9xAentӿ6+8}56.SBנ27T(KR2,TFJG$HCB0&0JU7VmII"I kZV$-7rb'B^QS/҈ f"}JrY;9FX.XXnXXXbG%E'@[qn dz `;lRXSv(j~NmF۩vc;tT@Zm542SUMѫAҁINѫ!RvA! 6-Bk(BMD&:Fܰ0ns` #n* +gnoaR3 M5xc,-/MxMh ĘPLj $܆btnC1n(&bMt0yy0sb____Q+j~EGFbbbbbb> x=yL7&S~M"DN5e9ESWs b:OQR4JݹN5s|Q94s|q(7@߶:f5.k`K `K `K`˸5QĎ \]9)WWNAh]9>tON:!Y`+عހɭ a]M mD3Xӡa;vh;=N=WvvFmg<3xkz2V7f ca)}3cvǰ3333agAA@@@v`_{ɼ08Y+N *a=YȻF[u;z@bE-|nr>]i%iZIaV=MCA%Eͣity6QK/9h<.?3k\-%-a/% 4D 4W 0MӲ>&iZqVjiiZi4J-DW[-Ֆբk=En@TqvP A5j >&W0ILb`&1>4?>4?GLJgQQc>HA$#ᒌK2R.HAhVx9?`;[)[9[%[Я(5.{@bE;Яgfk?lgΎh;vZ+-i)NKv ΁hr_2h3 ~U ~(X ~VafÚ5ǝs9a9U{ib~ DDiDD>V8]h5NZ ӅVt0]h.4xX] V55rQ5gjZkaZvZP}P}Q=?Q=~DՏGC381xrsv!86Fۼ6L*affjm36L8Sk3 3L{V Nxm[-zm{m}mj F8l8o\6n)6SymDO{){UsT}Q=GTsP}A=k4# *Phq]2Ka *.sBfhnA gRDH"eZTheQ!E8%*iT3PTIBD%l BSt Bmq4f \'Kur\I?M ߷Q!y q UKb_@9Ɇ*$fFURqSB*mqTHema A= kP>9B&@Ğe(h}A~?9]; ӵ 99]aKN@$B9%5;tفof>lllllش91bE;X)|B^h^;vևYvVmg=Sa;;Ύv9hj H,r?/Ix$1\^8I3&b2=~ӓ~fT; {pN8`'mW v V .#E6,Ut·KnK^[li,h2ddlt0FfddViGfE^ #2ARha hMGk*e긲س++h&1K`:|V{aYAbd%ڪV[oU*Ah `WVYAg 0$,+H]YA b} >+H@ aYAWy3>lgDvf,Q;vh;3Ό3Aa.o_G[ƖMutu]pqe)᳂ $냹ĕ$ |VĊ bd'zTjFU`3L6|`U09%59ozd'|UnE]Rݢ.gɗ]5_K|y4_>4_>4_?4_k|";jYΔuqu8ࣆ `[QȃE1փIL`mh6++H_YAg w$}V wmjgt3]|\-uE@\]Č V;" }F a$f &1{09Iy_Q+j~=____Q+j~EG(Y30<()5:D\Doh+(h+3 Ĉ T>T`A;W㧎o|w}EW8F~E5_W/Xg}I4df6AP`\Ӈ~-s=4H=4H=4H7jz&(i20P4 ;lLY<`^~`VE_ =|=|9Y'B(MLuF5uϯYP^Pa^f4!U*I/J{bp%qvL߷P-#n'rrAle[`qQ|ϭмBK Փ8 sGp}G?(D6c/1j/1jv/1jVחs}ѻ>]@O!ѹ>\@tO  s}ƹ>qO0 _s}ʷ;>SQ\rODQtT W/(Tė .Tfp1 ?9@y@Tzp5Υ҃9H\ҩ$TzpMwx+GDFEkkk=`_<$T`=l4^f)3`2sqg^~^9y엚3 o| G 5/"Wh ^8{B en oE*׳hؖXt'NZ[bхV[bхg.Bz3ptJ=KDN7ȴMLlr ǖMeR~hQojz{d4A)M{Jyn|;P<,9Ʒ+ Q&bx@ܠ $|u8 HIإĿc+ N  %C El9200q?1LƠ6KLpPqt@o{i "+mc]Է.F#b̠n]uAUo] ~4]ӏ 9xtZ{o;uhwJ+FQI1'0xϨTG(we>J훏RwJ%(uGrђ'ӺiI|SnZG2lq 1y;حG<hOieMY7Yf.TC|d.w&7|Ɓ7r#׈MSeCL|SdR.DF}^T% ]/8N$ 8N$7(܀05bǁ{m^ s^ s^ &=x>Zҏb?+hAZ 5CAbRΡ/T~[N_/98&G~f8Gc}ǣ1,h*dXEdcŶ?Ljb[Xr}yTqD; Q3Cp8g0p` 3b(Tl-yD|-(I4>ȿȿ_鶙~zc=8p,1#((7XWQ]o)CMh]9P6~O]9䤣]F6O]*lNF*1m.IQ .IQ zIe =te =te T%%)k{ϨU?RrJqn4 W)^;H3zlk:O 9}bQ;~GG;*$ "@E-3N4.wkK+ksO ;}b`s`s `s `s5bE;8O ?18~L;F`J2$S`J2$3`+7jG%W)w%pW)w%+ W1j^;vivZm=zNa;-NӣvD~mƲj=_Z_6>Ɲ1888g܁}1?@;)91kgf. l t*]mc*7U#5"ptT;+P5fjT 5fjT2UwP= ^UST}OQ=TSP}O{74{)\ s{C~aQ DaKfj3^L8S%z 3^L{zP޶Goۣ:ÞĎ aOq{s@aOÞ8 _ 6VMtDP}P}Q=?Q#~DՏGN ж+B|ʈCTUCq* )#iWU\WU\pblTqlSK8-/ҤVQ ]p\fn\tfF_.:x{/Yїά$(\tf%"љhdv"s(s(s(s(s[vQV?>t;R~TZ1R8F9G**^+WjyQKQkq6k ٬5g^?[a;-NӢvڈi>lEvz]'×_4šjD~8U܏0#?+g4c<`Ǽ;vl,FJ6ӂ_*mI k%a AHb2A__E>ZX| xa/2_Se_ce_L^*E~Qe_T=!?>O.[Wq˔AMVuvbU3 )"93B*f:T #ۧhӄrp J,( YP4< pJ^;|wqssq;sqS 9Ea ʰ&azy ayy a{yPɃ5_k|}4_QKNͷͷ5ߢۣ5ߢ[|{|QQ8J5.xk`Oୁ=[+[;F4 = @ୁ8[![1m&{3[Ԏ 05`sF`+J7e3o 5'xk Na;vvmgGُ?lgCE~;0|ӗ~m:=4Xz"|%_}Nxƾ;߱o}+k[y;XR`ɡzwןחʇˇˇK|Q|-VWDmDDČ :({Lk_h%D$Z &mCC-jEhhhhG5#-'|哗\Q5‿F v`=s$~5ILb`&1Eΰ4Y3,M K5⬤ˣW>\튮vEW]]kE[]q:H/&k a=AFwQILb`{&SzMb|NQ;E4SNA;ݚGG;E5sA;|k~#L_B{Hic@%$3yPg({PVEvb]GPwњglE/UqzH#<,'z±T"j{AS"@lHZ"2K +xEmLS-8+!'~IuJ_@пF?O22L<`Dc @v 8Jq0-bގ7hc$k~e!s|Ȝ2#sґ92GC(#e&g)sa΂Gi$,Rl^~b(9n; t>X.YRHg'Jβ'Jŏ$'@A!s Č VR(?M[;F`E`; ةpR>wHA!rR ;wT߯kJk4Q}MMԔyHa蹁xT')[rP}MU}MU}MU}MR}M9`Rդ9SWL]2uU.SR>wHA!rR.wHAh63uU`-```V>S@+U dG;rNmGvc;rb|mgDvc;Fk;5ߑ` ݑ` ݑ`l3" a[) ~+߃U>SWL]C] w9{CCC;~G{b}/| "`U9{Nl&r&rM4_rKM/9>s9>[9GUsTU\r JT}/ tPZ |IR.=!?8\ksjM`Dm&j6QG:oa}RU]I]ւSC6xm6Goo]@8Ia{$&ɹĎ½Mc5h&Fmb|~|~DՏU?ϨU?zԸ(}Ob\YNYNYNY,9.,s^Ym!/:@㙱2hnzV7(b"E scc b DP5 gC0 U /hy=t Z>C݂컇tQ}_$_.:K~|_$_%kI:E%n[8{WvVSԒf4fQЀ, p[CV$@h{s \wv@A@@@~3jqvf`0;sC,:1؆ĵc* ; 1fV>sk-Wl`%`gjJaKm\0B^C^CX&h~hFר5_%]M~h~hFͷ5ͷͷ5ߢ[|{4>4?4ߣ{|y3JGU"%vGQ.UQ*ѢIKDD@bE;KD{>vfu+0_=#3[0+d \$JjZ b s϶>lg}Ύh;ݢvvvlveJ::s`u m m miE}2Z.r}Ǿ;ܯWL:g젻۸Awa {}ɭ|h|h|hD͗5_vיF@37(=.&Qw0IL`&>4>4ߢ[|o{|Qj%3wWۈ~qo# m0q(Ę$ &1v0I|ČKtpIaifXy/M_}y6?4jۇmնj[tq]m+NQ/)0AjI](4ILb`{+ޗIT鞢{ )hn5S<%AT-{5Ou*#BJ L$(]c9$IlNG9YæKQ9YVm)ωcu0do5,@+<4TFL*( b&pbZrE~_@=J Yl > DmȬ 2Ц2}^SS.LDk򵻼&)_kKk׼&uvӪ N VӪ tUApi5j5)0פ\^syMlE`wZiUnU1VvZ*U?gT|T?^FQ3~FGCC+~Eկ~}~}~EկUo Zq/^/g+XE`]uYv`,^@eW W U U U 4lͦqU0פ|^%5-Ϝ @&5)^^TQmUQ:JSES뭝a;vjmF۩Tθ6 ~G(rJjZz U4Nw*JkR>ɸCdg5iyzCCC#~DՏA3; Q̎3; /Kamˬ& 61WMtPP_Q+~=___Q;~GG\Pu@ؑ'Ic8! ; T;SgE/@y&fM4^i61Ӻlb?QM|/ܰv#![CDfKi䋘fK>ɶ䣘lx9= e)^̤{TvrɉeSp-T[˨˅VlӃRcrɃ &Q h% n*Q wCphBԄM%,M4 YmhYmhYmhMhG̟'.?h&Zqx':\*Yt˥E\*XʝAKeaɍG%aa+qP !  Q$ H2l@3+h2vV?wuvؓYc.Rq_! \C?v9xf~(?[@cikTH@ciSkThCRNgt4r[DۺO]4>ty 0auBR㡩 .6փF0Z5ׁY~d읻z'>q|w}b:ZA~E􊢈}t$G }i:`=09JE/eA4DwZDi$ HO$ X%Y;R፼=0l-bs[l-h֢EŧkF+2߁N7sp[]݂ݣ(b 'A4OthTFU1y#0%2t\1Wo8s抹zCQ"3*,&e, hZCؕK92(4"D\<I"W}( ߇&˅qSD =Xcȣ$߶rKm+,--Z CM3DyCdHR(d)" oHhg2"0oH aoHM aoHM yCܬT HlpiFp_!(0(DlFB6&``&`ZBr,x֒:ZZZK^^kkkQ< n%<n 7 %x.PNH/pC9!P-"sRBzy2!sG#2iˣ?q5v^?&-fqB'M@a?I P ?rHI{@,At+Y>?2 E9Aݜ h_*Z?? U_=.SP6 ]ݬ2kOɰvr7L6hƯ?'?sg WC @;~.ҧ]d/SSԡ4~fDUgfAպ,݂F+h܂ve6<h0Ee Eu Ŕ~fvQH PQ@&s@*s7A*sWdX"ә^"ә^"әf/DvERm2Zڢ?dXlwRO/;i>mUкhю"8~h!1㇈,| GY&(~[%QTo&7E t'J)_?W^=S~sjhxGࡿ{C<x2RɈ'#:x2ocʰ`F\9E䆀7@Mojw nTd#8OP!+i|k(FW]># nJn~+$VyIX!Kb\$nk$cp18DrQb9(l!J MbAbAb=$Bp!F‚C#XGR]R]R]Rr]"ϯkZ>_X>akZ/ AR}GM 5YG)2p W$n*B%`W$}Fpq78HaF}2k~^~ak~_e+ǵ(!HY%47պxc X85a`U҃jl ?eѣ5M_ Ûk*Mc>#6 s@=d4B:ԓ6FzFrD?Q9 AX7!ż)EX;EYEX72,.Xlb1 Y\-vaVEX-6Z,xm,>S?SSSSSkGz7˅b3cmA{[3Y윉F"$5!IqIr%5-maO xZ¾s ~ak~|G^{YYcgE؟5?,fW;浞^3 9/4_~_ku~aھؾؾ;;9ڹC{z٦a6m*۸zl,;==#O3|=gwpOfr},7f!/37^/XA , ɆN>^?S?????Goooiwi1kqr!smC!1j¡ѧOG>}z{ߚo/b^v~9~9|9|9|9q}9k9,B!gs9sYCBs<&3}&Aw\W[9f9ۯzm.ۏ^#BBR.sb17 Zl!g>51##H?3#]#?]B]bmmmt߯6fZ6I:t0?_mhaou^w^w^w^w^9Zz;YW?l}{m^۷}۷?l^}m/ʸ(Npw"Q A"'6ӅMt!Akl ڂi.h&ˡdQ=vk76k7xX,K4W '+q͓aU'E%,Ú'ȫR%0*yy뙺&@>\# 鋀H;?,ǀ2pH['sR)'L<9<LlE0!RZ((:|eMRS׺$QcSƒ*1EzokU@ vuSEKܙn0r X *d04Xg25V-J + %\'`/( |vZ!'7BD^)"1sh1".ykEZ{("yIP[># 9 Z<ީOpsPCsPweŞ5Bci(:،}x32igdЊxx5 YSȊˈ dG"}HD dIN;81ĭ^Vz)Nv ')آA4A'k Fk Fk Fki㴾T^U>^RJc$:S;OjZ_!x|` 3$A#"HxH]A=D#Zr.(r /4qd9#D )$_T)&%_hd(/L֭>l]fîӰb<"țA d2pF8EcPHbALh SQf:d6̓h@d<&D ĖBYZȠǫ}^6&v{*d@ m>$8 d[{ϐz3 ^Ezˤ#&/uC9:& @; P41rܗi{R$XVEx GFϙplF"eI GD(R&8WH2?%i$%…;xɴL<$)%f &)4-1$$Ҵ oHGĴ oHMiti8lʏg:h:F.l-k;`-k0/gyXrbȋpk%!&6_b!ֿmbz$SD!FLKmՈIWxIt$u(Q>|SI 8^PEwHK/3ĢT3PJW M{5{W>>C5+ũO"s糿@E2hU< w vxbgLvx` D5GbkAlAl=r\%GI,Q˾>JbaĐnhILR-yGiȁVZGiy(OQʣ`|4@|4@tKd+&n"Fh+|篈ґEPa,ض\K=hW&ZLs1rZŌ-k1.bJ&K)3E@QW:⬑g$# '/rXFЕ?gBﴲ$P]iE0ܸ_Df,ŔR$Y3k*JX:o||`P )3E="*|aɬ$aDC )wC=H)HHHHiA]z3 )/gn&Ϸg;=:=!t?Bqv"/@%@%@@H ~蝏u譟|t{tݜF7qQoO(7!syǜ߷@֟qͻmmnz~́ G9z}mosq}=cs|c0\$x`y%3\H`qx'4gCr@glNhBXaEle.jQT+r@,]͠؂0b؊mu2+,|xW~ `#KHNWQ2)7 QLtȣӐP д@VEL%$Q?;ET!N?;LNbfܶ8GW]st^֤  8^P^ پS @Y@@xI,wc־V-[$( HN%}"VnM`d[-r lrfl='h@KuWk[/n5j"v]ߊ{x(^%d@?~K$x4^+w+[[JdrL~~2_ծ[_jyEEx"4^zm>u;xw K(% tGJE@I(wyYrb) ɶ$`) I_z Crץl;|Q竧0$ӎ:_=!v 3my]:ZZZZBᇳw?zǣw>zW:2ςUwW. }BGZ>V5z׭b#^Fl)2kB*YiPIgCY"qBqPCձ%^{N| $ι^+Z{Eg(coRnRoNwLD AQ֡q!!h%iVl $ [Bb["nJdu(ʼn#0fRd>Lͤ}7&H캙4~u}N-~cvk` ߘ [+A|Uzm$Y|W$Β?cN,+$@tˎ@c 0FA|[ozG/ o(w,|7?@eծ[\\-gvvpڗVE#@Q4(tӳ68x .&c 07giЃ]Z$j;/_׿z2^z4$)ɴEwz%y,+ktdѝ^\#JYtyk8~$nXD~ ™p2u3$IY LdHF<`%62ܻܻܻݤbņ̭+vݻbn[w3(XWQ$n€p =BK!kU@EՄc(T3H\!@&E9I$!$ČN=)gxS)$ĒS@PO*~ ;:R8IR,NC 20j5T; +Ʌ2hDA? $ػ  -$@GCQt7vPE3@Q2(X{@cm/NzɥC[f@C،CH0 /Hp¯`wmmmLn[%rz-mtFXC@ҺpH4 kNn5' zۥ; y,j^K4A#wY H֘ӀHsp~t-_:hd9 8wM֛7So#4H2H6`: (_B>v\9c؏c?x~ d:~4u*)P[򭶔[mv)F,v-*3^7%ЖeC#T~Cw @tYԃZ SKٯsAҭC,X"Fmq2m=@z|V멶ݿ}oy}ݿ~㷗y٢Qzb P?Z$ѻntI =P_P@vC@z+~@n+zWr]GZ tttut_\O[ .iq[E?m5n 7mVEAR!AAXbGQ މ<;QB\/$ÙH<5Q姼dqD_}HM&E@B%9,T^@|$89(UqU:[j[UJ?' m Y²)$ӎM!+'Y7i^|I67o*xR[ O*@:̋/:S;v8"@Ќj!B;X2ZdrNi% d]|0Y3Kt%s{ep/̩R-]ĉς1DB "uQ@Zmgr[m<ɭwVߗB.YY}nSR}1%-p&$À*;<;&%P)Ϋśnwb 6uNw*2蚘yHls63'R,%ݖ,R*K iR蔠EF ZTP!Su7hQQ ZTBzؐ#>: USU~rls9!'6ق[l Ejk-J=K&WKC4ϖƇ4G)A`1@$gY2jqRl8OTyʭp yJ eZ@@dȦfȦfS DgF{GxS֑&oChѷQ`c_Z 33Fudia?˙d:H@GqX?*󩲎*V7·¸Vd hEr+eTYeYt^~ӎ,KZ%)O>^~uƢבPnnoTT蝧^:HI7"<͇+NtpE!踆pgt}ߝt;],ddLI;ɘ{dވbhUSU;Mc"[p-jd :[5eTg9@06b-D07Cq(BFj~65z97rvסnhph 8tOc[o{Sx nYӠvfM̚%6xޝh}GXEzcyLE_d dN|F2SU;m6{wیlmFl k9[+E*µO{݀I0ٮw&[ndV @R]dN%iy,۝A"8Ay$Cm쪞H ֮=P2 }"nzw!⮷ze!Z{/@*7TNR.6m=@n+n{aPОC$Fâaq1c zLjƈ&eM1wӤn=z{zmzq?DƉqH>@54 ƽ2% 39 nHwɇN=ۼ eNª2QE5]qԛtimF6#[Ellgd*뻫tT @hݑ\OLG=ѥup}x5KQ|(Zۥ>15 e*<ܙ$AR̥1Kn}q XB D1.Q0@yyy<׋lgti5@*A=(bbbm͠qґCaѱgnh wh whƅ;t)OJ}GoS|"TnnoZ(\'q#nAh_|Mu GS02 >ovwdЭЭ?ㄞOںӭC/j8џq?D? đ2$L!=x]/t{˔̨6x]|(6x]/vԄ  % U]EzVe&srƍnon3hFll-* 76ȢDVٓ_`/V%ʵkrS.I2$PR )CR zb?zǣw>zסtʥ-; ; ; ;ٝAiz43@Q PPfwfw$+rhT.ٮع ;A_=yBIt-[ʡeNٝAjq%JbcW{dF H5# Plҍ$@!K7%HzilUvU:C޸57n-(%PdK,gPlQw*k||RS1+Z m q\rn4PE.OOIG+u'"m:+]؋vc/r]|*ӟ'?1ĠwO ZӟOv;OĠvO Jӟ¢j&U{]L_Jf -W$r%@r+Wp^XQ,BkUSU'>dr'-EJ-Rd l'-ԧJ;"Cl'RF[p~0:Pe!BrR֙prcxI_(K[?DĘ x7lxh& qD(ber^`269̍@K@@$7\fe"_{ox,C:)9E^C9~ 9խۧʛ".GRf9o8PrsY 8yʇv*[?RJ[̺C/QQM9uoU|$%I!";<ݛMXۙi6YIkR{|T7a mz<^&Yk[Epozc=WwAj>PZ0 >kޅYҔwg4%]|k:Yd 0kV!J7dU{r$%]Ml Ȗ@-"[b9[$If*)UR>]5kK==ڒ䴶)9ӺMt9R*vnsmaܱ;E!L7O7Ob7O"7O^%ei`)"Y9ҬF)}RN 7J|RŞ{Tg=u@ (ӻ'PwOLN\o{ 5@ j|_d#Gt-F${tOnNұ7t8҉K'c{,;XLXVe{,˫5nqK-Ȗ@-"[b9[$f*9Ur>1kz[;cYDzme-2ncYpѪJ]mokq[eݦankT)g)qOwDb]kc#Hǂ mvDhR"!Eh.<`.Kr*1Tu}4z_%HsxPp I5LjHa dh yaRп搉XO q_ CIQo֦o3H~.FVBzؐl~X$CH["ڰ"ְ" <ngE_gq*UBW뫄vzs|o=@QPT<u/;#N.aDN- 0ycE}/)^S^y98BJ pH2$= )-"-"ixb1r'2*, ˘f{ljSTgaadf4-얖`Sh9@=W#3Ql?8LE2诬T(7ume.kjJ{0+90Y7jk:|3R*_e><`%9}M7de9xn\MA PK@iFv،-e(S Nu\uo5GI#b\tD̊rqbEbE3e>(@9ƍ[|uF+֑8$'7: C pXERkӺ$I+ClR,沗 p.CܩVS"p"pʼnaPEʤaLzWiLzW\3O$]vg.fwIЈFCx/#LV5\=+YCWϳeYV=*YC\gYMՃ2$9$-ϑDR99,,˘I2fH\lM>ѬwԄwvbA%e!]RX+wxh_\Pevnkt[ڥ.F3zfF2*R5֮v-k]mq[Χ:H"QSqpڎ(πNR>X8EY|b$ec3|bHy{aw?eTASO7ޞ&]=(7Ծ͠6º6Bݶз ܶpL =TNk/tK-n|_OyV9?hn |o Ɨe m~wH~; g*9D: !Mb$b aMRNi:|=Wq=~CǽJ{-G-ŋ#[ViO~V8uY?|G6=q葵GGl^e dwE& ҌUo"rUbYRCjr]q`¢ {&Sh'߰@|Y 6EfAoRbXd27>Ib$f/Jb~\OG"H5jes<3( du9Lק{ >ES)NĐ[8(04a hl Ֆ9L|a ȡ=)`RJ{ ОTua 9)a M S@Ҟ*-L[d n=Pl#[`ug1GҞ*"+X}mnk|[{t*2oku[{~g=mYnznڳ?UYŬD+5XS+ƚʶƚ֮ƚcMekqI`pex97fٍG<ʐ4HBܘ<~ϯ7+Mq[q PTu(KRJ~McЁr@SpȧDѯIwtOGm@OGa@|}|XQGssbQܛ%{\.&F˽!HlS~N_HtWRQxq+ElJd n%%PdKȖXv٢J*5UQkr[ڵ֮vN[w[Jgr[ڭnvۼMaYc['@b6 Aƶ1[{llll0| 'd#1P~6~6~z6H%w1TQLWG1]tH9ڷ=RmOԟ}S hI="kO$("g?H"YydO_H@@pAH/qf mbYB,F y**2C"gⷙ:tm:PI<`٘'$6:FH' _ dAH EW)"Eh9:`5؍2qux=E9*^/Q9x]ḣN/R{!{#ـ5^舐:DAfc^_| ]D`g[w̜2RZ##[1˟@ [oE0H0Ib#/u@y ?%N!B/w]!C.G dq;j$!EBҫ$$EbXMbX&1IH#9V^bb%fbv@ f"1\=˅ k>/uDH'b" &"O1/M){s}}fGQ9+' $f 2 Pc в; - 0í So3~lj>̀cFMorO%ڟ&|ln6 MG{7ɭf1x0cN35Lf~0cƾo0lKM4&4yΧs=M^䕞&|6ӸU&4ykM7/_9q9K1KI)K!0%&F[HEalr \g:[@n(T; mAT(E`[$B,J p+bB %PԪ"ЩQh$N.oɀn}}@ EV0%L@ < ץ Юْ7@f⽴AZ зB&}1ZL6 odE4ۖs=N.ijS IB   K|-z`&B $h_q~oj[d)D5WAl ƈts%#P`Muh0sա`(S Ǝ2`(SƎ4q ;n3l%ͩ۴**;Tej"[p[-Vd k9[wEҞ*Lk^vڒ^ve(gs[e8[S.kKz)t)h:im]eUF>>HrpH_x4/<\.c/<\.c/<\.c"\.Y[x.lY_x07 _xUR=% :4XG{f yɠ7l{NM@'q03Bl|T} _Bpk˗x;\tp4O>~)hgk囝 vvh!CĸH=+|3gBR3gBJ3gBBsQB>sQB:sQB6!|Ymx,6"[p-Fd U-̧:Lݬ=mokͭErskѾZb蕞+}WYw=jUVmUnkz[{ګߦ[0ݚ׺Upp+6K?VA5ex26|EaI\o(,RMmIdS@mV ?'g÷jٓߪ$B=Pd e`L&|˓2:2 H-"X" `+ظ"`KgÜ+~*ho{ 0fZoxDI/<$J}HvZgFjR>u)?MݟCʧPeǩsȪ87?ޔ[lEj-Zd lѯ[d*2*x= [s͘xxd1s}qhfl~@ǛioaP oo?޴ciG7hDq´mj̈1>"[7A0ߩS@S2lBd":65dQӦ,jԐEM[iC5eB5e,,!UiO~VYԔ[Ȣf"[VȶCH" ](FҞ*#Z|ve'vڢ'v֢=퉝Ӊq;ҟ*2/k.k3=ank|[;tvOqVFPw}̂U,15]a8Ydcb]#X{?,-,L;%1dG2#)_@ MAP LC"ȔB=PdRC75XBA9#:V)RMh?O ާAS-pH1J/uV+z!7"]PjֹFY/RN_;fJM2Q Ӝ*VZ5usl힌f0naxu}U@wڷ:?$ uCmPqvnb5JyԳ[CrK-Ȗ@-rd l-J=4w,jokq[;y.mnaGpsP>UY.v˺]5ݦ0]-k}ύ!&|#k&9Ki]M?fWw27q;-h)J@f ]3MdaⱫ@lج/b?x͋ޝwk7+E=Iדӓt=y;=It5] =㝞irIwJNw*ϸegrd n9%PdKȖXVF#IQ٢JIw*Zڥ.v˼]mvOrVk]m:nky[t;Lm햟*Mv&]fߐMgSvU!h Nw[\'pdޗ@qyS<"yHDdHDľAxu)SBRkop;$xi >CWϾQzDvjwHxTgbr-@3Ќl5-:ɌlY?UYeژiv`nkhokr[{t2x̳ʺ=e+=cEӍ_x̳W$GH$ H2$z(Ȁ"Z9SeJӧJ #˚ׁ5ռ1+qblF1ԩe.R*S%e-GD*-T"[VOvVf2nky[]mԌ:5Vm}#Wgq[unmnk|tn*W <%՚ a=ѮmUԍbQ(ݠ=ZE.Ur[ yDP>1~e̔]x8YG<`C!iCQM;8Xń!iW"IVL<dl7ݦoo! 0fUO7UO7D-_΢e,_΢% WOvzuUzSo'7biAm~m$Dll-J*i窧'hEkT.kT/k.kK 3 ^x.kϽfiUtҪ|[;ڹvMankRQݺ`Rnkz[ڥ.v:LW{Ҫ蚥W)k]mokq[tukm*-Ud I\ b $Q+rΒ-$hc?"A{{mDRO hAv$ lAخ#=06괧NSy>Z֭Wa3mam-w[n4TeO 2-.Ng]AXVHQx:@'ЮED?6o,HDe2!C7"nD^݈H⨼3=YOP?" V$!^\Dy.^ Yi$Ht vqH $!HDmZ9et+ك_d֠HHVr8fqFA/gKU6Vhv)V0u`F l<$ c=!; 'dbAڢkWZ3z46nF @<[?7A3߸jDq5?VFF/(ՍUq6|2[2[2[2fKeyhzã6Dv6mmx۳ز V5viqۆ`d^0w2h|hd$_9Ԧ]4U͠zV>0u}uu}${Yg)ͨu!~4i-ir _Ր$HORdH~z # E(n5xT/ x)h@u. |c"72L4>AVKYdɖ6-3mJvmd=/6D y!YC ҋxcTB֖,*(C$n=ȐU?PرE٨G@iEwO<P3xn@ڕ}F@j_Г>ޞ00S @ t+Fb6I#m$F$&I$&I~C_p80b*DZ Ug>k$@s@ѽ̷~nft<=`:lT1]*9ܧL!u.\a.KNu bfViX<ѯ(y_VPJޗU&6ܚ-1m%^=x@ϫE68q%#W\m*Zx0m~kE$Ӳ&^XP _4[Hlm:^*78b O!k);ŝ.7 ?OEt2fP,TSm @TՎDӀ1jB[ m1b64b6$cjvoTmtO  ,đP5I5:L4LFU=:TQ:X~j ?[+JuZab52W ?Хq&ÿI+b f +jA@tПmTͣa|P7)!z ?/|)<w|y$g Ϙ"9I"kx$gL nbv4DCqݬtYUxGlbHo>ES$ >E2)E2(2/ IK6I˞6I,"V6&(F3ArS3*䔅fTV t!fX4E}rS7!LeMʒlYCB\9#W-}1ek$@H`>I76a5؄,cVMX26a؄8c17a~v#ƁE2}x<@x7nޠ tD|D؄c?&;.>xS^E^E~ݏ2(sY7(sY7EzC$-ҳ2J}6n^ْ[d hFvٲJ}lHMs e^hX^&q,irJh2%tgrzc)% d#CRs@E#$Nq*Q?;yĉDC|CN,'4\NI!Dylv/(oQwDͿLXޒ}A~i5L 64s k|bۃvڃ4.<׍ngc68qq @֕%[M97֗L=BSii:oSxAQlqKV@D5`lUZrSrg-|rOy/2/3p_^g!>w곮WU|do8!֝Q:uG G_aw0fz`hvFH$_H..Œ..x" ƾw~{7 w1~/ #j hҢxz\}D6 ' Q;-A0B,7C,qA?.5nnȵX[3@H-8s#˜?`FB9 >rlͶl - JF P+j%B<xc<뻂79*hY/TК Z1G#Gۏ~o|ԃay y+7fO(Hsͭ\s8ݲs-wt^zFƏ^hwFj%Z.gtg([P NC1:Fbx4Iv; =ؼF1(\ňkb%q<.$F \F o"fHݝ{d!˸]NAlK&MA! ID*$E IDMT;iUCoͶ ɀ$䉖YJR,: ٽk XlNoZbsF-Q5,~YR,v3iսk9V ;ŊI1]Ա]hBO*w 컱]hBQ*w lC_Cw [bmhBbq7 n/ZwҺ69HRAYC,!ƪO䬡,dVz"$5YPziկBP# ~zXi$ny4rmqM9[`I:-k6r g]&D4de MG`p`0CZӣ0B?S,; ]37[XP$r)U{OTmطA*jWƦsFeȬ/[@!n6-0zo6\N͚ SGkGS5h\6^6]6aN +;ıLǾR0CJYh uR055y+:܁}F{F&iM9!\EgdtdޙTڪpt(,iuiJ-fLɆm s՝mUAW=]2SPOMGÁOmMs+wrwmd mnjtuk'I .}~CգAp~7dAp* 87N&?"ݐ z[$ Hcw$42D#&!{1?v~2BygPVaMaIGB[)S/[E)Qoՠ ?*lGGAI(SaJZ)9MÔPllS8覤}kqCu&b6=/5FI &f+wr7k"ċaMm6Sh"-A6ʎFQ^%L0 \.{Eo]\޸ f<74[/iMtz8yݷ^4N^g֋³ԐYD,qI7>r #aa}U$#S }Ii3).S15oS45Ӕ ,ڪohzLQyWST>hy&jn[4-{!Yfꖽ RctAT}|[CQ")2p+5ZҺf6\KZ̆kIg6\HT..꟮U4&SRSi9_ //ґHJ|9(,,ly\s̝ә;˹"r겿 RctT(&CXHN5Z>ѢykVt^e¥.=:ͭͭͽ5dkTݞט RctAN5ICbn:N8@q!* '«q!* '`THmcD*HgY^ߙ3w)SuCg6H}ҡ> CG1CZ pUK5]\(bd:k}adIVwR=-uE"4z0Ш:G 4@bADnv5ɩ,b#C;$|DQH2AXrNgNs:7=v $9w;$7_ H҅M$&rI݆$.l"!˸ іO" "ILRv2=J=(U('H?5x-2Cuel9r~b5mY=oH@)da+"xwCx9@ K (qz κ. y &k:Ł!:|۠?S9S9MWNc+}!-BRꘟ>Q4-Y [RdC%E9]RDC%DzݒN\ K .}r5uLv~qCt`(׾vaoS9|*Q\9C:Z!cyt`[:??mbUiD28i;k^Ni;gvy ^BRrj%w5VqˇO FR&/I'MuHDd;" #d4l2LIuA|')j;!]LXոm=;l6X>$=Ѣ(ОXQ,BLX7@dK}TIjE44=$(i9;T ~Q7@-&c$aWSCP&@ZArN,$W/K VIZ{^^ˡVR鄒M'B$e|h *dHJ<i7O "y2v"<C;!*؜mяY5vY5[uU. \,VpxN@_Tі&[ODl?]J6&[OLj[9^rkTN{ݕ_e}' xRc؈(oXVϺӬu{\Nj5 +zWPlf;byYvTZ롶#AR;{ r WOJ@'W,;.]2pI™zh[ZZ1NW7JW71S`10N 0Nd;I-RnmKb[ 6Tl3 GTOCf0^C ކiv W],nJ{6Vʫbɚ^ޓ55^hj3M}泩Ni9=mޓ=kޓ=_FKߕ I:0'˼,i̾m.msn ,WJ'p2v9OBfTۂԎvjj1>#DNEG |XIL/:E Cb7HNǏMMLm/rӼ8A {ql|i4=ijz8ijz9FJWjiiY鞛6=0> Ln1ݻt6o>sӜ݅W>P_2%*]Lv}S]*OC!7"ihдlZ"i7`hz`hz`hz``=}f"zujש_^ -5ζM3ma64 .ؚdeQ!8->()At~H khV*aP 7\/W%Wf7<tfiI]LUdSG[6d~w`K#L昆O2g+˦,asM\zؔJS@omb(4Ml8`?6lAAqVVOpw_D&;&2`E&2`WbZ&2`{ Ȁg̐6pkM뾅k=\']k:Z6IֿN~:7׉g!KHp}"j˨˘eT҅|H1smhq+ӷv6=Bybw񭝍CPN=I1}kg!˺ț|Yh|zh:%@(ZGڮmrG@$QiŮ,~H~DR~]{ ɍ~/hwߋ~m hӍVXfA*ӥ7p ~2x,p҉N4Mo_SsKm3c ˗Cпn@@dʴb{آk]ηnr2I= Y֕E|)4@[͢hkYm-6j{QMhZ̺3Py$*juFSҜԲղ)YHk-mm hۍ=mjKDto dh|Mۉ6vuom`;w7h{W{8~lmflC}y_K錭~59[1XO娟m ;{;U9陎L ^b߻٩-r$E|;PPO͆RH$%Bjb{q4-=8ه; $m\lm閥zK,P\ݔ,$K6)mh69mfOIS:%n>:o;-^ɇ;knsye,A1j66w۔W_s_K_S?c'擏Sҝ{!-[l g^H2!Aɂ,I'B>e Yy(aeJ aXO+] hW@n+] hׅVGY0_=g6B!1փ\GoY[q(aiJ"Y> #}i}'G[>GDCd$ %GYg暦#('>6B[pX;PXnl)·)aw}V^63g{0ŲܲP\%Ԗk%-m hˍ%mVMH-oOHMhBH !U=N/;m~YegihPw=+M} uwC߳BPw7tֆge -˞Z.W;v=mh{@o=hǍv`AhmB#bm"bB"b*鵽*p]"L Cud1#K90W5%yT3 hg@n+] h׍.OKAcfƿ@>hk$Z'Ǟh|cW43 E"MJz Nb2EVfdH&lj&牂V B+3i{av1<r"8RL#Z-; ; ;3uXY 5#? >8arH<>5X#/ykDiF؀xZw\N\;qVNʭヤHob#%_Z %6R.?,EZ?ltgibOxvtUx aӵ֡e\9:Wv$S9:JFw΅εOw.| =E޹1s.x; w}Y'ytČoc#f|1 /4uR5j,@Y_!M)=z;uJH,"fB~aH$1#Y_s'uQ2_ (d0uQana]+s6ϔ2'aEyΦ% 35_k"] ڮ&d%R@8qƑ6f*~mmfl›u hRrh)O.+͚֚Zk\V׸l6c5.}eqˊˊs&fas9\Ξt..uhG[?rіܟq)+wYa\~6r(1nƸv ;k6mth`c>K}ֈcc82Jdm#U"-my=mwAjf3}Lߗ^iS/ξ%}O/}- m9}ߺq$2"_ 5/ěN ӇBo:}(ěNb671}G####׈##YYY5.k\V>.Ml6Q.revˊ mEl>.+6mwG|S\؀ va/l[Dž xtlĺ]e-]e(Y(7 0f;o" - 6I;o̐e]Ydl A/~uk_`%k6k< Y,BpG5m hk@[o5m6$?r)G{h#57HG-zԆ{ʰVExjgqpBxQJ7n>x3 Sxֻ;K}=Ўv#7΀vh;D6#+_(Gd+$tC%oP <U$AIh|nhM!5hB~`VD$iZHRp<4N.d42d~U D~U*D~UDJԸ  hpAy7)FQ.Pr/ x'])7Լlkve ǐ$LtC>JjP҂~+a9,},-lAdw D6qui(jL@V%`G48u_格G9~]I]IF]IB]I>]I:]IB6$p]X%1%5(iAIHtQy? H kX;'9ӣa<ҟHUDս:+SG> t}qyuQE)z8rpC."]!PIH < қU$S O0Rfk'I#Hd6}/yKy|Sc;7ŰyMY^Yr: RN `q,v P.><4m¶WmՍ sP<>Hj@  )2k$T9nM$AS&Sxs/S0H`wm D0+9k|{ORAIBIK { A!)PR=˯ 8lÁeoLi!ɓ6-D˴ۺ,HKO3]^;X̡WWɄo{PkI|[WRc@<%p#vb 2$Jʈm뽦63 Z 'hQFy;p +\]o7ocrX7F&!jr8!bl2Rq;F*5lj?`SCD::$ 8zm"]f!:u.4BuvO^!Wy rOlceG=d1N# q8f̵\˜ T@gz J>wloo\w-Е<2c@W} =*~@z .hpx(az yjO.m||%0}AB&P(|m@mWݶ  M  v <(xq(aiJN`hs@6hs@-oQQ^v `PTɇ-8UNp8`xDL'buTu>PHW) uThuThuS> Y ]4ɦ|`UoݔeS>hJ $ HT&P-mm h[@n-mmhVn:SmhsFCw3SI㚰 y݃Y$4mt"i#ȃ A0m ,5diw>yQiz-cJbOsxKV'=ev0}kLq-w{\,>Jxq(aiJ>:5ئ_"W>IA 0%5L bRnG%Pk[-N h(] gƥؤ?Zyyήriiyή^]E彑]E dfiYʡ)A!G]νb97@v@~@~@sXwp:gѽ뮺>C~{l/b)b6x8F8F8Fc1X7흇fslμwYY<n>awj+\W<`u=d2:UxjW|_k\C7r 85t{wۜ?lh3}fJfʷM.g  |Cw{i\xm{ 9EK;p)\5-cqN}U *\릾s \읟 BLd\}:/\C_=ʝe,΂wx:Z.ꦋ1mfP;?BܗmETD1e.lDF/۰, ͲC rdJ-.KRւc.E/tOJDKxy"^^xn DDt,} JI K^)`:SH ${tQYLmJijDQӼ'tiQ:5(_ߧMD>e!K`JQGrLCxX}]؅l-d3~]%xu^&:c,g,Jkx/eGyyѫGwM~Eأ^ѽlVu,hC y!:H ZB'3H$<Hڴٳ#KTZ/٘xA6y <o2!C7d3# '>'n;I5'ջ#Tpbpڎpbpڎpb|F8asR,_x#xrץ{B;8LH72԰<&8'GF NpIvWDH tu@A2CueNBdoڐi;<;An=:,48W'/ݝ`|w$8u!t )E3䆃zf/˗!!{|aHf}g1#KT}ql^y[:[:ЉN-OȒsR,[dk8R8J ~dO<ɾswƭ]ܹ;wn7~JjD[>3Mzin&WWޛ}Po>fO=l6A^     j`?6țql74H4; 'vH# }vYV4oQY +}sv'eɲ̄G`u>ɛYSu BYiYD}rڛr[r]&yYxsg'0Oa6O"IX/M~_ [Gqp/*]+Сiv B,f"iv BI4Gqy*u*{f)͎G uAv0!yP| C+ $ݹPR~PR aH5!; @,}h|h|h(8ns.׃>=匿O(ľ4oL}PGC! >ݰ|2adv#dvVCZ a×q(嶂 .\9Kpro˽G.\+~XV"Vk?3_Ddk:7gᾑ3xo&>L=YnN_=:;E|4Usʝ:NylAXcܔ:d6ܔ:jؔ:TuJf9My#c35 F\& Ij:Fd쭲ЭЭVu.߼uraf7$)Lgq܆ [`S$ԹDȥS=Ԃ{#nZRnPR=R;p{7f q:q5'!mޜkLbkz^ӗ˲͂b; x#* G^ʓfGJQ;yDWrx8ѕ ,F`nud);έt7¹0h*^ oքd&5pO4 ṀN(tRI5e!E>Nj|\]Wz"_E| 9iORY˾ 7\  nk`2v2< &' вeYIGy|,k)+ -eq%A^,.&d%E KIJ7K,d>xߥ5J+b%evaoZpXpl f7+ /w afRؘ8oMӢ=@IXZh7=5ΛbXg4LC4|脒VL'T Z1ݐ"oE拼 y.={~"Bۅ\*ƪzif+".tPW]ʡPh@HC3S۬]qdi!K-_~$y$,I9|@!fh˚c-k6,c'$pg9dfb;Jo,R00N ̶0xN ̶F-"Gj,Ab5V$h!l= 9kH0r褒j:ΉbR8ߋs~7t8w*fWv!窠#Ģ϶u]ζ(g[nQ>JID$AR# $<3+$d}BRd$4=u~P:O|dBbBTݲJ*`+eq~ݲJ?nY\re,.ϲ[VUxڲxgݲ4KMo, mYF:FhW!vv k+g],ܞrpĘzҫKg+N!0ȩCh_v=ݵ4_Z w`Cz2l ln|PRhε(,+K+: \ZQ!E>K,q*zd)!Kȸ-=)l*`6a҅$ IZOIt~=l*@t~=l* Jt6# Y֕E>hVzb[ŶkhP; XC">-H$I㵎dy}1 Jf")ullƇf|AuKlAc ҌY(QsW¡kz*1$f ɀ&$ð-$aC3 /2sYQy lτ d*+8l̏#p";4R#p<`[r{sG>`'2_VSϜ;}܁3LϜ;0lʌ.K-'⑃;Ϫ@.рxEa_1t+.9P#n5upWXj``q "E==`{QX?V6l,M`gO!! x}]"`ṁRx6/$-l3zgyz;zL`jeC6ғ[/6XL z~?Ì2]gQ t/<R/; K5$; `4߀$W@d^O>ineK趞kns>=6c}21&c%P򄺼_Wz]HB)~ʇ0Q@r &7=Lo{ n^q~!3V+z =CBϧB^;sOnnZNLڎ\xbf.QY YկyclX}g=VQdP-ۿ!d8$@A2xH`}[Hh"EB H$Re;p=U| w>mh|\F2r,.Qc@S.O8 \pS.3r\> 8~ S.sr3\Of=uaje$2Mbaq"#c?׏cӥOf?YʹΏ뗎z1Fp~ 7p z"^GvbKBNEdk}* cQoHʗQI2 F#&pm8 ?>ttZV9}U.tܽʊ]Vw¸UBY/UbY˪䧬0>eUPV eUz(2bYܧʪPV5?e!iCrQWڧ\8Rg,O`}&'f!i)D)ri_(6B˥\\z s(^r9IkI>)2 oA20+&}x| ~<1 }%&vaGR]q"'"TqF9k+_P>SPnkYn:ͼޅ.䴷Ooqnvcȱ'XRA͎'6 zF늵(íYZ+O9%e zBwS `?etBN ~$m_@}C}:CwbBKp3]<CSVʪ4{U)Uαry*]_(#Uzʪ]/)UɡJyʪІZi\JS.>RV, RӿP.5r%KO@S. RǿP.ur+Kr)Cʥէ\F%Ǭ쵉:@UFPrv $(7 J;mBP&BQ^Eۂ[n   Åz؎ը!hC=м -^c^b^a^ [at{+ Wi]akbd>jRzʯU^vn=Dk7ZkZV3Zw3AƔ2Y"ːrwvvc7uuBo2""MFiy(Nc/%  `!T ,d@P\~e-} !C'EAF7jmW3ΔۖSy{w}1+xW"Q.+lSH;M!BځfGF+?TxSy<È#B:SkSˎV~|SϏB=S+$OqhɅTb\a4ˑʿ<6$PI1fڀsWXVܮ Z(nw׮u]Hh]]c9'4[_j]WWZ^je,=E7~A04 ːŔ@Lڙ_jA7sm\][ˡxxx#!NOſlK2Nu "}IS{?aJu(hxj_A>4ڵ'vHw PJTry ­d(wT2b}*,>|enJ>2ۧϢ Y|gnnڟLcmR/H֏CfR㐙e8$#$G6Rmglr9V6됄/Cݒx/$(!]{cu=BӶ c Ɂmz㡷=^LH #mmƵmʆm 6 be(oG#XzcOM>PSc;R89iILsN`6gS0J syf!7g9vkwɕ/~2pA\@ۍr"4vPx=Z>Cb:儆s ԎlV(Ч/밋C:u9E8GB@3$0KHfeap+( [UYlJTw.O $+vd7a{!YфEUgp3D(UgDsat~ꭶLS/Dܫ>?wR!). x!Wure=!"AI'DLr2r>N>OԾN0?78> oqKk[{1H(7;PXoʷ|aޔZc)_ƺFB}ߟ6Yz2,ڂ~QI_3vLP (D$:S`L[8tR4TL'J}Ws"'ډy.䭿x;V.Xsp9RH|1W$k̇DHTAaTtrOu.'G^\(9 wN' #A$ݎwd!K{.&Հ+lpaZ%@1Ms4 (,@`5E27v褒n:dNph+p΀sƹnW\ո\g30_j|- 4BQ]_:J@*$屻]M.eWSRq5C', %ʮ6P$5_~jfW̨"OELeW39+VqaO%;NȎsECf`zJ:j|)upBKKb;SJ$*%c]¥ 'IG倳|:T:T:Tj8H) I'YfȲ,2P-c:;;aїޮEތ P$֌ P$0Ek5(v-ŮE%9M2SC1jjx9DM.NVaay s`_^W?>7oiG;tBtYA%0i$pc= vl7Q8%ݤl-& Ȏ &0x{$7^1J t8<M ȸȼ:G.Ҷ 8:aMTv>uc˖Uǖ--6cYˊtN岎8rY#˚OH+Kx2pS22$C"8 *2$ `hC5䃩`dErT!2SYJʨin(B* f ^Vš7`s^}4C{ S˷!?x OL}l;/Yc{P "+eAAld,@ceo`K>j$0% 17/T$ Ti! $ۡo,ŗ!Cm; Qs7ChS83e!pTu^Kv[mo۸$v7Kj[ j[Pۃq(HYB e;]u.HlB ^/^x_Ƨ eC]}9 Gz r e5.Q߂۶Ҵ][?"eV"[0Sq%rۋzH=Ka ,*Ƽ{ٍyWN~UNwWNp\!6gt9 ]9c殜1sWͧro=3煮B2sWLvz[No{mo9]MHfʙVCzVέ6N.{*$3=ycv7{k6mH $z>m c$fz-[򫷔Koqu{PZ4ՃL`j]*'OQfaUCf0!T30!0!l3VY/ⶕOHPXD>o%oZn61<473Ć!aKmx0uץ.t7YPjԶjZkG? RƷ 7 oh߂-1߂-9]˻ gy rץ^f]ro|{ rW^+jWï:£uuiGKӇ_S|JeƆ_)ol2c/](YP*-!ݟ^Fxf)<3wMLw;3s\f ]9j殜㮜%r4YҺ*ܕ8i;M@6sW,y3]]jA-3q|1eHſ@&!d(`, 21";R.Yda;.] }X 6&jja3yDLiD30`U[Zk׾ɛ j׾[ jM=Z lۦlۦlۦZMaw,oé]6]}`Df_Kd`Df`V{2{2{2:^s[4ՃL`j]H=Qjjjaa̻=`0fۃpx5E1# ^wEdBDFdCDV#jjoDV#5[E/};Y0َKyҝ\ |||\al-B{ i+Z Gu=Z|T# 555 Gd6#4j%&w^ZD«V\jP܂(7 M0|B'{ wa{ w;| lo!׻So+@grgr ,x_cEo+zo oRX{=T+u?>m~|9s;u\w; #>BhYޝ:j׫v~ڙ.2C9t.w 3LNwueɶ e4rX46ܪd'z@[Dz[BtWuKbkH uTml^|k̸t׸I;+󞐕ya6wdT?jF"%HX~H ڊrshX:rS_1II%Zs{k;n3AJe5,+}xj0{js0gj0WjS{nxnT@m@nr$&J4B4UFV}5ZI#kY3idѫ^,~5߭.>rʥ*= # ) + | 0üʘIr^E/)z}Id{z}ɪחz۪>~**-\!\P\`żʪVvƶ"~Yx(GˬV:S"}7vW{j}jFGo ~_Λc+B} (Nxk|I#F=Qd#F=[_U,g?ۦi՟c53AlkfR=oI@+!P$ iHb(DP)妚9?˵|39!I We|gģ|F Iv*m`*FMG^".fɞ >@ۦE %| M,_BTM*R*I$eg ͽMDzb7ˊˊˊdˊlYرteE'|,+:cYIˊN~/+vVˊ]@e/+v}`u[VHeiˊ~/+:{[V {Y5]!{YLˊNv/+:ٽdmY&kÑN{¡9UN'מ#ǏU]=Rjzf/+^V\^V\/VR I$鸫I0&mo6IԯMB•MBw%w߼D9=%J$bɣ,URKyURK}URK{TRKO*)#[%JzURUI^rDlĥA_>9ѺA;$IJu%cq߾[~jVvn-iemh%ۮڲml^%4{pD| `=Q&i׸F}k׸Fkdc&”Do39:#39:#uu&G^gruގ|yבWzyۑKhFQ2v2*2*eTeqze^٪Wꕭze^U/N?n㦁*ۭ|ipGÝI|)}q6Dަ74-)݊㗶dG";YJdM9anӞtoxz{מxy촯D_ʷ;jj%VHfbE7$旚,I̚lo=59RnRm&A$Mj ]ԒJ'H*TBTBU qRJVUjRjJVUƫ5o,aˏO9tg_K+?$?$?[~1Lnts喴IK߭%kKݿdiz-d8|"\>Q\NQlp\V$0W/W/1.e{Aj{-/Z_9k(pr&Gkr&G{K{yoɑ:^G{9\N2z/>.2 5ʭg٪GꑭzdUo;}=ӫnkgQDD;=oEˊ5c/YJdW"YqBH$BzoH1iP 2`虾!aR,8'ł#걾!R,8}u'G>:#tW9NDӵO@HuV!uU*S\H`).40+CHf(*o*0dB](NAEDEƍ| #Ew7O!1DR$*Be$>FDuA#;rRsv2 ;Ȑ=pY/%/фZAAyjx+'OK/HdDI_+1,rYʔYLiy ƛ{_A`\EJI!^~ ;{xcD ̩a@SYaM 7+Β@ n7jyTX-/C Wfȉ!}7C*Y Z$>:mEw%ڊ.ojpff6 5 PqjF;kp\PE7sKڪumU_, UwT1 &C!0e+pmEUsmE%\yKXxAofXI 0à }`ÃaIvg&Nz]7zK.h1616KLI}<8q#ǵ9qQW> 486\c;z }OsKA=.&#iA6F9*IZ<G6hW۠V;0!7% z]`s9o\4%67Wxw)Y6\ݹL$*ezNі],fvS³O޷vlGbHE]DU6%< 8" gA\(&nŪ6%BZ0-DJd8M%2B]SwYg,sw$; Ϣ&HZ;XiK$я1,,މX³xCb ݫ5 "T& ;˚p. 8! N [S-)eDnYFgeݲLlhudžc,:0Qg2F2F2g1q5-1[qge\\x$.3q˺ Yn~zEq Yz`hVEVSjjv*YY~SrrXLT'0 7w],XdiH`DFMUSB65VB65VB65)-PK֋Bm71Y)nh0a4) e22 s-_4Ѹri˥˼T@f1355PS[[AXDZd[AģAU槏Ir!9@;: [,Y(G5wve3uU)ຢdfve 蜝\k)H 휝8/휃NΙ^9SWUy`'96Fr9'G56jpSv uKe:(̛~ E 2%>KE 2%DKT‚L ѢS,, ŊΞT 1%D 5`|wh=,X1dK[ɷx1m֪Z٬էcyD1<8o:*d/HHHYD"hHOiS"x|UBDY|E+Z<-1_w+8(FAG1"D|SjG1E|UDjrcc$cCP-UNp9>UnR;O)}*@-naH=|kl:NTui)MN4vڦKq0IBsͣ;m 59Y$Z"kМ},5@Y2 J*hJ*ʺVD?|[,Sx%{oLjJ"`,OSf~2Usb0w|g=h@EU6Ve2z(kjhr I@!`*Z6 !@:CPu-ޛ(LDo>ؽJzWYhwC+ZrYzs.gM77AWsDTdE~ʕb|,YI]@Y˧kX$w @@Mtjhr*1䱫l(]%fRҼJ̬-nMAuSx(w U%,WǴLYW9_:hUe 8f yy{c^ G}>ɂ %$ JIpëH}p%$& kԑL2׿SM)a+YV6nmf"@pe˃!` s(A|C &>2W9}a}ŦaZlӿk҉8-LxEl LxElt#;6\H",@kR_tVAwtY)J7- oIx덷U_̱=wpN&k­&k­]&fZ;O,NZ;N< =ZZ!~A|J׀j[ʮo`@7`@JtV+^V\FM"=R4bXшM;FlsO7k,n,"Fi#v3ѥDw%|ѥХ^JxK#?TDo=z] d+J&n˓SEϓ -u˃ ~*y BhT"[2>DMbj`El@El:q-ș6t2ڬ}_Xo$V3zEN[n)/R/r[]$T ˵-S K`Me0ʚ0n>"Ig;Z_tkOtMwtޚքx[Ijzj6zj󪧖Lׄ{K&ܓ ۄ6fyt-QZ Й%´DSKi.ut͠ϺSCStb+|a[{6| zAS?b4bUunWn }n>wft/i&mtVk}/+*/++jIHtgK7ݓ8'{2?ݓޮYo謷ktmCBDt)].teM^Nx9/TLOqxBe>*%k{Mx| #|IWk%Qh=; ز_4; r]8c װhH/mky6旱͚͒vch}88c3nxg#bG΃v#v#v#nv#Nv#.ZAWyY^ezڍQb#~2r1*,. />o@ y c<) O-i I3Q02/ $o$?p8փs !vn< lIۉĦoo\edK*b敽Q:OTi3EF ZЭ:.[x+O`+rw[n5뻵[߭g}fwﶲg}78jkQocx坸Y8:m6rkw|1>prQ/1Z H>h]D ]$$\@R22q{\Br~BH$B&r94}" 9g9z!9Jsw$G:z9P&,䑃ǂ%J-#Q%G!4$4~i$Hȵ*9ZűI$UI _+FSTs.ܞ‹5H$/N|3h$<$bIp+(֏P`lj"qJNI6$qbGؽT( Z/3j!Y2uhsrRq‰htf\ʕ01~BWllvlґ- dAm `< [.1ڷ\#G)Ly~F91$K# a򐄤ڒ% lu[1D$z[[z$ꋝ~E~80`e.ЏZcJz^yy('umq^0?J| IjrYNN4Fzk~Mc旾>^@x gps1U|Kw7 F1z`7 K&.|W(ɰ 9+O3L9+}Dbʟhrwx*&@*&2!JM1_~|gyo|6_84aT5oPм#5 ydQ[; DD|` ҧ]]x%I5AΏX8 zuqFu>:[ke⭵ )bq||?@?@p_%zb+e#8,y;e``X>Xv -[h,0fۮ^zR&&ne`+|70MuxlQZq\pq\𦰫 g/kLϪ`,Tz4G^A/h%h5h!Qeχyq@*e@[d# .Ȃf#f#BBːLH6#`A~0 KBڞvhNϖ}Q hmcj5=1A@ZM:&VcH!*ZtT1E8fl}ȢVN5eӆ-_y~~?O~7MgH'ueNʐO`_P7FS]_=pKz#gS҃?t"K6Hbz𢡊󷙂!}͹DmQo5%3}~]~@pV7pÙdVzpC  _{ o ϫ-:nLNM夛%ݴt꭛ֲ=dޏ8Ty(Vq̲vk$sI>nqGwT'Ӿ% yXFyXA_zi( VuRcr}7>1`YQX:ťe Ԓʓky9:ZQъr5['b5 #XB Pˀ  I]I ߃!f7Ǿz@#fQ⤇=zX%=lp̋2~d^d/uQ@H1}dd/Nd֨7} }>>ð&nXN5.Jo^EݬDm6ZҦ+"uR|8SL$a_R 'LJԆҍ&a 4"7u {E>] sӕ>7]sЕ>IVvdz>>'Q}HNl2`E6"YXɎ5U`>nlV,}n>97:Zx[*8[*ypD} 5hkא됞Sͼ!e+x[_w %KDBluܼɎȎDvdAl#L1A ~>LܮiU|4Dd]ZWP> Q(ui44Yr[˵Zrr*/U_tWrwsr^7#:DRFkŵ1*n/]n_헳r_~_٬]}}uLO5׿"ZD.y"$pCkx/ sw_g$p:}Iܞlm/qM^ ׂ{}-ׂ{,^zikm|3VJR!j-U^zyK*qpr 9&''3$'!ux=x09P!̐wˬf`V9R$v͑~9@,juEpl C͂fApY"Y_Vs$V3aN0 #|:#|:#|:,G_g*=T31WLZį\P:{L1s㦻jNv՜9=T3r)Pr{rOdG";otuΊSVpujSVCcԝF=S+OZI3R uvTpvFpvFpvF۝IgW:]=z s9f.qx ^+xx32Q^bԷ;/]ipc}t4Ӯ7ٙR"n z6 ' mrf$V}y]Dyꤿ]W@: KH:vic 0 yH^n^n:KwDw$K1#1Y8#>DFrq#q8yF;dt/e]~Wߕw%]饇5V,Em-EpNE0ݗ\?/l98|ܼ}"\M@'$99҇m&UooOKz{SѪFWpy%YhzfM;['pY,4=&h! *WWՏ%ll9ݗVLبd'7jO>n ՞|<t.@^>@.W,"_ڻJl}+"XD Z%L$bޅ$|R;_U<++9ʗYYQ+ԍ/Dq-%#Z;E.$?H_&!s>770 9Pw Q 2t$p!9B_, F ./Hh`ĈшqM#]JM!@$>+@ j|Uj:_juե%jqy/`IuD,-k#d4ehJ3N,k#{lY-emDG̊A.HĘ4/4IS cJ8abTF J!aG >ȁ `_ 9˦X䀯8,M^T$D\#5 yM]k3rtڵjLH1EIL>r5wp̚$XLdCʗNЛ7uT"4AD/ M&K|S9Rcy۩jKWbٝ/_C$$9bY芍ᰌᰌᰌnjYzlònY_Paπ¯xöZ;+~@W"ts$ے z8ړZ{RkOjI=jZ;jYak%zۚE 㶦mQȸi[\˲.˚,\/Y_IsR&R 8YH9NI(=T^>k |9^ět7]); Pu.s$ٚU%RR+%RR+%uu=j][I?c49C_z p uG)lk]Fa[y֪bZK|FG!jYH\Wju[Nsn*eLBNq$du$PDqkU(ƭU7x)~ЕA|t)::HRs$e[VD{Պ`/Z%˭VrU֤z>j%t5V_X},㙭zb%Aa٥j蛎[XȍASӔ*i⃦:y<$PJ#GHT)̲=r(6r6rЕ8+y@W"tpQ:˹@R[I#u$֑:Zǭ+`I)r+%f-ٸR"r+%^-Rr.!r}5|9-T"8ku~Y @]Nc,u9@ˁ&Y|9PW_URȡFDX"YUdAq`[ŶڋmѼыmT"jZNh9儖orB'%!Wf%WVFNA^*Ƃߒ!K%V\"-aoI˜R4&HF~;MqaziYy=4ӹ(Yr.NoӳAS0;Dj9Ne!ٜ # E,@uuUXuUGzuUGzuUU=s>u}5=s>uqFN&D-|Дh9\t.]N :h@HBxI'畦,INWfäzDpа=$s! Ig$#yȤ3"\Nw.V.KCQ& #p}ē~fҜѦS3}JvF(GOڦSѦ)Tm*(Dr mʉP9UQs.&4& Nƈc4m\[>qoeh4^rUs.$!銃A38x48xHFjH TqסpAu(<_.x]1Ѕr}"\9͹,$sa$㼴UU^J[{ڿWjUk/Z{Պۊh%HNm[6#:w9_՘vkcxvK"tx4 Et =Z3 \ x*k&K ﲴ -pC:y9И.2ӲYˌY> Qrhb-Mjfd4{t=L:&8@}:#Q3#: ^F8])CIDZ봪I3u&Τ֙:ZC3гA B;\fZ"pX{9DjsZDjT,ՖdT Q5 U:*(*(ʉ:8`U* օY (p 8(V/)*-CrDAlC({S8Yc)_9loʝ:XԷO|[_ e|[wle[}%ؠGse#[l7[lA7[\17[\f=ҹ(6҉(6҉poFx 0[8:(\EU g]0R5.L@PDח;׀ t kP{(VW>=Zqힴm@ls(b*FۖDѶ%Q6\ex59Xm_+)AQ{mDz9NԛsA==6Yd,=pFAW׀Қ2_Ԕ2{؇ك/fvh=     :A5ˁ ZձA96hu۱{^mrlvˁ=@rP@ T BVABB YS]+491h7Lbi 4%4&c`P-%uvbbDELq9TN*nև7,)OC b!0B0RHܻr=eOqSn\T=]5?b.䚟 qrI CT)쩀3B #*K&,0JQ}>X%! kM!\^ոxb^b^bf1kp>f .Ǭ5TcUǁ Z Ih,$3g}M`kinTqT~Sr0JԪ BZ\afƃҋOXg2ЩcKbez$\F5H-OX)c.6@%ŕdɁIdI$J2DLD W`.\ˤL(`JM)0'rUZ!-Z!z)QvD\vQ>csȩ΅le!sOχ!99SÊhӐlMN/ lMO/MoP/ң6MiH4,F'=K44ʒ N'q>2Lz4^A{"=wޔY6I'F;Q+~ㄒx8~"#wd%$"AV^_$"."mIӡI趟 8-o%8-ATdEI _"5iwBo>!d 3YL@J@~'`ˆmg uBBYBqP$t%i g ui,kqЋTdEOlOFˁ`Ln~"#wd%$ Y]v Ȯ} #TEOz_<4YC&rNK9-A$Di WEz*2"$JHVB/]dkyԚ }Bzhk sYx,%Kh%d -YB-AV|A@CmI I H'rj%ҹ:tnxJ ȋTdE(z Wضcm6?ʼn`' hstq#Le): Xb;Mw>QeSf6q6;{޺V$ի"uO=woalRݕlw%]vm+Jn]vWݕlr]Nv]Nv]N˯"充v5Ʀ+7n,xrZѡ͆uh#/^ &rNkL+a WNk"#w:tHVB/㮗^FEZ*"#M}8>hk \-d -B{l%[hc x9yI^p|^^bd.fa2WC4Hë"#wV$ 9huFgahuFg< .hHE]$xD?V|~1XǪ[tjэE]$,7d{4'=5dG"=wL ~IhέI☗ZGyU*1/J\~mpR]:嵧˦)8|^E(Yw?#P~.|G,80<^0G9BF^G Y|Ƕsxciw~yw0ww*JՕRNՕRm:R]d<ީD@6J,ER[ֻbL|>*dfB혳Is6Ɂc&91l`(91g9$ 1eEz*2"[:;?!LLv̻+!^\dG}kQE ]cjrW#YL0%f,aޖ0I JH%KEʋmflAdՏd;NP-ܙ3RY5 ?Y։A0Ozr.M=ypr_' p~cTX7ӗ"Ʃ~^|y]˃,/7rldKsjs)CVrA72# =daM9|XOulk)5 ԣ&r!'$/**V[R%͇-w4]˫Z_uՖU:Kr<, +'0ȶ׈k{ˈ%lǶ#%cND?X;>W GGO}tW۝"㻊yq{T#b0||B:j{!#rjD$xM0oKT"ܡBZ:?fcJ%r1p:dhu[i"+ F^U j~0ZFk<@ 4ց_[#""Ȏ|0".S?R/hv)@[Kڷ/i+Cݎj͏뫕6?&*;RSBq253H`”}Ȅ)8JUU94eJ\2%x.rE.[e|¸o"B< .J 4h;^ t;tJCw0t;tbL Bw0)#(ҠKt,tf;T4s)k@>}Cd"^D0$4*$,XAABw,ȨI}$! fHBy?L,~IUA!]7$+놄oW$~$CCo$kHgf B8(\ ѐIY%߲L~e% $~XW,4_Y^Y䵲C-ԗ&IVO]W{ّ/-! ؜"Bw S)J=co9zW<:΅㮎sḫ\fB7usj~D99%,hX"w w< 99]+4qɉ q VX ϹŹ,$1M$@w\" Ѱc$P@jVTS@^U:$Dr"KBv~B8q"tȹ@?u9G6Go,rڋ'` rLV~Fl!Giދ$ HR |,S(I&WHBP5j)C5#=T3:C5PM5zC5Uᡌᡌᡌᡌ{ D:LKff0b9r6MˁƦABL pd#%SH5U֊SH,~.s +. Uē_PrG9+JnjQL:_7$qIc|%Wn>| |qlšŃrNf]/|{/n>o|C>м%eU2I^%b}YG)<#Yĕ1fx}ȉpzGɢL{ؘ3mjsW^md3%{(%{hڤb!JXV7}ˬd Qfs;<=ơ;l}}/N1'Λc O AevTl}َ;*^ _'"e1orGĦH{b6 OzӥUq+vUh-A\z.zHXq:=|aRv&vܤ!;v.e,$20Sˊn5쀅A)s: Jà9p}[I k5)[a 6' l @ֿ ; d%:FXS ۓ%d۶T(Qy.n[Ã9nػ5&ػ5&G )x7楼AJE*2KUYW5gw9=H=9_Mu7׫:I T_,^,kb!JeSv#9+YJְ5d +YJְnkXVu['kd 5pNN5w[$$ȍIL }5з2?⎥=1Kʉw =uO?IeIy=/uٶ=Lu.0f솟UmUmUmU}L_>1ev"+H۶kڶ]ֶ.38.KheaVS8Nwx~+ҷ^_$HdMvH:".}l5ݎqnG{}Ǹ*q̷"."hlm4~b?)ۦO+GӊmQb~ٕS݆KE-BUպOOOO>mY7~-UdrT`[ؖ/G5h:z^C/y{al3ѥJX)*v^]kv%0]{mwv& /34%}%0f #0f =eWxٌM[a b=EY_EC $gZ_$AvHd8ihrm)60ޖbkRFm]ʨmKy5CFEf*BwX $"ߋl=E"=w~ȵŶO6~N;}?$Ŏ[X}wLOߍwcb|n HOE]$9}?_6?s4٧H%/rd0Z_jYIV,XC-D ʹ@H֨c˨Qh&Ft3eo?nfYeOoYTdEտU^eW-]j+ӷHfbDJb$s39_@B`f2yLEg̒%Wa }wcfƺtR׎n!%I$Ì9`zqeABZ qUY .ׂ$v[#]Nj=k/1[eC}hٵ06{L}I0\ɐ$֒8kӪHfH cS AӎMFت#$kc^s$`8MFf[lFѻZ th5',j4Ε98d|K:Z;kIh;c|hFk$7Zk&ZK6ɍv mrKh]B{zh*nUnUTU |$(_I? NxVR:XJo+Vn+qFl=(-MdD[5߆]QFnQۢ8`3XGkFG`GTxȆf]|1mӱ6o*m:EX!H$ÊMǞV&JZO+ keڱ1wX{g _)$6sLim{g Ow@HB@m7Z~h-7Z~;ZbjvL+Zqn&n&שDwYRYEVzme|̏baŖ.^W@R]/|aHz   c8&c8#/r)mlˏ V;Ax 7e7e7e7eқª&;"rySV`uoʊ{<JZO+|vDž0 vSȊ$Z50J,YVfKאrאQ$,Zh3o@@&* ~Rf:q2NaԃG&h*U,ͷyuC?7fn̴r7|;^vӕq+qTxskoyXًlL.8/*|5m/ǃ= zmq\a>(uFYb"%w8opm߭"rg/wum0{ǝ"[_h}h b֞@=Kڥ'yI<894K A$%}fO̲۞M mRmhqlC؆6)}g=vt+Pt?l~)։f6Zai4>zX׻-n z|=MqgygḳX+snjg6}ЦD>hmz%l"8[Ml^t3߸}B:xYKci-)T4Jy{Էes dY,F(>=P^jyKz]/?녥XZoKz[ڱےboKx|?[}wkn۞ͷw}үGN`t*S" [6lB74l\doA$"e{ ;@E;Ȼ-;Qv[vlvtjah< 2Gv[v3J^qJӴy͍V-^z[:z5tjnRjai}i ֳ-w[(׻-#\#ሾFH8\oz-mmMO)ZØ8>3&ʎ: 4^>+i>|VzrjnѫWsKѫ%x?ZN@oVe+%=P'Kyfo@z)]/e륬wY/j[:z5tjnRY`]ѴOm[d,VLJ-zIh/R_ݭu>V$HEwB ;V@>䳃Hv _D|DrEݣ,vz$Tj#٤RQ۟jdY,J٬7 v=K:H6ڤ%M4ܖ&-iFg,Ea&&66I!J݆,eOqu<؂IT)1Բ`@b\,eMK.NH%$ hn`:.mAixHbיMҡ}Q;j J//Qfk$K5Ivә]xL1$|IL%ՎQjnD>[Z Emۊm $2%5C狞hv`n& K0T- Yh$,4I UJEJFdooVaӸAw4oQ?jG|]9va(:mI#K=(K{W>ˍ7>v{Ӧ1yD{ˎnn#ڛg#Gr(QJf $RX;BDjI<29.Քz$^H$I46ߦuz>`gYgpج$Hf]kYZlmY-ΰ +,`f]%^n `kj &~[Yc.jfF\wYFlօun[46/SY >y*y&A$"kk0IﻗV`ňlM?D3srBԘLHRV 0 ]i4e7im<x8eFELm- K\ >5 Y7ddzƿl$_>bX1捧cx[+ie> Kݴk(cilڲLohlgEǞS86m MkFaKc/u>0KOғe/[$INtPڗ9`^(m0{նhdp mGLư& 붑e_]e_m Q/mp~Y[Gq-jsfk/AQ~ҀIb: r+¸2cSFVxUͩ)=06GXdpa9m G F#g; .׏5zm͢  86ɪO ÿ>O3.$HV}f<NG5lխan%밂y5SXT ڛz,#;OCNtb4c;ojezQglŕH$ Q ɲ7ǾcՌ HpjƁ)A580hN&oKb+HZ2s`3x`3'1`<ؽM`m0lUKBB@B@Io$=pXFݮڰ&0_{ _Dfdo$8 ySmo j{+iaV(@4 {ܺ k kHҒP\z_ZKK+y+vHdf$!  !ZZ=k=("n C $OV$xߒe߉+JsﻉwkhCP+ P+ԏM hG]/~$_Ɖ#:)$إ"])صo][ H_+`ٍi.QӖ(I5NHw`9Q+RŠBY,xbЖAb$?F73ީyyxu8yuHD IZoeص ¢B>|3.dwfرwVbчo ŢV1vbq<^wyx͊|CS.InJvmuHmHfnHnH34$,I2#4-P K $ɑ̍$941j@1L{!ii313i!iix-Xy$mz^ &Iۥ9 n| yӃ֓KX  b s6<r#lH-GZ'43wfNnayB7$.1}H]W Kz\;b\1q+HN@-H2 ܀ |e-vA>E sOQeL>D:EI# =Hm$ &IO8^$ ʒʒؤvbw-~X뇷X凷XoQw\a3,I|")c.BxhXw%J^<_Q+jeQlKmG_mm2}e?Nb}15jcDk"64,2=nfG9%EV.Fe蘁Ej"ۛcbD^##]11" j>!e:Iʐ}l6~yac𱁟Bc?/煗N?,twIa(Y)=*XPHrBCF|UWQw~mU&H@U&$AEVz[ k[ k[N;t- hinFK$Zood7vR46H4;~.(Vz~[mׇޞVդz+/""߀d_q1$YH!-Kd]^2JX+ie=ص&vteڵ&]=]Z7w5|swZ7wa vmܮeq[Yݕ]-?4^~wi͊ $8,{ _֊DH{EV$2I[Fw$[BR6ZZ3GBHVHh*Irc#InzdzaɄɬHRHp㎐d!Ie#BF$$ D ǭH ɴFڻSH9w5yI@yǍHVjN>tB9[EK4|PNV-KUdTWE6+y#B[5SJ)zjXyia伨ַ6òD"3v$aYaB/Vjd$ ]#x*ܮޑtսSHNi#U;](U$1nI,[${fnym[UM)m;HbE$0Is$m3_zg!}MdD/}Mdqg5ŝDjhyPXY41Rh@`^1- eH{2\gdER;4CUCVV\}JW_S3WOMީS#<5"v]oz.<][C1wRy m>TS~ x$ȶ9"s I˦<.$Yco++X[ޡ$--M&;P5چ-GԽHw&@1첁bIf6P,]: [Vr~[i%n+VӊKڼ'8H(a[@]o 5ڡSJz蔒:):ncV@> v.Զ]mTP(1mAY$؝޼=YĬ7f0!4~$1 IkC }̋D$|Afgh=2=>/m3fmfojF_;Mg`d18pL9mE!9e) oeōCd9W8[ჼ /ǁe֍b!8|n)7CUpt'J煬88#9uRXMׁCaUAHǚ$pm&U5>HqRw Ғ)qk>| 5>ܚ.k=|i‹%Š]"HOw"5?%dt6lD+v KF洿P76",$*InmWG1b]\SKsݪ#X7kFE|REVӹIFo)`Qqr4%Ǔ[ D-cU[rX~):?z-\ ZJ뵖} ?KFI~ $Zӂ`';, &A pBBCDrL?zG]Lej'^Nn'^l։% kbS0av,al LN`r Jva &uټ~V3xYsVjh1_l3 p~=ܲ 7$p˶éu%$$^dDZ܇DxGʡ_gRZ~Z <ÔÔÔt0eW#BdgQDwtO5JH`PgٍYHxGH$Ʋ C$I VdqJUbdOwY3Ϥͤ766،F[heDtVh'OkvHd"ɽ:ԹK!z=_׺/uR#.[N$$?:Ie4Ibh:N/RfA&eChȊDqE" w,lF򇆦eCC׺ءdN)gSu[ޱ}8ui&0e2CĔy=ɨ>4t:<JCg 3>iD* NFYr~UFc>c>ckSbkSb_=CMβYtmt'bm h鮒q r I'$m'dLA}IGj>"I}v$ٷɡ3;֥CنtP~֌?v5'A`(ihpTrުfަޠ[oLSﭷ%c?)(,5Lv+%KQUNjkkW8ˎn]$cOZ9?k:t T>B:q^~7}qVօOm#JR29Ȅ~lzdglN-1?ŶNIAvr嶅/&↋G9k_zfSn:}y\!QBn UtNoO-bI/H6mE?hH%-ȃd!}BM?P4?T}x%uڒcږY)AZ9?M֢R`Ej}恭9u` ݇[6pƦQ,Mؕǁ;65 6iEƦ%U_[m:&z ?eG)z#ʼnpΛOo❟{OHzHY|ta}Z1 C"6')ƳADd8._9drWN(u]HJI@HP) @"%KjjU d$q/]I&{Pi2\b2#FKJ[?/|WF9ܹ\IS>'2mZ -9h/YkrH@iyfvhhgiyv FiԄJ-mo?V޶0U!љQ=b4!Q䊨vJ(F5IGiol$"+ɫI|O9Ni/)} %{?;VGyOg"ݟ^\@@bZ@gb`h)K$iw|rcU|6WlT%D91#)%֦iB:fG:dSތ%PDQhJ*KrTvI%=Hk DrSZ+v6ʒf]X6@ĵDzAX.-2%5C֫hkh-h-rFmd嚡W>,8hnz[KHb< M\ $5t荆{.3i^Zspn"!"FѥG= 㐏g{o].z4F~U˞O v.÷]ȇood)x/ة $ @B-=Ra`Zx hnL-ӷ;K,Lގ,ۯza]'6;V|Zolzgbtv.uv݊|29׭'8~Of'q"FQ?su+ M۷侒ygW2,β6l}| ͧ6wY(zP얬L%c3hی$ZK1vk)fRڮ/£YLg#Kyf%;fcmΏ07YV~f)ђnקnקnקnקnקn׻n9Er1ޓ'~Jgw1<[u+PzmI-)?Xx*bG b]Ŏu(ź1CXW#2#DLp+3Iًe&I$Z_2Ŵ/Y+#eEd^ X U/g?FdbRQT(lޘ+ۘ9[QY$% \lqWFe HaS%FKE}2$e6DI*4;Ll{HkFF(dǰ7S+"_ꝌsVijGͫOgnݢӹAEh:߈W6kDzxEll#^E˝ţ=V;{nEVDW-{]EgG#yHCl>NG o}g">a7&l>2tgq78+2aA$P_O.z`w֍ۡ1|ORٜzHqa WWz|-(tђ%81 3F)IJ8cd, hyHÌ@-aXhj U{_#%+I[\,P],WIJ!~t/Y\oDoǟfc A"kuDުb[z1vDv92o0:]_tt$MF}C}6}J}&BΑ8N }bxR PD JCSء! &z=0ؿ\Ot9~A%DՒ"]y{W&F֮qdapEM1X`6YjGt0bX zb[?k(okp} cFe;(a9~;(dzo3?W"(K#/7i ~rn&O[9CdH}rVn"purK ow+18< gL P~_ b}@ bo g(|֯R޿U: ί1AAQD{дlDG#Fb1 lkT㒩X2 x0~5!!1pZW~YAĿt&nJgvXvDždX"KLK$INq|χ= #9F%0+6|224î Ky39mki,q2#7>Q}nUAs3H;f]j4֨y.{:Pmc=o=o=ʒ@u[\6uն|Bm+!Զz(#UPzwx [o?vqgUгztfܦuywUU~;z秪w€!> 3T_j*9u#;dv hb-& 6J| (:ܱm,X_6wDQWTqD+xzq<+xz 4`v5;a[wBzxw\w}iDfnb2̓XL`Z8`*y(ko?ƱZ.Wh^\ #ʥ%)+Р7\?zGoBo-FtSJ7M;ly:~ [1fs'%3[ ?z ^кVvV͔VvB6zjנmSPoS\b{PbSJ.F⬭H0I싕ߒ2? Oukl?sj(k; ]cFF?CR%VFn?_O˷ m"DFQM4" ։1$ab I;gcݵ?Z5lhUh>5Ԫq}kY?5`Y$ uMl;>zGz>+>w}xdTQugfOz[3>!o6y酓 5H(?.K;7b|(AV=CJŘ=RzJi*TOSlz@Ĵ=.$ 1YeX߮ H$)ַz).aKDYgò1x>MNHн}MCн}ύ J8V66݅k;O;vӮ?O4I9ԢDѢC-ѢBѢ7u2-)Gڣwr;j\NȣrbӔblaj0/vF0~$$P N~mO)n3Mϙn@ho۫Ğa!ǑD$LPYәC$PFZR1a"I0AӰ@!2 Yڜm#X/ڬ+؊%bQC:XG41$=IϿn<W*[TG_?m 0A@H <]$@C&&X\3SO$Kc,$>6B@r4/ܙ6ԝISG&q@a\|YqxeQP/QDEjjܨRz^02^._grMo/^mk8~X:<2}F}5 e9eh^yz*?^n6?j~}ܿmچ{>\%N S;&{Զ>q}:/x}:7S{eoS&yxOm{fa/;8_`l>so_Z|$ciwG]~׺ k{w~.܊Hz$bD##^E(҉tڕAr ♩2wc\F $c(?a|mqwAeflrF]Iף}sWxH|r1q<\b/cxxb^.WuFpQaqd6j%\˥lO/[^^2>^.>_5}\m`7˧}jס=}Zۧ;}ڮO[z}_z [}o4>'i[oZӧ|ǧ~|ڿ`}||7z|ߗ$bep/+OWGˊ+F^V_nR-ݞZ9۱IZ3;wk<3Wus_;9u޶9l(̯tS^_'foݠUz_F5]Px:H=5NCPcx:4]tstO̓CSJ/ӡBtx<J4áۡ)ͷkRZפ{*ssw.jۧ3}:ۧ}:ۧ}:/|s}:'ӺVztOWytշOW{tOm~|>``+s;WyLB.IBҷ )~'dIymR%$NJ1;q(XB:2h,!QZ(VV-Vi H3oʴ@#y[/~w xnGAe?`~z #W>Jz*y˚ez^ /ro/rYo/>Z^ߦQ_MU@\W ^n-}˭|_=6ګmȝ盋>e)g>^>>ߗ^¾>'HL>笵3ysOt=s1uKIymb #_1V.%#Iȹ~=rnt7IwKn|7ގ38Oso͎7fǛqm{춏Y`?=SNrNAS8iM|p"ћU2Q( IC Ryz;ԫ*:2LZZGiw~So R5zS/@2tRDQ } h)鮸R^t4[w+G}q*RT1 5v8(c<&i󘈂&p4Ky[_`D'd7}3 ,'0.n$Wr 3*e{:3kJr1byrfR5bʎ\LPҸ`.o";A7"2[',%Љ]K֫*˟2>/QnF^n֣bmw=~R[r/**U5MqD4Ыx4Ыx47I@(zKN*g_Jc#)9 ūZ xUKVHa\DI_UGʹ߼)6@_!_f 5n(}5"]+3T}5"ʭ+Iƾ"cz끋Fz`t.W?^?T48t&t @BJG)AfE$2̬ Ԋ/"ŎD֤q_jcXx0t;G?jM󧩃V%N"b?Ѣ{K;mZ4f4%ֳXKcsI}|Iz:KK;9tUauUi@J;nmϪ8 i'ū&Je'Lփe7-e-l얂6?h&v_aEt\͓@ 3#T0Tm?&~ѧ`t{kM>W{ Ji"i 2O9B?\l}m v k+zgSGEV#YK`X)W?Jͷ+ҩ8AƥlQָ;^a[ƨRo*u8!IdD/N2HUdD/HUH6a}TV&7 +++밋T  RT(XHU4$oGb*oGbo#&$HÔ$H4s=L's O'=0}u'&հ?esuu4Wd ZUCVvsp\57黹jnd+jnKG]^''Ӟ@ժWҪWҪL0Qz<T}yfmcsOި/ȎJӎJӎJJ6JTu(wC1.n` F `= \ |c y4ˁikh,wZvȱ|7m{H8BjNԉ5MKJ~GX劭^00{H>!tm4`u\n' 68AS`eRARF3_(PZB ].P|pܓ4Xu'tcuՇMkmY:e[v}ҷ-ʳ~ڷƷm~ֳ]rv66YxFlQx/x qQCFz(`Cb[D:u_'uO'u46 Fi`h2wcpPՁC1ˁCChe6 @\C ]p^蚇BzDߺ6)H@I`\g9W9sգ9xf/x+lx,?td填"[W#ݎGZoCMԼ}<$BeU +GJLhZKfcӂ5{PKpk?]B?]7C?]Wam-({߲-{߲-{e/YviyoKoK]wew-Yβw9Gc{tʎ);Gv\n> z(\2t|^ur_'urO'9u}2o-Q$|$1|c9ăofD !hljd)1"r%$$RbGsI.n`ܾ\B6%P3m5ި-2JڑEJzdWn$3J[ [(#4R OGM]o䯢z&վΚ VLj`No$6uVQo Y7)%d37'mވr!hXIݎT Qꂤb9^r0n`v.MXt9$%']$#" nIuT|-GMZϮ7jFMU48L |끟PRN()-,vHJ=MJGI*oqđeB'[MVYj.V;OBQ:8d!v,MY1ĵMPnÌoqm;8MsmO2.vݣ=tˆp#[u{؄ NMMXE˴ⱍgآahjehjehj1me$JF~+ECI}*aZv>A;?h?[F65{$X$X$2&4 $kwgzW~]wՏЃ($w Z{אz]CĮ! Xods mm%#ٝaEFWXR.x^7̬ }uW9zyuBqܺ !9I"Q&Asdi?|_6PLnCLn+hoύ\\tm6m8q+<\ʛt-6ՁAGd~ǹ"sEYkI(W7KWy*_|w 4Fo.M;n)x>iDž*1ӏV%eL"P@WyvxKdIӎ-=ܢ[k&i q܇X˗_daU =m e%FVs),4םulןgt^c3-vK,>q~ v9Hl']CP>U1=ĥ=К#U@;a濤*bu?# 5.eHdpvg!/+d*OYBV aBVtil YXa- NeH RmZp{-TEuipc0/ b}@"'l@I0Nݷn`m7lЖx\H%ӺLVLH6mU $\1$?5 i4}Iג؍Fz[5mD0l%۷HO +2C4% l1s{mqYWXj(lY?o+Fۨn'Ni 롡] lV{R?o6-m[dĕ6)1qHz8[WRL rRF9PN9L mAt!,Ŭ?|ZZĴL oL oL 9g= E0$0$0$+ aWg^L3WފebS//2yR? b}4lإD/9v)lR|)>[tWHwfJm6Ӗ۷ic?nmHo iZ"HzM[oJo)?ecȻKRXKeB z֛[oo4Ao-ʻ譾ڳ譿4=Ώ֫P[oO*SwޟUjBv1_=ld$|ƵUa3B6V9;6V˶|XUX'I4p]CFWa<ѵfh氣ѩ ҔN0Kh}@%S> wbl큣׬kւ}v-v[*aDF׉SGxjO ,ʴxZ}cG_,<}E^ &W/Mת?31ìUwNTzNTzNTzNTк'wrd6{ RH "z_BqY;>/^r;t`}D ,3ڞzɮ}֧]OZ>_l"G b\9Gv]\S+sw}՞{=юt7>ю7>Ѧ7>Qt7>Qd7>!HBu*d7>.d"kB¬FqßP1'T=q-)bOD:oCt/a{X%4#Vx S;Jf >QBY҇?nרpV0KXh>qJChO 㩁cN'S/&O#D)}d> L>"@SO#N铦ROy]ʫ^P1 Ax DAxM#oDs*@> D i71X_`m|/֯'N#zHZwFְwFpwFwFY@{֭@{֭;?33le?3MQ 5YjݟStcMK}}qߧGw)} tGw:MA1@/> !j9m6UV[l5 -caG~tZ6G~tZG]KztZ(G24=+9zHV[zZjG;G/=z{t`=:*g֞">tCya+62mbSDXĦMQ"6%MUdӟj[#v;XnScVghv4 v4v4% an1b}@ RY;НRfxXV V d: !6*k[e~O6>Uʼ)`$:miU VkQGl3j v ?3 j3Ajޔf7֮/>Zk'0[0v8&ac6pjӸy* 2M% -1%߰L"}?x 6l(HW{HBmV?_`6a Yob=.E%""ҒjL-^]YRŋK1xtaI:>$pe?OzH2v41~(1x41~(0vv ʠ!QD4ˠ̌;PzABy<sr:VqT%"pd4AFil(R7)T):Dj@D#aPo,iio4 FshOY*5&v,)%:͟R3=^כQ: A]&ďyo8ӯ7cJlKA8k5z=G^ b6ӄ|H $$AooQG;b99^ Ft6Aչ.൰(@ k龿0ƙcE@U_*\$[R J\F~\&,45 ^4!-E@Xh`* h@e@{rz;cؓƞUjF 4ĤWQķ5ZU ij/xzTύ@hV$SyHG QaHd,}9HThHH~]).-|NP}# |-Ut8\Ғ7DZx";~a.%lWߨa*0U9^~j*ǫ`;|4l=+Xg趇!wz:(@ɎG@FY/]bP1ipsG&H 9S>>WUwWU'ij:ꮪ-QUk/+Ev׎W6WGMwڬklM4Sm47dd};$(.ۉHC 3,+^ }-҂}-Ēт}-%c#[[Ѥ`dwNXȞ۶A|OOnZ9 N;" `2>}V$|2K I(g[,W~+r1{XƔa.)2"ھ ھ![}Chn ޢRM۾!%`)[J<~OM?IDRm1`8jӱ_p{/h,%b՚i`<4[8Z o=0 CLP"UD p4)H ĚPPt{Ukf#R#bLyGjDĚ$ဍGnp ،N:^NQN:aPm'l' `h8x˙;]OPxv /؝bۅ6 ll:X.t.sM ۅB Bppw.3fEU~XQlUSmT@[:Цm؇>lS`q2Xl>`v vvS_Es;؂B9l D] :h1@' (0]uWIO]\?B~6C~(]s =Гu$JYCu@i_:/Zjɪm$ZdFUe򇞑g=#y{B3 980_@3TBO\8519b?s\й~TM~;#F'HPi6U$h4j BV$#qn xX q#i _y]vtY#W/n]J ͭ C]Mbo]pЅ78G痩yyǐ۟M` ܏I7,͂Igd$x -r@n^ &x2ɤ8VmvOq 5b܅UV[XkoaU;aUbk |Ek([ߣh e{l~Z5QK>jpɔh Ykpɴo (i q:m/w4UgvMgvE-C:2Sug!NVm_j+ɪ&zjULVmj-#y{F3gA.IKXQSP1ePSF1ePS1ePSF1ePS1u Pԑ@Q/iC1YebVTebVg?Y_ffuCչenV' p\8"UU]TcDddyq@jYbkE0,3 &@ t&c71^]ojͺujx! aU$f=HP}[s4܃ŷ5"$kAۚ{$(mY)AV!=JХLP}U}U}UC<ʴopМG92 ; с!u:2@p+}r6,3eYw62&<1>5' a(?;]ǩTJU)]Z_j%VZKYu-yl+)()vRI^&B塠]<ąC8tVeXD\vFoeGOYƝe.CeDx r.;|5磲% suKI)˾mMVO޶F5b޶v6nozJ5+%-mVZ) YIIdO?^O$w۰g*-ݠ=UZ{QZT*nRBT8=>Ƅ I-$d;F83z9F83z9F83z9FET.裈}Q:~չU/;tf5eMhAT-[Qu8@: 4тXJY}ޠ+Pbk+[|Н%Q IjLz=Oo ^({j*RykT^c+'JyE(5m8ױi9s2s2s2s2s2s2ѤܤܤIN9:c<^']Xkk{P|_Zx{-k=FXk1R8R8R8qqq]mӳdz<~mۏ*lۏ*pۏjyl?f?o6yй}cvū]gyc1f]gi)KǗ8KF%sѹ} QtNKַfmjOUG*:SyՕ˫R*Sy./Lyi3%|bdl4;9b&[g0l1 iq6[ CÐ&f0Q3491En y:cy}ʼ<+qFQ7GMݘ&:M4McyԳeY5mxE4lbQˣ&hl)KxE4+3L$|!>/E*oyګJ]q|uϳНe[kC[B$jh)ZRBK -hcIƒ1%Qc[B%]B{%^Λ^>6΂6gfݮǒ9an}m7k}mnni~Rkv_%fsەv]uU.06]@p3K/qۗ8KUK˗VYuj_*/?p[MZ*syʫT^mteͼX~3\rIޒʽ'H*T+)wRy|ʨW9UFKڌ#i3ff͠ImmxpMhcЀ6mBۄmּ>ZsW8ZsW8sW wuVtb5kQ*Syї?>sS";V_MMMMMGss&e3Xson7rk{Gx]#tR]xڒc1vmҿ+K//Ro/R/yR_o@Ryk|FIAhFO5F*1YbW8%^rˋE^xi=hNCˉ"[y?-$PWxHyHyYR^@$Z ׇCKΛ" ^K. /p[ArR5zE㦜,A7)'DqS5A7I𞈛$xM4\ùU5|SU< (ZΈ$ KN+<ay-mu=mKd/xzXy:oE47E47nb9yrvwM9p<W 9PĶk@z ϔH#ݔȃȏ) y NB?bKH!woly iȑ؇}]Uy]rƗpÿ)oi w=[]Ϳ;fɾBG&O Ҥ;HC*+(!r7qw\}1~Zkx/׃? yc @Ұo49 v=8x4nGAxgCB}v߀}G9精2'x9pxr7pxr7px"|<91b/rI*(TDRJn[y%ж:Jmu@OKmNXS_ti#P#1 ET__y4_`%lg`ZIZMZKZ {2siI^@iip*-ia6 vL~GF; DoFJjx -a/|3ef䔻)29eY~c 5< ՆKjr *L |LF](`7pI\40sPEC3h:SA2$',۾,~L5;K  sny R #`/z8FN8/~j)KJ6ނQ-%Rmmwml)핍w_Mtr31|/9XUZL&˱J`9Vi1MŮ:(+-|+-f䀲@`reYwe);jC8] *t*i *i *i 04 ٦)HZm R*($DI:BjU5ԎRQUP;IC$A [_,Yzdu@i=d6YJfmv2kY{If6ko#z3 g=C}9pѓˏ3)8VRpPRp$gM ΖVP=iY,IZUՒ]WOv]#ud׵]eJ_+ۮ )c2v)c~K;H74#igpᦤޯ֐<rGC94X7wwnznznz87W=h6tfW+ԔY[ZIn%YdV[ɖt͖tM^1o{k^3`o{ۃK|IL,TėBE*GEp"f8Q3f"f8Q3A娈rT U!QQ3hX9*j`V=_i Y~dOĉ,]^vxڿUBvv~wU>q.%c/{K^d%cvyvUKړu$ L֕44;kx͚ihɪ_O=(9w=@on:4ԃ˛;KKgKl-ݳ{tGȖG}d#cό}>%HQn]h@P" &lPhϖ cL[/1mPh0DzC˖ ,_ @1Ԑ@4үPP$SSAl"btI钼I=%yz@Ĺ9.QbD8;GLQINsTjNR%|UDhUmjr< ث DxR˛;+wU,gjg2ٻ{Jf={W5kY[Ifm6kk#Z2 e-Cz[.{r>}&J vJ _RpIђ @TFl zc`[ ~+^YJ0[,#U =g6̆^+zeClzeYW2t)C 2tz{tH&AL+jJTsCe:ŀ.*{r>AX >c1;u1oȯ3t{MU5UT^SU>{MS6M44oə6ՠV^tto5ߛe+˨xA #udױ]e:dYnΚ|bf3cg>}f+c_esՒׯ4\#ifpᢤICTTn ɷLA-9ӏ[h_Ի`הYz;[zgKl-ח-d%K/a__¾}} 2%c/{y$G|$3,,@r$UbKnr'@[rKƖܒ䪱%djl-Ai-Az!= ~=2zιoəͷL[rnhۆgY) YUvC}'= m'FcѠ/y(SFM2Zѓ=e)c%Ot{g>3ό}fg>3`6Gs/䑭ϫbT> !U<6*džTؐ|2cCqlTrLhP{xקi]>MV&-veT vMvU싲KaW_=)u׮}]+OЗӗӗӗӗӗӗӗ{z*z*-iXzҰaIòeg cm5YPWg]`F16QLbGmU7;jzʛ;K{l-ݲ[t˖ntϖt^3g=c>2O4+_@f\hq ?kȅclSh6klS R5An|!sPTzO$EW2/sz$ֶ L/(ִSp;I@xҗ\˶x!B,+e;  m|a.L-d hlb &Af%gPcU3 HA&8[Q@2a]V H&"jQ@Z|hLY:cZ@*}/ ^[MV g>Ebx֎PRr^~PRrQ~4ݐ*Ƈfjx9\X?fx9\~L]9[-Zc~$IH7J&"z[ѳxYo,0>3&> 3|S(g[QTَjH#y5EQe3|(oRU=#eEm,{1DY$ǔ>푆@Pi@h@}[4 4ҳ>=|b 8(-A 3<Ǣ̀=VEK# dcpwmV_۬ ج<|Y}u:0EJ(Q #)@? HGglT }D*,G,h/tT Ac4ly} ᤎʏ=R ZGjВAH Z hq%!gτ2A 7pe5(R_HHEąJ*Yƫd/ۅMDSfާf*OGS8E _Ǥo}TQ٫l!zUc H$KOYƝA%`P`,f'iS-wTͧ">Uy4 OCce,΂ Nttl <-zi4hkLGIm | qM7}7UqTY㼩p$zqt@*@( *1^y—c|G;u deḎylN"F.%Ɡ*DL,ztN"V=:'xݓyl&eWrqht{&z313:3H$KOYƝUQiɗ!7R.M4Kes;P`,ہcan$,zw&+b7mẍ́޴#[M;e޴@)G?eȲR;pV=:_W% Ɋ$p"$+"+<=˱|=s'o(e|03)`̎)1eb#yLPl$@<@<'7> 윯oCIٹ>s%}f`|f`|f`(9_9_9_9__ =UݜPgv!:ٷ&dvۗ_JmZrܡO_xWO\O\L\PoH|Z|G;uק|Z|Z|Z|ZdZbZ|G;ߕE{9w{1[xV{W;}g;)=?+ú7lq۸9 nHR8bvC:9 dh7m}N9XNQHBgáY:(~US4c׻UI<6a$OJ#G=osT;udq9#\drUL0r}őqt"C,W.Xv6Hr!Y||to_s8/qm|>P 99N$hAR|s^qkEkVI$eUGzɖG#nXSd2y߄#q*E S :*0[%ת@DAdNhq琈8)'fLKq/cҶr\[ caSv,lJlaS==6H|gnkd߯J*9  ` 'Gɱ_J|Aƃ/*qkꪒ.z&dߙ;oꂴM?<5u`d=ᅨD$nQ;@:KKKu+oLVDIо/fS |wAZڄLIGI#NJzR9Ѝ8֍x8ԍx[7Hr#9'53]/%i@)Rp^ JábP(]C)Gł3)GNm`=?Y)Gςg4x^p^g /%R” dc)+ŰH {aQt<+ 3~'dA&5Hk‘@o`d`'```Q$x̍|ƃH|w9>(qSuJv8p)q5VdljX'ZcuJv?:tS})<:IG" ,ʂ)wN)^3,8uJJ_ ˅@9dimJ^ঞm24& Ό ^ ^ THCR @&xF5 F>5O d XҘQi\Y4#Am,@NB +"C琅d0#8P}|Gp&}ڡƴ}n di mˀP/1Jfs *ڣuX'(PƎuUpIh8HwD'ut$! Qy!tY!ˮ!]-r3S|吾_ՇmWB6>`僲kH(e/(zUwNe5X'(P:q/cI.k!WPIL-}|;ŗVպcZT%[ Ѷz^ M&H ʗV,N:4Q.%D"t ud% nKBSu!ܺȐm]dFy^ގ#qݯ{|!!!swHegzf}fwnTve[v{eUvx.M~ 81i@+ehqed`qedX0w2(_;/R0Z"9-GSGwNݝNЧ:ꝉ:ɢCڇtȪ!j1QTzmk Xk:/VFk()*p٩SAGgSAPZ?$ Q-9EKNђS)  1үڱ´svww?6@AwY*jHگ Al/a/auV;ߕƘnicLW;;흝EKgr11zu{{1ZK@Ժ\NYK8w1C~ Hk@*^$m19]v4޲.D$}_*;)лpWI5^74 uё:?uˎeG_{DG4"[v);9$v]h.w!KWxC HvgQOQYOQ8SvTkZ_ˀ8Jc%U[Ru%AWP.A.ͳItiMTKNђSvW?b`.!e^ѽ{}EvldH|g_*0?#øaѓ!FGgO-m=>KHoS,YB1G3yļ=7oÍG~E+jKh~oMRЀ $@aO1M`~d8i"H'͏?5LK. Б'z h.t=Y$)b"B ² Q| ?Ng>2ۋ|d?V+6.d4{ڢ2ȏX@8=V+ (Ovw,eYp+c~?V͘'XnƔ$c4kőXp8p*ŭ#J (:Utȶ3-:vZ"K ]"Km˗Ŗ/# /#K} qiV4UWjUG8-EW>e-dC-d#-d{8M-k߻ijY,e,E@8,a ABC>ԫ[GN:CtP>í# 8YGNp$%0 CyQ,Y+|v Fи%B^cR.!.*.fAz XE]$dB8M* G:]㸴8Ҟc87gҜqOKs>-G4W\qOf>-Ghqw%/.]o=rDuPAYA#Gʢ:3uqhg@R6붬yde_Y6<5pT?@%62R_.TrnC*9YUSP.b|׶[ !V2>t}iOG8bB8;B!Y g; ry i~VVՄ+r7Q5|z_Kuٺ_K,Rl]b{أuٺU%ƨq]w&+/oԭk=W! jzQӺcn9SE9SEos1Ԙ"PchEYZ,O[>@ۧW-h{܂)-h{"z)-G"})-6䖢qJrKqpkzp }#IZ&ʙi'%`'y|[mȶNPD1#Q4>w|w9 qmR&1qmR&1qmRڣIi?`YWSvgWc~l@^XcǘA,m#@!m#AF0`ph)EAI h^4 !VDOmmCk#t-mQZB~͠5q.97r~_bB"IT4Z.C_(N(Nb=WB rĀtDj $R ljqazCSzCSzCSzCSzCSzCSŎ 77߸|G;oX @8R #Xi9X h!$ Z$ $i .6UL_j[CƑP/Dvgsh-n-y8z:]q-6*d[JYSY[NP`q PΠ 1L+g'ӎYB_:.1TǬOA>3# _&ǚ<7~>5_9OPߡD3D|Bhbt¹(Kw'!F!Naм&t?Rl:uϷK(V<[" S4YD3@HAA::2_0_0f+ {@ؓu5E])* qK[Bĭ%SdlܒccUP\4pG7ˡx⽽zחu/x:_Y |ߵFH^[DbсظEtQUcY%CaTjԞL\9sEh Ѕ >ǗWdM97>"aSέD2SUHfLHfl:㸋Tw v% eOk눥ei \'blc2[B4䕔J*F|*l^ʞddGAR] 3*1^1%e<1n8y3]5)|M1x>gI3x&sHGe]EF:8r(<t|~O'<>03]/%7\KhnI,L”,L){1%|b?>3rn_I{$I󑴒 00-X´էJq[G)=N!{%ޯR|/R^ƥKW2_5z,=JK1qI:i9N!aZNƦ|dw8 ;F:qZl#;F:ʡZl#;F:ʁZl3EТF.zʠLKz3\Bǹ܏s ǰBAgf??+$~~GZT#.qSzqKвi -kj͙xzG:=9x<8UVm5X3S"vg=3ESBL 1==cLƔlLؘ"Pg| +7Źx妸|{>=I]P=Sb{>csآU%#{A[Y%h)^%*[*[\?Hf$z$db3 X.6ڟZxUn)ޯݲ#f3cV;cYx>4lfO&=?&=ٓS=9EB-(#Ze]#Z-6QXkQXkQXkQF#ZTk-Èe ScIgls/2͚3'ӱ֢֢֢g(hrϠ[܇W~n-VYb&,APb/({%Dx adﻄ4]B"YqSvݎ>3mXB$0٢gIvv8ZHϔ-2Էeo(B=힃؞8otxT }Q?G%rdGE7=9=k]ht*E S),ك}f;ЊkR =$~2N"qw7$)6sf$YRz CIoP~3s^tLta0tI$ʡg:l4L L L; 9,0Qg Dx?>B r"_ssP`_e #로e[l)1r",(v)aoa9`S-w|h)–W)`k^@gD{HUY{@?P j{Y `/H%*Y(eW~uWB_D`h6}X>jA~KyX] "<B OxT (GUx oA`$SD+*IHZ.ZE3v s v=?$d| /4 ,7Խ syaED?|C=|?|r3D 7;.^8 &hE.h"34"z!ˉ |, |8LM'*yQɠ A^t2 /f:Rm;e)BGh_sȏ799H  Dk;@_srIvoa=W`+е6Vj3`]ߚ 4=+OBܯF0/_t&Lz{;{?J9ʍʍ]Ur*E"7W,TSvgI6VO ln"'6a" SDDp@IdKH_Hf^,9Tz0=`6븚`l7^CZppp1#(Xia9 D qzI.[wd)˺tm |>P~5w>ɻ-/G- mQ {0+!8 |2EPB2/C6.jJ%4d`pǦ%4`I/_?kàG6P׽5^+"rIK¦m%-!h$&'Jbn"q::%/wԡnZCn5[]̫[̫[ji0ӔPx s|vy0P 6ZS PN(F &6sڿN&6sxAS 6($qMPҔE!Vd%a"GX +{aE+N8Šf*N808+GW ITH‰SqtpT]J0V8r`ѽ -*~-* I Ƿ#Ȫ }g[$YjSb tDŽ51!NB ?yL|WK7-|(0? LcB.k!hJ|)_/Gd!]B` SXeڔV,qU 7eqU9.nӧrcP9J$/ݖMh#h3leWvU9Mwת|Ǡ\Ǡ| 6 )Pe 4!1H母0h^L|͗]U*h]^Av#J|˿e2p*wp8[t\t\4hRUE| )\jBw:m@*z`[HEl봝z`[HEl̝Cmz`piwߊcE.\"yZӟ<Ïk:!Fi9m-X@ b!%,7a䖌ܒ[2rKFn-%#?{2rOF{6rF='#y<F]>Be>|G7x0Qp0 , w5_H%L]/_ao1 򏷃AL };a+8#G}4i`XhHz%K[|>HYBpm 򍶹(heIheA/me- KKKK;-UwZ&h&A+ $h_w7_Zy W݂L!z?BqP\bbH|͗'<ox,9V%=3BH^҃rPKzPlȆǒTZM]UQ*Yf lie4s R#~m3T_&$Y'k1VŊYb< (TZGUEh#rT=۾o+/V_]|[+AYLVEIԾDa:^^|{{~gT89όAN8e")B bJ|AU| HlAr`/dC~'cȔ9>KR22/ZEP{phB=1=^ҫR:'fk8ߙė}]{iJ/()EK.J^JQ{]/%K}^GR_đUR999^hJUM7V5j-: 2*Q-d*^-d+^-¢ZLj!)^H@Y\fgq!̊62ޚ_420+ PqފF`Y[˷ԗoir4ΪAYLVEIԾDգqV|k}##-:R-JI~E%d^'#7G/O/ZȲnpz5Yj!dzףZ1x5dD[4(x|#/Eס}~uh8_tzjW4 PrvN(6nt,َJrvw8=TVr8-z*7A\4n q7Ivٍ-̸dYneY/I76ӭM崊Ni$-wV\bZqyFJcƲW23 Lvө t*[Hy>t7e/66&S>0JcŌ)}X1cJć ͘,Ԍ)X1cj_ėԘ,+'cɍrc rcA븁 @) ˞>47e۲;n:rܦ*. *qA]@Pxycܦ[v!^ӕ}/٥R닭 [+wn:\@PqA]@9b7TTv~CEe:<Јut@#pWl^QQzEEv0~:0vw`ӯWT-c_뜣0 c6kfrVgyEvTo\Gf\sk}oZɶBZ{LYZ^kxK%Kk}YZ0*fLYZ^+. ̋>.k⾏ (yA؊cY⾏fߋm t|MkM~IW.qt8qMum&e>)Yg|ȋHn0FF^vK?L0e2LYd 99_83 &}6(dTK4$$rJ=BRibJ?l'Ya;2_p szs,ǜ{YkZ_sלu q}WzYkYIYi5g9xykvUݍ5^ۯxƋ9Ǎx}x㻌7k<;ydi/8И+a1mgHͦ@LyV84aQtg1 wdGG_߉Wq<-J~0wq23pA('ll}v۠:(A>@d\RA _83 hUlo`WN^/޾r[zˉUâ|WcJSn24/-o#7]콃2RA4x)pE`Us mAh# t@g$wqڃݦ;EE?T*4ƼUUW%ۊ ؊ 8棒D9W%D9r- |Qr|] PT厮6\Em8Y464 pY'$HYL_AFZRd@KZdhIa_В@ B4t$萏SGھmUhL߁ӌ/V-^>bhuBZ% {7ZV^ĩE\tW|e h@PU<TAxá6zFȠ$!TNhr&?#'HɠpɶP{ ej j$p_(@$ |CVPZ)"D.HB.!@BI8 PZȄ%EB&-)"IEK$! Y|Dʲ"Ӥ&e[pRlº%d1,-ew`z Fs)A*mHIL}҂|)*'UNN$yT|rϺ/h"f|Wh_ 6ATp\hQ`X5$Gz#- Ev>.̶`ا;! u ( ª 7 =lֲZ``֎j` v`G|-Kka {' "_?m "0w"ޥqy?ncL@,?Sf='oZ.Ch-gD?6U:O'UW< .!$Q2KN ul%e› zI؍9{1"I#rGD]' N ,y/L1J"j^Ld_ != $BBa QF:ed&%'{ Lj[g/F5Ҁ!T!C_ơZR;nE(-R#SfiZrS#hYgʲmYQ}o?w4eUUr&BҴ,H%kiҿA&YA! "EaIRB0 Nn$UKi3$ p?OBTO48l-ET(ܾέO"3k_ #ةzGvg)┼;rm.N%wˉ&2i 2_~ę/]yFVW^/i\,/жҮpCJӼpCۉՊ0_WIgi9S1F@:jñ߼u?J %]s*10e>>H$v$1R 1r 1J 1T JlTbc^}[Wac(5󡹨ŎPc 4޺@>=jQ|:,V_y)QD{]< Ԭ"፬ܲ۳uJKnu{Μ[HF,.xNH0 ŐP bJ5E"$ ,"qVIg'Ɋ d\dg.3Yi$_+gl\PXW5Ǿ:A9] H2xꝣ5CxĕD B%ex@)DN!{8Vo=׷v!]څl}k"L96G2U+AR@0 y-@Z$>"H8"o A*ml":8X^CǶr=t0.2NSBi3Zh@vzmۃՋ[@T~uȼ1 lֻ~uLHM34e5'DޓM{[Ẁ^ob:!Ab&^+$kx$@h/7~{f8"ܱ6;;~-'Wϣ=Wϣ=Д:=v{h@SwS#[A5{'D #1 |GߪgBbHEU e;skvaj"*9Nn&dnSXEg 8q)03TϔÄh* *6@N@x*Rp"ilӕOWJZU EŮtk]_5 @㵖Tk-X:lZۃί^SnG0Fkd e.HFT&e,%ʠedGd ?.MzڙuT]|F|.@?bhJ @).Ҟ;گܻ蓚5/o\3Z*b >Uc A 7%/g3*[=Ex{3xlIj$ֵ`3^ øW0|5H#wG .pj3Z4ZZ?9}j9)I# vpEusbӸ$ ۸FXiXXXz'?[K*Yp442MjbOgxtn7tgOjgi{fʯYA\4NGfi>"QYi=럺"γp r43K"iG25q6`DJJ}Ɉ$QCFFop |}iPDTDDTf|*!:K.q[;Gp 8];ֿ! $w?ahXSoT$ mK?B $7@QZvY]W-Ӯ$4#g&Z7[OnЬq"Z6};uZ6};uީ-Nlwbwf̲k}Mxal$4e;9 qZRw%cVл_9zqlx򾦙k%P %Gy&6J"2lb,_MdY΁@#jA> e+]Df2wǽ<4L5͝Ym7"vN52b+ہN~7v(n@ph6n@rHS SuϡֽZj۷xT>|<|j3J5GƥՄWNmOڸ֜̚WMkN` l i<h(ݜxtFJS`;ŖIrsr3雓M-'9@غoD`˕&`wlWrDQe͋k]l[^b%7l-)E`,- Ĺa1{sV=[mv;[ [w ф(d}&Ŗ+-vUŖ+͋-]xAÖ+ lаb!c ^ d0Ӱ!wMe`altTd9F?%ϖCDe2_ f7/-ŒJ9-Il/K1@!˰#$q7d/fWu4 lkk]0a3U5_D:Cv/I9 ;X_&}-Wu߸Ĭ $N/T]ů[pe&lH0>6>Y7d%o|{o|{O(o F}k0[ f!$o$lҞV$ud?I}$:Iod Ӝof|,lG7pzFhIԠٷ~Ь+nM;9bے`𥳐fƷofއ4l:ZU~r}{P$r72n^b(P$vmoi';ी"S (;"/"zCc޿rV;]35CIi]31_X[9|f(c:C7NHp˒keɵ8,vGwvP ^]B5~ygw ]94mtte:.xg~;t5) K7I;A(u&\_%y;2HpM,x@:;ZJ2PnDy Rz&y|A9 8Q8٪R<'ר6zu)S bNs]in)U{ͬcoɀ{ ,Ywiΐݓ@9@@@}w3]A-sWySJr[ބ_E__E Z(JT) dhI!AK/ !&;Ȧ PUjϳQBߕlLMU"j j]*#8os . 1l/D>z_O= = = < /˳p< +oBgGp=;f|||ԯalIlj13I1X7171&"3;1|,r\Fptַ7i\tVPG o(D<'Yȓ:׈hX22jUe"['XiNf+,PQFMT|Qr[9+'d~LMsrN[9o&!6m% H“W%OEZ#z:U/mP\W3=,iw%tG"MWNu,UOS/̐gb?\t=%·)>7nfʭMc͋ hӒo 0E%ZNʨ 3qȚ}u(Ŧ*gI\&!AoVMdʫO^}??6"d<DЃ# Ojվ]fdխPN~ٗ_ eT-߀8q@@c5p͈"x{sF9sxG߫E>ȒHF~q`EF']`,SH,9ou49[ٿ:W'ǦOpê"k b*V>L%:IWZ%:IWZ Wa~a8něr[9+d&!PތdC1$ͮ fo渇ty 91WvGlcof&+6AH[0)Z3ddldѷL6hol$yE&Lf"wzϝW,4;JVRN dAڂ!CBhQ$ҏһ_yыǣWzǎCp,+-Y]bh~qF|е4?tm4]M뗁!_[ۃk5N P5̟#_A{+coE2}/,//lكΘzgлѫ O4>n$?_ VR@{"qdu"QOYisYVOĻHnJ#DҔM vkvAk7ݭۻǵ`3_!-mYdkx-ƃ7CeZZQs ʹuyg[6 -1Ɩ[%c-϶s; }l>Ssvz{n7vzӫӻ^/Aʓ[[nղ{= z$fVʲzj̲]M @D8,1|n\_X>?~5l;P5l;P5l;Pmi(֮;WoO=\+Ћ t@:C/ $0G~z$0w;}'2~/9\3@/U;wW/Ya os +w}J aB{X Vr7ĉcFۅ%I %˖zWU`5hh ջ˫w׏ݼwNd|s6+@zٜB*I^I;R zW O.JJjo%G~;kߑ_-T2a=W>N%.&\j{FyQ>2<.&\F|o5qw5j¨f- :0鸅cFCt ltgP2C4__ %YOSh-@KArmMK G"q]A~zW˔+V2L j!Y K Yr(/.Y !j H5(PN ]RX4vIb`֗@,8PVGh THQYRy[TT*E!iZ[oZҝH\-*Hxw3 $|T W}:-Z"pI?ߟH엉[W냞j%w>Pe(!{wwwZ'ReQ,֌:!$M֟Z3En"t{a ʼn"~TrTD %~7TRMo"v.$m(((c>e]m-)Yy[RF5j9mI9zڒ)1"<@Kdj HaCBBrt" Ei'@ig6Uog6og6ng6n:7Mhm2UhJL[[`?&16؏6®& e)<@ֵBqWXW %SWfH{)WOzSD{SD{S$Ian7ymj'N|y^&5ueR7o@U( WDxhXi&4)᫾N B|,RC'M!)PT9t2zW}^T>P%4jF,#F⨕ǀ YOcIR:h$t1Ba(T; u]N: /-ȉY,{YG!ju"u"=Fd|QD&?4iz䡼P_KI`|HIHHH%)OX78 J ͑Id$Eɞ)"ד6ׄ@1""WM%R4GyGT>(G?]qygzNȜpb1u7)$+؁Ĺ IUNG^ȔԂq%юhWN4_׎DuN4_׾HzaSL3'h>ۿzhtZh?@9YUHҪ<ȩ>zsjAozWaHI<_X|y(ЗB_/ m/ }{wwX /Sn 4'; %s88Lw9+oDD?HHbE;м,NnCݱ>>dlj4g_S?)9rx%|)'W—rx%|)'W—rx+|)78+W=gz59Wkpſ;P3@?PrU꽜GU<*5 T/6W<ӨQt.r4x5-">b9bKYKc#(9(%(5(-(=(![}-\x,+a'G-~xh=Zh:% ;X%t&Z$Z$N\$|HX%vv[zn!滭bm=İ|k?H$v qu\': ,.gXў$O#41C+4̱ s0aM?g4|L?~0aMW4zL0c|E Ig7z8A̸3Ό{ e0ԡ|4u(MBPm)=z[ʷ^d='blr:. I$"4 37LUﺺbuuž꺹u®N*>Xw (u7 o |&^kR_ +  38ijUh8uE;h'PM#u]!c4Uwۄנzp^_V^V?P}Kـ_ XH7`!#߀$zeX~i ,DhBLhـ=$EbF+؁7` YIJ ,'y JzA;p_ ݠ&3UN6IOrL:C&3y|l2z!Mƀ<y:5tjtj4{/'wb9)|̦U)nQz]pΆoW6\  _7N;y3`53oaPkuа9Z;{7!Bz/C@he6>$Tب foFz!d#uH!һ1ޒ^%zKyѫiEU}TpfZj˥jj~%Q+_ f(rH^ӧ}~_] &n-}MZxu-4D M}4  ;;; wA zh F~(; =CNݯ|oz5>YteQ+ÌA5P2) ^ULȖOo*o,O/o* 8ZA<ȣE/y/"" |21OnX!9Z̼ѬsyYh1Nh1R"g4[shp,88`120VoVoVoVo#ːe'ahdf4wX3;% pY R@A  KL][(OXxVNy+'r|2[ 5(O#!I lll|0@.Fb.X[v_@PknjG3QD%^D(ں쬯o Y_t?Kj&٢T$ #[I$$ca"! [ "E`@xm|<XMΙ 2/%2%* B$_f)Pa*SHVNSd %5L!]DHc@}s>zþK n/0_tg{=jų[Q/YCc!{"ޫ{[#9p9^?$w}. xkPP($@BNijmW %iiPhKKsAK )!?PäA/%bJU4>$ ɐM8")M8"!4n‘"q]?ѐ˗}~t(jdaY$1% tvR][a?)R_lJ`IXۿqm$`7 qlP:HmI !E^?O7s~"6ⱊl[+$&Dŝp662f&hA =?OpDx~Ҳ͙M_&L,YՎ-O&\xnEN(!!tB~ِZ@gȗ@@Hq3L Y7ߞXJ9?Gud!A3}#8MFHe$$7R32g2GOlw~vkܦ[6mh~VߟʯVy2Y-_eaװ2xmsV!d, d dŕVҎbH >hU ,BVx;mnYdP(JNe3AVQd+S2lPV ZJdiDFӳk 2&P&fC2*)eepURe~n(N))+ H@hH@hH@m lDCQWOzi`ٷw3㐾s7Wwfn"@9; h+'2[< D{+j's)dpN$sb_ H4V 4I7!*MfP YjwDUFSc%NAX3]YM ͬFV#t 2.jjI)!:N#UGֻZFPPf>Pq 6+1,%CrM\2jX<~M5,Hٳe9çoY&b-˨oy.3WcT~=ϋ>]eqv+Cۺ;Z (m!(5-=#zY}_6۸!¢}h3 $#S MlBob 63X9fKZ,K`{k oKSkxy:SYYbEaAWO{%GfDfFfffefeVh⤡9,8΢"-Gk%YghuYwh-mo?lߢ[}o۷?lߣ{}Ŝ>w[>c+G F5=vgE=%q %Y},yC8gd#EelK쓍ɗHIFxQi - X.CQf& xP FNgyߟhCel䑱 E0ǩ ` dտ@VA ^֜muj*}{sV퉞ιޗ':C$"jdM2yE,6җEM=,jJaKp`e46K.z3nf 3<)+"`)J~LQ,j*5(-8'3X/6ؚˬFx036غ~ؑŹYyŹYݼ\kf؇Ɖ fhmvh=}ga=Gh0~a#Dh5oFrojBQ ({tJ,οBE2nC$@i63qYn1v&0S(LG3Pe7 TuO$'úSþCl:s(9z$bb@NECH6ΛZ+Xu`UתkUI$/>fx]ɵ4 ]18mHOrX˶ [),Ɔ&n;W}& _ך,esRI>w5Iޯ5{U{HU^lHU%oTTXkOEn U;\#"<"zipKc5$mj,A}'P"W*;S(;:F3qLW_S03ƦqN3Fƌ4Rl:J_G}(;R(;Q;NmV{:iCSqMFc!X}[(Wh}:Rh#?-ta?3|?ϩZ{O2glsŖ<TaŠUX G[գ%׏a`VVa`=kt5Zׯ{ѺGO;-ؓ-`ݖbORI[ =iK'm)-==)'9{ W#AV RD2X"RDy@HP;HU 4U[myԚ ]ſLT[nȒE $vz !$S j rHpՔ )(oV|D3O zd>U ƹMd7Vr$`)L I$4KCeq_,KCŌ,"vJo#XKoHЃ -կJ~6nկ"=^W-HWG^W-G!A=%%qָ]v\ziьRaCMm.Ȃ0/|)l=zm=zm=z1|^z$ңygh~mgQ Qv\U_=_}!ok@;@;@X E wmCsء9Os4D"I."(:T"䷆:ҩNv̥S~9i'"qq":4Z}h𾐾oNj/V/VmHv@|gwVvgU;k{Ž;?WU\q*?WiFtюAmj3j3Gj"jLUtS5몣T h>U[SS9h-N$N\O\v^@T. jk9 xN2>uSoz{Nݼ/3]A~"#ыՖ^꼀t[ozޘȫD;ӫwW,hȒmy_m+ aak\뭤;S]lfY|ZӪ}->o|[jϳT,>ULLLL6N2&'x&dT8zV=5+RYf&=ǍB7 3neOȸT>(>PB-ca!Ԋ[c-hg!Vgc1eBiAcE;Ш)Ҩk5$Oc`~Ȧt>jlJ> UiOC>@h1Z h5hcF?h4vSsCj{Ԯ,uS3R[ڎFz[4Ti|NC}4Pq:YXnO U;JmBg -tBg{Za3F__?쿢Wa,-')cK?Ta*X ^ђ;!~h0R覱n^XwǺ+`ݕvʱ']9cT+tؓr=4bOrIW=*']%<=)U$~@m,ʥ*%/%-%#%*?d$/Boz;'vO|8cmN|'+`}`#!JA1h&F&F&F"ۉ0Ro_`Y?A k,fV$ )U (Z)C"GdS}^Z\Z#"-opv2vXFۃ4siS3dEKq`<e;*f+kOr CզOr 3Bg4΍1\>B6ƘLuC b b b b/!z2 +u]ȐUįLdX~e"CNvw."?Eׄ2N n XAYAYAՉ*2ƣ׿1>dAvG%Eg}dɞ孓-(`  '8NQg<ʌOP[}7dZO."ZO.jnf h֢@Pn^M )tM)tX.#_lgh@O/P/P//P ~Y nFоLu]fl2dݺd+ɍohv_z.@Eh+EhЍ^A hɟ%uHd SP+PmUZ^W%e}UeVآ !:<I2`?=+dF]| ڕI>#%3|p!K.=$[2^RBeJ+YKUR-\ᮩ$4Ҕ̾TgLu{F\q>[EW.<4Z=ZZv/H:$.Z;^Zbv&Y^hIV]Lm)aӐw!}Yxy!K~>a14b2ۀ p' fR!i̥TC"}KE63R-a2!.F$AB^ P!!'@!# (̴krW VG 6i7uAn7e"d J^o JNV8M)i|Ǫ$f }N\'9%6 )oZamxWû/ޕ~,)n*3Ұ?fFٱ5Z|vlY [3CƆ r'r!_D?fEsr~MEsNdHH%j͙%y"H@IAO> 9ƃ@(JSS}J]+ү`Ͷ- 03j+iAIJW 3/4pd,e9JJ" \9O!E@9EBzŁU,EQDz`,SUIY%MB A$ۮu4 7QQ{$bơzٶSȀ>o?=y~z8yqӷDSOH'֠AQkb ZAkID,zE='?y\fJn2mր ;tk@5@^xޱpk}&X~Z_ZcHX Zz`lo2 -;2%ɍ&p$l6Fmo]ܨmHܫmHE5txXd@- %&ԣOFSr)@QEIX׍;-5.KR3nNpff4\.n@ո-q(bXHQ$`1yĿBG)g\~: וٙ<Z9[^[+w.;VNRxkkeg>؁r;Vt|h,>i' 0(; 0( ,djz'W!ʶ]ƕl71pm&5')Դ`{a05K[ga,> Seq/LŽ0UX̗Ŋllllll~20, ,<8km朡m߶~~_+~_?l~~;~gl+͟+͟`QjSAO==5W?cS{=O)=4GEND&gubJ"bTu@ly) -(~Q0~P$х҃R ;θ~-:ܷE}[18ۿ3+2p9ۿ";;ۿ-j/uYb-=,i6XzfŵմE#[M+[wzC͛ȶtGS|R;jS;,b`"Xug5;jdY*TSevOيl`g,f,f ,f ,f,xY}X}'ƹRh+ƹJh~a+Eh0a;GhO>/Rݍ)5`o F 5)`P4G}H9#Hn$xPba"KG3 .Ig\:f\:JF#dD@C-r@ YKH$rBHT!EC0XxWIdJϿ@Ι"oCtFI QZP, 6C{(my5+ ۾ gձZЁڅ/t CG ~xJ^z=Σx_PPlGYQ:P|uP3@/Ԗ^ ,; l,w$'Q{YtQE~zHnH@o((.nu#EcH!0-T7&#%9r޼X& i=&|V|V|V+^sfT_j+\oxUT}BB'K 4K8E>_BaH/JvЁ˅,tq8(Eq) %'nFqE5S}fjL=@/k3 /R B'Hp JX$ ?R[ v(*Gf8]$nC/sue޶֡5@#aзJ+&^5J)˦{[ysP@YeIl/񅒞<$ߖ!Ywfo">=?c1pK,02[?Hl:U'V$0C)!Q3X$twIhO\n-Eӷhb|jsOxT}azu\,d0}Nk:lwY>ܳ5g5]#}$&zˬikd}kdA%rB 9qu$[}$[}~8]bQN%҃AY|t3gҺh_E.Zm@遶W0 &^kb~Zoe+e+e+bۑ&P0&`'4k_= @B l5K$VHB lw+H 'T;]=i 1#I@BhDzBS~ȕ|@Gy`ҝgM^p`_@kf4w+aIUt,"hwִ,F}T70?5-GL _H z j쮫Hv5N$L[Lؖ^(ö2VE~-gA^wʏ\+?b8!ʃf WG=EM^.۪^/ۚvt&&lK_ a[ nwEdH2-Pw$#dd q#! |eT-\g |e]}/$ 2p)D"1)O#` Du.PW?UJPS?i%ʨ,K .$.bCI $!!B" 0DeXzQ'ql͋0k]ĴWp @] 1w 22 b]$"x},:${[I[꒐ ˇw%rb>ؤ2b?SA N[HݳQD".:7qd'ҴS){j-nud&bl2Q>&_fo2{3Uٛ;fg'S>fgS>fgБH˨2!2 D9_ +(ua2+,Uc 2P ܮD"#7RRn7&ye%r++cjVIuƺ#"#V*H}Xb!j ,lQDER\q B μ=iwHP*T|*J%2RzZq[%JdA:*8؂|k5.kZ5PP"J^- w+y@/N^m%o$7G&?A@> wÕH +)TvJ$R %N^KKY #e E(v'3ޭ&x7uƻ?3Mx6A"\ٙo#U-| 3ABx]&[HS+U&oHR:R|2~E&̅i2+~D7Kb%ux\C  "` 8Xt'TݽM75S~wBuorDUVwɧzY)uJ^+wnumέ?Z>?Z=[ 2֏ 3?H#[b>kz{>[z{>Kz>r|p=Bt&!,Ip㼋A;č{{۽&dPzMn5!sH#4Kg5? #`$@G$a/vI*6m4EjN9lZ41e-E||8Gr.zL.up? YӐu\/> Y׋B+^k뵇^[x j!A&}3Rw12uU 3@B2(^K}bJVȝw۩vY[ny×{o]/Zp=(En `v.sÑޭ+#e$[WΗ~eGvX;+6tE< ^M4:;+x'[@J dQ VpNIqyԒ@@#Ɍ"ǝ|;Hu}G &nPwn v*Q^ˣGym'r!CĶz컣o}}wtϾhKô6rdr)ߓɭG kBv!£nr&M.TMZz"Mß(ޏr/sp]6 ޺nqMi(gW-;Rm=h\ :%_%@fmBX PK+DY[ulf"7˜`E3Z{ ֽ^#AHE`u\+Dkm mA2 PqVC6m 8=sl[vt:Zvt,lN{5m-k}r3b?+#zָ,FNBĸ,FO 9H:v 9K88;|>;dj(-.&i8R%-(+:ص>:D$йOGx{PAqG?A\YUW}ѮEp8Q?kEд-N{ۃ\=1Wܯ/fs>/fs/fQ~?J[#;z۪wxP2sub+L W'7;K[H>`I`ncǞ (o Ǟ+yeܯs{߹tr֬lA:yb.쐩7Y-9W9[Uŭ[jlUniUUܺVUqkԘ=A6j=l bIx%[7ZBWF9ox%[7PűF$=YO|CL主oHzʹ:! 5+yݯc' #Ot_9a܉θ0D7JE ann*- 9~G9o%(̹ ( V'.¸ Op=3űeLq0D/+`wORi(u/`i/`/x (syr Ą|tc6$m_%Xq(qA%_)ߊ⋂A0s:G|ʣW/Qp`4‘7A %xИ1C۲d Ne`V}{l;eoP{=z\sKUӛJp3,-Vyڡ-K r/K[OT|/u/IB^)_Rzz%kN坧ts@˷#͆F[qV.oqjǷq#U^ƀ7Uq3[R!-dvX,Y{x^yWoض^ض^u^SDjC-Wx %_Ӕ^s[/[om]A F ri7lxdp0oHFY2$ Q&Abϒo*=X d+*@X&úb+bY+y)6/- hu" @Z_m3g&Ȏ໩LB7X]ͳv%>Jڭ?P|/|{, \wԯ;mGXޙ-[X3_5˷"gQV;i.wE<..-JXҾu [2u d،W^_Z.iS1@Jn(P5KO2<ҫpMm}$] K1Ĭ{L'1ܠ|aL! &63w0s9faX/PD-@Dyh@Tԯ^I_z\z)vigDh<@H genpz5ơ|agz/ie ǡw ǡxTG@xTz5iĢda^ ?ÆE{a8k$xY1kXVd0a^XF L^|IA–T$#<ܡw>zѫ_ڶ^#tygo&Kf2)7Xdb #7}2IH ˭z8[YW,.3K)o}ʷbnC{'sP@*Bn(JP O AY vWzVV,lV(llF\aRә+lIm#-mxܐg|_y*̜]EBoe緇hu}|ĕTۉg7~I5OHNkHNkVH5 ~$IYXId4ʎm^NT#i[Y;HRw=2S{? 0 J*s@\> @XKG)>u8e q<>fx?fxrS9TN<]UM?9qf"Z'u9qO r} By79NDnO "x@DꚐdAy ,U8oafY//30aìot]h{q َlaB{!qؽ8oʉ'rR0^K1pg}r8ۓٟqpηQ.Q.Vn/hx v)1ײ2R@,J)"1=de)PD t@䁨FČ0ͼ#zSRDSADSAdj+ؼoY9HvTErYmuĔcg Q`2o݀L !| !W(B@4!ꋘ =3*.v}tkGxBene|Xۢ\.0-YmQN3$mYKQZ܊X Vw.++bBfpvN p6_M p~5 .lXDhëՆi8 &6v)LLJ2)ˤ J&?6mf. :m-?$l-ETq^I/ '/IT; qI %|o f" ܆#Hp혬xTBā'N,Jx4̂ā'uܹ$a!A,Xaʱ\9*YŒaC^ª/+YPbsqպz_*l]/*H\;@n׼&A6$NY@Bp'2Z$IbGm)y0W!TK["&aS\7q0xj 9qܚV~Xܔ/ ecQS"l,h.vn˕΅k^v)z;-yqs^¼ mmݳ(˯ޖ9\qq-(ʴsDx׶$7<3!.ZHCjR;]\jvZZŶZFA).]E -},Z:X3t?֟A\Dj#@3VZ/@\?ApWA4zvDr\ l̹p+'5za? 3I^؂Tq'$8 _l$q/!԰۫а۫P۫г+)kJRp|WʋWV^!9o-:e%t uڂ[j-I䅚2dG2/lW,F#0aUqgQu\;5,I%N}HN}kԇx'\Su> y?2BfOaYadL2{ vL2{}$`> IPE$x}apJ(>d y<}lQPsEA^ 6!Ai! 贐u90Y0Y0Y0Y0Y00D8- yl\yũ8[]Z"VSXp1[:gLN ĜRLg̣ $JBbqʷtHR%*UBR$;jU;EBBA;nGdDT-QcgQe320Θh! bh! V80B]޼ε8ؼykqy:8ؼm\l޶Z4b>xZECH⶷ts-f_\̾H`&H"w ÝbYQ"^(-]( r/a_' _-I0pqyIq@?GQ5]u:J_^(^(](b޵x 6rh1L"͙os&p8I.ZLl"uV~ee<(FkWD ?,rC YK>@}3yS%d"c2_p&07ys:eS p:mP-ALdY@<(zhPcx b"x9ۦ^>ه0 b=hT;UΜFZĒ(gN#-bI3$JHIug092eryP7J& D~Z/{F TL3JlhAB&hd&@1R(~QJPJQ o+NCHt_TM&2U /S$2UK- z~}(A(z4dC@~[^e//⇐ԕ_s2aG/ I0d"++/J/J =  ,IٙQ{lKսIаlm `\y$crH($Y|E'Å㺑RE1S9&:6.\:g>P˂[-Dz+r7gM ?R F~i_xPl&Ih V*Vz1ZrMaT5Rz7U#J@rg!jbijEWK(Z(Z(.7T%%` 6uKRj| ZM*&~S X#HN$WK(D~e<(AE/l>$gͫgͫglP:r5WqC.`RLVKPVK(%}QJrz`]+/䗽UB2W~3YcZTNr P91@֦g>P@uھ(?(F7 Z uyy !FS6+gv \n+-@s=V9/Jmnhs[@nQzEBFy Oyq lE ,1~-HVchV8Աzvsc>Ǚ:9D"&@ߔE2˅2b*~K0Bd2 觐$㉥?sa\&%%/9Pٵϩ>*^BY"~Q4](/E-| Cj[}ؾB4}$85W^ 檌4SZsUFHC$rqLiU$i"@sՊqLiUʚ.ȃJNJF; _ٴ!QLIЀ;au_\u_规~J规~J{G)EnP*f]T6.UUYTa+D٥KUeRU]J楪oRURuK5Pƃ2QB(wRdw2^4 QE(JO! -NsT횙H83pf"Ł1Mn5%joJj[ZZXR-~K%\-BY-BE(. QXh󨖙=jL}%]{Ti:GxܣJkfQ%51.|qaNǍc&!.=$q,@J#x@'>u8͏a:1wE,GayAF$[k2 <+_pgk#? .. a\< <(ŜyTbL-ɰHQl]bzd&S5q%؟;rM auNb)g.{蔜$q7}5=_hE\,`.\9H0IE/P@.B%B۴Pei*7ʕHA_~fAz_^eUvz ?CP# %$tZsЉԘ&CIb[ IMp_牼h{D޴5[z5wț% y N vțYwțvT@l|G7JH;y($č@щhs؀! \V6AiN߸4pogG1˼jZ0 \N^m;@m ùKc/ϳ '\T=X($dtJ݃ˈRePL6%8s}жԦ5FWՇ[\$.8 m(nDb҃$@[[J*P2V-Œs6m}[SamX;աv2HAhB8$q.~$mZ+Idv?6m Wwv?6-.W~$mZ ^&"^IftIA҆XGn{ڨ5gd-y,ğBRDِ !YYDe6 <d >p <k6ŶçU8$U>ET;=<Wmn_e\ Im񆊫67T\y@j~CDߊ#Vbyb/[~Y?|+631<44IDo!wN Ҡ!N57`< "&$q64 Cg*$q9$Q![WO d>de@[54zbG)#A;*䡖y1W?(?s}}sưԈ@6V4V_5Rԗy-8FD9uAaGU8s0LH%fr2_&G:.H7 2C|4ȭAO ' PיL֙H,BFD,BFa@[XmqA zinkH ><ŜJ9ľ3bc.'NHw9qe1 K/ Kx;b$YC*~ Dž e}t # ,|EVFǢdD ѱ(Qlt,JF䟍Ψnlt(Ima>֠[g0_< )^vm/FSxSI%: 5DdnXk2/Zz 3_|mG_XUW#|vՈ5_C sTG^2V ^c5ˀ*^ ;* C:{P=pSe`.ax"7XLbDr4{@hFvhFvH _AB LxLx{'IQZ|l2lFnCsJ _~w:%Ѐ'#3H'3*1cρ IA\TJ+ʝqH "gZ PP|uHֿfx$HZD=qYe e'O|ydND\xcΜe<1/#੏9c#";qL#pI7TNq*'<Or'_IˠZ00h6F4ܠh†LId:j5'mh߼21mCFt];rLN%ng(j Kh0|9 O_BgiR.}M~֦r5l$_gW.6`G,Cj8 oYQxDd ׄ$yi15fyDwc/2Gs:-bV1kcT~a|}" 5Z@d"$Z3/ICυ$sQ Ӯ?j4W4Y 4B*>$PbNS?׏cOsէ(W,?w.;3ÆW{-:͌Zxfx×pͧF5|J/^M07hL,e=ưRo׳mvk\aqK5zV];+.]P ʪB%xJzu;d@D(YlɀA J:&꧎1ޑ+ bxEʮg11f|Oji|11\li s1f9>[1s 1ܖ|L}A̓UL"oۖvW| Wq4$ąOVW/ZvU&CWgQ ?Wg~yAOfH2nwpUВ(4AB )t\o-\o/\oG q4$y3D=·hdN}8Їqld!# :󯹇juWwH]!A..H,#G70kT$Ln4Sq!冎(74boTyY.{ʤa /(YlegC q ,F^tؚax`V/XobWJ_0eDaZ]ba,_#=pdBR ٖaZR\/Вvz9t([9PE/ƥ Ć/0BlM"L3f0A:4׹͠QgfШl3h\ R+y߯l3p&eA0fjں5me[AfPkm]7Gu|sT畣 ^у ^iPZ%j30CnX%(( w:bmtsq!kG}IqImaXHk6QN\7 nFPA8ь"i%8Ha rQ°)ib70c +yeޯHbaĺ0v9 ; ;4 U m rEJMh#ga+&xEʡoPICX b7ءy+ao>";Keoa>lL&Öޔ.ob!> R Qqnnb=Ђ*}Z Wb)Ģz`U.l7-G M v{DݴQ.l7K8Crz. h9ZC p{Z|0+JV %}K-{H=$M{Hػ窅wOT-Vȫو[T(|6# EgcdQ="ձ62|}T;s=гZ+WoPe@A$+ȿC*ȿɫk "HaMJW{dϲ@=t+Ţzڈr+N rmǙKz059C}bRdrL-H%sSIɂ$ 6s;I,ǰxP++o  1,{=XG^>=( ]\WVn^]JV.=lQyעz4 ({,˶e^-WAz8$an$e"}q$ \t\=F0rW Q{ӿ(c}MQ@B,ʱH"6V%`ڡj{(N2cۛG^moy1K;[/ɾ7W9rY.5h[][]J}^i+6Uy,>I@,n8VX0>X$&p Viֻ8^mUknN)KM޶)kaA XQ*ӦKC{4[ø5ΫVe. h#ud5Fzƨ?RC5UVW|ʭ f'hLȲʦ pHpv3Xt˦ #b@آ.&D݂ -S9bukd>PaNHP v h@Bq "G\o3j5ӡ J9V8х$r([< U-ws4,@FFK)P"pD@B݋يz;Gow(Tޗ&j{ҭSWg;mA1$vCNޜ=EӽpG# Ә fGI 2f d2qYʻ 0*[AD,"D`lt^5#G{^}OA X҃XX,N;5Qט9Ii^_sJٟK׈*1oC! jl1kuǭ=’vDž=5A%S](#xDv,Ղ?D$Q!O0#ZٱuG^ӳcazMQ`&A&! &XY@j@#qdkxuixuixi^g*΄c`IHs,p>8#a |]tg=A _3}<! 10 c00 Z4i9Grbu0 \3x:=ÉľlA}<y#N$&3Iy-hsКώ ώk)~@%Q2%Ve[xlnaxsOb!:0@!z!ģH2dGTWʸ_\H,*mpXx(mpXx(m.rXx(msYGisgnzxɾJ;^+~؎rmmvmm7ۆ|*\P#sIt.8AGr,|^ a;a;a;na;f;@i`CбKбK{^ ^+7Oe봼9f\j=4oM/EHYVsrx)B\KH+ZW/CĀspw%$ÞXl{b@2khd`hĢr jp ֢r$C*PT ߫!KD&ECd\1^lsG[:mQs7wE\# C X3e|2HyPU;Hb6%Rxm6jQQ~>EqtQEIy:q)O'.ĥ|;q)N\ʷrw.n>,X|XA~!BN_Cڷ@HSq{yCyCyCyCt2:è?QCw!u|<,L~|rûP!+@ukc OpGBeA$t5lzP$rPXPڞJCP:=C^=Q Hj_ʗ%"7IHZh -I2IQ>ig# >lA'/ܾtrqϔ}5Z){Jz5><"ݼ !8=l"`z͛  0{}7껡VX 7ԂN y4xNrH|2QF8G;8˃E]3}gr6G-"D|f$:s Ib0/c c z#c]9:|'Kz5jz=sjPず@J_Z%c} 4kƿA"KNQח0PYT7Ar[xRW `oGN8SsZ~'m?(DW<2؇dV-)J va|R- j9\enT*xZWղ]eUvaT-UBqS&H2A Lܞ2q{)8j0Q&G@?e};v ((ЗL9d' ?`d O&L0n2 |-[,hBUЀޫ}l ޽-Gx[E<".?&r %cX<,%1Q|=&з{Lo@w@Gg7mY[vd ;jXFaH5Cu(!=$ujh+$["m*΃jaU2·7<.&JS8mSvi}jU~߆ZDag/߷Qe WnETvIrB)p$$VQuY7B=0.bSwߘvHCy.^< PŊGAW!br[7$QǜYuu+~\[73x?|Zޘ>͉Zޢ>q[8 VҟW ]%)dT@fg˲.s,27!цS~hyu̍g\d2 mWO"p3 T@&2]#d=B)4f04/ @FeG<.7r%Ϳ\_OPn~j]j*''.nQ <ʸǼ\E7%l00k60m00q``vf_⎋/mcJ!jz}C ě sTum~ЋP썿.C3aXK=A@0|XX ИK#Gvj_Q`1/<Ў#3_Ab$!'"IBO152v)hE] l!pl`S˰!p1aaq)qa]eBf鐓s^cx~q9.n27~3TA%_J>Rrԋ0]EJ(󫔱954VQc d?᭣o5txKeJ6-UtXŵQ"btihׯ&l=K{x1##4څ!'h$1"n?d sY>IIf=t$V!ZϧqiD!̲!: 7}ܢ9Ѭ8rʝp+wyrʝjy<ڕ "GD""utΛs@֋=(u KΣa T9@Ջ1Q9oDnFgNҨV7i;I~,nzGy,ll,ll}lqEȳgG=Z`ۥGxW|Ѳx ,_ F-D044ӄyъm>2 wq:cP^1[(\-Y鳅E ^+:cwΛ79!l7 aߤ}.}ͫM"2B_NY nBV9OGԟ>ZU+"iV}G>ZUwhUixsoxcxˡKL|<Ѫ.?ǫ}hU#5]Ak$j=A{ŀDӂ(:˂9iAٞĵq\W}qKcۈNn_Y7Ouc#lb q^aqu'B'ĽC O;s q'}C8'ĝC)F).$IObψ: wRg(82QB;}:IXHX+y"r>ߐӱZ-7dFKf/1.2-P+ZvK-UvXov@Qq?xP=F"wm]pצoN|s*SiWN1P{2u ew 攁u];e }xRJK×id9[_0E ?K|iĔsEu6&QtR d(Y?i:3@'DYEY#t~|dO#^gt8J։ɇ~!KL^b+&ß(ٲȖd@9FLZ!Q&Fa 73gqLCk>q8Zno  (Ɗnfu1x9FgdOM< V1)DI!n]僒Mcw ]ݱ$t9vtr @܂]-Oq%`ߝ.W-Nk';ο';ο;1eo!xbʆ_q'lu;< }]kl&a^aIZI"/&3Yeiv(CF;^ 2deyY.!BfֱKF^p?$VgtX&:҃EJїDЙ2R\e(c'E'̀s fA 3ڢpmAx 8IV Ծc O SWqBy an&$yRKšc5[Yz3KgvfeRm{s\¹Z6a !{[DDTq>9Qv7;Gޜ^Ϳn8 1/.NP..NPO./p _ə:F;3d2v'1l2MF cBd86ĎFÂKF"9l#7cmvkpQhhNٸV7.5kr\_!>WYIDĢvp& ivy(Mu[)P[{5)'GU(JЁ=TӘ+IvK&}zCC5[d/J态?t*K|iRU.5*+¤=x& ѝk?Qd$ghT_,<9YhuӲEHيa22u&P 0/"xt)nS<ɅS䪕?E9,TL$ &369ш$KI ۈm/ \lN JAJ9uɥsl\W;7keib[DAYK¼;!ԃ,qg^Z #μa!cC,d=b!`&Fq<;EC\qqCL;ζ'K` x, jvXAy{ 4R,"XH"2$( 8Ņ缸8A98?=_A8q T%YF-X\c,фk4͸챸F[>h%\\HPŅ\OɅt\O`Y$-AFɄ%ؼ9,笛?䬛7A;(X7oJZL6([L6)c0))0C)' XJ߻v;a!ç#"(4e{CcjAT }Uoy^\\\\ȯ |r!RQ[Ãg>%D$W%غdKZjoW>f #bծZ 2YCM~f{`PcV%P5;<-RD#gӆYR )Ϧ2r gV9e٭"RvvNe5A%,"ՐԏWr Otr˒~ox+!Sەq"D!gT4s҆ZB6mF!%mt(AQYF!2^ƒd)>[ RR-x'#vml]t' o0En|톴umjH[7i!m `MEݙwCݐn2=}XNɷ|N׺fk]WܘhNj|KĎZ#v"#VA.;c66>\Hp%8<7=s!XT}9(DaYv!Y;Ъ8(B7pƀ=pLO9쁓d.LNri}܇؈="IPMp<΃ iÅcp!=s!X=mq!9!'µ?QFuZ :dlY'm@FFuh ^Ӈ`"%([y(^&y ۪4oUH1BS̟yW%Rْ"qsأjLZgB=.iSK~֒z\KmwmяAa2?ԁe\ATeDu\x2F_]Yx?HwLeSt )/Yg dc :ik@14e(əLY:NL[Y:RC,e0eEpU9V2S:G AQBPH x|RY8' '^ ,[ p@!$k=UHsPIO(w?Q+GgdEtSbJ0s),<-RXdxZΥ8k{Z޹*OU`?U,1}Eܘ=acC(l[CArO^t~&Kh,"tŢ!"{#ˆɌEٟ(!3" ±21( u*3.IyghUft2 52jƒ %Mf_ ׅMxR,9]Iɸ#5Ip(L;4urB($R\ i**pzOO3G¹-Ka[,ؗCj`_bݍIFJTH2à eF_ .)";iZ4Qz>0;=tًfӀ4l+_!>I=8Ytt´Of3&0L Ld6Ӂe~J*$GM(r䪈4yx))ƾٰiDlX$%Hzmɰ?Lew #I0 lqɻB*Uh=r\P44>ߓO>꿏$S>㓬mއ|6UO$ ͨzGҩPg:XGP~z` OS{` TTXu:`}l6T/Զ㣢O*koIONEFڒZ[Ґڒ%  g:- p3p y:zTʟPcS)pNN[C(l =Žhs'aw¸l*# @O&XLb'2b$_N]FiZp4G*\ҵ+.' dEH @v4%#kebI줵)q] f f3ȓj:%W+~J7viժPZƎwraY4Y4YI$RZJI_ I>kI'~-"O*"|妵zI|'< >F}}Q:!}Q:IEM닚`鯔ӂipI A/%"<{[ Д=^Wv;^]c{ma5abaobR;ƓC;]2.)E՝wug|J*aŗVܳȩtVws^ER%_]dT y)RI?´6ʥꥃWȭt:USp;USx8UTȷtjLJSIS˒}r,pKS{?QתB-?ĉ"*^\duRam5ցQkm5x`@7nâB~r.e\qAޜuᬓ q{ vAp'Di\ts2eԃ p_Sxyxyxy|x|x|x<=k˳˳óóY#Q3Ph(C(,C)k a[ l:'LFdIWvԬ%+qdb~A&֛ 3.2Ӿc.i u2D0a*7To,3D;2Ef>EMf/*o2{QyEeG˻˻˻ûûû]%=U^U^UUUU.*K aLl1wpi+ǥNW].QK}ԥ^uAIc0ͥEK*Ge]"cw=jw1ڮݡ{ь=eGأ?/{hmvޑY#:xGfu ;xOf}wznjy{ x{L̗=a|c^{ {Ȁ$#N2$3i&:̆u4a>=qVꤍR'o1ݴcirASѓI"s$3=LgOX.Hq2Iឌo{2y2}ɏqɺ{2=NL@eޕ_U^UUUU.*zyYbahF' fTRkͨ:YՌ:ftmFg{\rG-W{\jз/N2Efdzx$ ?)u18Eq q q}iN;28 }&3Mf~wfTx%57yǍs9_/{̇=G G G GDLL]eeBȰ52B3ӈH~1Ļ'HuюWOCz9Etӎqc]qc 7ƐqcDt#wM׸1t wm8kYߌuѳ{0{=gdCW Ȕk"J"L'|ۘpzS1eS15S_/{ԇ=az٣Q_/{=avXpSpID֨9iζG"d5{(BVp%9\IN cWXA&9 Q$Lo/2Ef<̛9dtܑ{N5(>v3p<ΓsMfdfɬzuW# ?ddkk>+wp{W wp{W wNS]1<+wp{W wx{WwHaƫa$ ZW,ӐUK|%>uIW]BK2 1@%}Ȥq%UK.y\꺅 7^{a~¼n.w; e2H~$? R)AJ[70Mf/;2Af\dZG]X?] tLͷrLԗA a0H{]i/A a0H{]aD1:5WA^nڽ޴{i~FS՗W_2}x%ї/0pb8o{i~3K.;3?zH=RTf7s4fiJ])<+ۻR+ۻR8yuޕ])ޕ])ޕBlGlGlGw"3:݉딾hJ+Gӕtt7])MWJgӅtfrxA&L7\n2drۀcc=RIrTR9G*S SڋL2&3xG!ۡ|UCGn}ozq e0H{= .A e0H{= /^MVRFRG_/ŢvIvӾ:e=tL:q8LvVw<;;CБήs ӫsO==:չX heeee2 2tɲq?;]&u,_:x$ 9A e2Hz$= IAW>UPhBGyCH{yY:!+V!czy$ _ Nj.5ċa `Ȕt)&SMԓ oPK1|StbXqJ8{R9NA˧k}E?Ȍyi$Con_uǸQ\qcmNmǸ=aGأ_/{=aGc\E6FK4jǫ'dƍu>ƍuFvֶ{9nl!f {W^={{ѳGޮ D󋌏_d,bޑwӰ~xd;=pyLK;<^H/{=at#_/{=a|#s2SpI9IZ Gd`q[Y+XVu UŶU9#3djx&SML-'$[]=b8^ Ͱa7ÖN=VdZ}iA?Ȍy>___/㡮qyj-λ.~8na 1W].Q˼kJz~FlyW \K:Ͼ"ϾBt/zU}wnnG{xAz| =6HAzw+?!L2&C _d0?W]X?\N>:#qLz$ Ae2H~$ AeAg\?Tg?AuFv]IG_\uz%}Iw_ٗhNfNo- [r3ld1R1R~TzG*#V0[]]]]]].w}//w/'vtA ng;:ݎ|G;:_M|5]tͻnF8.MX4aݗ d$aIFd̸̻ \? f#ʈHe{29RNlu7 M&śLJ7O2LYG]1tD%a鿒_IWwd/A a0H _/A a0H 3 >gkߖzG_du7/tuz%HV]CGd\CGqCQCCGnC{2mvC]'S՝yuչG>xtG,COȼeeeeB,B OAˌ|(ˌzhˌA a0|d^/̗A a0|d\uB_9^X5Hkw趉$] ,p.Jf:U/r,C1qOQ9EWPD\ .Ʃ)ᣖEaf6}) ;E'_MUdLIοu]K>9D  u]CĂs^kF!u kxgխWׯ'_Nd-@bDe#* QAL c/aOL!"0r|j1%)fT+Boʨ^k6*W,+u#*SQמ 7EF +t)(vPDv]'fEclٓYdu,~rFAKnI_C)BNpœh2{ #޺o2D["vS/mj}qTj]#z2H ="C]˩3S,> mR6Lw So4*auKV0w53}W&վvP&2+zS@Eql>M{UlM{!Ka A@oh!lt+ڗnehҭ/7 eu: 1M5@62c%&X>%aflJ, "h$dE,;?ݵhqvEt;o9k4Qî<ޝk @ %4,٘`r4k$];KqaH/;[7$ ݟcߋ"#bqEf!|#@v"Η:_j\yu5te]:ey|Pr=!VVbk_}ѭ}b:هIӞDC?H5B|BF5|B@H\B WܺNʗ7<9=.kP]X[JW[JOq(\xW ס*on印XGR8U<@؞QZc{FQ"c{F1*ŘgeB]D3V1gcnXTXtKssW5!,Ft@yg?yg) &S M03VyV^ h,1&`1+@x\ $)3b$ 3^tg V0IweB$9kd(Juc`'Ie#Y;!t4JYūpMi,QDW"NG4_~k$m(-j|oP\2-x,,_GhX;eH,s::,JDDR^De^_Sd^ "Ȼ : $n9uf$ 4Z^DZ^lV>qȔ-/Abd6!hkql6.ƥ囋?l\fN6/.x;#:+#:L:u^q9G=2\e s:.c:eggggggӳvQeNSm,)v>%Y1OIm`Se޸d8.%e`u,%+D?ϱf#5cFfk^d?f0b8o.br/S|3L0HO!ҋL2$a4SW~yW~yW~yW~xW~xW~xW+˻˻ûûû]4 7RWc϶Ge<[^uG].QzեL 7aJezXRYgD+wm[kYh{٣_{=GF%wdx7n2TܑuIy̯)9ϭry?*/*/****w^tByVlhx55_ͨ$&;\rhr[\-W{\jZz|`-?ȸL7d̸GÃaSrSr)qJ8iNEf>Ȍp&3Mf@A7b7")7bCn1_{̇=|c1d'Ivd'H%SgԵ1nF n5)ٗ6]'x$FHvzL{X=nd1n,1n,7tKǍ%FMF75aW^^={yѳG^ Dɏ+&s@HJ̹Q1_~yLɷǔr{LǔvxLy٣Q{ԇ=eG}٣Q{ԇ=e=Eµ?Q菢%m?ԜJZO:OZAN1čJ'm/2Efd|pFfG/2E3u͗w͗w͗w͇w͇wۻj8>Uûjۻjӻ*WgB.uERurD듒W].QK|%^uA S_1#O>ɸOe|2"na!GuS]ݽ0PYvA e0H~$? /qR-o2na~)&SML)'ƀ0Las]ej]F3nve2H}> RA e2H{= iA\?ڥ%sv7o=ݴ{>iӡKj%}Iw_R/W_”nA G~0pԛh7 p>zyTG*u#:ϑ&&njnj.&&;ûZxxW wp{W wxzs"1َmmXvv-mq|MWKjnZΦɎ/"_dƃ̼p$ cc=Ri|TZ>G*Lv:u2%=Ȕ|)&SMFg𞌿VUCGd&CVcбc e0H}> R/A e0H{= .me%_dK$1E}%h/i1tDVe=tl:qۈ|rx ۸mC6cQ3}NHvչW{{tѹsGF˩c2$;p/Cp/Cp.Ctxy2_ |Lr2=ez_aFC=> dmIIv aF => "dIAePQC"U=$-DQC"-DR5zs+tWrH0#6_tW Oz9M oEࡿEZzǻ!w먻5Ń.GW!b)?_풪"뢻$RH"V:hXcxq SR\nZP-q*t'i#P%1Җ3Xh#^I^\^Nct}*Zwv7!Ng'u2; E 5hD$ɫE7)YfHh$igh$k+鴲ă)^zmAEDNzmuaZk<9N0?̭E]DuCEK%1U!0)ƕ7h]\,P}+w83 |EK3`VO("PD]=!~MQg;ebO( k/KD:W)uKN-VFnI-ɴg"ӓWTt @ %N`8$|x{6;y༼ xW'.2P,. K;IVD_Id%4IV^Ide9 ٰlz"&( Klk覓Q x*- a54Ό%2BX"#fqUfmi:蚣:hF7ظpA -铸3:\L4a!#Z\@qQ ,BTK=Y t쀸KULvv)ΖBq,)"c fO1 c+~ 2K:zeyf^- K:]st]Rydɼ22lqgOb0a1 cc zaIbLFAH Zj/%Bp 2KG'A] @H5g?UԤf}* 5Yy~r2T˹|õpof+H˞Wvȕm]+=+!܅K?+e}jj*0@l*fɿ59\CRpأCv(ر3 vp"Qu>&_˞W٘VK|F>s˥\/}vN9䔗+PBYN|9$皜~69JJ Y-{^ep]UvM߲+j]Qݒ\G\v WݶmiGn\v+/e;۷*n[ݶmG%mb~hqp+&t:LKw&9vyCn[ݶmGAO}λMw86qm"}"C'EOɫu4$)cO{ ؑ;vKi]pWےնx-)~ɡu[)^mbW&؏wY3WHIެd`ѻ:`1u[s \ ] 7\ 7lba.<ǫs (G?pm~?>ϕĸI̋ħ %݅Բu<,_CCxwe>( t,Ӊ݉p$Zn" Qog3NTb?$M]ӑWz$¬Gr$L@^ɡf.O7[wychXb  |uثP*n4ܽ YWqB*n\܎T馿Qkߨ#oT̑7*㊀#8ĕάb9FZ靓`$wNx9ٺ$d] "DHDĒ$HxjtDN뺃9񺃮9ybW⩜5(+Y=kO,G(ZzלYTwM\zHO"cttYPQ%❌dAV"*P&o" tӽvm݉p[w;uڣUG O,-a+Vs ^Sӕ6d|uEK7vnՕ7As.ufoU~ɦgDOނSl>ADn٣䬪jBD^"$ꄥH'K}]2FJC N+"+i2Xaݚα*5an堝> ; ; ; c:pwmaú8P;?:)\ʔk "_Nj2DaWA$T)U>DJBwا XxH" %Wx(+E o|EG-ck/$en &.;4sAĊwSd ""]_SyW,D6ȻbJ^հ檗6 HCD% x'>%KXCOz 0z Ò],l*X1."bn$;XYQ!EҨ^G]L 3-|88YSJZu1%bzNN@D8w~Z<~OK ^`]j\ufB2=Y]?`]쳭e>ZW]쳵3(.8wօa}~ g,Fd +Dx.T9%VOfduiL.m)\iL|NZsRM{%eKB&'*v]Xu%w|zn dI8tQ (RcYo7C|-Y= % qКaAk֤gMDIsYZUUY*j=I&3␩VL o3-awMadf2[R3t-Ơh1/I 6נm"56qϴa?ӒWnZ+N>+N>+N>+mɈK3e\<̚EeGi4t>:Gs,ۓh}Y8ۺvM!3g3g]LJ|yQ^r<ʓ@F9).?HV%u9a,kr` 2-YVJ8d,ɉd,d-2 I, N`utAȚ">ɲȚ X(_ hHXB#G9Hgƪ Տ°޻A!RZg:-2($QHD!1PMk n~. 0$WMU]ᘪ¥?FJw,%Do-g1/#z{Hl$1Q.MXg83e"~kBz,!z2 /3]frw.߅yiK̻Z]}-.e(@Q[ ݖyO)Ft)Ni+=$G(!"k"Z~߱Hw,wEe|4>S |C𔾅'41ʤ[ӎ-و͑PH(p$t W0L.uך9]9_\Mw.|^-\)QT%_,`KZZ.i>pկƫ~5}WT>E:~}ڟק^SH xWF_U$/[̎dOH$#!K!5v/AtClkVdC|g[c؟/3ϗ==x(M #׳Zq^Bz ~}{m@ u-"BJ&u(Rԗ$c0 t;tX|٪yvfV[ VUNpݪܰ7jzz-'SUZ&KDل}Xh "/pG{xBv;+9NF/vw5z#qb~Ė8A ŃXrrNBD,@;QdR*-Zbܓd-=YYd~<&i".Nk#)1h-Nk'#YPĚ@bta~W0+scՠuKX(D5K]I!b88* xR`dZ"Hګ ͂{I"i'd)X4I4O.ŽB\A\A\Dw<'Exr`X~f:U3!-ZTl.^4Ox7y 3SaiVӺm`+eH5`f>ʅ}}.Uby $E n6.$p i=Zzgx#O?Els~!:꓋c:qTјڻ ߋ}6B1~>ޕ׻2z'N}RNǚ+^Vg>Eי4edwҜ.< ?>ԼE wWpw]5c۶\m["'˻7 I%?j ;m9Ϊ\NYM[?؍t]GEQY -u dl EdîN}EvdMeg!),"#C͢+CU^^=^]}(*rPT)R?Ls$ h4'`lO: 3=9 3Q8SZK (ٖOֵQ5i Ȕ%SLWrW$| Vɣ0@Y^j8W5Ʊ]ǂK1o.|^p^pLMȓhEw)$Zu[B2ՈL+0ll_!2CVx~PO{X[Ba[=a*L3<.0Xw4\Cf>2B}}e:?}1 Q=B4*XTP'Ukf+V*q}*٧`Hж)#A L ي;_xv2`-:X e=Z':AHmY;uslY;H݈MY*zn1dϥPV}YZ.z)K_ F̳Sp[.U0;GyP}sVQ$KT2bJsoh=y͆zAvgݭ-h[ nV`E?{uՎõgڭ/BunlG݊R揺Rꏺ]pUݴR,屃[v7:+[ẕXc5'V2Wsbp[Gv7:xdwriKsl/?ka7'nN ݜhX TӄNrx8ZRq{TW~{KoAW+} wk:WǺcHGt<ʥQ:+$x.3^$flփqYxx78UɿkHg5Oa w' ]j/ZPq`+<7}`Z]UZk- ]$\WI#I"5En#F+FiKwev~`b]Ywe zʚ~qAt*Dᅯ$D Acd"$Ix*,3IS ͊w:m@#A(`Kqv6Rn\{.;< -P!l5yXBa QU`ig9 mH *[R[/ɶ!z$ٰL]ZfA[_sfM?m}5zM7m,:4!z'K,Տ$TawCmwvCG$Iw6̣~Q-G2)E6m[Q#$K>Pax>r{#ulTs:-r['Ε D^Gn<뇢EE> "cP$z̞b,TL#IE]sQSHkb Ҷ1dd&Ɛ4'02vŅi\ualh_\7E)ڗ7MѮ̕/WdE>0j)#y^rZ nj쾓Z7j[N-~'EG'ٔ(ꊲkp(+E_u.\QG`qFq:pQ(VQ&GQhjQ8Vqqz('Dza!Ui' ǦQb֕¦u9nBRlH1HWORUj%9vk}`֦Ew;Ty$GzRa Ra ECQѻH{  [nyXt8aѾӱ=,w:â}며 .ɣMOҲ%<UI*-[1U{LGT=3OWt4գH y+\+x)‰NU/ip\ppܸT楺.x.Ku9UK-z<=4?m#-H(p$q:E&ӛKl[%OUR.z].vzK='$^Qr-׵~]Jv u\JunSrcO:FD+V/$p2Pynt+h+3j{ w.rklOb:9RXuh"6l2nx2{`HIX6G0H[JHRURFB@IoeҟjM! J)5պ6j#UY RoUnJ 7az@ipFVW}x *^vx!mEk̶bO,xMew%{]1,~`R9DzځQقkr\sbpȈV!#6W!`Sq pw޸\ woƗhsy3} : QcQ`UȡG(/O*OT%WzB59+4ƒJ/0і!҂VB8z4րNU|. #3TE3TEb5,fհ01@h<mE/+2+2&Fኀ`4+~м?#YkL# kL#~k)#MjF2*O ׸OMn}h5)׈MXzy@l[ _(\S(K@iXbT[ +R+PkN,ɈIcԧ=\J}0HQ}0HTAVZ0HzWOfRhmmUpPTC-xT|⠀QQTX˛w2ތ"d;*N%cSiޱSx[T2ތC0)&^>ث&0iRO*ÒBa6y*pfCKI`ⳬaAG+q8[yvEEDq:^+N4)t'6]ȤPt!6BӅL%2ic85dqz$FCM5o?QQS0p&MinlN_>55M}8<(SyS"֮2Ee7 @ҧwZeGf5N>ͪ\,:Y,okJ o`ˠ~|ۇEE>=E|)EqP׬O*W@´L})Iݗ/L})I;Ĕ52Sk_>%~(E"{w)eUݻ*Lʺpok+>6#kS|oSz{W$kfܶ7pPTC辷YMZj> w"V܅qQ )SVS)b%,D2hA $.skĩɃұ# r%/;rED "| ϬYNxI x(Mg+¯i6WդkzeM6]cZCe,tj”:s3RyX]CE,($A*)` KKr(%x"ӴhBN:>84 \)?MK/iBYgWGj|Ǭ(ڳge=p(YGB YR-5j*ߵFzV%VES~JTz7` ыjFώvV/}pj2믵,CJHB_wAY \U]EPgά.?sfuUϙͭ\k͙ͷ>s ϙ\cz.sf5gO朹Ae-?b~Ihႋ%%nCrbI|{)Utb] W.Gŧ |Kui.vB>YZv?Q#7kf?k]̩[ss1#-c_a5 S/TYYz/ZX#ӂ^T%79’I{ad ȶsKHw%)cTNͷ_ou յϓdXOܦwch,߲&='I='eRE,g&[G[IեL۞5υ<p[ a:R]-(!z.4ʲ)+ˠ@.ٗl)[a%'M-pR&3ŠHz"ƉC}UɅ# =U%V;kЃ^`BZ@ןN U;8I4FN#̑t_MMW]K55_WSUZd98G2̑ #'υ9{.s#庸БpIp|P+y@Ie6w@;INEm,:4:.$uW*v쮊֕Ȓヘ4H3)% †N) Q^=E!֫(zXPzޢt=#e~g̯hÈ6% _?:hҀ+H:ssa"}~A`wz;T;ZٝAUCUCUz}ڧGw9[Q].Ι¬.{uq|hFR}ǣ-lS_:hlJGc46'vm:Ym{?>Z{>_~$}/W]qF v@=5]{]% կu`odA3S;~~GmLͶgsff3덙cf1ޘYU ˷; ]D9]F9P35JltX`+6z4NnK ISAN~fd ᧬ vU4'ZlXhö =#ӂP:4>y1CNe%rvh$'ZSS0^Q{EEhH2ڶsZʆ ^exOl/~ex!f'^ꉗ\W IL>^fzx!>Uv2nu*2~Qe/|&lpL^A=APOpR_7>n&>'8|~EIeひdtI<JdsCZd Q "{{iON(@6VVX\fVg]FWߵyM7tޏbTME-YTeAG ޼ ̯!{|E:5tktM7n'2U"X(Oz8$z{*x"&wJ/RFW&a`t`6QeiMT}vU̳*{&w7tX?bZ7  Pݑ#(ﯶLSϯf  Z|9zkV;ߵ~ Z5]'HޞE`_?LYN|O,28|O, =0hJCD~7IFۂH,R ? :Ke[\:Ieр&Iw؄GOBI?  z'$dٝ䓐@)P"Z$ap)ͺGDNZ'Exf:"u: "u:-,>xZ: Eh|xy#TZG'Y%0X8iy hONq|_$B:U3Sx=a!Sx=a!c_G F:Tjb$"?e`%&Ϗ#t ihcO툑12>##*FT.@ΎM"ׅI9} os[ Z_R9a}U ځFPnD-"(W'E e44y-ik4 ?R,[44mq oq oq D1uߎf㽡nT vjSnRB? S ϱ'_CT~oyC󿎵R"6s b*;P62c)u"io"$E)Dz|D4{iޡ;w uD9,yJs!2)DC5oMPS)y3;S#ADN(z(j D'jIs:TKJ2>'dR)jU<ɤZU#jUI\a-:,:,:,RPKIHB-U$ep:?>bxw.P+h)' i!   )|(e } SڢjTEUQ*QaqkBYG= zzV7gE!YG=+MuQH51Ix9>0xJ/;/;JmC5][Һ'(T "赪bFU;7zw;lw$uy5haMn7F$u:4Ѩ=I9[a@"YEr|˜ߡe鄉̳眵sZ9gh\w#XH7A1͞vhasN6KϤFXg/eINw17K%Quӄ:D  urR jiJpucKt #uX KxtU\buVivK:X|p8R(`ur(۔H aHaH bDAT<`4-~af%-~af0naf[FA_a[FA_9+EJ65mw:(EsY((PPwg]wg[pݙIu6{]pW>]ߝi4Q35#OΤ%Zw1?'b32eLziT߶D]4; A{xG :[L!9Ʃcl:֩cor8Du|y[/7bZ983KE?..tave0 Z A^?Hh*`!/զ) qܦd*qyަd=)mO.F鐍Ԋ~a0SL!ZJQ@dwjD4٘LD"-Tw9wϢ1Nu!?EC)lu+e[/S݊~-6tTOgqP:$&V]I'EfxyBsKUɋjQX-˺E4hTfd, f`MϢϢgяYćbt[&%$s)D!$B"!s| rZL (M#^Y[?X ;<],藩r`v%p*It'GɕjB.M*dtEś.8I{xR AlJ{)ר9%%ogҢŕ\BTFSGFӹ}NFsLxGqg'l:*Ԧ[ x>㿰o-;Y˱Al^|^aLꭅ֦4z6xb⁺TiD%])IuIFtJZ]ҡVtiUiX|եhT-L.$+Rz1X)%os,g zzOEKqR;%.='+ؖ6/pH`Lem20,i(Z:[s4uE&yӸfdUf^FF؛\f8%A1cAAo_-pQ~_Ѡ请4,d;x8t0 WLmHuԶ!R; %Bڭ#Z<NpË>m42&YOٹ-d2O AJX={{@bֆ`YdžJBvF*{\=#U6z6Gv|&M D/SM^sjֿt/UvO5?%RS􇎦'm <E4ĺ,dJ)J~wZw(nNxmzeD[qB;P/~qs D)XQ:V}[}Gi:A,J1a>9(Oz#ňhbd틱1_@^_н{A z=4v*6: @Gnw,aNLNhЦq:,B.h/~Tkv+yڢֹBrh N~ϪUļJG+DT U-L^u8JauXJY"^Yݿ䳤?\5i{b]o.5َR|a; %iC_ҠEhH4xt="; gx AG&#AǗr!t3oCtzqH:T]q |ԁ'Ntb]'lCuӏ2M=4|hNQ@ӣ3rQ@3 Q@yP<>(xfKfKfK̎,5|ZX--pg-Ю7K* PҪMp6~]p6g&dx aU|v,cyucƎe< ZbZ~mj8'~x!0mNhĒ!ZrϟEPtw+uaJgwRݭ݆!ǃr3_aO|y)5Y|>Q><|<ǐT3=e1 k00 :I4uhw|<ʩaM|p3rifm蘅`e=DnT-5m02ѦO| IltNKld֋Nt@FR':[Txlk yw|Й )+zPC.|;!E;.T0z&H:Û,k\6SsMy?5p7""JW(3BW(=tOOF+og;jtG2D6W7P 2K)b2K)"2Kکi)"*#m)+F19Wd녘yR=9=;8~-w#y ]~9y?Lfw8y;?DciBhg`mc1ޒ"D\18'ƈ19Q%F >Qwd1=ŘY9͘]!\+_^vW*_wr/|y#_r0Pݯ|nm`'`g`/ZL}n7{+n;`('G9Y/UkHce1czx>8'λh>Z-=8>#|xAΛ1uhvњN]!z!45gtjs)\AwB_Ű)vY"#s=zU|jW9}wWL Nopycb^hz͌@/0$z0%6M+loIOl@~쀲%Iovn][Kt5<ʷSnQUnQU*w(yȫG^uqV''e`ɜ2NTJ]Ju *%5O@t6]r%nەoisHUHUH(W#yǃ|8>·eh>Z-#|8>3O|zA˶N} i*ft&6Gy73̉&[@Αtr(H2#A2^'3d@A4Եfܩl *XvXvXvXv{p&{EyWt/mRdpAP]L& ze2cз^&Q=29cOćO2}`cc)ł{L ~zPpEw$d`i.'^,eDXfeX&!lfVcwb3cvuحFh;Zh;Zh;Zo\!|#ћ|#Iћ#HfheO`1}b+^ףud[BM6i^\mAo6Nr$7Iy}Ϙ[td)ё1ǧ-W7S3μ;jcnxs1\Qδ>LnLY]5sQs:G]o: ʮt)ǽ1L3?aW>r:@SC6גVμ|<P<"p<$֣|yU^ys3 dI’2L@גyhX$8tkI/g1~)]7{F{T|;ڟܝܛ(wO" BRB{R bzۥ#[;Gޡ?@tQ'J;oMonyskO=e9WYUi.|%Iə "DWjrn{":]D7{s{s~9H 0GvϵWƭF7mVYx.7 o MbAZaD${7Ijos+nYp)9#Uϯn;vmv|AnSRO@MQ`QX{3E_uD{IOeܰdRPL1ԋ2gᴊt48^QxZsxqE4} r$)ȭkR[qt)9]ӱȸkjU;ץ_5\z~EDd/Ȗ77s˃W9} *'d4d4dRc͆RWͦWjUpے'`-r<I/g-`'߀rl4ź{ Z$LJI>O5?/IQtwHnaLBSE:!o}V#,"#gb PO.YN.P! bHK;w,M ,֭ `BD9u`߁B,rFm5q&Sy0OX|YOΑb=>&I.cѓh9=[WK=\<)I~ܽ=V<_BUMXog_hU lCI-v/~/iy% 5_P?Ĵݏ_=St5M*YWÔJ,7enS*`ܩ2AJIlHLq-)UG%V>v|r垖IH_#1AȟhE^;wf VAAj4?~[y!D9x=q"]WIhh5]ځtJE 'N:{\W:\YΜ˗ڑZ-7aU$jmU*w7 {wMX޻kª ts^~/(ČøjEWqHZUf+U+C ]!ZF?LUZ_ե0hMΔ~VuRɳ'^OBvEPٱhA ҷ;zTꔷw|ΧehY>Z-+|8_>+/|{AN_J{)_r I{IF"TEtb ;pcJ'$* -44U)x/xN 'i=z{$|ݓhOy?iYږ*ң-KV<ږ0N=ͯ=ͯs3Dw7D0DTs4QRQ^<<6cvuWZZھjuWW>|5y#oL1y:tٖ棥h>Z->Z?җ|xA7@B4fbd;S[+]@c*}ǭwa&$6lǣi#G={[gc#:;f$Dj :Y OVL "Ks =$ƤFS~P_$sڗ)sڗ):DZ2-ˆ]+Gq9WE?rCw9Q`[?C y.e0dH5dMdQdŸ?gdŸ?gd2!ϟ̠'KaYUXpSL;O[3ͤnJcQi^fAi➂z9^|7_/?G/}FXVe{,#y,Z,vW{bwEX;Vcد;vcG؁;vcؼW@ڟt+ڟ+ڟtδh *}l&4mr$wQD#^Ez=b?-⤘)2^\ b:(Y3X~[uY V$+ل&G lAb#H)5SSSFf:0tQZ&+iVMVRصX@]EԵY@]AȟXAخؾbl׭VN}* dZ Z' u ,fASa/^=<=>^{AWf`F`F`F`F},v&*1}wl3=;#!3p 2L9dFCV8dY!ϧf YCbtևކbAm)}7u}Y}7u-ɬC>|ˌXJXJXJy~kܬ[5XFG} jPԆb1%P.1Ņr) y S\⚸%V▶ [Eh;Z%^,XzXz܁୬x9Q|e4/?2"w#p1w3rnj1#w3p 1_w16 uXde|߁?DQ)o U4x7*LQWd ?zAdxBfDCF8d!3rȌ2#!3p 2C8a\Uz :rYbj)uƒ E,rK ;R,C-6 ES F>`dx%V>J(ex"Y dmi¦`A2!V>L,j+)HL69Va!s āp]+}vAȹGa'bNAA8! )oJ *[3dp)$AP'r:S͋)m^/E7/> ~gY,Rj7d@)H$X۔?8PeT|Z,bwbivܥ(XDp7c H70OyrWVU:n5Pi!3.wAU0I2z6 ?I.:z iFk~w[!4/1Z6R-YmP?S/Ih/{+vҴq^ 5,_)l[9;U)gQ\+CrP:.w&ɫg h[\˖{ B ,UPPw? u^U+&zsjUW#Њ`W^/`\_닑x@S|@צ/h\nT^4KQi3Dojn$f1Yğ`-^sJٲ퉪CZq=QuhVb'MjYȩZWZV!MjYOoYDqUR6B8ij7)eWJ@4?}┽nYm^Ϫv8gV|B2.!&2##JÚ0ȌBi+SF{M"ܜy4 CDL.'Uxzu/Dθ3Wzu+S3𶦷W-N{ ,KKB`,CK2Ax +ʙ&6KlXhŢg?Xey`UJBT'^WFw$lM~% 0k+IXS_I o2*n2**™WanӀ= z/9?y4^m\{QիS_}mD+ےUKϗ xEoq1x?AxjBLm{ P}1@WCd [ qݪJ@/@9L!XN^zҳ^x;z;cD;Fc;~=l?DzN9Mz8i& *h9IC$$ 9iE `0<]:q?Ahd#Svw@ u%2]ۭ|:+Aoƕ+{"ɼ{"ɴj~LʂXP CeL"ٺA"Xnajc%rȜ㺇}P'da] K4/`A?֥԰fjDvrXðcſST.Cu[B(hllvdMɛIwdi-OΖ'Pd8%Oe,P/)0q$V&$jƑDZm8sHGri)q$;*OEYl։VvUfP;xf|:-hm*im*jmݽ*mݽ*Km^a%TJPuUɠr dprՍL i!ʲM3r&fVgͬN۾ͬ۾ͬ.!-lѽvY;{>`=0]fLzjaO#d:aO3@#ĶEȫ-\0`r`r`Lk} z zՋ^|tFW筮DW/AtDW U]tUTԲmЮ!W :QYjTeiAY+ ʸiKAt "eZec)(mϾK[Z>4G?zc?ǨA#5ZfY:5F,>bnw.@tI7#3 ,cEX?VcXۿCӜػ{{x{z{9!q^90L!H'$#= KCfWpssss}F)#㔑8ed?NُSFy)2a F X/D(>F5Q",_]5EW U.*7TZ 46%׌]3:Zqhی\-hͷ\kH~>0q1LLoLL "8e`2)cq8ep4.} lf]0qdL}kFr;qL?nӏ|ƍcFX?VcX+NJ"+?6}f̷N'QOd== o`R'bbz#ވ!27bxS#72q[ڙqf?nُg~Ǎ+~s3gԳϠgA>}}`b`b`b1_ů@@LLm Sva'bjSZ}DLQ#5G ќ?ZEh?Z94,i7y.i svUV!dή*{uWYeH*nfI[f%&@L COgKU0*;sU}/~pwYU6%Ϊ)E]*DݥΪ5N],.+3:hf ţգ-@3f֩9#+B0@\fuЬ1 ^ ЬAT؎"lGA vaE޾V "l V[鍰vCîBH)ުe/W&AarT û]4r̲v˶v$kXJfDŽ _ݗ|[VqI\R#%5pI \R#T:|c E"4ۣ1+Yht%zY>8ƩKoԴ@3_t=rI\%=rIw.Kz.KF\;PXX{ L3{g p%t*kʚSYw*kʚogV @\%x/˟}!^lQ< [ -ka~زv0lY,Q(vaG!Af!!)0b{;GD=h/J;ef=ef=ݹtӝkOw=y<)ޚA f[0 f̔ۥl)=@SFfhVfh[u [v -B~b [=`g\4h䢹D#04-%Z0$0͏$ AHR G.Kz;%=rɈ\2%#rp.1Y=mL3Kbt*{ 9w*DqϷSa05ӏ$#=HrO?I$ F{$3]HHÞbۉ$wA?~~~~`yb`ybu/O';½L&5Ğى/D&2'jvJxf3؃λd]Sv.);씽Kv]S.){씝Kv%;%Ź[@DC w ,W>C/ܑVPrd֏I^Y?^ex jIS%j]?^Ҕ%!MY*i5)u\ K]lpf%|fln Nvs^^v,>K8I}p:dw;4fw1n4f{Tݞw+D+D+D?A43B4ۣ7fa3E "l6.¸+lE[A VaER~xAR4"@D1o0;* 0f̲f]0e,W,W,Y 33?6+oscc3fYD{΁Kr\sKr.9pIίKryEhv$dM/0}ؔިe)GM>jjzF.KjF.%5rI\R#%-pI\ҜK 9m 6mEݓswA-S=TrJS=Tr;<쪑VQGG %& [Ö<%`"f ٿ<Q(fa+Er [Q(Va+ErTR|'[aŽoOw=÷{Z`Ĥ 5CjfV[3&iyMS4&]43@4;@Ӌ=%(s0l)9-%aKwlo`NwtƤ4&1t]4$K#Inzb&>7K}GF.KjF.%5rI\"%-pI\ҜKx^׏)r3(mS)=TJJS)=TJ;"yQHX\t?$75I$Fed~$YF0,I;2"D|%K3E ,O,O]G'6ΣYDY&T2j>jVQ5}ԬF͊\#%;pɎ\KvdG.فKwIMKjz]|sg8;/~^ЫAzu>Cg5!#/.s^' jeZpY?+|)l/y+|W!?\C`‡\C`[!Wبg]ߚ 9DopBacP{یE#y,d: 7ǧ,fnNz 6LXd|)\"ho ) $WpZ9 ak{X}m5#ז7(_mRnߺ<4ި3'+O2(+O}S;&1@+>,QRXnL*G_l.q,nW!7٪(ѺĈhbz1b\_V@s~@^4|Mh zhWtpVgkmuFVgkmuD(HEJ7\׉WT w}gG#u_cVgK%y|AtRKF?@- V+li ΖƊIgZ1(*9SEENTQS0Uuw}gG#u[{1cbl_Mt/^m@MtИU^m]->acgˈ92`9"eǼk`H5*%FD#b8:[+A8ϕ|A+- Z8*WƕGҫ6󠊞p8w7Ɂ]w̌Vp˃|1/ƢVB2^ezA]t-_и/hCwؾ-eMp:Pa!-TXrXtU!nVIfa|VIwaWa ; $CmȺ* 2`ffE`swP/z >>Յ ԧz  nPU Bz ^0w?5`ssouaYq茢kF5At .IvV׌kF5ZAt .,lktEd+*ˊʲ,;(ve5e 7`.cs-YaפYS]#_H2RF_HKRL C'us=}s8rPT6{x\E#f%G QD(?j?j?j;48 mcNC?Mؗ¾,e!zуd'$dtߓ$ߡP=WpGGGG}:P`F0N!2ƏŚ8yޡIǡ3E k5.$[]+E kѵZ.&GS|vkzzB^f¾.7epoF^5UvpLT|i W1aʌJ\eBVm@Vc3 20{aC_Y7AV lR\0Bab,/Cdeo]2\2}ĔDLQ#5G Q?jF?j9z2(N3%&Nϟvz'-If=l'$= GL>bzӻ>j`^5WUsyJHʾ?}F= z3٧Q sxb)s`M㙢̵1s}Ĭ#fU1="+ lcGؑ?vct ]]& Pmˌd|jtĩI+Aw|+uuQ9ӫpEۖCSd?A@/"@ sXD0r œЊɹ+[hqT(v0"c7ӽULoIޝYtgݻ3n{wf}%wg Z4?? =|ޣU[,-{P" i u -F oayMbd,,kz?T+K>T4r9 ~T7X.agJGhJazE$+x?۲s"#Aъ%)L8q|1q-~U͛8wlA3g84|@$ O 4fWC"rBCF;dd9&/ɨrPa f9l&Pfe9aL&Pcde9kL&P K@,&C).{Ƥ0kS]{EGSEESuwjigӈ l&'& 'vk vkg];Got풂*At1S|tS|t qv3(EX XPy=[Ԩ,5(K RTWj2.tlkP eb(;e<8r`Kk.պ&/^uKo3{G?z;m ]ξ`r#`EOu t#y #y/>^p3nj13t?fcX?V;4ؘ>NFf6wwwya߫ $;IvГ'AO=oėLJbz"D?j5GQ#5G ќ?WyTY4uo4@ͅ8^QZ }[Y dvQevQuvuvTKtޥ]O1M ^e.Umϡt-%lJA+R,tȫR,Ov6f b)P^PF%5D(Vh%\<В{Ak0^Кk̬?%CDUWϏ6`\7}o}Ά&aUB8ZM_WzL'Vj^M#۫ jsd{5nladr$ DS.S.S.S.S.S`cviu{"B{ 4Bs 4B=uڃ]=u l:``S~ЭR J ]*GW).j FUAt j]EV~BT+n -*K҂,-(KseAb"0;ӓӳӋ F}YOuKї҃/_ᾔqY.qY.ue](?Fc?SsO3 1cEX?VcX?Vc؁?v;4ƀh `vvv [cKtu+$ʀy{ Р[]5a<=<<<qJ-8?NŏSj㔪G.rnu8UK]UAtU]UQt j]5ꢫa)3 V4)O0"#1\0}ؔƦ\0&1)I>`4\i]7}Ĭ#fe1<"+ ,cGؑ?vc?m̾+I{z%ߓ{|Oۓ`-"z#"""f̝De?jW1oE={z-[г7׳@˃x"r`3L-iAhGL>bz"Fh?Zh-G"-Gѝ?hN!'%Ab?ZpzEIh8+o[;depЊ̌ $gSAۅWdjl"_f7eۅ 5xpoN2Ԡt($0 `L~.]s Fp>>5gP]0E0Ah0A.et0&1X `$ˀHE׎kѵAtm]{).*{0U^0DUa],C8?U FW](KD?хOt$Fs|db=GeXVe{,%=X(cPŘx^9v/kʵ{YSay8eq|ʼu;^}`惰vu BE[ f`}/1E0F`DўWK]+B=BsAh:fL!}Op}=##1 +?cD?fc:3 1nj"+ ? R )} o?HR~)BD)} o?HRFz)B ڷF )# e$?HRFz)#A w <`)A,Б9Q|tk]5J0%QG(>F )?-߭Z3Y}/n`6Ͼ(h5U׌\3:Z6ҍҍK{g׊MiqizG?z;ĴJꀱWI0*\%uIʀ5ﴎ|Č#f&13G̬O3 1cEX?VcX?NGBGB;Id=zz,=]#fo13%1LfqL?f U3yL~^5WΫo 3gԳϠgA>}]о1 :4&q,~?;L?C|ho2\2}Ĕ#'bj?jQ#5G "'].X`X.⻆u"吆Stb7?Һr$%0] dTlX*Rav^ Hz ;3`lc,vd$0,v n5fP]cEwᴃv3{f `Vz#Z d/CW]+D kѵ\t fGѵAt v]E~tg5o޲˲/J,+eYix/4#0+=<=\^0'Er|)+/ee쿔U/eR #+rp(rqD(?J<-F?j9-G G"=Gѝ?з SIs3W{{#y#GГ$k='Y$kd'Yd/%{9gggxZ &S㔵8e-?NYwh"ס+E kѵ.T׎kGѵAt .Ii՟ͭ$7O?ud]`o;YN>u]:`kFwN9ftѝи] =(q&/qV[ڒ| 4n?J(?JQmS~Ƥ0&%є oӥ ja>bS|ĴDL"-G ќ?ZG?z;tlJF۷и]AObi{Kv`'1G̘>b313W951jO?ϫ|U{o ㏨gQϾ}=zz99`V0ߟs{q8~C01G>b1; : Vbz 68b38N#^0> T$(4ZwW+$O1U&b'8]K`.O^m^m^m^O^?]0.\.\.\.\.G槺>~z"0`Z/,ot(z]=DW]tTWkD5At le ^-T찋ZaI,\̵03gjgUٍ cs?t{S7>sbkwn71ޘk>x%=hF#IdFʋFᴷä c7DoD@<@F hh#4oѻT#9STXNQa9*,;,'r 9*,g_lvf$=/bΨ15&ИSBc,!CtMiM 4苆|0hwgEHu^Lu_Lu.|4qѠ eg=X\vփeg=Xvv "J*J*"JjČԣa3j!JJJJ:J:J:#J:J:J/c g0pzp _qe_pu72* "0*"~QD5E#D- QwQdnKdnKVඔ-+Qs%VRTXIQa%*|o4(dJ +(Wae?KVĕ,QvaKKK ܥK|ДR8HOK0Jx3**wʩÝrh^8B"J*J*J>BaFh ,?h,kjmC6֢jZiUUMCtDIt@IG@IGtDIGt@I0%'^߭p#6RѨF02*ʰA5RjjFHF|oq5Vn{cDQ|Av;_/S@xp7Jѹ{J:4?c@f${UC9(Xe \PPPPPF@IADIA@IDI ?輬?%3;4g:yEŊ;2Ȋ2Y[Ug9H۪:{ڱ7u!KW9>?f#ryZMi}<"7D#Ǭ0r0#F0 rr_9:~:~:~J@8YƯ?`ƭ?`ƭ?` fmn#uu@] @]5]H] @] %A]ӶY'-9{mKBX ?+-"-"-ڢO9`);%@q(ezq0hK.z˞*F#ܷ&a&GM.Cp.R}^0.s^07s:08tWv>AXRP@wfߞpQQAB| >(at-mi6vi/Jvvmv/ʠ+$KR[$EKR[$kP[Я ԈЭ?pl'3Ӂ30=)>3)+35Xu1R#u1Pu1Pu/ow1R#u Pu Pu\R{Cŭ=}8R{Q8aT40F\F.#Kȥa֪F0t/3ҽ`ZZRSZ~JOiSE)j_9 0 ƒow=qa~c+ol%DolQA|P >A |XijsL8*$Kj$FKj$U7֢Z[~ck[~ckol-Eolk7[G| ސeo7`-Xy^4Dh#D[icKJT kTQ1RC>$!E|(C P>ff\VnEيdB!VގY4iltڽU5Ya9?Y!%}MWMꮨa1;Iع{n s&bMz]؏M+ܧMFǦo4ަ4 B/[K|a> p . p[|(@4n1AC%q/|FHaFHaV*RX V*PX Ha5(ح(~y)[vgѺO6Ԙ@chLCi1ݥ jg^[`(aD #JP€Fpg;h|vF @㾻4A㾻_4ûCBԨt@.:E(D% (QDppXHP)(R􏣰2}2}Pwpuw.w;W;OQwIQwDS4_G}?! чD@<1q7E4ܖ.0u[x**RXE @a("ՠV*PX kHa-(l.1)7n=8$43rG#XG#X#X#XG#X#Xg}>4 ph8G4\ W0p-man st[X-gB|&o4~B0B#0_4ѓ@I_w)D% (H$@IIIIIII/%2kF?>GlHFEr4*Q רH^FJ$DORJ$ s IJIJדKG5Bdyv^d%y! ^|fmA"Ҫ3soK/4/4/4g B~虹_4;[RGعD%'HkфDy"/}ǚ.jT Q5Q5$jQR%PR%QR%QR%QR%P%-P6ßh~b_׋zzYekL|ZNZQi) [pZB":{+Z|WJG${D?"oPx's=C"v'OdWǧOdW'OdWd{JJ=O6_}Ily=b}W'DNh!ЫZ:@Nh!ЋB4>YF"%3 {?׳Kvɾ|nwStStStS]j#uF[SvSί(>j6ݴoxgeDbTfC+*tuSM@&]M@iTkEw@i_QjlO.C4|nڈ~}6<{>źlDn lBn2#e"FsBq疁8fK*6Oh9{aROxCD7D}xCQ QDh>Qh|xQG>h{|Ha@a5EVPLhӞfL[hOƴ(L;h_ky[-;yٲ#+VVۂښQc2jLɠ15|l4>l,>l,' _{wk|=%oSBB%(!DI %=hܻϽ{p@sV}nV}n VOn!JJ!Jz#J:#J:J:JO˷ǚ@؟i'qIq3E\#nn7?sF9m`TAFEQYG~* @ QD}$O;ehjt[F*p[nJu,}ڣZ k)*ZzfӞi PXQa-G 򫰙@YL-3w0,ato`y!q]c dDh߇VP^F}FcYk3Ԋ\A3湵zDGUAQUܮ .4v\P> _2/oV8%څeF݃5ʌk,k!/w|/`n fI`n feIs`֩]AwC_7&ޘEB _0.$0cyOwI R u Pu Pù]ԥH] ԥ@] ԥA] )it^[?ҿ: Sl N-޶ˈ0#F0z_0z_0z;03o(NwEM MM) _,7`r ;(|t\>\(v!>A|>*>*>*ࣾ|TGE|TG|4G |mlc [yi%;¾Ǘ8aK.u|݁%, w`IGK=Zђp-E{\(]. (ErE_.?),Oa~ KSX^?d׀mn*H]%@]ԥ@]ԥt"u)Ru)PuiP{|CG^`"_ɉ;{w-[٣ܳGlYG^su;h0*9aTrèQFť:w54ڛU7չEڴ;HA|GA|G|G |_07~s ;0t="$!!)*G1QQQQ  -1sB;ؙ_WMqRhvddD kIf:m=*sTLb̫UpW ypW *0YvA]e`Xv ]D D/.D?^$"я}xX3hQ-*F{TE|(CSCSCSCˇ&&&ȇȇȇ族m{OH6ս#adEcPݫGF{LfZ1Խ?yYuY,#^Fl ^™ݑsyyo۱j] WDû\}FeGaQf|0(02ɞk.H$FpХ@Xn 닄O b"6`6`l3Wϋ)hw_6=cİ;dw_6ڶ̢Uփ \7 -cijlmgQmEm=ϛ>ɔm}cQ[ngXE$-o4nU] +nsge _ J +qk]]q/`$4˟@rf7;]~7;wzPR F`\zƥ7;`\zFcʹ~KKK(.JQ%|(.J)R ꢔ(% `{m)YV[pӱ2jKFmɠ-%<?X\Ɠe<9P\Ɠe'<98#ZUHl;{Բa!>A| %O9`#;yq'0 ."sK>Khhh舏耏耏0q (ٗGtW9a3E\_Б%ђP`I(1$,>sY{]A( JBE :~ %~ ͌f/ ~ fk@+٣.3}>0N:p3{+'fB&+種 gX!a4qs h= 9sFs0a40rF\ȕKr#W.ȵr}_w]0hC)Pym*@HOLOLOSa;`a;`  ܢ8r717GC|4G|4G|tGG|tG|tG|GccL4׿tl$s$%-Iגd~c7f~c7f~!o,o,oyͬd3X ,{=˞5F (k@P{7Bۣ"T2XqF8n %F/w`ҷ .}`ҷ f-}`I! |X\?|ڸG1ć>! |(C P>CGO"=|t_נS/Mw+Vs5¾+.2pLe`r$.#ZK+!].~EX(",5",-",E S|> ]0΁5}%.B".@]5]"uU UjPm/`f{HE/l}o¾ F/}w3qhF{Oa=a;ve@k[ֺ}[ `#>|ph/7?` /5?w`85ǽQ">|(CP'ubyG ub_WmӜ%, hI8GK9Zί%a/܃b8sP g _p*vo%Ϋy8ΫV_/YvFeg`Xvݪ wD?狻`]03w]~A6FS{TLG1Q     =Gߺ.4sč kϽk+;1p?bmoq|PfG܌BeV_۞)=Snm{_^>d%v`QrY;'\0kn?% t? '\jDNf9w]V -`|%l?`\  ` ҧ_B%uI%)KRTW]90@]\Z &GupL~յµg ۧ~e겶䏺).kIZRNK!Tty >FW;vFg{z[v~^/dO駳y/jߘ~`EX)(^ֻ ˁaF`fL` Xjt߾vk۾v @޾v `=[`k\oQp?눏|0v#_[(`>!A|C|CP>4a~[IN(pRD2rý5E'ES~`}X*FpR,9FStR4E'EStR4N>ݥ귯8)9:)uR4'E3pR4'EKtRD'EKtRNڇui* Z,\@5EA]\`%.B".". >o}X3ߘ~`ۘ~`ۘ~`vkF0](-a%P}Qm5ck6m'0tGG|tG|tG|GitIgtqIgtIg.]|!sT KT kTɏb!|Cć >|(C6!zjؾ^{iED%)KRS ,IM$u{SG:G1u*trbH'(΄r9ΫjrKn9̫ja^USr{[kSݬ)G>j&`khkײ]0%N ~,է;`(`ow X_DQ1TbEP!~CB|TG|TG |TGE|TG|TG|H0rv**YQ"wՊ;"+fd^e>rYV{*Yd-ڳYd yor>ܯs+z~럴2D?Ͳ[g~;ƻ|7?7`|9s w ]~ F F F Fx A.0L&mrޓl/3a܋r=s)+^ubw ԕ3PWQ]9GuՕfNRXC k@a (!&RXG @a(#n]d/^Zyy-vFaa b/FhшF@#EJ|#tE"uz]$.v)16-ь(E35mQD"JP%%$r9=.jJ())RRR$@II/%3K%RRrHIɑ_JJ ()9RR2 JJ,Q(ϔ}L7n?e߸VnFe{0*Q)J!`T Fش(ϧ }C|jk+E[ ܖRRjt[JnKim)u[: UiC kHa (5f1:RXG @a(#0?h5q峢n۸L7׈}>]E#q_쭣| co{EHE(D% (QDJ?F#|`~!hD7 @B2vCO~TCj(IP % PPPPPP~) ( (()()(n_}dݿ#6`TB%hTQ!zLgjEP!!yU**oQ-qE̷-K6Qd yv'd)y6 pEZtܯQk>6Dn#1G=X#J:JPˆ0%(a@ JQ_1#/Ԋ_8bEŊhѴd~ѴXnE}Z+f}F^ǗHjw2DPslyxvϳg0ؖCfj&-EWn&F KK0> ^^=0}Vv}^ZztkHLNLL.L&-?}nݕ;@!P#›W"y.•W!,7S*SS:0Y".B".".ꢠ.]U*PW@]5k&>}m-1{_ۙ"mnOVԖ@[hKmi-L¾E| j ʞ=Z™[Ef3vGG|0 `>m_00;(؏zt8 |n~ɣA|(C P>E|(C#-E>ZzXi羮J;մ{4vK=n;vα[e`IF&GK2RE0%Yi羮{cBlAm;ݱm; Ƕ]sغV SZ~J4~JOYi羮{EH]E@]E@]5vTU*PWA]ض]jofhkՁrF]ֹ QF]ֹ 0Z#Wkqj \\=\+[;0 N u"觸s_@~k~~E#\Des߸]pPć> |(C )S䣧GO/b3;Xi㴥{`,;ђsv~-L;*f{](9.뜃+^K{~c/׾,{Gށe`gƹWv@sL@tNoǘq.(JQ1FS hhhhh3ƛfy\s;8~ͫYo^ͫIÚo^-if5hf֘!kwv+:ߍgww#Yϳ-Rjzz|,ҺVǯYNmkǫ[;_x5ïZCz_5ŭo9 j[/7e[C>tFǂo4ނo4ނo4ނ4DŽ_4a*F>܁.܁];܅PSGhF#wEOUhl.q (%sTK0! so0.@a\¸Dq i4/{y[ 9kk-t-j h Ph @] tװ[!H%ZA{k=2ho% Q% P% Q%`Mhzhzhzh:h[ t:Y{TM稚.Q5]j8aD #JP€Fp%(aDJP" : +#l@>US\qk5Z^JEFEQQ`T}BuV/D|j_}A}A}A}CB_CHnHndH~ݖ(06Xgt5ʭ3Ze߳Yd,Μ{F-='ٿl{>?>$lϖl>[fvXᆰ)[Tn9*W_gϖӺluٳv}ޛuBfXAvk_ r{6=h!C5FҸ`{v9vm5+"W]cY쒬lpve`٠noWBٙNs= >n[]58϶]YOu5`]J> ...ׅgSwϳiy6gn=[]uxJ:kϔHQ6/`kE"k0j(2P6p"@͐7D4 gϻ3x1gwAyYd ދѭVT7(5Wj(znfg5i#Eֺ?V4jEֺ6/Iֺᤱ[vι<֟Ιfޫݏgj ҀhE3/y:_ Z'D?9Oɟ՜VyDgwY4~\b,w,#4/V2v"g5أkjEi]fѪYݯɜVdL$bL iJ gz[ſ=]V{X9ֳ~֚YdUd17և9r-͋!ծi[gpfyoXt6§]w~frkwZ}4v-8ӳv-8_u'kײ#+̎2/Ɋj(V4y_~~aӈm=g w#zxjD[Ϛ*vl5jC5ja)b.ZlD9ulD9K1/2X={[jEezhjܓVc@{k~<Xua:{쟬P"exz\W![[h6µ d)> :-cnlZe$Y;sFqX;sF9c{;%[_y+Orи+Krи+NrѬ+ <˃~ <N~!Ψo4>AӮ\4 @uF.*#uց:PXG Aa]A1R#1P1RYljwڪѺN"}VPc5F@c4FPc$4EzwVk@Y %^b{*]jW@IIb8Gȱ kŖ}Y}B_%Y}5#q_-bՔX+()()()()(!@ !J(Pb(#ba'qqpv_4RQ)5RQ)R_RlQ(-bg؆藋m~؆藋g؁-\lm)=-m)vQ()#uց)悱)()l}xߥKszlvpKPOTZO㩠L&`S0)4`bbgFaF}gآ>DJmJmJm-Y.v(@|d;#ax#ګaѓ=I*ѓ SADI@IA@IAD !JPBBPĎNJ:|Qk4*TQ ר$kA55zT'I5zT'IU_4IΔ-zԢ'I x^Ol׈RC ;OA[M{ۻr}.AD% (QDJJ@aFhY̼j':lV{U3Ri~n6?7_/L/:@IKV턑X턑W-vB~)iP2e@ȫDJFbJf[(ɵqvrmܥG܅#")^$`T(FѨ4FkTMοB#A@dN} gN}N=_TjMt[Fvmi(֐RX k@a ):#uց:RX tߥa'xj<҇sO)\hc01`F053F:Br=-f텨miݖmi-3Z2B#43ڃfY hF/eV<ɞ'9)z=EOדP3HIϑ%=Ŗ/%=Jz ()()kXcZ+ڃ2rEѨTk7F$;EOS$;EOS$;d'Ivdѓ5zOדݔTD |v#;߃ւOϞ퍦Do1<OgQ0tvC9NQ5F#J:J:%(aD #JQ€0%Nw +^6*2FzYzYzYz^ֶod^"gAوl4( 8nem4( i :vbڽSyou6u56矬p 0.\p̎;0 P.B".". ۴B"." Ul!]>U.U~eMuYKG]֒zeXKK+KՈcyZO: ӧ^?8O;L\#mgQβ(}jKQZ9Er"E?Xd={A?5O.Fp1[K{[k!zi>!A|(C 0>B007Bq Z|ZN ! !9!9!9!C2C2C2CrCrC2>̰ˮXa6!NTHNHNI I IiI=c`=jH] u5Ղ:p#uuՁ:PWqC?]\Q.qe(ge4r1\ F.#GOk}TQFj#-p#`AP">(jSD"O`Fu1 F]L~?`ԇwwi~7j~7j~o QQoi?3 ]g|i-hDK$Z%QD$ EQ)JoT~7*Q Zߨ5Zߨu%PMdYv]eW`5Xvmh?`\,q  `\(t.)*רtGG|tG|0`#>|pcJ?t#<,k쑹4#L 3=ʾaʽs*3fv]|\?YXԇuWo6{d^ucqnH^g7:G=dY?NAVr0;0h=lWt+`zZ0=~ywWO.aO. @ _+\0\{`s,s`F~DuTz*Q]=JPWO%_Aw RuPuQPVW‰-t,jKm-l\/j[?M1iOS ަ̴/F` fK+.@(R'PBsz4+oVƒ%S n{7}q>(>(> >JcmVȗl U GA|G|>A|AB|>*>HCq!fKS;]`kR fb00E00 H3G_d3/{;;EFEt[~%[~%  H]@] %@]e ߞ.A.. P?7tzY0#99lv9l)/GFzњRFkaa&59/y[[ݺ[V֢Ok-|3G̀#\@#5G>fDMs#R"BL/bm?^Ō sA1EbFP( >AB|">*>*>ǘX.jrkV`IjhIFj6i-*Q1Mb>`^U᧊UyUq^U;GY;Y,{^eW@ ꗴ_0яя3\c-r=bFH#(FP>E|(C PF>N6Ʋq]7> oh}+<2C(VveʌQЭj*nhVqC뷊Z(`+|ֺj۬0"F,k2mgDzj6 4-x3Nzm8p=l67 3 wF73nq侙q[sA_5Gn}졵Dح/ #0hs'̝_0kݾ B t/B5"ܟ/|q!Ր:RWG@]u.AH]kg}hz˧cmt,0j hHh^/7N/;AwX׻ȩwQ\Mcs*j}kvGEh$%;]p犻gwn~t7C?`\8`k&{%gL /|Wˀ*U)))))qQX/K zaX/lj68& aW`KzhKzזtw .w C(w~)Exᚢ;3XހTzJoS-z*JwH]#uuՁzP;a.Fb.b.bR{C8:`}y0;J8J3  ].CKХ a~ 㷰0JF[=a0 S9B3 t9B3 9.Bs`F#[.lsk{;sƽ]Gu]GΏR!R!R!R!R!B },?`W?#{a%#e\Mіqv}m$S8R:qA2qב+pG]Ǒ0.4#2 ;#30 ;!0L93cF(։։s ((dˆ0 !D B" D!?c缬"wŊfc>RgD?T}EϨυȚ5#>Q{,&͵r+y~{qM([zgQV{_7/Auܭ_GOh={엛EY+lEՊ/5 WjϦ\p<[jcyy.ԅlsKzԽRx6"gckkʯ㶺wu^yܫ{5u={4 -~*Y: Z3Ve^,fٿ2cͲu+HDce=0p?>`,qͲ7>``pNw1#*@fen}YEE`^%`F#M/fW]ԥH]ԥ@] ԥ@]ԥKP&3R`FW]#?V8vXm%vvےQ[2hKmɠ-9%k._¢^⶛,{>5osWE-=6w}kʿD!BB !C 0P~LݾbB( tb@(((kiiii逐_@m#jCv;.lC`k)-y.ys`-y<΁V.BwE( \rVBa`x**SQjTTz*j ޾΁*R"u)RuiP)=43|Sb#G2&G*o('|!'L8)w;r3rq)S C.N?P~0#`Vzvb=N=N<N<N<NQ[~D1KsD1NsLBjt9:0[o #\GN-?miii鈐逐遐n(m^Ԝz%z%8Nl ' ȉ+ ,82}$#uŜ*$$$]}A wNѸsƝS4^Ζ0'݁ aN4!8' yf2'OTdrjA29 +!9Br 9KL3 $g@HΑ#!9BJ gye3gE(*V4{#gye=gs Fzn0ֳwqoC.l:G Њ_=_= ~={vY)y?Ouy?[Nu[;>3>:]ZNueU3ٻTWVu,ZUn첪STG^EV ">ݳ[|vw5iJ]tRWu-YU:u[u 1b <r+\ 4Vu<%(Z#,븷|(o&~c~V49L 3QUi}goݯS HFcU,=GgwȡΞeٝ-ĪrV-6w<7RƦ޵h,c2?;ZƮ\ՎQֳsټv/MU2VG;xcdU+n8ż1sM3w\jwzh=/9GfsΛGaFq*tD,VG[ƽ՛ljVpZ}?XKȚBWSfyvhgh䴌[C2,[$IhW>^$YHhyg\㫿umɖ*{Ϧ|' 2#{A( ; 2uu/CVV 1\jIJCU5b?TՈVՠʿAF2aDPH $ZF,VI$ˏLHKa#u8p\'ʆ eǁm]h], A҅ȗn"_lf?HI4R)̲kq:j,ތXYx2Tɡ24QyԈtl}Dͱ: M0B|qBqBձݥux |jFw8+/6>h3]W8n/b;4EJ2*ʨ[ճ46W{,'A پ2PLJ\H O#DF9D^zBGz4KeԃqƖb?@󎨗y^_yX,d5L+5eY)OԹwxuv>'^2*~˨/VmQXr^e){x( i,0kU_y,/9a'SN⯊"}UBU@Iz˨9cVmN6E=Ge݆da_p]s"9~ RgF y5bगQOzFrⶎ(nXv((nn8kAyJ($2B 'CIe(N(m'QS eֆCP3@UZæ(mJ8!@m!@=!88uq:C%&PZ@mkag6ܕ RB۝i>nNJ\@yD w]Rq%k/'Ũ<ތlɛ-s4ϙK_'w_P"ٛ0g<$4X 2XfK@ɶ)d[VZIՂNz[[X AE^jĩCbmO rķDNx{9 Z-礞g(CgSov?KO3v?z_<olҹT;pv2j,ꒅť~\^>zyGyƂOF5U/r:֣^yƼmc~lc~löV`?w)ӤKOei$> _vg6蹺+yɲ/4Mɲi>Pl& Y=SܔxlBr3VjBrJjB2O>d dMd-[& tJzg~5 ;S/W*WReճ^~W:mHmPiw%rzW"0y@*1YZ$tCQD?qNhxd˄31/]Qu:uMv,3n:ci\rˉw4v}cSF g8P}mF_nbjpobp? n H;s?+3"&Kh6 jDZR-* s5L?WO 8̷̷ o;eg^K-_{}K34D萈(܈:b)j*tƮLN-AoNĦbRTU\soLĦ-$z!v`Ckχ~m px3^%K sdڸ ?SeB/c@tk`[BSf vThnڅ (fϝ\"!~8v-2 A;!C;!`̷e6k9z, y!lB+H鍭LBP&-1R!'Lw\QlZx!/'!Y#dd9H@no-B㨗%y)qHX~?DW2@^)AiA9_4W}wCGgHvt\G-ct㶠cSCcrt0d/f~ua~\!⚣2C|h~2[-D,Cy( D}o -ϒjۧjǻ}j1] y4H*YUQ>U]^UU%;kyUiOL*yTrWZ%Pޤ[S>5]H- e顩n)fTL3h*[z4-L,* -d&AMn0[K-GlIDD@_myR謁^5>~`stk;CȘ,hR&I̢MRd/i^PQ襇q0=KŶTiI]T!qJ@ /=y)}j|j;8W lH2כܫs-88\ 'WҳN[nǴ,hB9G4xhºhd4xam26Y .!E .E . .PQ#P \yȫS?5SZ5IV-O*UGᛘoQK+<|<|<|<,yxX!>`~zY%K(0/Q^_sJ_#q$%ќ-;Cm%|$RP$RDDPTk^!`!4!jhgٶ\[.9M0:)8"*D6Zڂі`-hD7tA!V@3"K [e ҅D6D2|8ҧ#8ʻVy& E#  ?ŢCc t*i&94B'Y:l"viNCp"Cms1{!qIN7(kk`?^5 G ,QOk?}!x2N/LR l73(ʹT `xdf< UffM~ǿbIGw!;/2h~j^!$@3@2& K2kYepֲ(dv_Ĝ%"1gDɸH\Vm!\Vm\VmXVm|Yز*?G:$@S(pQjjjSZ5U_5WMŕbi? t(@~h;OEh !ld&Cz K%Wv$CH䁇!Ax5U_5B4֨} ?BFdo> /7qI8% 4Ўs\@;qIԸ4 t_P XM XM kA}/\tʻPbNDvJ(݆alpk9Rgz2g.=,d0NfEc's#Z)g-;%qZj WϝD꩒C=UGJ TI\: kePOEH0} }(CzxߡeJ=Z-V/Zs`y>湞-lWryeʅB8aAWN,b&aZOXh fU&` &4;4pBӬO;~8C{sP^@O<ז r9%ʝ(f](Y= TZC^~x-.U(Hnc%۹\o=K[P>ôpB3NKZ iNKk%i%Vߏ-׽aື8 RTgrvl<)w(וNm]NuӒ7yZ&ρ)'4KHNҘ-y֋nxֆ<9yjo`۶\r Ƥ:m_{:+.<p48Y9- 7~BxsoKv%H]gթY l\+BWQ.teHO28 $nWE3uV*Q\QT9}UڛCs+AjSv<%%xmC3xW.3xW.1,uоT]qUg9H`W\YWtWgH;(On97<cc[.ٮ-CL ]T3!ߍcF1# wc1s9&`c `s'C,}%|d+s#Z3YժȦVo2՛i $~3Na> h@<.uϩK۶s܁܉5y@{(:S, b^8jakX[/a^8lM?#=?Iyz??!OO@6阝+>N%x5Nm͡9h HYq*xgے\p.rR(Ӵfh3VH2X!ɪBMq$ IִWH^!WH9 I )x )x-lז \!ҹBzqjWS8U9NT85[S㔥!WS%+ƩqTl6N-IŖbTٲwd2wt89Gqv:{nz~npwI3ԉSDD4HP?|Q@4!Fx]/z$Jj螓{N&9iBJ )m!X:nmf[”DXXBib.uR7 97u6Ousnd\B4O{'S< , _lfk6vwPTAVn({z~+wm ß/v@#5 oMn'_+>@ "$t4 tA x%U=?SY .,w &\aYL8%>jeLZE.VyؿLpo!2Tb!#1xF`3r?BG%/U즞$8 :}߼&fXjKMbMG,I:%~Sna;D{'XUUwS2CIܐNROe=-/ݕȎ&o Ţo6uz)|][HPxt/@H vo~a/>{%lփu'lzq~^ɸGLWW(Ȱmljz55kj2d3ɠgXSIOXS?aM5f 4[)n^lHq4$xpbYʱ#X%7rJ$V0)9$2@#ïaZs @Lǀi+1avX z hloj@tkYB0ZesMhjjjjjjt}ZW+~-ҊY?Ye!5䰦'_nw ~'_nؙ|eBg]8!v_T!J>R)|@*U4[\h)T-/ UYhC)Te w ֚Nn-6xg +Y*c{o{!x{y 1Ue `7Tn{KiCz"''''?_XOO,ا'ĂznޢN ϛN&;G@dm}T&kVG@[Q- e$ZOHOHHxox:Mf^ب)?e$r,҈{,҈{,y4҈{l@v|Us^Da΋-X5s^0Z(2gg]fmDsƉ֕|BNOa{ҙ/^\߀447uN3k`J  3`K,z!GšǑšGv/BRڽ#H@<- A_~D/$܎' xp$x~S%ET&N҉D0t.+KJ' W: $[>OIbBCNܒ4?:ēĐy<6͏j 9;vhȉ[&7`'.Hf3S\G4&9k8k8k8uq9"c݄Mg4y_xsǛ@-j@-&&]v^c͡9p|Cݍxxq޺Ɩ:Rwb8sRWNn):! -O>hdx=%cmB&8{@~Oc_RXxaC2U0c9:<$Y0iFI¹p^9QH?Ael9zķrx=^q??b!1L09`?3L!H"ps:/{^6^C``ISe7[=87ʅ_'A]@F,ntK!xijN‰;ta 4I@nS"abYVy+V+Ve¤ī6U%~Kqp $e-;f!k%b\NfJf5]YB|Eņ ŋg_w~mp_̵;ocrqPmA5&՘vTcrqPɍqP ȍqP HkIMl!@ȼrsm1r^v^&HZabBnx2z[#*G4ď[_o<,5   tAWWZT56~~ZH!GCLt,vS,_Hr,¨Z,¨)Z,¨):FUб0j_yb{^Y WB:H@+oڬ+ڬ+ڬ+/۬+o۬mVÕ6Tr.T{w+[NH= Ů}v+G6k_5DsG+isG+iJ3$ ;Z8RO1V0cy_& 򴹣!~]s-~U&> /vSPGl)Xn,Llzl [=6 B_V(KOnm'}{Vqxoo/K c״&^nwM=N=a+3ZԪHk}MO`&7G@R 8^qqgv0($e۩ { Me8pwqwG'%]Ż拷Ν-G'?'I7adÆ yreֿ#YorVf[=VG2rVf[J߭ķ6%~ va]ⷾ} ޷"}뛫"2w07a4e=n=n{K'ݼ{ܼt2K'3]f~3߹P )h`y%h}_Q "D'' t^QI,9ud42KN,̒S7KH&RҨ 8u4j!P347k -7,9ƓS>j%q[%q[nRmij.qܖ;w*o_$ۥ v|th~|F~,鲑fO3HqO*=v~QE*=_Th?bvcܖWW-+e)s88,?@<ʼnnrC)t[*Nqے݈8ptkvyĵ)}"7–e©45p<޿Z Wks .\n.pypу3oamOð#fFrBn0!#(#̰xdD-> lo`|q-~8om svr>)}ړ焉ҥZ m6m&JohtD-NhM'{}3D'Bp ?-z!F8P/B H>|{PLFl(Vf[#6+Sbe25X ly"@"'r\'!"SII sq9.D15~9:Gsų^ײl|<.0g:FzLKvAiiy.x|&:I>9??9sr#V~Ha'IP~`s >`$P: P`sB/*8#!%C KL@&iŠi<;pg 4, hxJ`6Q@X C۬jVO)!)EW1;̸QuLgc:;L:c)}lSShvj N1d!6ёvC8ac/~|97H;%H=NH;%rv-G\(gʅCg@Md=AGltwߝV\ 3EPX#AFDc9u K2hQq={m5zYpͥ=hFk=u cgp,A3Lk{Eo}AN=hBZOAzbV,|s.YZ]~QQ>?!eC-~-~]s-~x}B|o=}#ƂGoXG}XƂG>1<25%+^زɈ-ka5a#`a"EZHiZBgz:ϒ+d%LDIBhcy!.4XQ {:897]'$D&rvmʝ(&](?,AX)ΊW6+N+bw|a!2ҭ?\Qro VL|Whm+pJ0]u[Bw\l q8$ϯ$~/%IW-^Jko~Ogbu&vsX/x(8(ۛoo+`y`+gӻ+|[!KyoZ-l.o{^-3o TT~NN~ wk\!_Z*cOqe3-ylqe3׀!^-p-pk-]̕z`ż&%kd|0_kb`voss#K,?#K#˸GYFq,Y=K+#kem 2ҾV639<6e$^+9ylao9d[ָe[zZ[W:s\,vDwp ;u;KoE D؉Β8d$,Cw);Kggrvl<)w(חiϮd@cy^f)L^+A T/9s )܋Z4gRZMQ`QNoF51JۑXO~"@`.幘lj'>7s,g+ Gk 5n]㖿&ޞ1xog ;|KC+p 7ϸ53C!1ZۦZ7s[6~W`ϗ^.9@:-F|,b>&1{t2eܣ˸-f|,fܣ˸Gy.3.?˼Gy.]gt]={tY> |'{FB[=@# Ar1d=@+O|rt&ߡLgQT@Dz&g˚@Ty#eMⱬ Yt$+KVʗT.YeR,B(Dۯ0v@ڶ: -k;NȬxtIS C7B>{4ův(qڤ(TIQXiR&EaRxɕRxɕfX}Ep귬q˚Y-6l= #psF)=T{ثYaEHJDͽa8`s/8^@ͽ{366۶s\( {RW]E5Jq˧ bO|+2O8%4 ?8;8@ 8c^&gE@RڱyqA7$]KH>l;w>nNjLm*i@cp O09'_zpȮ C1͡97\@<๶\ϖ 5Q.n̮%b)UM[mWڄSM+', _F1ɉF5"{M'acSacSacS9t|SNG݅? ݅#*newlsO<2yhf0< f;sY`yN_p;;}!EF@4I#sk[sˉSҬ 3b Rk'-(N"kQD9dEqSHiv, M"YىL+N_z.QDEDEDE-qKī xzN%*K20ׄ$5!6&.IbV7@+aO@\IagO.$ څĕv{]'W! -ߥ>%}= ;C[BLn(#1IaWD*NlQ&Ȓգ dh,Y3 K܊&Ry"˨?=Tm[j Tm#um$SuH@]$,ʴ#"LF5jRG9Ԥb7&u{jRG-Ԥ t*VE8T,pҩXJ_*0 dxr#C&ӿ@:34b 9Ǒ.OTV3/ KsR)v d4nFfތj$?@UԭVRZa/Kj,u{YVvU FfY֔aYdnn $2H.'؆ 96b 6X: NZ ?2JnӮ~s:N.(R;PB*B*B*X *O?eU7Ҝ@Hs{̴7m=`'S}j˩uh֡{-~2*fToFèut6^L{Bn/8 X85rtP9rtP9rtPrIT9 z"Nq.%n0QuszkK'_v;i16.:y[oq@ W=Oc-ޞ;222}b5q0(t`NpL3Idĉo3Lm&c&6y ~& ˰c{ncE7$utC qLX'thj +s\ӆ:8`<`:`zNs _JAﷺ,b4zڷe㴄,0өwN>owT-`Z|?9S9/'ճej[k<]˻׬|+rm_ϯwܲ-q˒|-,WOq<wܲ4.qR|ƭU׸=nY>o r@.k{5?ZA}AR|),g,/AҼ|)m3H!9:,gt/Aҽ|wZ܃T g>υ~>/Z,wFQAjC˸Zg4/5h \p/2H8җAq$ܑ r=AtU ݑ a ׸ r dBmiż wr;Ȥy 2ɲƼ 2=dzܑg} 2Y昷%62d9d,;'/'YYڍ8@G"zsDㆈ 1;Q$Ǵn BMYG3MGymP9pzB]E<./#f?r(ZP«kA^s_-jQSZo-jQSZo-6:On7lF-Mo;4ɽZbCKj;4Y:k;1i}9&31- Bߡ%A;$!!PZ- w `Z ;wh)xZ'S`?OC 3ZYnFf>|m@sqR1ZjڡFZjڡFk/G/.GqZ q;fv A[_qI>ғ ӓ_ϯvh ӳCKio> -dz-nV:~%ڡ%O;vh)$yCiJzfJ;YN|X0rr=8y'r|[ _fm&c&6rII١%&{I,ВpZ2nH@PCQOT=j`Ǹs4NВ0Z E E E 4h^CKRWۡ%Amj֮k`m-Z~w|CߡnN4vhIwhI7vhIU5#_f\cyTT.5h ̥^Ye_Yee^Ye kd-AzdmA~dAyd]Ac-]e\ٮAƳ8[ ۼ sQO1^.t +f输4$QV& MYۨNfeД}+yEޣF@`w%#J3ދJ+CNP*>KalT0T0TTDoHY+G@@HW9w ]s=# O;oK NOB `ToFf?e[Zu[ZukpVnrlLhRfXY? Rk qF(Јh^딪U)hR 7xsdf $ c{c{Hc{g+ΖʴYKxĕJ'OV?;!č dWX_$J PcCU U#_ jźC͑s!F-źCZ>@W+8V%%Ѻ#~a9ĴSN`ޓ8sͤfo3鷙Lm&c&mM~rFpOG=!vtC P&AСqBg3cx4;ę0V/ a0v"y`l{}+駺,˙[zl vROW_n1 ާ;ϫ;4#ztɩ1]rnNG=;ԾV&q|zM}kz5o#Ԕ_ϯwܲt>q|-Kj4>"AYNr|-jnq'Kx[~tY[%_-PUR #wGPWkRkzu  ;H:Tj{AԕzN|Qmo_TnAA]wZ=ruS9]޿49wH5+ G e\9e]9ec9 m51Hwo#}a2Y.6nc}9ҏAudtq G2Hwo\2/3Z25?f |9֑\d酆I:GwA#et|H$_0RIFj i#H7c Hne%.lq1f#1A\b́``b i?/t'@qxj2YojdԐIzS˼}}xr, O I`B$FH#Ge(Co7 YrM t?Z"tYtUt.#=-N3H@ 2ڌljTXDU, ª}qyf'H`oj)q[Ns݂q-/ƞO(8x\ 7I8Ϥ@8$28,Hةv'A掤,I“8x@d> ;?y#ZoD~~@d Y^@,^l$7"]oH;pB)R[LjFd?.ѯ:RL.ޞE2FdŦ6Y,/҈vG"fmF( h=t%rsؕNr_(aC j%V?cB[s#T㭵<_ t(r=W!XNzhAvd%&54YTӀiB|1=c =  n!¾;%;;Nq4yV1?kbYUP`ͷ/^ t/Q`mkXǥ: V`{nt)K$|`JN&8h7Р a=qͭ$\kcfKj$<{=SJ%w((ClMHb'wHNNC)m){/5ǽԐ5b V਷~@u8PQ tQ;g8˥Y GU;kTGiM{ Ex$}g1tң5˾2,^[L|)soS e |y͉I֠Z: `o+ ."\pT:mJ-+mMǩ-+uaNH..! NJ <]tRi % _|v˥: cŀ-qȨY)DFJ $2Vz@"/cc'Ɣ&ߍ)MfS:743)PWURK?g6rP؏m腏`K@z@/z/m'XZH`W9HJ`W9 Qʩ(Un8 Ӣs|w3dx0$권 ƛ[",fY$na!n  u~Q `$I[\8 K]2ڡ.AOP%-GK\IIW'Aϱ^O9 :w'Ab+'|L%+'|M% 4C[үQk9ė%9xu'QP6:@''t?j:%Z/ -⦎mqh/[ρWOWxzn7mxEMka7_H~-ZעlI\y@*V %R&ލHI[{$qo@08Mw*@wi~oۇx"Jg$V:?#2x঩)HwiF~ddKCiAgzxp=SG)tiVsHimԞ4xt\穧: tIZRb?h㴝xBmxC7 X+`p&4 0Niq'LG%2~?휴It= A[+ 0C໠im6Nq^iOq7>GN޵:H@0WRI`_~f )R*9  BJpQ7nq.qy+\*΢d৩գ-Rq)z%UYtjOgF"K1e"Vܗp8S8 [fS8$[nS8([v)W: cgiY'-2>ļ% Zʒ,%<[jw;];="0&KVL'wba$ WOQIY*)p6,#R 5TFBл0#iduTŝ9ZkKe#G%0FJJaE%xN69 I+0˴d;e3ը$}g[JWW6~Ňܪb@M9[ƀ*s5Ur[MxS%g Jڥר^v{uWnݲxzJVΖ"jPyuxTCPy!L?xxAυj;곃.ٸ B>?e4^cIẽ1-1#?eh&NJd̏,"YL1?N|R jeRmr`kK-3^hN8Ԧ4.)36e?w>HoGGGK`m̔Gz@A;Y==xyϛz6injFx?١l]Y ۸/Fu9wF!d*qTD*'SvnMa*>S,UG}f+ R + }w+ծLW\֮k(QqT-N]N>cSn8ru9,ג\_Qvl6TPfC j6TPD- ޳+o὞Z]y8X>VHyu(y:7y XsLgͱ5<@W?m˞ŕ=+{6_v>SOAZqrSb@mhf?wa g5rFXkwveՕSvwf{| V1pݏk50XA'.">A!48INetxuR3JM3 &䔝or+;WWvnO݁4}A)&%])J1eC]Z6t \@g"u4^ "Q7OU턺|?z;!8U:!dD@MᵺϾSxp=Wu4G>ʹk k V^ >2^zgό7]g(ۧQgW:|x~Lׇ3]t}9L7t4ex Tyha'Z˥K=/_v [O[J}G+ehOܷs}8ܷ}Tך<??]ٻwue}S?OA<uOS3i)ؒ:mC|I@+Ж - --kᖓ+;gWv.\eƯicoL0hAY$g -B Ŕ :W@I$[2EN4ee*$:Yи)|PlCMJ#!Gq\&ieoe> d3~OPgʘה ` _\OPTFVZ2E[ PT: kIoQ-\oM:}k[S0/|TGUc"LȺjr 蛷2Y!}0Rg~QEep5e){4-H y *3Kgsɨ~uFK3`^n3]q3]RY0]zFZlg|˞O˃ܮ =DćȘ]Pj@jlS$nh٢ظ+kȺ%WdE+"ÇdIeE=$2m!Yi[Txd[IeO_eOē)TނzOAxElS7 +DÔ-)[--[t3.앞ә8tz^^MIyy5&Ig=P7gJl癞?e3}ޮ\%˦Y/S8j{qeu۔ u5iUr"} &W'$4 KOI (*ڹtt }enٕ݊+os> [ _| Z+j Hɔ u=-Ki[FDU) U]W]ֲǵ=+{W߲Gs G _| Z^YHer{]dHTL#2?u2ǜIَMN٧)e_e@ Zʷ Z٥|Mh˳s:Igz]EׯGy@(x uJ!.$9R=|E@Y|ѥuKmFKmt{MK(]b0"=R]b085)v EtM546Ucc Ʊ/j=t5u]BzD^]Q^lO u eG[+ mq SޖWc^CڏzCa^4kکQI-[I-=&[҃@רGCt[HfHRХ˯;,/k]jyZfNj։:M'Z68s;dN|E+BN B B dJˋeq0jo@LEQĆDT$CBl`qlEtP]76$X kKlH*YK۩kS/R蚨zAڌѵz z"U/DOT|=Q}}z$5A8)sOpc 2AY t~ADhC_{`/ԋ Sw>P>%d 8"Ԗ?P-@{|ԅ@k"-E0 E 87e>ST%4,H:ǽ|A@jQU7H~O)f[%MX\^MexԤ.NI1yUBoqCoyCouCo}vQ`^N)^O)N)%KRzՃ`?x G>nS>V >Ipc8c:cy}79{lzOΜǣ,Tg- u!0FWp2{}zQy@FݲFuӭfl Ouxž,W؅Yv Q\t2n8DF~ԇ>W蠏K'X!%CUX(̠yXvY#847he4-沒", J R(m3+1H!" e'd ,l@UY W`a]d|,x0Z0:ck) u̸oܽM$j .8lB /~^w!׭J4!-= Kx;*"a^+ NYLhtXd|AYd|gNZ-=Y*?Af}4u -$_h__h-1'C!{qW)' wFT=Jʝ֡ Ԩ֪_Iy?A؏[#Bsː1t>ޅNWh޺ra>pH yܸ"!4W$" 1{}5y;_y^4q G3}8^Y?1X g~Q"pQ(\[ZӱXZ>W \j&+Ɋj&LQ}G>sHTVI|^G"I*9MHx *Λ Ix"DWX≮il m(額Jm3#J(8lp)`Akxv.p_2Sg_!_ZvBr(3)BWΘNI;E]>c:%u ):%/\U7\WƩvX˥{AP˜Hg.%֍uQ '.y{kz]Z^GHWe$w%AT.4 ]h*'.4 h EE/iUJU$RV;bUF| q[ @۪D$OIA jRD ~Aǚ3Yd m! CVBLSNCSjf0d29lc&&>(U n Ě *k6@5 D0VU \5db"8f4 PkkuţiT34Xڝ &SaCWJE+MDt9v;]adJI4&Y~,ӴhրbܣLZ[_;Zʦ2~nI-d_-(u*jɐ*WT&2͢q74@5+.9֗;͎ԗ?r9<9p;OA'q_?qu8~3?zvP|4Aj_vPbm1Z9 Ujf|澚GyF׫j¯:_a2jlD'9 [`M0ִ1D&@3O!'|A A?4GyFWyjΘrMa=S$]5wל߳&wgM5lN=Xs6\Xs1\NXs1\Pi!I)i!+ȴP8x/sxe"Mh!p(!y[^aa;2Е%ajyqCz$,J5%QLȤQ dJ5WqIؔ*q20_ҪP4ݍEz+v{ erRWhk|p.~&$\4|j~뀆p~'᳎jPxw:~q냱c>#+¸2>pF(Q>Jgԏ(o(K,3yQYEY cEY{[6iE)kmE4n}Q0 (s~TҸ(/>*)rh` kHG$sMkE"@@28orJķ;]%m1wVKbrLgq^"3f5ɉLN\>|CXpi%ՏyC?ZẸEcʶ(朼J~ZsT$G5QM[NX0C֒C##D^JA_^M=py=32W`*ȊʾYqC^R!nTz\ j_\q4hl_yC{Kpdx=Z9hcixZh6>ZAjң&=Ik9+.` )?J_?J_鿉?J_齉?J_黉?82`:^ 7ɔ5ZxypY k^DS2P)O+$sC! u-B]R:*L 92$Y2d*1HI"Tb*DfɌyI/(xգK!|*>^J.UU)4Xl59Vll59MCBU`̤wER<)]MSל RlC*]mHEk6"r[yʾZVyYϰV-]ea-]ea%M5C k> |_NX)|K:ay4"B:aՉ̋,BM C}*yI{AQZ;i/*g^v^yN "I{QR;i22/ DO-SO)=pA>`$(#1Gi$OIy )Fu9Zܽw*`e@ x|RG2US#Fy]}@@@@խGv grO}jjzR|6S8l\~mSn\r7.WrqU\\c`/N2Xz}>5{jSC;[QOSvcڍj7L_3⟪S45݊[*M pUT59@crykc45 s sMs-s;};=vv0wvQ{} }\#¨'60DfOMzb8(i|Ջ vjwڝvgkpn{}/γ>uTWT`>UUeLW\UvU1,*T?N*speu,\2wVd:I+2'iE&$L0Hxg\E2pjLwڅlYHwڅpvYm8X9g[U\βv^m8:R GgYF]gZ]8_ hg2IC50A Q)o*D|ş5)p YdHeM !5-8*神VNf+NJ'u m-tVB2_h2O&eM&TfoHvfawL\K4|^2B5,VJ7EYb.8sK5?w|/|(^C+0|65b|Cͯ&h0PEs,CM RJRu`+}@Px'P7,F600hRà-rQҭ'TIP%zBt U#l#⠏qAMmMsi(yS|U䊢?A،ٵA1ͥjbI(dj21QULdfcvU21*ff`ىP&*tnD.S[X&$ J>&$&a:ĽVUen^/ʒge2OMzү[\ZvkծUW\Zwkl-WS=}9lUzqUU7W]UpU1y߮*#F>E~)pjpOvF!kqp,.l &HIVjNi?J)'1Z9 7@[y2ZUhŧx&jZMȫ`8ą_tefe{2IJkYbڵ,lZfXv-3K,[Ԗ% jKge2%֧tX Z;3K3Z;3K3Z;3K3v8uXqYb}T;VkU,VkU,V+M>YTO)3K,"7Ċ+i- X3^Fe`:> ],WSFK3 ^F!`G!\ U4v3!MzΝիYzJU͟NL̋|]KM#?A,|J 2,cx,d5հA YUA GH,[,fX,yL~KK"˚ք>ޡ&ѕ7;Ԅ>n=uW81apJ;JV{K1[-Q"zGjYKU5UBď'ۈJ5R[ATCTCTG<EQY\aVMP- %P[7Al3BoR3qR3{)d鰗鰗U^ *G Q8}NG t9ݼߚoMyܚ@j2&#xk28:. J. 9ﻠSm *Lɹ,7=Z2$YNThɐ4g9S%!ir6B#*]Yn^g1SYmLuV:dƤXg1CVjc^[vD:DJl1%As3[4 Ҷ17@%è17@%ͨd$ר)7UaPS8m\D8x-3/Ӊ{k9;W- {k$f]m{~*<<=m/$.,'?A%}t]NmwYNb^:v9򶁂 ԡuYΊ?< VªXΊrmꋩ3ybj&dc f&d c &yzoHZNRIfg E&d2SizFSBڲ"gH<{}zFS/R<|^&[YU2ٲdUId˒U%ɒX8/gatK,#B ՈS C5.Q8_`F>͈UΜW`5w>/4uF[/*^ X4M+ |<ڔ«4Yt<`ч-(,` }TXt}=MHv8T<Ԟ:Ju[ŧ`Hub^1Hiu0ՈBJlJR]fцh TE"Ew ѯۢ!:D5h<"Ti0"TGY5BD1KSS?5~A[>gꂤxlQǓF]2*.b9n$(|74: jw#qD)(ndF%JUS?՞5 ԵUO2 ,Gny/jƘF5ft-ji>bzC]:h4\iYXK)NR[u΄h/(h 0[Dn-HɑpݩLul b'Hh9bӟ {Š=SHGaŞ)bQX3tVB@m'U1gӎ3 iI r>m!\Χ5|L&pOdᙂqY )0qY өRN-[xw;ԅG Q8G@AzWXӕD%fa!a,(e 2尬C 8X0!X=XD`a,|>$-X9YPE +9+=>`xGf`Vf{0%`xW\"!,-@XGXGXfp9䑖 ;0X=~zgV朐` rt1WFUjAt Z]EE;s(Z]-DW ? (|^[z ۣ.=K҃ WR NrhkTXFzetXAuw%FzUg[-|𧺳2#!3p 2,琕V_0`N sR fLBߐه.>dv!2;rȎ!;!-i)pHKCZi;%^4Vߠ7s `aaa3a s`KZ}I+/iKZi~p+b!iN#\ꇷE_v`z`ҪG*JHq ZEբjAt Z]E}8s(Z]=DWₘ׼Ի(O(cvvdY#vνR%=} o9%o_«o i Z}C?t: { c/~؋:<"琨sQރν{::^iނiނir4Do~w\+C\]>dx }Cg2fJpG; 1f؏vE3G] Ѯhh7hChS 6@)s11W1b/Dv碙MIMR^4_V'F "l F6Q.¸o VQ ja5"zyO xL//8,1m*Ӣʴ2-L*\ewf}|01~_$=p} T߿ *S9'#|2'~_4;@c~И|_4~L3r 6|ʁ8|ʅ|f%6+a"'+ |",dE>ّOvdG>'C}"{8Ma/nbsgLAbVḤ nefr7hD  o|A4(M ."sh͘GSށw0Ka8@"VQUaQ(ja5EXsF}NP{ʧ( *q\J|do:p l5A-h˜̙&ɜizЄ?cރ͌ЬhF ЌA_4׿G0p!2q yew2#{,Y=<4s84`0Lf.L sɹ"'+ |",dG>ّOvdG>'̍7Ofm6H/nn^x&ʳ7s싛Iް!36} aChoج&W+I"As~0r0\L.ѕ#D]t+W/կQQQ=CSH󤽭 ޅM>laS߰iOZ>iOI|"'-I|#tO2E>&0Oå[԰+]:wޥ.}zzyzzyzzA| F_ww,s %@8kp6pvppNp}QJ=U?0ͻıUS6˶QUSQoVMDͻ]jE7݉R(ENAs%;Qdݝ(yN1=^4%S~,ܭLliY$E Y Eg YE_oJѷe^E0 ɫ  PtFMFF-nl0xgQ5eX m%eКFkFF0Vc?0zVX1ԃA uCPb1ԗPbh14| C#@{8V6Z3_K 3U 3|S|BgikaLRP,RPl(8%BXWr_U]%Ws\W̲Dm W`߯wMX~`tbN{`tN30zJ:ax,ԙ<=F'ohtbPF'oh]Oٿڷxފgg$jggi'4ۿ/&fVRߨ,g=KnnYpkzV]7Su@Ozo7Su@Ou04Xn|Nhk@ӏiM 4KB;JP%zP>0f^ zC=cA 7FA ch147o g!=,5յp5A34fhfhfhzU˳1녱{P=w(~=m7PQ{ֺ-`d]0.t_Y׹ a zNn(C;9Cw(s?ggs9{ؿxoؿḥ\kks@.un W t Q{B\n(rLr̡V\nn( rY:c?s g g o7DjoԞ4/Es{3H8; a@Յh.4Fw1#? ?_3 ? ?_/QHC@+RMBAMHߖFPe@:# T?in ߮\;w?7=o|?ȉWܰvRd!1ĥ&3Bb9% a/.Tho<<1e g15A8O1`B\4aCYgAX<䠕^ݩ0䤕^ݩ0䴕^@‚A[r##<#+Ҽͼ7s a^,=AY$E|8^̵By= pGޓ7y= nGޓBX?EȹBp]ViM#?`LcF~LE}|̅1]o>zAh֛B|P/f^03"0ۃ1Yn>`tL˲=EWՃ.F5Qt F]#ᢋ?y&bym2̠.3 2]] lW|Ƭ60f x,sa1ޔ)+xSvMM&=anV`V`YG  nou- n2v[eaP Oۋ0pQ9;I_ua !5{RwH͏CjR"!%pH RCлV[T9~a?Mm2lMkЗ%}I/%/#T{jaaan1}Ӄ 190ݏT́Hm"qhG5At .=Qt(F]#Dtх o&nOȝos {\^:o,`V誾]ͷ?Au ھ;V6`GّCv8dفC됖jp(^0i;0- >noȴd6$9i9ii~C!-!6gBm9D)CJ8)CsHn[ nH0ԭ}IA_ҪKZ}I/iK͇L5.Cn2-i hhUk5q՚j!-rHԹsoAނν{s{4DX`,ߺ˷m|X\+o  Ç̘>d!323rȌ2!3ptCf9dYCVB1w"n9eaSÔ7',tj`\s LӯOpCn n޵_ ջۯ0_?`L~~1os <aa-aam/Bj ̌`L~h~c_jQt(Z]-DW )0WGՃAt vjCEakeDuA]FPe |_a.m!^?X ȬAug ;sVSO;"!+r !9SO+Vf`v`v`v`v}v\[,­yb%q;]\7A7R2wH!#)pHCF 2w!#{:dwF>AMaaaa.5a `Ḱ}(o_2ݻ: ᇾM~oSMZ6Ex.{QhHe4?R͏TF#ޑ8Yq\-EWՃAtu]'9΂Qt(z]=DWw%)r*9rO;ʟ o;o;nSԣvݦ|5]#jft͠A5]5[SU{30+=^0rʷ 8 F*c#He,?RˏTzG*m{z]<]=<_0lPs`ȴm.~:䇎3LБ^L!3y2됙8d!3{2w̯C-ief]K3/R%},/%d/%: Yq?tg}CY#V?t$6W:gu3gйϠsA>]>[0 1[0 )Y 6ij{iO+3%SdÇL>dzBGCF8d!#rȈ2"!#p 2C\qQ=ВL! -ɓ7'y~u/=3M<*ڶI 5zFO2T铒;vc§/|pr ȧG>z}'J UĒV)hҤ闃;I/wo俀ʿ$/{W=/FɤTڛ/D@4a|cqN:ұx>`qE MMGw1PFͨ⻪Cus o;OpwrwrwrwOC3%V/JO}U|alUuz fKov vSx})y#oy{uZ-5gۧRsrjZjϞ @^ M!ү~}kT__][r5<*xQ95WGu Ojx#|Oq>}L-G|eq>}/z|qohkO"XxsϏ➻}Bt ,Y$L][˞Ma›vҲA8&D6!GR5* y|Kl$!u˪nuYխ.'eCG K4é,{@7o_\ jݜJ f.I0 % b0}t󹯎{>Us&ل, z]L vl̾gEͩ`"!PY&ue}f@xn1O$jyxZ޿50~ sއ>,(Suυ6_Y,0{⾙hFm<; ~gGQ:'fGQ4LUl yIsIsf2ۜ{]lsp ` )WL8l%6X4!;M.r*fTg,u5H4H~43 ITbb#c01Fc%{E/exyKc_v`c2\R@s)RX"6i( D31au`E]:`HybEK:sN|+l\޹,iGrsYҎj沤!emp粶BsY[Q\C;e;e_S=e_[|WupC3sY _ [ِe yȻGectٮo`$`d`/Q.-‡/|>/oO|zATr|6gٝ9p>Ze=Ѳ7Ѳ|,-뉖59G<vゖ&yb]O,[ 4o]pIҼu,(,N&A{@ڥc d2kd)ظgJ5Lپ)(̗ :`(j.⩃6xjw]Y7κn]ugP;jO3)‡/|S]<x#/NϤ,LjΓaeyɼ/e m pyHWWXeּ*[vw5*ScΩz|ujo~jOV{ oy#oy{7yq}t-GKq}wyq><|<ȩ$%%:Rdz%tH"XxHDБ"I!")HJyԬڔJ('=jH('=jH (H{ Bz zKEtm}L0ȿB!aȼEgir"E"3D*LyFO˨Qw2PΪQt#4jn-Ps»/|<fSGk*c:1=l APփ`;ہoz )\:S9fg<{Abu8"|Y3g)ΜEK-.ZjqɗTޜEK->ZDK-ޜ#y냼r37pIӔʄ"qiS*SxDML62G `ڔ]Td'g"=@J|(SvhJI"_}7=I:J"w0 Q828Y&j eY,@;[e"HkyE1ĸW Z^!ky12C_rPSN!  %!/@S|8HzGrBꕊ!xaԾ^e;9?v .DڭWZ_" 3/b(f{b(=Am-aU}m aQa;%<w;rǎܱwۻ蕗FKKcaJKKa!J/eX@1xi9xi9xixixaR {wڛ3AyQ"w%rG Qwuh?p/B hy= :;tPQQQ֡ǂWKKKK+KUQ?S[2bRڒQyԖKd@L^:%#ҩ-14Nfsv2:_'@.#g8'Ȣ+N]/_|/ ErQ3v&FVh. uM4&Bt]bMG!.ɖ^b&<_ d 8.sMQMjTH@ZR m7O&^Ɵr"z.;@%!/'6Mˉ$PA\?,nFF$,Xֈ le?v2ǂN栶> mhhվKڪZmU V[tV0E/L l%'% -\4\Wp?A hsX,=bCuzE.lc1nnnnLP#w5pG Q_w-rGw-pG{4Uic^]9OW&yDʥ]9%veH\ڕI#qiWyepϽ8LK8u"?͢_S!FY'_AYHN4.^4+F7xef]w"B oX,bÿuz _鷾ZpW PQQQ^iXLtŰo(}@Qc22X{k; ho=)pH;Fɻc$ p֋%V,ZkrKwvO/#//#o/$/W"w%pG Qw%rGQ#w5pG Q_wT'|I%_e"]Ē2fB䫌_a2sl\M*' 9o* smNSfTxH0Lrʤ)Gލѓcː}T0dYp e(3²",c1!>X `A7G/@s/@lU1KŞlusbNXcM3y.3yU|욃>=[;VcX;cGؑ;vcد;o"N)){rh*jncph*i84TME=TŲ",;b(4Cy ̓E)46SD%r ~-Y|3?صxQĭ%rqA+an\‰*?4j]jbGj6˚l53 kfR̤fS̤f&ܸb̍+;7Xܸbs̍,<Xb>>;`Kj{VAmΪ!VO@#rLj1w#px1FcFXVe{, `1la, f e ^2|ˊܱ"w+p ܱ^w+rNJܱw;p~ݱot~uucZKy$ҝdL[y~0M^LKw`K6yn2lCTɀ7y!I\3]br*{tqɵ.o Vst%eNNȵK\LU˹#n};i9C7ɖb,hcѝ ,F%!]BD"({`uVR ؚl*U -J6db6d_m~pUSVԋ[}S/nL/V4iyw*;@ [Z -VEV`K"KY o*S{uj'įu_ɺ/kidvZR;Y_\b <5Sy')WoUVaOO[bdfbelAZr6*.dahfH(Ci|Yg9eYf̅l^5pqMi_w4H I̹EV?H}p76$&JvlROK?Je?lвjA^rI! (Rq_"jVfJlBBA&z#(^Gn#f뿙ٴi`aJ鋂ګQ?JV_WH R&`p@Y<8e%&2d[&M|"jsh63>OmԆ:BW:DaІ @:b*^@{ތ[@=u<`9D20d!ߋn^+{Q_Wd[J}zV.ժB%MLvJTVybH$AQ/,z:YPoTz^! []hv'K%,]nty"Xg+}Uឍ&B|f_46(!%\O)OABY3.TtzN6y1E[.cKEYj꯱" [eCV/)窺Yđ%;7Z5IY/ɋ|.^ղ9Fboy_K4}_CL" ͌ [pNĔ, gJ'h)I{qA$Jg-<uK~{w Ymtjb.  (Ί. P` q<ϊbg`m8,~:> ˢ QP ?|HɤXl!Dk( C(&aU0rCRIK ҮOCо}I=+8TLLA'iS#'աVϒNj,ԡVϒNo K:uhe4LfZ]7ʨVhG-|g(p0ʶa<=^<^,w_~vMlj):q>>q>H'ΧZ/y?]jyC!$Z'M 'vX,]L,4{,L r "Mߙ_YXlitmo!%B#!VgM}'*7d0M"wSH!2*ɺԪ V](7BԪ[ښ*b*bJjխmƢOSz#'?rG]0&ꂹUM`nr#U gWIqUO<]\em1&W]|\u%G QD(?j?GAo4/=1]W{[[[[}aذLYn揹z  -@xO>G= \!FfY`*sWi/J{*eZ>BkD5Qt f]3k\3E k5Z.yj.gxhm&}Q>iFW]7k=Z\;hvrڮ=x l0̤6%U ^%z)%qJI8c%s/E}\. F-1Wƍ%qڲ7-OE6xц긋m18| h7C6cpˆaLJbT*FjEEjE8j,r~>`~+qXǹbumHE\?~ҧ~pbک`Fe7f}BK|BK|BK|B X -sP]뻛A}xN\{uɎ\%KZ \n !YEe;ssQrwQpQtQz%%rI \R%ŹD.)KJ.Ks 8V~v=]GNpn9b+V4y4{4mDhCHV v|!!!@'A3#4+B=<4hYƲjE؈"lD6A(¦(fa3D،"l8`xOUX+r+tߞ|{۞[Q l-؎ZZ]ln==43B[~ ĞaKO'?l[z -=0=ӊMNMM.\_4)c${#ɞHg?ُ${yG {P"%%p?[W$]{77%8p$#_qKS3G,()() ((;6%Ռ ;uWTzNTzN7Tw#,ő ETHr#{THw0=${#HrF%{Ц#Jw;){=@3:@3@C #4W5W5TjEP%(!@ JQF0% (a@ #J8P1II'%vATPA0@~~??Ϗ;A62F=ȱ`#=,{!"09$G#QHrcuQ(@a6JT(@a}67V*PX Ha5(F>{}S{/e^bK̾[9ۼ>&ET.@ql]+4 iL AC{4ԭהni+c]B['x_OҰ@}rK失jNj;qmTۖgSm[sgݾƼ_և!yzƆeUWMglHCYM`h&[b"~_ٓ>Of"!lHF%[!>>Mwz ҺI= .l^ղlCoUZO˸0S v0 u7WP)nvJpTR4\ dq9=prvAAqe).0&sYXBoim ~Xɾ-2كpxzj`yRzаd _00#LNLL./lW x3⻡>+(((( [~;b5Mh]v+[`Z`ܤq `:ܩž^^#"#>^ݭ\03R3r3J3 f-Ou 5P". (k-O =D}[]8nkFn{Fy<(QŠs $\RAO 0 S]F.{rN`)S8q 8NS8q4'0n2~̺F`99q#8nǍ\W\QQ%QQQQk})fTߙۂ < WIEO-znѓp{= 70n͂bZ7rFnq7rF'Ǎ㸑{7rǍV?~;yvFggxvճT`aF"~2裛bFPC#*Q !>|0`#>|Hll g.,",",޲< . <.ե z. sja=X #P27Jƹx8nk/e-}-K Pa KT׌uՠAuUU*PWA]uРThu<[;=@lgWmUw+P%==zOfwN~ܵZ;kwF|jy] pm{ץ[jj:^Ѯ'3l@"k=YҺFh;u c3i4tqaU(焂bZi%*ը4GC|4G|4G|tGG|tG|tG|-LCCνCrOJ|()QR䣤%>J|(9Qr5fO  > > >hYn>,W1>C(  Q  -a;4vOܡѸ[l-}¾o\OR;$O90ѓ0sx=Ɋ3XA7#1"A!}]%0NmCq2C0)l F}34DPB".b.⠮u\[]H] @] %A]vǼiR[ $_ }_ - `{޷gnіjF[jmQe@.ʜBBi] 2JK4Gˀ-G>Z|h9QRtsg.{悹g."{Yg<hq03\TLbj%*G1QQQ   -h|wf~Ǘ;$.܅ݣ'q.z /)*sTLbF~3b˽q^5C˅Ҏ8~  y<{ނgoV q|#0o8q7~[]ܣbxD0E0GŰ<ć >!|HCćD>z|C3L6W[js~hۋhpؖbh۫;BB{K(+AσGL8TWBKնZױɌtzWrk|)m.h-w7oH~ ~`yG=}d؃G=]d؃E=ۈw`X(`0q0criH]#uu5FPw 5PA]+Z\u|`; >2 4]qb ^ vp7N.ۭ7%7!` F2|H؃Ї=}H؃Ѕ=]H؃Ѕ9 l0ǝ`; wf.3vܙF 4P+(H;r 9\!Bȑ##|(((X9n0Ō?$Y4o?= $O2j$FO2j$dRBQ1bDŴ(ƿ~r/,K' R͢Ү)+-hx<}>zvB`/5'w`9>}pyѢbF#*fPTG1A| !>A|0.{XccgΨ, , ",ʂ<@} >gGcy؃| ؍(R(ŞR(=P 7~8nǍ㸑;n$[nv(uQE9JTW]T Ek `JT׌+Ҙr~nӬψr{B5 (DڪzUzUU9Y_6'! qLH tm6ȟ/A<8wi뾹Oz& :lnuOM <ӧW:-M8iIsp}mǩ,%.2Zƕ:u^4ZYݓl? =6hg3'ٴ@fɷ0nEq+]Q`sW `[]澟r+[QExW/»~uЭ;00#~(ZQw`}|k/H] @] %A]Au R u Pu Puql=A:ւ=ւ=:eeAvY|и]4n;eq˟qwq wqw{VW2h)AK[ RĖm)6nO<r' l>. q|hhhh=a;4XA:F]`q w`qwaIxO wDO]0ѓq . `B! Pc8Nawba㞡PFb..꒠.iKK$넍;`Ħ}P 5 HN7lqooN߰Ž~a ;3}LΡQ\C7(QҺBbir6OiK] QQQ%QSԴY0f9`,{80L߭z9RTLQ1DŴ(!>>>Z#>:#>:>:>L'9c(@Է? IbG$2'=דȸg3$*RT G1ՓyPW yPW 27-d<. <{5`/ 3#q?c0Eܣ!GȈ(FR|HJI)!)>$!)E>$ȇrCf&cX&]^%3e33}Bfj${W:ǫDs}ZnرǓ,;=!g+cesž[^vUm~A9/ӏ426MS2kA]?\ysOJM|)]<̔i'ddvnDx]~sB^(.5K}e;h Rq9Ki.ǽrԥuP%+keLseި~r3 徊r7\v_]ZGM 8 EQH@q.9/.8鴌!ߖq22vz}irxΟ,s>}*V|/ ʩlYj ` #sF;T糹Nk޳٬]feSޥX^ϙ )3nCcG k>SO곝qE(w_Ĺ=AP T 7)Ynv^N{%7]J{/ڥ[.%I֧Ɇu x\mV'"ڬE \"J~΅0@~d?ݒҢ_-"W)i2gie:o6SSBS҄- Z[^lFC:8hCa9U/EȪzgAr)_kI&žf?\qו;_uy'6K a60Uf/BGSp.ݒU4}.]Klےi8?ܧwJ_NEi]2i]\ BJ1M 5.?Zs/˿j|ꯚVfʎԕ'%)IHI[4Ia0ଡ଼,W^e7,}JM+qΑV& }$d$!BJ=SJ+v󎚚,}Fht Q@G}}ď)O?7ÀO7'nTi=_+amoJyG\*UފyYZYw+ ߭Ω~X!0sɲ9:~dϷgvpiZkp> wʼe35Ye&˞WMɲw^}e>#iʞWiZ*4Y3}j8RzvygnNc=|sx%sX.|籞]V[U4XNBpf\:G#p4 ځhgrG2oL jf3\D[zUR(@hnx朱jH4s⸪Q &챇\UTDÉ**{!V=јTkUUQ88Ӂ8:|h~j*_\TQg5_fTcd~Nv#(-C) ׶Ɍ_2.?TE59n *E/a -UhکLuf 549ʙQr \ GasEw!\?5\V՟^}4Y~xe`|!&ا2cl֭Ka2=dvX!q;VVU^83ǯtU.698d z?0e4{퍵+pbS[m8UzVu[-nʽŪ2`>E|]k:P>9c' w,fciݱ C->Z|b!vb!v6zD0nq[b`ղ>sq1.C㠘C+(((( j?+flQDtv%2-vKv/V@ s;}x:ᩃ:ᩃ:ᩃpx0#;};}:]?5R@@]( .B".".ꢠ.kcWPntЍr(؍r(؍xQF=A%sI蹤ƒ^0.<#!ybkaO`)=qJOq;N鉣t+OLt+O̾t蕧TWboqs7Ǎ'WQQ%QQQQ棘Qa|gݽyaWIzIzIz{=Io`[7Ǎqcoq3n zq{7Ǎe7W;x<{nQ^M+OtD0}e tQ@jQ1ԣbhD=!!>|p`> |أY(ccEN?,+tAeTePe-@} >g#x`ƿ7vS[滺>ogo*P-Jl)TbKwM-^P vAYGE|TG|4G |h`PLC|4G|4G|GG|tG|tG|舏ߡ,i4nv]w%¾Zw x"I'!(zI^OB?y;{#rE#B/ q Iq IwxK: TK$k{jܱB :T{pҨcu,Ҹc\} e Luk` `aaagzag#ՠcO7: :vv&q9tPeA70E pE|TGE|TG|TG |Tp0=yG8 NTW;aQ1MbzQLG|tG|tG|GG|t@| | | [I44;TA< Ifܱ'aD}aݹ`GЈ!!!y`^C,8Ϋ\ȱy9Jk!Ǿ~s{@ggxvg!.xŕxŕrY!Ǿ} 9U 9*FR ԃb$IU$$nj7Vȇɀɀ 9D>4X(H72+znw/k1 o5ؘ7j›hlm%cu Џ<ݲw(w(w4w@Y'!{^$.#ń}]yo^ اE>.d1碱J>{>㊝5}|Sa{_8p gzFpɹsj/~OfIhWqe4URFϸ0ޣ&?ۂyCjszlHZ f?P\\Pdp0(7o,,Jss{AB|`>؝"=`0 `x[]BTbK}i/m^| N|ԔǴ}4>11/1m/ηVݽ1`[{G酝a$L7|П!Н?p{-oq0-ƽy`tn^)}!u5ՀPWjA]- #uuՁzP=!2xZ=iF~iFziO7:mwӀzzzzzz!'?C%P``֓.! i 㔟qʴi{)V_O0C 0Sr%nOuI7N;nw8mqq#_A|C=U0ÙU+C^>4,ˇƩya"ȇ6{䗏S̨)4O <9 s$9GOs$9Dc^7N;nUL.a8a8q18nϞڪo@=#Ϟggsyմoq0-ƽy8}Ln.E(Q1=EKTLb:#>:>:>c >c>c>FVVj6#G3sG6PY@Y@Y(y<{F=Ϟg쟱G2\ z.=KBϵP1 7f,q8#E01[n$J*)JzU[ PWI@]%GuUrTWɯC:bMS}+˞ʹO+UӴO+UӴO+UӴO+X?FkV̦߭,wi.Mm'3[Un4i4dwf-ִhhDEޚz]8zrS S+A_88vRљGVevnh02Fײt3i4n>ا`J}Lkn2 f̝_0w~fZOujS]EDANE8 f4ftf `CwVe@(!uRuPuQP1.Bb.b..Z]_wzlm_iQYE@YE@Y$E:`ٟ`aFNm0u;`{TWuOy5Rh)5ŖRSl)5ŖRR{낹Oy],0(0Q3G̀(r.FԂ((( /QQ ۿCjh}Lm 4glwvg/lY OR;$OR{$GOR{$ڝРvS^(h/1St*qʜk0)qJߡAPB"."..=3V#u1Ru1PuqPuP$IR#li[ [ñ hK)t-ЍThgw͟YP,(-IZ| `sa|h9G52#0; L/;97>Fͽ^ŴBQ1bD(">*>*>j">*">>>-,m0ŌV5O?$l.ŽIZD}aYW1EGTLΏb:WUmyUq^FW}}3<{Cހgo-ܫiF`(q|8o}[].E%*kT Q1<0 >$!A|C|h9]n4u[.dC33jf'{:m˱kt9^Ɩ˷{Jc۽^^^y`ޫ=NN!8Sǎ)fI_fv.e)0M5FAоZ[|n_~/uycU7̻_՗iK}Nh000G0u0p#w{Ti";i?NAvB~ `V~ ڥ}#uuՁ:PA]H]ku 5ǮJ:/lqWj@G\>2te@z!) X/\z 7;!yKO  B tBw t}!diF̽`f 4q^0#H.ꮮaia^@s|gW3+_2#>F|91ȀQQ%a S̨0H~Z_!'A=ɨѓh/ڀbj#*RTL娘*bZmXVci[m-ֿ~s4y<}>gׄ{`00#H/Ao8ZTQ1cD z3A| !>A|pâi6cӏa7߾; QYAYAY$y<@}>g쟱;ws;ws;ws;wzq#%0nǍ㸑r7R~Ǎd(e.@](GuQEU uiܹDuQQ"W]d},Ӯ&X+sz{~UUV&*Jrzu2pK+cHnie<-r[{ieʴMv5XMڋu|Eg88z=!_8_NӪ"ï{l#]vmFD4FB>Ou 7;!_Okb>` Ɵ?` Ɲ?` fw`  k@H RF^N0^C 0{̾~wgT_B$.A.. ]y7[ݠ[k6o6[N)( 'PN,bY8Ųpz‰"O_0;!>!mAueR89αp-RyS`q@q@qB( (">*>*>Z!>>>GC|4G|tG|Ѐmzqg/DZZ='< IxDO#zѓx= oНE#B!Q@1q 30q s0q ;Na+C(#u1Ru PuIP.A..y% F-b=nMǮٰǮٰŮٰŮٰŮٰeǮq%v3ۍJΡ\B7*nTrv>aҺy͂ciݼ%.@ > > >JHԴ C=$C:$ػn|)!GTi)*娘V4GC|4G|4G |4GG|tG|tG|:>< IdDO"#zѓx={#*fPTਘ!Q1{'dAq^%UBq^%Ϋ,7ȳ <.K`B8~`8^$ek`lc4EH##(F"9GN)S |S9R#)E>rJR#ψtL/H2Ufja/lj^+m+QR*0s1i= d|d@{P#NX\̯dGFߙ iW&³,D[FƕT=3VdJֹiHܯjb3`$q3f/Sɟ:_Tաl#x{vϴ֋ZBOΝ,;?Y8w~soTNF`$qSM=U`lڦB3!n~.U:0n~ 0I_z9K/ר_n~ˆ0 !D B" D!b"==.vד퀾 .6u3\il>id Οʂ6rSF @,,G,y,E6Pf9}NNMLduBVMVj5d'̴Fj2ݐOg|>c.q L3o]~: MI|Mn:%>7}?=< 0P4+3X>ZV6k7-+9_t=ZuiyNMb[ 1VIT?QGeJdx5;˸`vXܫcRW.mhq00#qeT>uSQu'^څM#&lyak?0zOm װpn>_k@x͂cqd'=ŵ#o"A D!6+j `|ظ Ƈ`|ظ 愍s`NKVuiظW26w$~%PRr$HHɑ!R!R!R!%R Vΰnu=? 6ud.j.șjRTqs+ ڨQ%jGz}wP?Xܞ/zߘ';X9181/y1oɊc^WՇ>~=.kٚiIM^V|p+'MeEn3: BԡZp64Z+Pb҉xj Y4=^V<$)64 RZ?ԛE꧕'3qrF+EcI4.Q²-@ 8iˮ._ֿ忛~X̚c.s=#5@|v&.(ًmW{h-WmWz'U*ah- v0vpj0&f Jm8uņ`Vfqvo @h+ fov fov fp g4A.4A.]4EnOZj (Ud9h*RXE @a("ՠf2bFVͨVTmCi0 4T "A"$~%e/_ >͂@y;'wf/?Q2%Q2%P2%#PB tV~>h.Av/ GIՐDո~r/:F0% (aD JQ"AD%(@y@,m+m=۸[*wK5nE-w[ p*-Rt*3\@Siu*-8Ph џb;)ѝb@qcaK-aK+`;li(V*RX @a)*"U րRX k+b= QO[П&?m==ixpfzfDP3`=XYgF"#QQ_4`tqa E½ [ MPhh4p@c+E0#.hHqI6#H1% (a@ J$P"AD%(DJ_lJI=op*V):S 8^Ǽ^@qjz#ɞH8>${#ɞH8${~GݿND |~#?߃,O'z^D`yuE,JQ5jDմU򫚆(i(i(i(i(递(鈒(Y!hkUWVOd7>#/+th [ ,> ,>V{SXJd`PXE,,50m"L?1sž~3t[Om}Zg|N:C[unס:bVuh:|:||XR?`,cie,݃YypX4P4 vLbdFlZ!k;u3Lc1zB]j{#{Hk[]Xi[[]XiYk2K9qG.w킹G.{́!t_;UB~ޝ_w'"\;aq/F`/{/u܁Ez[.} l #>|0b|Cć>!|Ç wrqN..Ņ;Yp. V\ocqFCI{¾/{^ < eI(OB9zѓPIV\½`;laa!By}Z )T8jP/80d/ۍphu.1nԿrs`PZR½rp/\K-"t !>A|pÿvp`l{qo0 {VQ1RbFH{#A|CaQ>8>8>8E>8E>8E>8|kF{j9Oxѓps$_OQ^̨pb4*ܣǓ *F}p0b9eU\⼊KWqyUv?~+yvFggxv+X \8[sxnq?=`~.~ QTL㨘&Q1==鈏耏耏舏舏u+DN:1>$secCdֆ6)I=86)mwy}^E|>/y# 2y2Q.;γdֲ-Ł].JpUm*72\  v/rR7SRsHI%JRT dȧW8Iȯ_!V ZLGL v6)J(^t\oArG%\(.Ar#ɍ$7#9+C(.]À aXbU U1$VXOqΒSH T>ʧu$)9IkX# pȃCk&]Z&%NjН;}U\Ic򦞷ݩg~sN%TuN5TufߪΩUUΉUYosNosos.>%u9ew1d-] Y3u[O"Ռ|CJ C&gYlY V0'>}l( _vV,Z+5rYNXVrf)ubg[zz~X4<&K~Nwm5Y<x!BL+aQC,3-ɪQV<%K\Kyn.Q[BYsOYeƞ왮QeyS&K|?II\6<F\s1 nqJ\VU)q䔸,*qY ƭJ8VՒ5*N|ĻKi%>vJ+e:|Ĺ7C=ś)*`O ׁ +eyo)[KP)eڧ,\BYbS}娇\Yt!)v>qeaEl&9&5SvLmE%^mx fL]v-ȭidv3⺖xIkY]JLeDqh[x[) o@{7ß=ś|fP}%k(^nR5Ceʒ9%K(.Gu,Keٮ%^Z(K߲'v TfU^{􉽮'J\OUXz]ׅ>$^Ox.)ikl-ʲBbdٵ˲B}leE,?"~ff߭,r,7RZNi܅|jY uԢGD'>b瘸|9ۇoSid2nhn n Ln f}u=yJ|8>vMJ2H@L9CǥRc{>1qzHV2W\fP/6 KV18?ټѩ$摼:/áBMV9|M~mjd~t!|h7ce?gVie3flDyMgt(-qCPn29uC۲_Q,|sh]yUB4P!fnpf P}K|^XeyUώ~tt?9^ݯjAC㶠T~.2WxԨT(4;0Q/q V%rʌVtx Vfr| 9}X*yDO^>?ytyA! .?\,\,.OAu*D?,2Y ̾MMυگ4z\5of˛&+<mj\lSdmDן}sΓf2܈f j PD3G>tQ(U3ep?@fO,~Cok( YLa+S{4}Y3{3c}Y3{=ݲө~72tIWc@GVh=7DT8`}ہ!yd䫫uou ZJϠ[Jϱ[JoK)s`N$A)gkPJRO > > >Jc=>|uG1QQQQ  ^>!>>>̷ݮ}Cz!@lv!@l!@lIIIדtt"dPBJ!刐JDHE_ S:qJ8N)8;N@_РEPFb.b.. V u Ru PuIP^,ZO nMHN$I{'q>}I [} v#QFGЍ$9}/ Eᓅ(|po=v_ՃO1^>FF|G|G|GQӣ `$OZz0u+TW@1ESGTLʏb*!>>>!>>>zB QC~jGdtIFdIFdד q!@QbF=*fG1̫1jPW CZ@} >gGÇ9`q88^#|=`\S]>ABbDH(F>$ARRR KL\%U5X^O͔f4U3ibeݱ߭DzL[al]7>m>m>mM٭_3Yݧ}ښ]ާ}Zz%Ei( zpקhŭ_|k|kk`,Z=˻dcu4? iZ[ e\՛s[F} v#i4FJ[FJ[FJ[mEJG0:00#LOLL//9@EExCD˛;z3 3*3Z3z3CKڧR!uRuPuQP P]EH]@] A]@ZGf4[{jXFeaTePePQH` `qfC{>AC{.AB{.AC{yu.lv^07lsv^07lv:0l9uq b{]%˫. VW%KT..A]oHgy{ m1v罅~eG\~e!v\.,b.\b `.u/Zp [jExW/»xB/~G<_"/Zp˩q9;$ʗR/(_*| A| #>|0o0p$Y@fIyD'I$xq02bbbDb$b,SZvzKᾞx_oigoirzyv]g%xv=jZ\@n`$/ہ`>FcѣbN0)SQLA|TG|TG|GE|TGE|TG|4G |sTnlWJML?:)ib} VfSGwei֚Rd}όWi\n`wMf]~ϓҺ'Ǖm\I}v#,FYBKנvFwkP'1{0+c`,o;4Fc8eI3s¤e&[}77⤅ mikiQZа2Z ܀ #0OSgHL!0Ucz05ٙ9W]5ZBkJQ]5RPWM)US/\BuՔjQ]5堮rPWM9nYy~[̘CÚ *KAe),P"e>`{q_0 fKƖRSE-@KiRy0̷5JC1h4.bq_7%¾/fIyF'aIx DJ$T_?JA(#" a^+078g 㔚SԜ84C!PW@]9GuՕsTWίr2PW@]9GuՕKTW.3'nJWr,..a%®酭+O7\kFsm͵n4Fs%PʠUbi[m9. 7GC|4G|4G|G@ӽ00E0G0}0M=t3rT(Q1FŌ(f >c>c>(AB| >wrǐ; ȶӌ< #O0$ < OngIQ1b<0U3VZ(yՉWe; %> y<{^g/)@( Ǘ%q|q_;0jo3chjbf8W13ګ (fFT(GA|G|G |GA|G|TG|ϧkXyVrgOS6g(Eb1\u+&+Vx%󻕨i cשOЊ[n BnQ-E`pj4 mE޶H6Iڪ^; dK̢טEoo7l-ZnQK0+_YcX#0ad Fbd FbdF`db#!b#!F0/#Wtrk| c:.p5kO?V4B[Wo9P4Bϧ :>i3ןOfո,rzꞺ>`}ާ`,9U?w!ps0i{D0ˡ;0я8 PW-@]uUKTW-Q]HoouUU*PWA]r?f$Q[=Oź, 4P@YZ(KO ,`绰װ{n˺vMow豸wrc?Z;"d B"dB dBF d Kn #0Ss=5wSs̜'=쪋tA24dddH0"! a@B8ˆF0"!@B̻Ut j- `K=六~%KZKZK4F@E_Ex_E;kTZ#VH8Ri%TZyG*ῃVZjV*PW TWEH]uU5{j to?ڴ}Ggq~T} 7ubzZ]Woz-7w`3FF*mđJqFT` ! %rsf̙;06`ԻJ 5\/šc8tlccD#B€p !DB" fƧyf+S %|IOї}IOїQcϽq8ttg訡Z蹷9{CǞбwm:{t;r8{νnQ!dw`2D/q ^FhW2E%SGLG2R! ! ! ! ! !=ҍ>dK43BSiݩY}drnt`7Һ];,0"eX4.[պȘ.2dԡwC+>?WR.ȯ %%śwII:|+u%Y t]qFJ$E2#([eVqWMVe{ಘ~Yݫ0Ѱܽ {0_l098< d5Q9C'&oYMܼ'd|s<1s;рiw&rLiw&rv2Mf"$S̾}/ce,z6@\XŽaDq%,މ Lu)e iBZ(% iA!n݁L- n_0w-vk髋Rռ&C t&w4dFyLfd BF(d$ A!#S22D!3QL2BxocL勿'$]x#U"U#^ث'uFf w` 0`.B=w蹋F]7z"sDyn{`E_072̍`$2ށx(ڙu̺vf];.L `]̺ؓ0.L ĺ.qj-rϽ(7Rؔ{G]9Crj{Pk9 %麠$]uA]uA}.#0o_0 `ZyJBd-@#hq-T#on`vqmn`:ϳƧz2tDt~{:ˆCGq:22D!#QH2BF)df Bf(dЩ7Jzg|goO 3%.^їV%^_"sdV2t5БнB2t t']ޡ$NN@*$s9wH;$sרݱ720;=vȱ7[e0k28&Mc2(dD!DKT.BvIK]r05*dW!oYj=NA(;s_K5fDYZ%s;s;s;q;q;q;8\UW/ žt]. =v]Ǯks{2t..3Q390|ۏJǺFf]#XHk&5u͖T̬kf5뚉uĺf.[CӓFn'Զ]Fr;6Gm}*e'gYqx"lE_;cȂ_u,h]o'T(Qa0>`/a<a F+}+FkR3%5{=b 堓{1slE'<# v.o!2B[s94 xۿag`v#t ~A߮`P rޚ X]轼"D/ ĈyyC^"tyk.@o`q -_0[ %օ-.lѺE k]/ĺeuĺziuU&1qf.o͕gL2YF" w` 03|vά̬̤̤̤Rt;_sN 77,noXto@V)d% YBV ᵎt_L!)@HA!)dg ىBv(d ٙBv(d' ىB0(wpY^e _7n}`y/lD_2Jd}(%QJ%KF)+08P]L5aamaa/B悩q2J#QjRHeF*ptB[QZAi^-X(-X(-XYWϬ'u`]׃} ES|19`p۝3&3L!;QN점)dg ٙBvLB0(ǽ \?F31%L| F_RK%wSeee&SK\wߍE Qk\ZG미~^Rk99888{ ű-Gma,?j cQ[ˏvq;~LٯMh2}D1)g Bz(dL!#S2D!#Q (dsbMDR?1/rT3q Lg`\f:<miLѨ93csNa)"#:":_u%uns`v#V"V#́i[]m$?8" NbDh !(-{S08 0d]8>3u̺Fb]#X%w~kd52uĺfb]3XbP;p4=]T6wGЏU( k%]Jt]+t] v0P"  FLB2RiTđJ8Ri;Tu7%F.`ܥ1̞^ H%># q0ơcg0Sf D!KTH/BzIK^KTH/Q! t`?^䩫ls&oOkK(U]]/9}IUбd[:šcoбd[2t-{Cбw(i꾮Խ ɜ{Ϝ{O{O{O{Ν"oQwL5-=3|O:EISgw4df&3c23S2D!3Q Bf)d% YBV›߅NSLA$Mw i^K_,,,dɜ{Ϝ{Ϝ{O{O{O{νs ? u];vuI׵Cׅ%CYg`0:vCǎq1;CGSY&5Jb]D%Z(ѺFyky3Jb]$5JQuk׺(O]9'6)D^*'&r3 1O^n!v&,e~#~#nn"SvX? 3x) w9 0;/Zu ;yC蝼!tN:'o7BS.Lx'o`70 : #vTȬkd52uĺfb]3XIu̺ff]3XLk<<͖neb[+eeDȲYV܄0{7rXp wx'9@"sFq7.䯸~tg ٙBv(d' ىBvPNx'o`70 :y5Xu0^n¨}:)@NZ:E7KVցVwYDlu˫Y̚(dD!F2kTȬB$]ݷtu_tuQVح&[[ۈ|aaK|l/9 }IYחPnwp0H +A!Ajzpm0#ü#.yG*|sd53뚙uĺfb]3kff]3XJk%ֵu-`-tC`{AG׎؏ByQȺ.Ⱥ.H.H.H.]@`g`0Kk[ f3AHe8R;T&Ƒ!Ĩu2GƝ70 U#%{w8t\%WCU*BVIJT*Q!F*dD!u& L .W!⨗ulC}{jN^n/u/}^`חP`2-:uǡO^gX3tuAܞ O nCǓ.ߡuB22羂suQdbd׽`f\X3.Cg_05XuM`kw4dV&c2+SD!+Q YBVB Q$  J"Dm/?bN-"t%>z~ p"Ctc.z~ P &SE=o`4z{.{ gW!ARB]$C^0s)Nu 0n֫BM jb]PuA5Z׺G]0uAM j.hѺEZ%+16[J^W뷍36[_;2YZ"KOd,={e w9 0;/.vOuRu]0ne`\Z2ְhZ23L!3QL2̠UYBV(d% YBVP2@HBUd L!(@ a(#2<4`g}vvl`g5| f3_/ė`K0!."ĈpR]Z@KҸv98RvLv^$W&ֵkb]F5Z׮Ѻv}k[]--ZnѺvֵk]9Nۘѱqv/ ^#"#>^>/;cG(~t7.#_.w@22L!3QL2̠9+ /|EwrBZMfh2kEYMfdVB Q$ B S$ D!;Q 3ؼ:m|z L0_MG4dp=&S׽b\QGܓd>u̜;f玉sĹcp5j&cyq,5Ʊ^ywḿΓkPZ(:(P"9>DFڿEDcv+$_JAZwg_43g_, , , ,仁y&r#'& u`my4n"0zRo#Xjd,u|2;06/`<r Ire-5Hr^?1>y!2jBP-ic]P-mch6։ƨmch7։Ϭq=;mB\,|2^?%q`,qckN\CdAC[Fn)0A kR:Жrց4ud#Wx; FA=\{ߨo{m[}k{޷ӐLnzW,s~2> xf{=@ƳdĮkzHjpXk\kpibN7Гc;vA cȨkvƨQ3dkk G!ɿ5]{7{'51A,kSǷ7:LOH󟘸u Q#f Q. {Uk=@$aW_m1M<рiQGΤ7Zr>Ƥ3ӯ;wj]@][ϟ9r<yq ΒjA5x "/ypMЈΤv=$fO!1_1ߙ}U.)<)LCbODb^ Sv"3s43^5?lR5S "/v_^R~y1dMRlIsH,L̞H' v]љD',{~jMZӇ'yg~ޙK:<ͦq*v͊je;PT/N4Ʊ(^ 'Y]&,>7(  >qhkg|1ky`_rX[Jq\g2MAΤm agđ=$I !1ys͝}d޻Ά*_ 3 uOs::a\ @g ,,ϻy|k;?e:$`0H.NOT 5x~KR.8mf[Ħ\p̶}rKE hi l]A5bg,0%aQy7*10fUoV50 GEOu͒ 5A8[pppΈpcL fg`0JjZ OCTʬkeֵ2Zuĺ .-.Ȭ 2ĺ .H uֳ5Fn|)njrtS;egDȲYve-Fn`| 6ϗ`| @|q]e.\t =7q;'wQ'"S>"Ov oo/}蹁ƅzn`\蹁 2Ed8c2݅@zn]sC2L!-QHK)g Bz(' A!ݿs>F3l`aaa3Ñ>_ӿ]0їofͪA=AC =7.p'EJv'w50+G*}őJ_q;Ro{keuAb]X$`&uAf]X$ֵ6 O C>vG؏эO?YׅYׅIׅIׅIׅ•0v 0f0 zGIF*$#QHe8R%TF}G*C>F=|tiEf`\t GOud8Z2t-GCqg8Z)% iBZ3L!=SHOD!=(\6&W}{z1_2FKƈdKƈdחP޷`2#:oeơfX3t3:rڷWcơq8;t:99888X2X2 eqb@\.C se0gBh2F1)dg ىBv(dL!;SB0Q& ~NCH?).*eC2;+R; 9[I֎o)g/p EnY'Û4}(TrNYR@&DA [.S}']6wQne^4$GC`2e傁 `&M N/Xuq֧7ޏB/ ĈPE qq~8?~@ݪgBGf]#XHk$5uTȬkd5뚉uĺf.E/f+O,m|Ù23Yf"JdY,+Ȳzeo` 0}S=YK@R i)-a 8oťx3,yES)dg ىBv(dp`B0Q& BV Y%*dU(dD!DJT*B{`o/ޞffp·lw>`[χ;؉/Y-%%dKVdKV{}/_^ j;C ^"^#"_>HxKđqzT$wp )̺Ff]#XHkT̬kf5뚉uĺf.;0-tVs'&ob1&nb1&nb1z˅؏х>q[j,\bFq5  Sd ٙBv(d' A!>[/ F0. và>`dpFM! d0QD!PBD@ *J(B$ %*jTW!7,-15j>lP_^5s1Žw{`Mһ&s2&s&s&m}MrH&W>qrSMvŕ nB2sĹC!q;dd,O_0#}j sjnLcg&3[4٣23D!3QLBV)de YBV(dYqDE. E>y8`hNDcUEKWdE$\w)zȕI;tZvwoz^D94xwBv q>uzEmicGQvRJ4cI) :h'e[?ÏngO¶~ۉ蓮i@'[[ڻ޴ 4m;)r2'E[`1˞\c_B#הbhD6ljlsh7lj h s,0aJdjd'])OչBp^Ty-78jg;ݴUnڍr~iLK\twO { 0;z FAY]Ϭ`eVW02+t/`ܤB T&`2';k2'9k2'7d& (kT֨BZPH2L!-QHKrկQ#ӳ{K`aaaaO| ėG%8/JЇBn}xEnn%p&#Hg#q /2Zu̺Vb]+X #.̺Vf]X$uA.>P{Q{3(؏~t؏;vuI׵kk串mL`I``E0#/I !&#drUJRHeTV)=*~\w*nN uJu- nRq0t\~ԨUjT*5QHK)e iBZ(% iA!f?kL}fpXܧ^G_Jdmvd nvv:2q0t\e*c<&3qqW$o 0t\'w#.LoBJW}W}׹22*+.C,Yabm $o{Ў,w"t .B&% h2L!)@HA!)dg ٙBv(d' A!b['sYbReҖMK2vdZ,g9xIƮuROX"; +휢F21.Nצk(p5bMpQahK4]. .g;Y\ˢ.eQmKYrf+^4JBw'|1{yXԏ̡~`J!œR,0J{?1H— B.X_C$k˪>N2B~4`mg1iUh4i)v d`v#Kn`.] `}>kЯB!F]rw %70n]rv/`]*;R̺ff]3XLk+Y̬k&ֵZu`]|G4*&͖f˩f;\,+e%@" $@=ew vV]|`Zv 70aq ;fXL!)`LB>BL+BZIJTH+Q!D*rǽ i%QI*${rǽ iQ{ŭBN n 9y䂸5(wp o/x-lO5c}Rlj`T3[S8؉/i=%'KZKZ}$8[]~-"(h/1k#Tڈ#6H8RiH"ɽ u̺fb]3X 51Yʬk%ֵZu`][ ].Xp|Slj`T3ۥ1ؚj ?~@Ga~0`g ٙB0S& D!(Bp&F+d{P.J$;5Z]`}EH^O$}" pM=uy:5*ר^Bz}BI^(E0Q!F WJmLtq56bO[KzK|Ioї}Ioї戁nsMh2}F1L8+nF.;d{=NJ"99888;% F=<{8?i>`\\Ut#pCj4բɬMfdV)d% YBV L!)2@HB (Q.BԕN"]]!Sɭ>D@['gDcx1,۾d,v# ԱjW4l _|~Sgw|֟#qJR,5JF^(+ڰYghWA M~9܄$|5>:(W-A]Yĉu#$N V傝5>{]=ܦ[;zc竁ְ=.p4|g]=v LS]>!g O=c]CR¾"BM=nYh`0Ǯ`{ ;vu̺Ff]#XLk=Y̬k&5뚉u`]MZ4Z5C+vbW&dY,+e% 1 u^@| tϗ| L@|~q}(S.@gӏL!;SD!;Q RX00rn/708#܁;صg.BK=K=K=Qt$ %Q,Q!D2˫N,(˽`jYBf 5*dW!X;8rQϊѨw7~`aaan+Ö_2[%G_2{%=9?g "g NbDhg Hed2GG*sđH=92뚙u̺fb]3X %ꚙu̺fb]+X ֵ8ٸҾӏNz`3{AG׎؏ByQȺ.Ⱥ.H.H.H.]@`g`0Kk[ fg NF*s'#He8RG*SS\_ƞ3 $`v7SkdJ2t<^=^=^r*BVIJT*Q!F*= $305QO,g`jTO,w Y~F %{gXWK|j/Y-բ/Y-^_Bɴd>aБʽdxq{:rAgN+($s+s+q+q+q+8wJ*z$W32{̸ 43gLJNh2ɬMfdV)d% YBV2L!)@HA!t*]LO!Rl65șfa"W~Pv,yw|݉w' Gh$~Y6Ѱ$|iek;/ȗw_x#pH!RR0vyW@N|<BI'{Ps q*( ͫ(;Xh7k?L &*).ta`ܹ7ν], m|&%yc䍅[7nI޸Mu)dd BF(d& A!6 _70nIN f).^Lf@C@wCP)de YB Q$ B S$ D!(BRp cԼ$` Y ^{:w wg; jB !F-+vKp뒼!rg`Mlg Fl`xM\`gbb]&ֵkb]F5Z׮Ѻv}҅juXnѺvֵ[^뢼tP-ҽ v/y uot']I׵{v]('¶; ̘X >`!LF*{&#=He8R3T|G*.\ F0nn`t~w% )-]'+]')~WB Q$ B S$ D!;Q ʽv MK;%;%;%;%;%| &CGILqc:nCǍqc2tܘ OFW\,q%CGGN,B0s9wL;& Y Y Y/`܅V]BVC/d5ւ`d`2D!-QHK҃Bz)g Bz(EnDS%ٹ?>2YF&Hd,#eY2玙s̹c1q8w KeϹ™t]8 guZI׵B׵zb+:JW:CG\ɻ(duAf]X$uA.IuAf];XNk'ֵuV%7%YbNJOLk-9wqYHZ:W2uv~$ [Qt3b4w::'6.yulW{@qG = '@s?.,s|Ņι_.JqiB(5*J RBԠ(5(J/꺮 20; 70.dh8T}?&1i w4 7t=SHD!=QH Bz)' BFGmLQc>9g lgg}aϖuϹ뺂HkuEu][u][ݺn? ߺ` n]70>S]YduAb]XNk-Yάk'ֵډu`]:3xg{Gq~gGq=(f]f]ƮuZޮ[X! ySJ@f'`SKk2R5G*ƑJqR;RTuQKL+ 770no` i.ɪš#P~O~)Sc'Sk'S~k3D!=QHO҃Bz)dd BF(d )1`|fPySKvKN{F_r%u&CGJSLfơcqXg:։ɬdX}cб8t+z:%Eݣ̹̹ĹĹĹ9Ek㯋` 0h y{.1ZMfh2{F+̆dv)`LA!)3`LB0*W!n*[pg J"K+,DYZR,sosososososo7qG lIZubZZ{V֒ckб8tl=[Cߡc=g3uĺzb]=˟30#YHk$53SHKDDKjDngnA[j{6E]e84oZCc-MIk,v# }w,xݱX>VE[=Fẅ́JG>R0Rpt[+uZ,|`0+ /_* 6!쒀<6"#=03|W2;ዑ䱹|9YG )^)x1'7UNOYtg rTe:DCsοM/ΏtC/p](\(܏L?B1_0`j`j`j{T\s6>װ+5_nw#B ? g`Y8wp 0nĪaОYWϬ'u`]~mɬguĺFAk~Z4tic͖Խv82YF&Hd,3eYxmѲ70>t  gVRVRVRVRVRVh)ş^0+7}7,nnXݰ݀@B Q$ N0:3D!;QNBv)`LB0Sf D!(ૐ;8<{2gf3J)W { { { {h Z;%&dė}ɨї}ɨ/\u_\uOu՝!a+aaka/6-TF#He8Rpgp ̺zf]=XWOTȬkd5uĺF.Y[3>`: 3]waOO?J~${ѓG)]x7~Xwc6/Ս+XBVB Q$ Q 20;x70~GmյYCYCg4l&c2;Sf D!(`Pf L!)`T,Q! a5& ,/%%D_2K%D_2K^ Ld|:Rg0Uw$.8-NfQuW֣-SHgggggp'50~d,?{DZX~{/{5WC8j4ѢɌMfdF)d$ BF23L!3SL2D!3(sB⨧4Z]hiry"&5]z0ߟ'HO;$w" S; ~nBdvGbb7A)x ̉ "y_b:~ESzHRO4<$.m?ډbcbEmZuqp0nNFˉ"[A/DtW]竳N,= pLg&gBjL:g DL!Θ' }ɓډtyډtzډt{ډt|ډt}jp c!`j)mZmHˤfR.ϒiޙN<ӓ_JB7M -]5z+yJ[ҚINZ3SD`:U(a|撍|,s|撎p^DO+Ȟ &LFI0l! OV e|]lv Rʔ RTYf'Nu`0hǽedj%=u[LNV3鸷l VLklY9s-|tܗCJogNjsȮ(IDYLNANFP jUPez_.5N15iXH{E,k.`jV4=lRN15׮k.b!`(qWů5ݯ((qDDaw*k d*}4'|gLY@gcyK`-YK=С`RO"G=L#&q 4ψ~@W5#j8 Ó?LW3 'f1,_&Z@MAp"9>̱Xu:Vcwq{g3[Z+xp ϭJ14&SQ7f}(l(@ov "mV(+y/'|~F$&E4ss\`$5=xaAē L [!d`jr R;Kf.'vNn`91}iv)!L㖯V \>iUܵ8QwN]Dau8P NEzߥ.'|~F`RLRsMM3Q5!М veH=[CjRM}4횋5eׯ(~E0>W^k._sQܣ8QN=Dac8P bL%z"Al~~tDQ3z; - ;CJ9#Y7"IAo>I97])sH\(L$KZwHZws'c5V[ZͭSXͭ[8S[i ΘζBЧЉ1I ҸP| 963{ BB l}dI`lf$Kd+s4M62ɐ%esP.~]n?1\TO#I;jYpǿZn;E )2Y"֝)jYꚢ_wMFk2n_Qv!`{(qW+~Ww*n,NƍՉ¸9Qv' #@1 JE>~?nNyVd(diޗVJ]dWl\CXIS)hn|zPdR3坨}\iWIrU\kߑwScwWO]=5v0V+5?k-~"owTa 0m'@@' C!L0A&4'|דݙ>!b^O"ɯ@]]'uϻ0O*wu`U< :lK$ إwrΕB['H Tu*sʓCeb) @)2l2<̲MԲMܲ9*3|շ.Q==[Wvn^٭05X?+uxE ȡ:a94' Ca0*A`a9i;Hw'n'Jbbո"-m$7W&}n >7\Km.Y EFgÚ{hb/;=,pDE@Z&^U7'ӔZe:Q&e1 (`;Q:P ֝[Ϝ[рQb4n V5hLyÅ5DVX` p$$lf ۽ămN,%\n nJ8w? n̈́.;3L3!`(qWů o ˉ¸8QNANFpwX 찂}6'|gp:?T/@9hI~>V>Z8>VzO8֣}²FI)EshvgՈ_+2ş6u|j\̧6A03ej3 \`;?03/;3C9j O-~՟ 637{9Q' ۉ"Љ8P bDzj<_M6~eX>En1tÁ--t:VBee\ee\ee[p@be7 .;\v6C QPEqWj{60wjdpE((!;{uWwzWʏ$;oÝm.Ƹmtc61dU0Um=ocyB/;pV\QF _ꞷ1m =ocy(`;PyJܯ~^5*sTL(hT>:֨}21|^ aak>I?Dfּi 되jg =Iwޙ79Nzg޴KqME1Ŵ6%ӪqSQߤ#~[3[3@[3rTR lʱy2&'&ՌCd\%(۠.2AbeeZYV&n]kߠֻixK,'C-]2б4iZƨL,5vʨ`y/>eT2*XދO,ŧ SF,y)^|ʰ0Q͎n:n;(-H?-sokkl4_v /tt.<h[&0F3w3T>崸y}oA񒲦b9a)/R4ʓKDtDMAƮW[LD`$1+O?M7fg)>YĽ3+jJH:TM<-ٔLݩm2_ W~.ՠ[K|W[!lW[A\fgIpb"L&4WRet*r+o~8Ky130GaZ[ Fjjk^(0Q Q Q (T$' ﬙s*DbpgW!C;FN_3I@$uI1eUY럘:$"r53~ܹCd r ~c21əЭ:ȧdQgәɒE1w~? /4n9I--hXAK \҂Ng{:(ҙYKI Ҭe=$r};Uy_ε8xaC@F!ʌ@Ʈ'K50g(3 ~dKIuŽxHFDŽfy6S)Q(t-oǠ㬭ULc4[4UL?-l3ᜢL(CJE`3ɒɢ /6PwAyzӓ\4-d<5R{.?y |Ci롮qǢ 84kc52">q3:]}0ƛaߜj,L c3&0Y@+ ^2u ǭs_8@"ٞ &LvL.˄5/kf-UIp`iDdLdp4 s]Ә wL6Pj)!unVʔ'e'&v׉7;!2}"OY1dD} >]`a&X?p\3tAtc2]nLV2&eژڦlSf#RXȱS)xrOD,wAX"zvpnQOW籺E=]tu6 E==u.wQO`E==u@SJG$ɨ)jq'E-[uŝTZIJešTZ֥Of*-QS44~0fsDc>l)b6-i\v*T:T:G A3:/HH:aarn~uYeg_v#*ogf{?GC>-ѐas9a'@NX`7n~GʔFaoYƵuk[f-g3ֵmxp^ܪfR(2[ba֭b4 ,T G*C*!e8\ӔMp[1iimAi^~ (mXgC>ߡjv@M~'{8ɰI8qk, }C,|7lEgxTU|x'fI} )mEKKV @OyqY)]y-~?S.̢9ǻ$B3%$ao?$5R*Αч}ƹ?|ށߛx7^gj#j3Z/xx>hσ?PgŃH, 8DbD'|:sʗ.rX|JYO)?+h !fʓ+5*!2qWYQ`UC w"ݘȫ,p ql`0?/Ϟ YZ;=+ >;5T!1)B$pfwAplVNt"e^q1? ~د[˞g\< *Y͘Dh«3&5݌I/RO5H=Ztz@s3&e͘ ̘ɱy CE^Аp@Mś37%dOngX䘯 Juty2=]w UyWFW j ƀ reU201/ }sŭ)bVI)b$)ORNҗ">4/)k)/A; A-?"啑C"K ` I[iA)VIveIvHvO&+ 53Τ/~i=Z[R0RAunY V?.8$7l_QQ8~q>u-?Dz_23MG3)Y_8 |.euL]Ur+w8xY FNxWɭUr+k譬9cneSN8}dWWc (ܽo=o["=ayf>Y1*f:\}Z:\҅A"e@ ?(qz^6?8+vX\=cLےiEVop\dYiW!9[Xt O lj4ע72עw2J~+2ɢs$CɬJ9NJUb匒Y5;f~THx `&ka*YCJR2X }-N}q ݜWqҎp7v9l_pF糿/%nW 6 yqiWa0Qh1_I-la [q$gWRˇZ?%񿐽:?Wח|i6f/JR0$J $)~+qdtwaDr80ZO3ͅ(P>/%W >ΕO9 [$fQ?smqqm86js3` 63P/%K(ᇪ<_\QRrȇC|[5aOnof(nQқʣ7$hJ+y1޻]={>+3-^Gzf !+itH5C<`Ax//W{%%KRTϞgG,ϧa}h a /%KRr~ O r3T\`/.0\`a\`a\`0.0-WD(9_JCI+JZQZgsZ< 6C3qvh&ydJCI/JzPۏH78y~L#H-%\V"H_J毒yyr#8f<{WCR~`-,TϴJkIW$~^ߏK^1{5BJ֗|)%=%=ɦC3pzhN34Gd)9_JC(?J0ޛ]أ 6ˈ4/2"'cYk3b8]=+IFck4+ѠO6lgOg{w-!Ofdzy<<[^-O389Qs0Wꇒ>WJ'ҹ=?r$i~H8o?n$6RОHoQ))7*K g1?w<2Hsb1?͞R\!BɻBE*{{;q#v\2t  &8hXlbw[@b9r`9,w(,嫭b߀2ހ2߀0'@ >QvkWpjIUlQEtj&j]j3_jl\j3'lB`*rXrﺺ,».  K#U]Wv/`Pހ-ԧ ~o ۭb$*췊1p\j$* #.?pQY=.**#sLPrU,~r,zr,2#²П (v/oހOvM,*+Tp 6W9fEpßpެ32`Ȋʀ=#+#2dEY@kx5W \5SpL H,Q(l۫-5?p"\]뼋pɻᤗ5|p۷?S;⟩FEԾWjQQ+(?Q/VS?XN{f9r. “Jp:`2 ($/r;L2 )2YftY_,|ȋb>Y,YEl(jut@~e5/@{@k: nm ЄNm&u&t&t&46-(e%Q bXl7ڃ4gjдfF)uza}'):Ҹ#):^cB2>;};uʣa︞J zBq=`\Ovn>[ף9{;5go$joCLm6>1`ޜŎ{ss5i$SfL U35jY۞]߰ٵўC$Ժ3 L墠6w=mEC/ n,'%d`- t,R㵏 {j0g|43ߍw=xin*|vvwaSC4alMTckRѢ5BB`G6)wbl ֤ݚFXS U AV(]Q;= ˫ +jAOlo|jwovg0C2#c;;C>;o~gj]Q=fϊ3GV 9buQ9GK DKZAj&DVV˄9Y# .'Ad+IPuR =X,PKuZCR Z*Z hZEk %|&?biPPT#TOTZ4g쨘 8Q1A Q1N0ʋ`hO j1{XtqOJ'j5TܢpENqE;W~eү^yRy[nwW1!;y%_^e䟇UPSb?!?#u5Fob)E:4v[\}#֡[Cu kv{"Eh?D,r' U~hBП0?'̏&DN܊2dĭ*CN܊2di&@.~XFoE,R#=FFD(A?ZG KPF-A '[V;P_35:4m 4uƻ*YNB[FG֡"+uXH' zVhu,Yze? s2 a$ VK 4[ׁ;m]uںu};:Խl =m*M9\G´)w6Irg3'nʝ͜tnʝltI,wQ`3 `Ȁ3gDLQ#_j(u}[n]_hn]_'}/X:pj=ԩ n]ozܭ-`ulF3WRd@œ Hɀ%gDε9ϥyѩ(=?Jpw .}%1K~Rɛ\;&\=&\?&\@&\A&\E wMmhRI=XkZd״Ii\& P6V[w R%Q~KP<KPc C]^߹4y.f9u\ 4 WH3 %Lp4}F<K%e? s2 a$& 4G~`߃:AN{@=~9/>QfiȚ񝦬i̚y|5kEߗSY㻳|NwCݡc|wb=@|mk9,kt}յMeymN,kTa1zUз !x`qɥsNN1!% WqKnN2 H{{?&Du T_l<yzs8 pnSC9g9洷kis֩ܜ㿊۩p9\!Wv!` H f& ̤x!5: f&Ŭn%(j!>xY5TUAY5TUA/:^-h@VutG6GRS}8gYklΝ~5޿?Z Hi)/^^z}3 ϯ](ܾpi1lMfsn~50saٜ_ Fxe@9R^fy9WWzp`P[Z<_C`lSߡ~x@R9 zw2ԻLe"ph"Bp4:]I;v%}ו[Wg^]I߀i'B+ S* RBX%QLsr.ԜS{&; !ImS~ R辢aӖ2 F B!踩GL(i&1H,_B-D˾n˼<~E+I 7B J=|O'OM  ;b2WL&d 2_1жb29a{p W@:kY˄g-:Lp2eRlwtVZ 0|`j%JJ+EH2emҼX}"9o[~ws75JSεIsjߺ=vsķ7O}b o^(G}p XLeasI*cg1o #g[LY0SV5̔oӳB=G*k387*oUuY?j@IF~ Mr֍f`Ѝu(Btw oь;7 %[Ҹx *m֍f\uGn4>67Yfqqϼ8Rg[OJnζtrsejˌ4mܶ`Cn5ʙR/^KyU?x^;(8_QH,YlH,Yl;N_Q%}E|E'~JaͼgZހk{3Y _QyN_QZz,Y56,B5xq"+4jX Bm-Su`_Pހ{/݋pfjNjѨfjN jјfjN3g,YpP8(p8 'ϬqIC>3J'e JSD1X2MIaLr( GBzzFӻ~TljKbuڳ@XSz$'Uazv>LuOobz ħ?Xe&~4aLpyjG"{ 7)wpAhR9ᷥ|;" F'8'-" (HI`LIUF'U[,^ =m _P#TgK^N"5uy9;_>^Czr7WS>'kfS!NճO8v(!+g{zu v1^Dcz&:o"y$R[]Sc3484&ό۝l-:$a9$0bww{:i|1:4j/_Dk|"Z ecŃ?A+~0"6Fus#bBBQ|;U/‰a]w|ݫ[華|eeŧX&_}ʉe姜X&_ 5 xF3˙,g}"o\ XDa=n[pb>U:n]kNfud_j=9:s@m~D^pb^ ?%N'`-q89k0O`Z>Xj}fR-\= p'ZZ4ΝNHR'in4R7$xl3ULkx> xk [bgI>[%l]uYVb,|-'GtRI:G$#uN:I'NI -VqJbpހx2hBe/yZ:Z:`-X*w*4{ļW$+wA:pIw$; !)"P{~|*vS?XN`9rƛ7Y,P8D[41;?Ax *N2I-LRK$Ԓ:$N2I-I&%OPt+k)/Z ?&,&de}"oZ~X*^B3B[5wC;!uM䐺NrH]S'9N䐺[l 7`ۿy,Ko,YaX&@颻T˚VZmMBmN:9I\js~!)J]h9bJG,B*=Bj5\fv ?AFowݟkvZ۝jFowUr[dNZ%kkZjaqcB07,GX(ݛZQ([ ҽm2I wo1F MBJh=k=h3km)(HW&B^Mнjkk*[0ق5u9ԫ9GULz@@m&дV]hZBF.41]hZA+.4amۻ]]%'p-mtn~ۦCu6XKFH_KϑB_&j5:DX=f_&D)]U!rk;^<ׯʍjOVΝ]nGʝ1H)w3uӛʷFWQyXuH^,r8i/4?MŋE' "/bnFaa5}!2|zzGGzzGGJ]2_uK%1D4 'J&u pD`_ILhZOBj͐g윶Q {J{2OJ{gOP()_oLݥԺsnԝPFb}h(]&w;qxܮ7*9bJqCP(;+&D-l PnOg gp/īf|ʇfWiaNզVd})_JίMތEQ=T݅u5 =4QC3G; O47p7p7pʗ8=|Iʗ@=|Y^=V,X?Vd鏕o"oX: WgVO/g\?V 匰/g=|ũ}+~|u+_+_+_+_ooc,y,y,y,umCCbs ´P9ŭBRNR9ŭ2P_/nzq 6FFCc}x> 8p6e9>X|?X/ ^D/xV5irLÅ]j:I jd6AÂ;`5AFL ݲNwp˲XYNyf9Œau;%p 4*6*JNBR?кO$ͩS'K$pY,1 @-i!%m4`޲ei:Ӗ<%m48(2J{h(_&ˢ~Y,ؓ ;n0m4T; wF͝;`I,Ă;`NQp qļ<_0mY`ڲ@߲[K[_,|ț'>шd0M*-H #FjFϝ$#4iKpj$[8t+u-L[0mYoY_4ݺ,Œ\f0#, 3rY&?Qpz^anq,S!s'X #2PIˆ ; w-\yy:<L[[tYv`e7^,OTC#yť8p7N$\ꍓ: zN¥8p7w.ӭ-[0mY`ڲee[XX4/eb3˄<*BT !VX"W1Tsj #P5XPoNdNI]lRpFgMy/K|4ˏfMd%}(CJf2yz=T(y(`\%4.>ͳj?ʼn+38k~q?щb2!O0s{> C=P}0s{> ba?VG>pN9?p1Cwм4/K|hYD J(dV-B#{;v5 D% 7rۣ@LDXeؗ<QM!X1![7tg/%_mOÚDLoi>G2!mTf"v1ya "L wB睐<j}^gLnrC4PAڬe T&6T T^mׯ KCٕf(\2*KPnuOPftOD=s3Nh:? 鞳:.j-m:5P SܓbYaQ=E%E%D<اa>wm}_L Om;fKP w1Q げr S˶ˑMAk)E3F,s(Z{x MXկ7 :]}Zo&8oy G=LRB핐 >Pn~!w;n~⥷uWֵ.^Z׎|xj5:;- uoN;% wBLH[ ϒW7"vW:X9s#9 O{ː^iSv*9jrr;AKڝ :L6RGu@3!|̝" dYHnNiuc+6+iO 98KiRgͩ&yrBI[_mXv| v\<.1O'st.1P's}xb ē6`>`s|0l@?`s6K:,`e,'v)͕pKLG%#ɻt;yp'.1N>|6`:`s0l,|ț%lt9X`s`36 b SN%nt;y]VvFGv7:|90lt9 x>0l|9X`I%lt9X`e'I%6U]bkK͓vK1]FGčp'w`vタ PހܻP{Jrv@qn,ݻE{e,E,,=Y 4#,AI2 ITKBP]b4 $f D.q{ t` |)Hw AA (G‷/ܮͮ- ڒtkKͮ-9H7DnvmAm^ |`9H AA'(V.5hXi[52NN-fpjZ-Sl!n)m69,+oBY'8s6b%hݼl;`rV!{Kw ׽ִav˒ܻ/Kr0׽\ sݻ/ݻUڤ{<{w<uݻ/u|׽ѽa\@9dQŜ""W1'ܻ-8;Q޻8os(׽۬ URsȈd?XRD˒ܻ/Kr0׽; H#kV- 퀭$nlw;_+׽Z ݻY4fk{h`waPb[%UZc[ָLd;TmgGv;TߒàMa{0䮅6a] mp8Ķ)6 D# 4 2.vO dY;*PmMl[@mȾm%(EH ƍB>Ee22h)q@mN(LJpc&i\H~2G!(s^ i3)NhZ? H*c6 .4.] f9V7l2^9<+9'Srqqk%*/U_iL{_͟_if"@}k<eDmwS''{Zy{]y-vՆٕVhWZmx]iN]|:֗CΒ,=0{d@W$@|Iˡ:声N}i:]XpnNp5=Q瞓?Ax -9ndZڭv]@jy7ڭ&`ğu,vO&N34 I}V¡L*[]`5fRv[|tWfBY'8S^,ڒZ _NB$*`N2$*`E'1O1ayk,>ZL0md@ͦ! (? S{axa~1r3 b6rƋ5f 0;B1Lk¹z^ǎ_S]E9%3lEr7'\l2&@&6M@6 ڙ¨McU[lCY/5#6ۥfĜʛsjF*oC̩iJW`?2|p7o5~yſ'H=uD=uD=uI˥`zwR{OfN>Ah1Ih1Ih1Ih1:''GIj;T|`Ywvf!,`m2 ~y;?An orcT@1*ܫVWo1*#$>Z.f̀=4=4=4|=4|=4|ot8!= D_]=mf"}􌽉 MZ f5_dg{6 [#†}5FwcC|a^h>ph0/4<4v 7R@` ͛ 3*a +-4pY-4pY-ݺ{`CFh, }e%˞4K_5Z_4zS!ߘ AxT72^1ү,ʀ,p߀c|88|X^ ´3ħ=%K7&>oLeߘ @ Qsb P>Wy\ ǷzEL^Rrz}=Y_!zWaB4vP}*#%]7vYXb,E~X]Ga%.jAxVٙ'(7v~c]7v7v]d4>eOԒ&گߘ z;YQd7`GzNx1 'ch<=̧ Nqta1}q2@roUb :n`u}x>  nAzÂO!>QhwqȰm8d6ƤILɄE={ax#wPosPfG(G{Rɥ|?A: e1R'a6$Ƽa2ژ0JFQ2ڀLJ 'aڈpI9Nx'8cI='0{;< jũ;5^uqa<-N5z.N-x]^r8u.SwAp=,sL0E =_@+v[KVF['ցDkM$Zk&\o0zI4=L2z0Na^{YmCbyTJL^5@㺉ú꣺@joL 1NӖߴ5TXN{\ -L!OOw˩Ϥ +ZRGO I!LW(x_j8h L^8q8lNP>|Q^m dLwowy7{ޤfzCp s6A`d)JA`d)4W8hh0mA{Q6n]pkL3z(δ}ܦ8Ӯq⼻-z.λ}d̨^&Y9#xO<T5`!yP2 dI,,6XWYY%(v@Ivs;?7o evv\?X!e@2˄lg`!m61}J{UC=}J{T `Oߢ^ -w,D4 ^HxDC{5S}64WUri\/r?E]q4b-x7?9>T%q]'u\DA֠^ Ѕcç@0z!AZP_՗W Q58My!x䡧Ἠkz67mczh,szc1F}P&hY^*./iAݴwkQN\Qt_yQ}(]=JwW[/=7g ׷cZCx!ri;LaDuED(rG]Grx+iu.ykק.خ.T&.l-\pf^axh69 FR5۽kx "q)Dq{#f6qdȗ"_ނΎ|y :E]0Wo>f1g.WxY"ީĿwv$Dw#t4c-!MoY.M1E]%1w10| ]+rm4ZẬm47j.lf-xP.%t weѺ+誴 5NW6ߍ_]Qb.NE(] ]cnA \t.6Zb8] HۜЁu胺ZkZKLr]zBߡKuk~L]eO=~VN#ta5vkQ6{_x?L/:o~8njS~8)CmD $*p!+\&+;API( J-XkwM|7!oBߤZM_o<508goԁv% ەԟv'n^OW|W~OoB@< 4Jn0(@ F>oq?HSFGjhخJհ]?z'ApD_zyUڔoզ}6)[ER-rOZJ=uVRO=jQR"гR-VO*_EƳHfeۣ@&B=/&B=qT B"B PvPOZP#j5~eȿN_H fjN'HIY:|@EV1VuBSU|jj꼘@2qʝeyb,*U sga9߿Z?R0.jn,ְ[4NNMŇ6Lkȭhh[K_oڮ_ujy_kd-Z=GghZu;h+~|i}03&b:~REL@j[q2+'ӯ^Մ>6Y2ɚ ɚ z+k,*k,)k,(ŚfwHͿ_͟_-܊ r=' b}3/ IesRق +7lt5 ϫb~X*ºc+9kh^Xc^w}zϯ^IU*#0ys'rQff.M͚.fmwygmOVڪשּׂ?Y[HVj'rJcJ9JÜ4r 9Gwi2!ޥ _*ɋU=>TWNUYK|=Է~)$JWqG.[.zyY;\@^o~H8|RbGptmWͧ%"]5JJĉv2%%SM!CR+Wa}7VV1?T_]y:aʇ|^嫗Woꪨ\P#ps-uZ>sg.Vz[kgfU!0m~?`hu2(I/\ff,xvKFJaV?H6 lPdvޞ6p܎c <6-^wdŮ>dl/#f{l<7-4%h3BCos|*ȑ5[>/ֻ[?zW9TG.a=rA 7LrQ3zzw]nTrӄhBۄ(ϻ)Uyꇊ*"HRф+wq>zMHڻ*ROU`ԚKo-婷BJ;:d1 cB;j|Z޽ww`Hm$]z^3FϟHbgvoeZzm]h5.BB N\NN^F^F^yĨѩW6_=<-w)1)us)w$dl{vǼɟH:Oʘz6Uă $0ԷˆR^=w:7zlԖٲ]]gvw-5r-U*~b3إ2RT<. cu ^iuUյ;XzWa]]U\]U(]k[QrGZmІxIaM1&KkQ̋kQ̋l(efSyv<;vzzQD{^|Zl,/X_zϗ^y=kl;t䌨C3 FR}0aKc- fR0I;cz ^t N@\K{=0h# "uwkxxxK^m ( >j$2QCDLHSkw[?&W4?8zpamfH[N/aܣ ʒů!Ғw%kAAA]WE͡i"ޡFN{_xWbQJÜFʲ_Uk:lzULfV^[ zꕢ[#m;݃>-=GlZ .쪈tWK*.-_P*5橊6Dyj'W+ؒIy'$pMopi7XMJ4ZD(& ȵ〤Yc@ҬX wX}<;k>&gncU ^[ |uWW/_ey ;?Axg^*$Y55 R]ꪨ= uԨaFjLra&#Qu D1!c2U1[+Z_&z눀łMjW+:v>ywYZ(oA]'F S^"5$m&x y5ULycRLXOCk>h+[1a lLwOn WvS"5U; ~npٞԶSE/wRE/(wXe{U"Vz쩢]95j95jXײ9dLP/h/Hev5CuV`¦ִM ɨ?&:~CMDnTDnŧ,Uhku$K tE6 }4N }0N }(:3lk#:I AVHu2SnOEE+;>؛s[dN]^ m՚R7:MZŢB4B騉@ :wWj{6 }R[pcK PY, T6 Ŭ^W(Msyp8+<1\XFf mX(8 QyYN79;y.N{ʇ޻{ݫWoKPG.#{@a]h2~Dvޡ;4Y` x3bSk\1a 5q؃ 4Ow 9Eh64O1} @q(Sk5<6;Wê;uYw:,k ƕa2887 3 [L)C_k|9];;:SuRgѣF~Ľkq=af򕺟r9 af5n z6h惡A" "n4Xvᢜ{#7*x  k ҫϘIOy}DD^Wy~"vA~js}j0(¢4,n̅Aa+!]XC8E{\ .GRs\Y |kLq7X9k8\Ye(kV@8Kytq`tq`FPQ`J CYqXSKAԄą i_!uAM=z0z\=ϺR:En~/@l 7 ]`C:OEnbe'RPΖsſ8*W-rS~ى]X"7K`?GsɢUoy| A6Dr_z#Щ>kUo#b`Uo#b`Uo#b`U372V=+^iJ{K/?ݗRI!S?I!S VqkEyƵ@&.7q u4S=} ,M`qo,^8{p`)$d4I=QLTu<"jк48՝Y{t@dLT;d؃c*L!SSe5=PR\xP^.\iD(/.4 qve2X\ Am,Bp'Y9,ۍgނ!r{rIM'>]t iNWIfʩ rkJe}aQKb?JO*B(O*zSM}٢+ݫW>շz[ etG. j`Z RcV/ 1aOقIEş Z)dr^ LR3g`oZ!D6٣}}Gegu ݇g I.Mr4)\bœPL *#0ـyaYQ |\ \D-_]C|o"[;̑hHd=v5Kݾy ҖJs=iK}Kk_ثb4S="5&?-=@4Q<[ ;4 ĕޡVfB['ӷoko¹_V]*UjtZal~4HɩAH [ 2&=Z#u ·& GKcң .dl7YRM!c1р/. -]( ZW'u'MuiCM.qӯ;:; 7N> ]-JUC=g<`w ax c sIzgIɚZԛ(e5=ssdZm5^iݳ7V[vPޡ|/{X'cRbR fC@XfnpUȎs#}[88ٷs}lӳcgYwBhD{tzAAݫ\cV1CU=#+DجpY^ʮܱ]fM&B>>[*#6~^s>UFCFC_QѱFCα큄ʼn{nqޯ Ϳmv.Эbw,cBڳ;>^Y;7ٜkX*[n|Y49D~SE`vS߁"'^-wr o=}'C/˃L5Fy "~7,r !cL {?| 0yP˹]筅o-psL1,,n'!!x|heOID|o!!RD=$2T @k`hTjA8J[n!-7Y[ Eeko}PW%/uEˡC]8 d1$:6 SMGEoӡutX)bр3,_Z&B( z3mjz3,Tģ`&ln"ÂM|Gw##ٟd8S ?Z`/Of rb rfٿ,ZPqNbܫ^{ދqj^럱az ;(Ez2/5Dv[ o`7<oyhS88 A5,i㮽 JȤ t<Na?mՓO$晖iA m O`}` egB>,RNCH-{M*D@ &j ++\ 4Y|dhrB睐&T}(q.hINTq{d^M(CcD"*Gs-a fxy{HB0_*zP RڝObK;6?{۱SGyS4ovfGk`b'< {8$l:JFM[*UV@ɭ\;m ZP,ĉB;q5T@lic2 1&Dp<„% 2wKdjSq v&%ɤdD U)0VMQsҊ"춌pi}f}{Y=H\lgtnvN6)G}홲RvwGvpRvA20l FC[ݵpTϵpT' Y<)]!6{1i3;{_L\ҷt/&/[uHEE{R~Kbj~KbR6զg9 -TEFϰha\4}Ĩh-"dlB[VSlt7 =<7]hw!c|q!3|q!|aTF3T[͆ fCv]q6mמ A[M ⭹!øEm#g:aynh*C6b8hU^y2{7CQWu؛a֕eލ*|n*G 5hҳX'=Iʰ e q2솹CҳQZp'?j 2"=e4t-DllkY2SݲSڷ6 }k[UzM#P5OzM}~\MucLk5QYsE;WAjyɁ2h|my'[@>o D6zb&d d0JZ̕e0V-aDb[Eb̕\x)2}QQ?}t^a[TTdW' !*v]\W \W E EqxY|*/q}nӪո ]Staװ ̭SڂĂpӰU (aNQÜO0~@o>R#g~<ݾi*vh*v٨-  8aPRb,VwH?~EF*F #Z J4_?]vrlZe vr`ѪJ$Lҳa{{{3ILg9Igd9 zFa6S\DtRq!m J΍"1Pd十".T_b~@7t+y^fp r7fkaOt~Ξ==х2[;{ <=х1-ZI>Ȅ\-n/EmM'jm%eTb/A җ1j )+yG*)OM}-K^󢐈z(ֳ*:y5솵aOgÞ| ko[j{X_mKkܶ%1Wn[j۬n7"ۖ,l<4F<$Րͦ)08WCC6bG ao[]W0",ct V]'sN[Ө¶5UҺoȚ}Cִ Yօ:6dM[BU>A@z(-@1*$0cxVׅ@[`k.^%a5 @98uVd1zGDWDd˸R%"JD N A%V '[~90 VN iHG ~d& YG!Q= Sa]'rUie~ܸ!`ļr0M^b T iqS2$ZHN[&vq_ 3I{AqҢ'mĽ:EFuƾ"QץS+2uP8yi,qlo#kbq Z8'$9#Hh=`Hh?`@h ( KhiȻ}ǫWJWJGJ4N;%#R2za KZi = ,iͧ!k36l@L!k=W>y|i,;Yeq'<*ਞzbxX5<@6 ܔ쯐Ȍ,E< fA-)ЦM'JEʤZTJEيZ|N`‹R^=F¥\|&K֙ת@B `Ragm5$׀ngwG|n#s>ݑ9[;2fkHStL-Hl!=%viK r$VAV^BV^gKXPxs_3>_ k+1rRHJq4D[aQ: +4 Ӱ2PZ0 PX4D95NcYy N[^^puN[c^pœŖڗZ-`uchm̱:Zmchm:ֆFպϯdyR׳U ۾+X)lRRP"t#]p>sYqt /!=k=k='>dxriO"[Z *eV'Z} ־ ֿF#9F#9F#9gH VH vH W PV6Rh5vj8~U+6)\3#6ژ]*O0kӫl0`@֦ݸ9XorKlŖX67 X :Gk/KK+=[Ļ>_ <.#9πHYCR7[H gys)49CRպϯ:&(}m;U,-v;%~`*bWyB1䝊Q"&.MEP$ۗeH/ZA\MB¨/ 9)`l"䤞[1™;QU:ItF]W b;ޫ)xo!C"eDP XԵ k}NNw aN4 +]0"/hH7ϴK*˴C+n)ch͟]Wj#u>Lqb@EP;KF ePORU^DXHCvzWߑ-A*sE]ҫk[-I.T[dIGlv0!&q.v !iĘB=CԡZUb (Xo$L1d{Чr uXsP0 B h'ͱ8' #d,>Hk$i= m7 wҺ<R$ a]#ʺ<;[⦊8]wM,dHfdJ*HbD+!-#1-zGߑl@^VGbZd;pQ_g~}TuZ7Aq8'䨷 C}hҲX$m#i}2W: %S b7p`!H%sٳY&Agj4d-A/-2rA,fk,S IRˤH#RbUDxm )e'^Ȕ /Hqq@JR2QKP\8j9jGiXԽ %S7!]?ը7Nkk{k/.P1@NT0b(.1ȈDl"#Ǿk}0b$.40m-rȎH*#CE"(lAWgfC!D6ҙD:mx#i@W~JVyFh^^Ϡ. < A;ܬtq{ݰicW8ml* NjA:|r\OcτU^W}^Mz75q!^Ez'iDvm0xtuQ͑S ׺$Jbtɦy{/fSыTB#lf](BVQ5fX'`'_?95dRאI^yaD[L[d<mẔh ]W6c)tH?c4u&x 7iWa׍HqQYtpϡMZAD埁䏤eIZo{.MiA0YV$]ۃuC_ӒNxt W" PE,Yi@jʑ2jdUdN5MTS57YM]BS"5eo,{`G> 2|Z(>` AQ0Q'DG۴M$! !T8X?h6P?\d%l\Q~-^iңJTpsjڴk`#i "?<0zC:<|͘AFv:+R>D/{/{5rY32qABX#ƒF Fv6,lEc4VO+|QoV.&զu\cYQ!Q9D2䱿BYNE( © R H8}GB􊖞#Vjd\ Xf"p gטi]M?]d 'p;4|5*ZWx#5k:iQߢ(LôLhE|I|qOQo.!zMz7i`a~W{֘QxhӞ]{$~294ۘ"$oY9}vdq䠱sp sώΔnnkPْNasg==YSؓE==Y$/s!y sk' Y"gB@t+ ] Q-=]HIطT!I#~N;4)>p15Ő3}dkdgK;͏>p.bG*<=O?rs|>R#_|0],MLN"jnq:ة d2Aʐ(=K&!Q~YeN3en3:!Q)Y"ltFbͬY.f"0,}ba7XYxJSLLֽyf/~V&z<ޛh7/~* 7f!G-7c)3[-aKSq*,_t5ױ{;/r˦\)lu/r+f~urW:pÝ_a@ߏʃXy=>x|$`gDMN#g{z59 R3yU) R2U5&$ acQc^,V. ,N® ,tYgof@g;P fVT/y1+T냢 EG""[R6MTR}K&5O+"sN!RKDë Aպ'0 %RfL05Cu)@qidUd\7[O7mj+D2ztl}qz/~_j$G̙}@7HIp;ҍ; W]z #@TᤂO:6@37L7/\)\z+fLc@ŮeH1b~@Q "{cpĮqe.;]A<xHE2FXt g~yˌUZN2ddǾUEf~/ Y\>P8nyĘN8pff˺ԁ[v[v-;5 'ŦɲJT>oV/U&(ٰ~GHj}5iְJMeh0CW% W>SFw+q.2:(RsbY7nf~W`f}fel3%p5,jYzbQŢ7M/0)< bg&6L;3)vgRl9)>lä,}8bgq&΂RbŌ3+0"u33P ̆\G ^j?v$5qi<Y `qG2+{GkU6!l8 eERLr`G(#:HUoEPUl`o:V4+OoEh-oEXmoEJV4;%{+̟rZ'#FG k]n?|?o~_E~ЯoU}HFiD 4P"uHT݁#=:X[3Jv"1@rbDr!Nb'MD/^/]$zY-sG}uPJMc`1HzCw1HnWgwPGA BSGox[7~a/\KP\r3tv!}sOHbG,VbhLV"TٲW'bŬ'ϵ@ s*w “A XdTWĻ|o|9+5}[VwtbŢ׋Eo/+>+>BXWun}_mguˣ\Gv+/nc<֝z3]<ͳ\<+u+ٳ_ɞJWz&ՂlKE쐦бP!Bv9" ? yCB !s!OsQL!L aFnO֏~F3d6;--{_m=1]m9Bt>,h/h'=rvx N/!UՖ(#K-ɪ-@j{H7WqN R vvu>HvN8o|h̛ƺi·FWsBmgmBrg}o!""}o! =Yb-d98KqR98HV]LJ]]GYYfy̏w^E2B/9"ʜ e:[=Q Zg{Wj W91@ '_,vY|bb/AƤ*CڌXE(JH3v؄XE "]>y VJmލ)3(OPu\DmrAgVvf}o;aXݾ*ҭޫ o&^nE\<9ͼͼ!P6а]*bVl}y~y^/)o7vo7"ƕofn\WJm#sss󁃃~[[~*ԭkyW*Bd%C*a\D``6UE``&UE`U`Z ʉrY\a1ش Cx"CdCd"#*v`B;bڭ"]u+3kbk_DP*EP2VaĻItn݄A7P]+uvX(Y7I;~'OS'^TLR[$,+7g7ܸ ^pJRr;ks^~֫kl;FtՈ5#ae LVg*#aV}tgN B; !\A}ѾIhߤKjvxi@* x`WD @)"udG$62픑55"6d 9|)CLYnЛZ)Y|N|Id6= @6˦,κnn/ D]8ЊBw 99,x<,x߉9y+_T]n^$vH~E\A9vPxl2MS&=Ξ)[gϔgn֕uLgʕ=S{\nV}۞%SDDg .Xw .7L*Nǿ8xyl⤺L]TUHlEy__yWG6]# "ȂW{]jw*ftKfv>=1=5.NzZs;ۼ׍{=rܡVg qt| B$p!$u6*3/ֱfVH4aГ|0Y#"PĆu:"/qNO~hSG:})yGa`uIQk3Q:#8v>'SvEN0(xʔtV/f ;e3@n/y0w@*/stм=52GݶdtۊmЭ Af~% Eyín?izq]8}{ pݖLpy!m^"sLHd`w F1!] DŽDyU?\re}p75Kl 9(B,a% ]RWj3OFs?F.1rK7n.\xsl̪ Ev]$hEv]$WEb}e>Pҷj]G:Z O5LD^VSEZ'VS=p~t7L7g=[t);ȼam?AB޴=z(f#x3y :mZ $X)C*q %8x>\p9ehC(Ys\ z0@Ѓ1 ðֱyƇըw/,=5U`W%{@`y @yﺒ&O z[)ֹi\+)ֽM)a [ OуF8X+5[Nǚ6:lw'kYctfӌ tفGS]:ͬ{H3 2|L@{-ƽr:7ޥatљN2:+IFgN"YiTfDŽWb[C,s }f[XbS8$ ;algKV>Ip$yjUIP[W%A5 K UI4W%[SD/_ ыW}ҫ>zcy̕>\m/`">`K7_ݞB-va[ Y؅n +ݬ +r :=6E:=6E:=6E:=6E:=4E6=4EB=4LT3QqT] 'YF|ݦT8ܮWcWٕ<ɅZJ/ Z +9Lͬ0 7˒4p*m^2saW?僠og 8MpכglKbZzE`N*c=g69g,1ufs]'_?6$qx2\3E?g<~x6ғ!&oU{}Ԙ=a9'OjI0ԔĻC$ۉqHDI=k@,;wM# ̧.e˩KG^-ϔPZGֽz55z54z5ӵzqTaU8LԷavЇEYqXan4Vsoo8΄9t&"l ;gB!!&"`Z9} rȹe2@/3 "[@xSo{{Z%vs3K r\^y \r-Ș}d1,ҿ@Yo/|Z,- ¾Evyo- ;bw- `AőrO= rq2@zU)O fbyC+l={7ێ;Z7o{3gh=fz"kzEjX&a_????iAxLItUoUwN|*XP9+8'd2 D u"̺@䶐YnݑB^_y:H;H;H) fP3DNY+&zXMBm笥|j=gl@VOm! W]\EdȆs!' *"Sv"?A`-7ZozI:xY;^H , g+>kds`a8NR8ja 9lv)fvNy55F`O{ s<s)CPl|E0E4[?sF4%xZR^-dR=oSveFCٵlɚMg?Y8l.Bd Ys"C?Ȑ5Y6$g 8g?<~C&1yM?'(DRsv6iXOڙ8 *DZiXGB:;}.tS,(_ y~!/Dֈb6M5D{Tna\-]e)XvXQ)c0*F`TJǨ4Qi4*=hTzQi4*=`_}<[zC[D^! ~轄T{ IR9Up`{=IzR9U'H 1`mk X:?&ҋ I'bNނU1'3"YRi3N Ii!)= dHJ Ia0d )=X'^?!x|w7A k9~8d8d0d0d0dd6s.q\ 23G 3K$2F3DN'rGΘV[glYeqeaɖՅ&[VVlYUX6ٲzB#q.+4 H23$ ̎g''ľ9 *O fcO3f&vxO3;x<ivb=H?tFJ7+3RTo:#:#39 y}!>qCs@l$ܾ@x`LzՄxX.ǣra=% +(\XGª< :jtEgЩO:0Nrmȵ!/;TiV>@Z}w?+&<ǺAh#yFp̣QѼFÚp3zL G=p3N_t3/:auǐG@yѿy d2 dw{L B!Dݙ=683mSƘ15oS1X`v?tV?Eg~Yo:a}ؑw@y]?w{!>|@Y_ 2aQ&ד~2.Z5zEFU!O:d@9} r/B8H_ dA|$rv?\7)tJ{pA ްCg}tjSZ>S7̑kB_ y}!rK?@Zi7,W>$ő_5q*b~|Dԍ{6:N97tXm^(N6ssssqtF3Q>AgqB_ y B97dپ@.' p 8w\qpz] 6+>yvL3$Ep&Mp  nlV=>Xz/bRX/+'klXYŮFؕ(qڸRh*BSYWjTUÝ$$Q#y(/RH/86Ei?A-V-Xgd/q犾cXJ =+%d,jH;IJ  3W!'\\vpqo-6d%/®ona׷asA G2iM&6B~u#C~qX^ x*3W!(bzc:qDniwK;[fFhUI8SZqo8'9x> q ov> ֗'uPi9/el9H(r^?h9/e"ըTNl*FgŦbtVl*FgŦbtVh*fbVh*ˬeMc+{a=o wYs@Dd:zDd˯~"ogMP̽ J7A 4 q~vqsվOF.ryvnyvoyvoyvoyvo<;28>A0Fs!!>EsXk6#ƶ67'a1(g6rhsa(g6rhs"#gK:A,rꑟ7Amok qMP 6j uʀ-'k -&*CIbR6 -$jC I ,)tn Np`{ z&*{D^w'1Pfb} Ԡ;!gȮ?A[c`tFǖ4ѱ=(Җ(Җ$6>A ALU:gRB9zΙԫt0W舑'+"bBptg5z =h4 '۴}`ȵ"={RȵℍW3ablFзpNb}+ٚ>ÕllJV9\pe>Ipg#C1]ɎqGJ$ßR J~JBk! 3FcA!;3FˣA6!l >:[kO Ug>B{ qf$'鬐1$o`^1$oD^3N9cH^FR9cH^FR9cHFRw/hWtO.Jd]Q6q+I8Ѝ Rc~uP_YSC̚WgT_YX'X7K™Wj04R *K#Q-:!G'^5īx=8*q{pUBwsUfykպpj)!]+V{=eSV{=ez)a* ig `XOAPNMC!G}L< g0T2>|&[mC ӐC ӐC ӐC Yd&P\_ 5P\_dlddn鎼 !-yb+*zV?AXCӵr-4 +CrFZJh+d}>@Z~V\_ m mddcTy"c>E1,4eqV"ҘvF8Kbe r@Y_ 2B[q}#7B[q}>=;2@|"<]+mkU#aZ }XV5CVUMaZլ'DH_ Nn};mӷRۦo2t@Fnq|"WAvgns-NFpWx+aHh>-xn. {o { 2Bnrۮo?UgW b@*S4=%KCy¡ƾCQ ~wZ>%ŖϱhI'#n-#Q@r$ =t/oн@@FyՃ!uQgnx!#J{ xd/ÑAZ!zy?@\5;PYDO0 m+*KՆQ7WTV +*EU"}*\\OY;ϺmMm-|G{G{G=r;uA =@9^B6}>r:uGF֑)Rv_vdHA@ZSdԏ4Ge2Q|U&4#y;rlQa[ h+ɰKy5n$M5C5zate5.tU>@VY A<=ݑ7XJ1[n?eqF`Lj[Y:+^@֍=դcOܓ!+ٓ+9y JaNtj~ N-dЩ :92P_ d@#EG닎|G? WS2 h'j_'M=@ְyVհy^!PG/N)̡a)l#x^$3tF{ dÑI%z\d}>@f~q5}3z\]_@@F>_ UB'V-g~ +=P@2D?$Wq\:>T1俑WB_ yyEᛎNDtSIӉ|c|D`kӉщ@5)`k)VN}-ywa u9"m ;KxE9ShwΙBa tr9\ȠӉFw*9LY_ Č0s}%L\_}L|I>foZ-zyjѳV3>/Z }MFYmÑaV0gtf3:j3fiM4tS P?+AJpZVgeJpZVgeJpZVk. W :j A'~ 37]qI |('ePX@o krg0 +Dd3~.SᄐY" E:NM "Eg}/:j $ww+\tc-#?2B\z*U.\ʻ\0eDi_ d|7(|ӬvU.\WwUW _5kfe ̟ 4{!rkKCy1b?F[ǸڛcӈPXFGVXF:|Notz#/?@l Qe##Wr_2ee쏌x}y}y}qo =xy4U.\WwUW [_5lkz?RueTWڏaܱ[g<&BN"`EiEju@!zF|ӭN/"T#}}Exǜ׫HB8\_t 2bz,"P&"DF ش#@sӈ@m88wӪݴ*s7 AwӪZp}ٯ <_ vO!s'@u Z+Z+0OZ2œ?jsd+&sdK<&++0OvFa9s #E:t*=Al[Зm+mB_\ |N8/BP 'E "@ROa_JgN 0`;a:+`:eC_#e ٳN[GO_d{G"`E" i=3Fݿcת?AxE@_@PaKߙ}g2u2R3##DV>tՈu">_stN|dI:Wm?=~aOx~z~z4^#mz?Aze^`/a^`RH:WMNg0LaLXwf cĺ3=bzLs7=A_%}a:ĺ88mfb?S"@=`{*`OQWoate;]_:dw5mB5yy v̐5gD1[֌~^yYښ0}뷌p}a6v9tqG/`[v59{VyS_>c#3#`8-,*5[XUZk6.5l>ѻ  #r%(w<v'fşxşx8{Uo{NJq sTcNJs X1bSO #Ҭq9dSg6`mP';i8{5U{}rm鈵Gcvx3NԲd;<,oG8NdAW2k a'=3OGq(ΰ?>ɝvGN]ףjYj9(+Բf=J/B҉sQa7AC]BaaSaSaSaSߜT74>Ig:̝B]kyWZag_]k}ŝ}7E~݂_gi< / 9 P.㒗*p%Y5K W)ܲ2:\8^% GrxX.˅#U\8^c1\b ?AګpKlۯB9_ۯ :9co[<;>緜&|:!~ls[-cjV `mj v ~ۆ 9ccrh/crh/]>:^Kc5r(r(r(r(\,ʅFܫz&]Oٱnkrc+';:+';:A̗+gLv_Ӄ 9 0*dz_xv_7F>gB_ yDtOdɭo>}I̽-'AmF9u-QC'9AEHb!IzJ_ߑjKԽR3[NgGoݻRT)T=4R?j{uo {to{towZՓè@jg$2@l |EP ݸ׮Nn./.@Jˆ=;uA֣Q$DfCb"VEX)ObCͧ>=nM=vMU AX?Tw XFe$`. ` yWpAs` _ -BrߓF\'rP v ,5zzU2eB0y*C20y*IWrPZfcD"П֎.HF"]hQ>y';8f ;!5΁EaAe *EXPhO?8e}K*,h)NVU @X3-Nľcg+2Z }ᒋKTr{Ľ<Df.323KqYfeDdx Yv{7j!] ^S0΁ \V%aAC`|"jYUcͪ$Xcͪ$XcͪdXCͪ0Ԭj Cͪ$٬fUfV5˸XKTZz6<Dfi;m X;X79ndCͲneD5n51i5z\4iG |&8ꋠF;.?\NĻ@eFXRYTÂDC_|4gѴa9Y 3!3![Eyu^d$Yst+t+tL't!xB't!|!rTvs5呇8͵n vŝ[CݩOsqO`wu]Ѹ5ԝŭ[֦ [3u=Vm\Li~W!jEݰ&0H яX%")mv;` \A'_7</&³у=gb ~:|3f^ꮮR q#TokZ^4okZ~4oέ(X5D\a"o徹º5*Yon@֛+;36\a }lhs}uYu\bT Nm={ x&ˁOA,G~lJ>čtJ>ĭ1@>ĭ1@>-1@6-!v!n`;#@ XWO>Ip:ca [0t &20nDXVu ~XwcN+֝W;Y;D83Nd`;D %1׃ 1>1>h g9#EJ4;9Z;:*1 e ٺlAݻc $~tN8 J*9b`2:%ls^X*8"ڌXh+b!XkkrAIDp q$5;`[.se4O6&0Z3` 53P̻e T=-`#lV+P7`\vq ªUokYP'DK5P5PCx'{8BX}b-4ZnSӂ3w\|Θwp:ֵ_y‚p4Lh94Lqp\!D <ÝЀp@"`AXc9 ܿ,l n 0^ gPoӻjuQ PzC(zQ 5BҕԺ= p5\}Zpvqb|ũmafr‡]I9vqVyۻEI5>\1\1\1 \1yL?t⅝ $ɘ('nSο*/%xM+'AC' SH҂ H6H/ U Cd?;eg 7Y3;1Y38ey62wf~%dA]j1x Gz<r$Oȑ,qD G/8!rꕡe3󓘛K#em:(#Юp (pf#p[l6Q0ts^J_V@Ҁ_s$<s_sS}]К/`'%5-  zjzꨶSu(5[X(=@Pmgf>׏@sAy Мk5k]#ty bg'ַ nj 4|nt~r6 +gc61_)N͋NC=LGsYc1`d`f`e`'`g$`g&`g}mo,xc!,If$m5mPJ}@iJ3Yu+3ߙIf[l,LY`iI`I`Y\AN7=^eQKQkQDU$sXsYpbob\\\LlxVul,gXXX[N֟7^^޼*IbHLʠTxQQubʌCWi43,;Ϛl  Ĝ:x2 lĐU|6b8]*RY^z$wg#h4Fx둼i}t6\OGlx@.׉rw͏S3UAOTfRoM[;,iϢw2`NNNKNOH|;ǵ_pX>3ThPJ2}@i>JSY3u33_ϛS_0eX_KMKKKO_AGY;w$I jI j}Hj/)+ X}EYiǰ޹!0w=jsC:w5`e`g`md`m&`me`;;o`bzbzbį>>>$IGIG}36S%p,pf+ 63GI$@̚@̖@̞@1Uߍ VXS0fX2؆5,p`d}UfXM +w $Oa>f*;.ll l`'OKnX X Vbc1T+IuBGoOMOKOLJŔ9<_z,EcAwOOy> b>3X_'X4ۘ5k1\%,p^SV.K1Ux3fX/ $¾rkK.z UK7 wf~d`ʴΏd`m;vwOKkDW >ndf :(C? fXa$Cpfp2ge =l l l l lg`'ؼKk%5w@͑@͙@͕Ad`ڰ1k< s[6+,2k8,d`%]w-=#Bjf'FMi~_:h/n6/^s$͋7Q2n6/^s$79֨)b霽5?x7H-4o)u6@Ʒ&|@lXܸYONzF03YXknxŭU4]>A5f<*-f VF?NVNv(0sF3 K H>xk,qg6_csYjrmY\[֧hNvDۑC>]=ltv8mAnt1a! =71ɎaE}j/@} PY @qX3pͅD ;~Tb1z06=  ~c?vX,R,-,=,#,rY}3?Jj m?4` ]ЀYwtA0O`@z޾ "8c'w8c'w8c'w8c5 6wz `gC<x|"yn'#3x >*&G3+o<㙕Ϭ4xf4♕ĈgnC| ߝs}y(o>%Pz>P@"`VgiC>x/: O `8`d)yj()%%e<|\XgǔG Z?xo߱ c.+9x^? 0Wrv^|⻷vផf~ry]+np^pJg{^pyíe/////xq.p^ .p^.{^.@W*}î{߅3wC.% Ki@=C{g$u)],J+9p^J+9}EmLFt`PIe[uwGa}wG9=}yX47aܙ|~c_wFe!$IOIO} 8.0Tǹp!ޡ:΅ q.\hwBPօ0LG< 'bZ"ձLAG32ղ8@&y?1 q'12m8J&hK t׽xMH8&Ħr͘*4@ԚJ2ˬ$ĚJ".]wRgGu}e[ח9/s"p)΁ST O:,IWh9ѓ+(?=|g'1ǞeȽTB+xW<7 xn$]H) yG%nnBwT g0)hqgkdkfk}0vD,k|E,c8cz4~~7Hwp/i^?µB­BBk\}mVɣ P}-jsW@ARIȭPBj :HrOޥ;p#Nk"AQ{B]:S!FpBu7;!Cgђץ K, ^ KUXBrc.vXj e2yu+ @tk @I0-V"ݗ%e⨭BP&>9j=$e⨭CR&jLn W`/, ߎXD,7p {‚'-Gx]t%ttᾃb ? q yn3x: 0dt! _zpXf\$Kn]0auфùdlGt؍^{2vh'Co3ts8/'\POk֜Vh՚ ZsZWkNji^9ޫ5^9U pwp p pŨ'̊Cfۈ@R@jϖ"Pis:vbCzlCf˝^,Py pV# Zhn`6` N-:E[u$u$ #="lŎ'C#`/ ` dm$,Xn#fr0 V6aDX G,WG|uF,Wc!8 U; &R"&QsCߵx%+ }-^iKrƥ ˆڱ\O@ N/;qx8q&utlVױ;t]GߕHaѦR 4wѦR 4 F9Hjfw /@= Pz> @X'z>a뉬x~c3\.D]}Ƅ/"׿ 5 斅I3=$VJ@Ҡv]P3w_=w`W n$쪍 Noڈfł#󝙟X.c{£ ^(,v=Xl='uv:;N{#ܽ΁x^gi<5Ӱ'5O ;"x#i;Qꝶ#&F a2_X _-Qa,*hp}O 5iAR4z(ih,EɊfbZ$-Z!%̉X XZ}^`ڈxlarH9Z=Rv*%]CJIf!IyWR!f5>S'îZm%f`ZexgL `UA4`=/>p2c݃M1Aw.xw2wrOFXr6mc 33#h 19x{?#hAP75/Ͳ5/Ͳ5/ͲE.ͲE.ͲE.ͲuafI!]mcu0[׈5.xn^#[װ]t g6aZm:¥Yf^ul:Y&^ul:xiֱYXRxI$; P}x'(ON@~Y4ԇʒj57dW5ʚ QTǻX^K#}P4Y6ȑjecͫY6đj,Y\!K%`[%kZWA;MYK]4w rYd,KtǶVɦʷJ65\VmUmKӢӕU482nwR=Rr'^n#I e赪d݂2$/Y ɤK- c)q%LTϥƧ_֓fه tه'N).XfR?>nhJ,i Hw 4$Z/ L x?&K'Z7M2AUnic%A{;TrH9}?dT$2rIdrn_sp9P [rnϵO·U'ݘ$LjB";$ 3`8JAAl%C(,ۖiC=O'/~o7?v5]2vl@[}s_syX5;KW?H 9;v dW 9㚣d9:^N~גߌ=%{fZKv36fml-Vnoir3owoKO)5*3U'HRD($*Ddc'g銥9š&0㒠$=v*,5s)%~9+U&V&>|ɕU= U&U.27K@U]L.[xnKK\jJY/zAǾ!g@,*'SDW`: k˶Υλ$:lQAcJ lQAm FmQA+miAQ&-s.dG#n7%:nG,s.r7<`Qr)u9ZХ8z]$?y]$=y]}FOH/* jÇq$Y?gi^׸HE5FYemFaܮ)0b!C&ʵc]SU拴+4UMEr@QWlLQss}]qjЮh v5Y+bUU/iWSLҦЮv22>nW.jN/ڕ ՋvB]hW.lʕuUs lsJ/snWrܮdtM~^M*̮TLw]xH.==fdIY*qt_n4M!U3mGg~Mr)s}t DʚaJ48ăC$RH'qgw ϕD\賻J.bs!A,H:{,8:FR)y7Ud(DUtt=C 'Yq!~%O2F>u,x@Љ;u,tGN ѹSBt8u,=;uF.5?Wv;'yiǷ RCA$ 3vQE]4Z[CmI-r8mHWr@/ ,(ڂ$8\9TsmF-orXop!eo|y'a9O1)x.Wο̗(,/g,22?`}7_[_A8z QlJ=zWh=Q9ag$ZϰSTGHv4P_vAD,~r>>CjDBsHQhګsѳk/LxA?AwQ0XNgӍ QɆN)^PwL:M W"}4zÿxy.r?^y0CTtA% "-7ei)HMMɶl>W$<t>5HW>Bi%4WOw T!XMwd\Y%GVYZYOګG.:E<H@ԋ JN7L1(qD:чzA JN|VJ|V "澈$:]AR. [4KB%k!-q󵐶uZH?D?븗5jRFn7EHô_M[ziKcX1mr ;-Qa]Dz%1XD95b_wCTϥƧ*NVqXInVj'>J/$bLU6>Ĺ} 1 ɗpdV*%[jRSJ}͡COq*|+P\ ?T Wg !C TyoW)B"DZT^0ʖWfK+ SRpԽH)2.*鉼%ߩ eRpgEF Wf3ێ֬5i\[w~5#3+P'kܞļļļ7s$q>;rmi\[ڧh!^vr"{1c5*w/~K9KIv D ]βԪԂ*\iF4#W4-̕fJ3sJPGmѢzT΃2Lߕ VD̍u},jC7_~Se?4rVW%#Uj7)sGN) :K&9$O,GPҡȑd%Kì aԦ1R w rMvFA )owsù+/.S3aF/ќRyu0 Sپh槷9%ǜբz.Q=˫Oո? Kct|UOR?}^'A> IgO8U,S2y7oi/Y>_Jr<}ex ,SgQ|)c:!;I=!ӹh4 _[K[Gf>?xYkTNE9}-S"Yk=u-O"kMQ^Z)k#u-uԵ1>̧ EClM\ vy ?Xg (uVCPJD6SD$s8Kbl*%ƆJPaMФC+p1@ުIjIIy3+Vf3\6PZTP*7wȿ+PPQmCrTCNyԃiq$`v9;}wptvvyf^d]tsKWg\=$-:=oo%vɲwHϸC,})dΗ?%1g}Z2+}5i @@R*}Pj=RvR ZIԳzRߊ/ٓ_I_?KT/%~L{R^IqV$IGIG}3tzw-jwעXx*u-mee~Z揮eeee}I Vn.>=I5F_+}elF;}gl1aO6TOK}Yda8N>kaMp-,ɍ>O~Q漄da 2O42/]sAiklF;4ν*,aMsAJ2H".Y]o;/4iER=tfI1KmQXJ" i 1+RHƢSat?l^xI&qJx9S*g /gL uC۶@E;BS[T{e vOY'x]Ʉdڲh/OٜR5-[ZJ>dIH3J"i߯ȦN=]#Jzc ܇oQ% 3*Iq}̦J 3˖h;O>%]9; "tOl#W5.F~2H?YXx\4HO^0Af(4_|4Gi~ٿ=۱M%TM}0@+W-/B*+=P_14c?EX"`Fh!cr4[Q9JJkQ? NY}1m$c/ؖK& 9!z!zA)b!za1tOCad b uQУ.KP0B嘸wɿ湉{y^B^&2&MTe"cFI UYrCr8j[U_IPJWXIw|ve2󝙟ļ?oݖ2=C\!;pʚbԮm ;InxKdxkGGf>3a.{$'Y?c>r̒@̚@̖@-W-|e;3?oK*ޕ1tNYWƨ+IEd]$uetD֕1*j< tyF]͛n[s1襨!b[P ?2p3oÑϼ! ?97d ~}c5h֤ x԰\7l . {AI^4=X8]Ow{q)^uJ"眒姽8ߔFf/6W皒٦/2{USxJ =^rJO* ׷5{f/ٞ cDn xYOf/}{y1^Hb4 I0KUUDfnox%}A%}AW53@dd_?dd_?Ifd_?gd_Ўvk|X}vkO.˧`2}%:߾Iid8GR%8̑Ff r$Yjd׸}夽*'5SNyܞҋ\l|I hqËVw4GPE}_q μh7[%nCq+>D/cN>D/NDHy1L+[퀀N@3ę ̃qȐdY|g'1ϛy7+ZS֬=Yd:5J֬mM>Q\ur]i:švmfŝ$U>ۮs 6[#"}C>TC>x҇FM-i7znݘo~$Igy3`O#ٚݏ$XخGWP$TI@sP}'@0^I/os`k, X%K8<7ŭvMqxCF92%151-1\5>xSɬA^$$Hrw?H qJ>tF۹!Φ=t q6CM䪋7ŭ,]IKIKMK{36OUptˎ_J/E~6/UU pƘ6܎8't.rqȊGV\I5=fjF!;unM[т6k3}OOliN=וJuJI+yϕJ?OEFI*[5qܪ VM[5fXIv$n܄gMgKgLJMx}M=hymj]/Z拠EP"p`uv`U)] )nwo&k]3a~'5͟`;Ysd$kyjiok>MI3g%~+|nj'i><+<+<+<%N(}T4J_+ޙy.Ϸk*~?QzRC2J3)%Y+;igWqI֮TKmy͞~Er(}I5pKdQ~ԯJi_)-+~ԯWBcSRzWJN_I^zW% 6]`sYo$\&U+ 8eT<dT@NFB|C68y; Tq>uuuuwp<!ts+.no;7ĭxC uŘ̚ ɚ$k'Ysd]5w{[s_dH +)[}}iwNINMNKN;#rf2yJr&}>T i(4WC8_JR&},WCwՐYUjļ|d|c+3ӯHΤkW6~ԯԚZJ_5+~ԯW-+~ԯ6>|ĕ,`sY`sqp޷U%k+dMyxVIp8oU;@ꢭ$W'vw>Ng@(F D#qpܨqRH>H'^)]%aMxt|I 4uU%1ЄIWɖ@^&]=[Ă'^%][RSJI> z@jY[#]Ժ'=*T 3{K%dBM<1}}]Cϧ-sb7CZd"NoR'MVEK4YŝxC)7ĝj!!3|}oI ܂K[pՂK%9b$3'-T6L\p&\Ɋ.՘|~/I55 Ffr5듬Vs AX5a5@jYᗋIẒu'y+Iv< j̣T Q3xtxԯH֤_yL\OJ̛J_iLHJLdƻ_Iڏԯ6R0*8&L4&6=A;Kmzv^Tuuxu✞}uNuuS] 'hV.?4q".)tL4Њԁ'U u3k,ƿlYViFdڦ&6@-bn9k!úbn9k!úbn9k!1嘮[/uR)Rr^\UvYQTk+dHIPI6YFi( $:r}'?rB?vEU"7WI.^5^%-xxմHjko7p/^7^-R;:R%Tn'}Bq g:%%*D(y$DyÔ*DX<x %gPQN(AKɕ4>K;S- K֠=Q!A kTH4]*nKw)9˂ Yk + ĵT@ĺﰮXR3C/rG5T(N\zoBqNBqN 9fP 9P yfQ u >JȭQ9b"TID2ș`NBAϊFtv=4ÿaWp ]qbJ"%8S[b[LVܕN+s_N;xz}8x o`o`2YjRS: r[An? qqU n $@{(Xw K\KOr_*zRT̺L#3\+UX IчE-cbPp%yp0^:@/8[%=RzٻFzjV{M9hd42a$Wy3ɸ3̸gƽ>Wƽ2WyWyWyWy z;TwzR-RC<|ҋ;/^e?To.hpA궈 tU\4AF:J]."e[5ENzIJٌlIæӢsAkU_Ұ |x!M/BsE㗈C!bEƧ㹾NR齁iG]@`;da&3"/E#JR -&%w~nOعz5 LWc]l^gfsX\%b~_{/r^~ȵC1Qr{mtVCir10^c`njǰzmLgu|Bɟ@l9 u!FDdvv燈dd~DLsT9~ɝ?rWtL,Z%7=?ʽR<&=%ayCy^87 [KbUA3.KsJ}ЮbH@kS *m۾)6Ǟ$CZ-=)Qa<<#* Qa$DҾACHdGU9\H`wTɧ^Otk[dHָָָ Btk.b8YDy>"FQR-ҳ2~ȝ_d$G-IT:+k\k Id'89{z1#N؃/NXʻ4OoVRV?P.uh_B6cKZv 4d'RA#D 6M`Z@]~?,\Z5 uai0";q' Vxz\LBo%J~CP'7CllP[RSjZrsYrs[ !')]]YW}fj TAaɡci4fo1_!NԞĩ'FB:E}lF.Y!9ԳOAʿ= ñ(əp,Dr&Q&UߡH׭un. Qf!Qf!Qf!Qf!QwoNte͡IԝRC[x@Qݸt,ɌK.ɒ̸t,ɌKtҡKw"4@aN!9u[ m)p{SBC-r)%65>{=nIý[p42w% nIC,iԛ;,f} 6Zh^ǫ){%QUS'}[h:s;f.>d\̭R3jzjzjzjzjj 筩 ޚjUcKO)UEˆ%ij2e#8nI$dI"nqa&Q+egzոR湖@uUB- ~eE:m `(I1M$6tK$J2.q `(I1ͣ$R{1@ZR->rɶd Z"ٖ $L4Ay$%璁dأ\xHw^y_g+ %ْ++JHDF-0"2@bVlP L .=^c>G}pfl֊?'Ik3 ě&zNSnT{y8jOaTKA x Raj$ȓ?; :Kn○&~n⏋/wu 3-<  xj/G|U{UaQ}u8s 8z Gĝ%$qL;a)͚EP+p>ȸG=2qqό{~pKVO OO`~4b~4b~4b~42?@ ̏R-R:T`kZG;An~v$v6| ԲqDX긏555N Aa'bgGx|-ӫQ JB&]R=$duE #骷=$ &GӒn"SB NoiʊHqR% 2rRU}xyBJK:Ғt{WҞ)G>=t{riϧH>&끩c4 N4 N4 N4 N4 NՐHͫ^'i3ԭ}aט}":6uzZF ?.~>[(ؿjdr*J.J=OCDJ&$ص"^Xw]wXT/K f$ );0Jj&k\aL!^K!:^KV(ٙrP3ң}ڗ4l;Qn}!ad$;̒0kl';̑0g\Y?̓f^Φ^nA)ZRzI5k%NJ?/]GJ04wljjjjjHou[i^n(7@ذ;6&rr7c.Nyo]G)u<L'$*ի8'ۚUm ɶq ɶ$q p2Sp- v-wAЮ bŌZ˿XުM:u&J*םT'ܞr+I喱/֓mb[ly6TѢ~:i}ן_/I^~%, i#P&[;ޢ +/rTѼEѽE1D1fЙ|Dl‡ Z|rY> ĹJ<Ȫ{Vʯ?o҆VJ[+mn҆Vj6\nrG-3;Gad$;Ht[gGvW=>{})'*}jRI3g&JJ>x>SJ'Wo5NQCP854No 5[CIpAj&b3캳OĮ;4{IdM0Id`dDH?Hbi&K9lsߺ{ܷ.æH.dY幭.,>U̲S,۾TȲK,۾eY4ˢV VPX%v~_&҇@8Ye`!I2ӐNVgH' 3$U&'*DM'1i[N &ҡnrqP7ɸ,hf4S ja)3DzBq,ؖmĢ[K?L]gu;]_\/$i24.UwR.Yݓ :& [e5,aQNi L炻 背S6;$i!'ITzX]kVoxzp0莗m* dF64Ft,yjj-8(pwJ[V{{xDA Q=n(ʒrE`.!"4; H!$:!$gkx@;\ݜ[w{\l~ r])35eflTMWR j*ʾ|cM/3R+ڟRߒ#}@a9g&[Jvӎݴ$(l7( M;JvTGIPXO9Sv.uޥ8TNr. r.`ғ=aL%;l#wGC|׾nvbzB|4[&vnc=ncGMݢ [4c8;nē%'I%I-Qu5A',qfX~Lg31h~Lg31h~Lg3g~Lg3gm?;tBKO)mh'48M!pL-CZ7CZ7Yc%.oR=Rv|!C0@~ N1 띐{r4qbdCrBd';K`$HP$&vTRI]hڍI91qa$ɜ8wdN=.wʾA㭄68VBdOdr;+) 9~N(5s)c Ԍ<7xR3nfIt'xR/s.=ԐOjȃ'5@󻜆̩P}~4"o3Tǫ/%mU_.k&V_.K yQGrM]h+Ӈh9n߭a0DwkrId5rId5c3gpkQgܭ/5r) <^Ma$(<Ѧ,^Maˀ$(l*}nK\jJ[ zn6x65"F\rAi!Dɿ$cI% /vZMr/-vTM/rfo{J%inhILC;:C04L1۝М 0 piH9yM-YRS#ْl G w/.|j鍻K7.ٖAݟ'.~>AUf s>_z.5> ܀07 y?A 'QL b$I)Rs"㾼2;h*MћqY՛q3}B"ͮ״3}BjxlTmVQٽb6Zx^X&;#aUv.v>$ T^7 y}>듐'!c43T_ue/^e|*˵/^TX |6۩]j&O,&ٕ>MB,}Duzutz£^2K,?@/ ]Xq hěFlěۺB_fS~Mk6oY}r>22P|$d~[E2on(F(F(H((VF(hk׾mF_} l  \h6}U݀Vu (VK(V,zTg͌ld'!OBKBٶ6ss#7W쓾? }W=a~$lgd独a"L,($`LI =B1s|Di& j) i hi h h h؉\hy;\}>-_5c{k^`_5c?/f S>]-i=FRͤN[?`/O.$[sǒKL1c^+O<"LwvkFohm>5f}Ռ{Ϟ_,z}XaB=4}8қÁxu`fxGmutϨgV5jV;jI3jsI&gQ[? O5ZSzjOwߵw^O__˽QdAvfL3ia4ӌ0wiF8_Z\r}~7G~Z:[g U3\ɽ,O$SZS?&âôxi<ôVaZc]p5^3h,0ƫ󷆫=ӅdYիeFI2Zn&V;jMwca pC1' c,rjXPk6= ft_k`5 6vod+YnG %QĘz^Fn'e2T6x'0Kx ~2nSoPW>9Y4pӟ5IMc&o$aGSDt GsD 'm^ ]\DŽW+Qz}"F>bw5F,&0Ҹ`1o09fHx+$Nl-w~p4w~p4wp4wp4wLp697&=:ӓ1h&gԳ3/G1818 pk@;۴I##ՄOT&)S85ԧJ#n%UGh.\Ņrb0,ZRDnFR ŏW&`r8ؤ9U9Ϫx㟊WO~Sk 6Mh|jx:,ֺ)޴0p4m `gvZu `wuVLpQn&dWo dW׽xߚ[4xZ`ޓi( W'oN5Y bpĚ[8zMV^1|s#S) E9nDInDY0Bշs8P\Y94߯z!&rX9o+-kUڪ%`zm0j^[LV+V[*ڪ:@\/~y͜!b@&oY|aI6a?h+ [iT|ea3,Ҙu;=bǝ]wZ:wǮsZh{#tϙS?gå3p {r=\T![?"E\!JYhȲ.>B,LW;\[@pׁ:PnJ6QezX<#tϨ LE-O;2mwvnf@SdvڎBϖxJO<[kl]B^/{n4ͽ˽~s/}܇O1)Fqgǝw~it [^^{[δηηήήήzi b=ôa\f!Kr*vPF.i%@9g~u F7Pαu] =} mn_ A $:hS\q#"B-€4b0q#pܛ9&&t57S9V~#\Rr{ejI&-g(bM,cgORt(6USZmyԟIb! ORY)/R_fJ%')ƢE/Z>,j{X~5|7~ٶma֎9[ l[,-;b,㖍㖝kˬY/>fvMl`^fb&+~+Öxv`2e6l9fsGX````@1H[zѩ.;LȊvdň(#Ȋݑ;n'c޼}?wzUN^;]wzriDPv4HtwL#1DK+V;y~S?wIO%?5cԌtՌt Sx lr骟YEM Ӱpa,aXTI$6"t7i!s~8P?huہllmwԶ3jvFm[{N vGm?ݟQϨmu3w,6WPd DY'j7:QA։;;SgzߛzOngi|ϗ|ϗ>o>;^iW}>j;?ZEO{~:^}[δvC՞ )=ô3L)ô=L)ôҼYl˃oOg1Iԙ׊`әI,6SbK<%&SbK:}eH!qiTӰ'QS쯳g1>8}o*~gG#0kcW qM˲Ε: 6$ۘxpAPVB$:B$ZHhpr$1_"BqSOM< `Htx\6dNi#Hj+ I6ǴJ1uK5V*&%R*8,N7$>ӓ̿Oyaܜmf{YI!_j5u5u5u]5U⥮bʓ>ړf_zgdwZq~[}ҳ^y7&>Waby[{#bO9 -5[6LGU~7>5T~w>c`YC4 zEET]dqYhrbf+{E 4[{s6 ]d6tFm*lQ5T[yw~ywyywxwyywQee=ǕWd$TRR*d5޷9~%P?~Dy[X?Qɼ.(nd֏n7Z2/ Ya*E@ӓ?3"uETF.w_{~ծ vuND7BXE8dG`#b9xe-s v[=]&elx dCB2o%)_Y5ٳDBVxBeWk+M.][ص]Kce{Kc 5.=&T +<4-5Ӵנi_־)2_/2_/2_72/}3 3؅]؅]؅վY*bk^kr,ASC\,G?Jq0)=\8 RzΊps(H9+Qb@ӈ〧kӎ5 M`@/._ױfcEoK*/Jƛdw&bl ZMcm k#б6kchڴ^k~y}y{y{y{y=F AQ zLcTg:UcTVh 6ԔL#Yqdk0b ¨ h.B %&*D Q 8f o8 &}4:+g J8HI6|ޕ9&9PZ8e(|Xޢw~7]>lڸ_2_/2/2/}3/273 {=aۙLMvr;SSY~YTxm5΃&튎I Q%cr%fdZtEwoDE8 g匓bqR,3N MΘ5s9cW3y rV{[g"Jѓ Jѓ J\)8 WjT-a58 ^5RG)F1_k~M)82o/2o/2o72o/v3ozJ?COgqǙ^gz{ (+6XYRxm5 X|ДYw({c0B.xp\PᬹYsC悇 guCHlxZ_kj||||\늟ey2g\ɜq'se<+<9+WyZ_M';"鎈<|rr$ZD3IOKv(#]b}s)eL;͵ Q2 {}'YK__?{~^Q%?S4w\Oq=EzNzz)}=M14Bb<L_*& ¤lTaҺzLȚjsͬv;̚jsͬv;T<&=E  ^k~Mٜy{y{yyywc|qǙgF~Xr3ƿ}Ƀ~FĆx&Is`IsIsIsPLJ'~E1 7u:p30 \eטߐ57$.11q8+x3D)L>ciqSXvbh8h8ha},[ nw䛜A) &~WXLkQL7y%cљn g ]#Tq6m7ЋT@/S1O:Y',ɾlOJpt4iD`g7$^ӓxͿC'O5BJ]S"tכM|&/LLL`=KiYغ`=Yغ_(]b;*MͺvTuծ {~Iax^U\fV4s̀\`y1 _,:x;āKHxā&-ueL>oèK?. WڍBa&C;LZwd 7­[HF]xO<$ەxu3y7CJ[N]cySJ'kKmJeL& :/ RA15"Ԧҍo1+82L<;kd$֠j١b·^o)'fX=OO<=1L3L> ҩՌ8QHy5+, IlD! I sԈԈ ՟e_B0>j;З}^:ҽj Z{_@RUC!q͐8&NLj4qSD-",aRAGaRAC{+5Lj01)9*ҵnTgGm3W /l*0CH)]Ky3bEXlEnlDpbN-QwTXu;2vؑeb)}a֭0ۭ0ۭ0ۭ0(2+)29)2E' WuEWńc*'p?rLGh}ʙ1#lv(1%g$CP9һ5HVXe8#dʮqF25Ү&.j,vVvW{E KӕWm'.Nں_-Ig^_e^_e^_f^_e^oU$3|gZyiqǙVm\m뵎ZqZ DZ$e⪽\aCv6]aCdG_7SED񀳣Z/5#ä< \:2Lo[)V.(ϕ40o|:Q`/xā7kHxwf vʽ%̈́\e3i&J ,`EX<96#b氳% д,zˢby ~û.e9(O)prpQ8K^yJ&$65%/{n+FS6`"Pc%YWUj=eMl>ԗg7Tϲ"g泎gY|Φ+pΌPLȄ3ioe7F h.iV%J~ϣYy[3=gX`VxSDlIvHx5āWsHxh;g)d dr^t::]΋NdXo0P_$߲!]`²\`B2@\c5ȜkfG3ّ̹ƑXnN7’psƱ,P6LdJ+kTW׺ 2/2/272/q3&5`a3833c>θgf~^~M44qq0D\vi.L;4h  j!q' vb}Ny 1 LTd  F0f6¦QN( –xaK\.㾃Rf )ea_Me{ 3]GFb~T.GGbt¼)5Ik$ O`i.n pLSt8&oR}nxxxxV `ңn< ڑ u0]1 : ,"#'VunURwMn<y$7KwH!ܟC  C/[0=ޫ= r__>nCCS|1wzqgǝГ-JI{~wY4yXui(%}U"*H g9c(B&imݭMԽ<9KգyιI<;I:TA:I% 繽>{Êr/r7q$~CD}p)ab$tPwF2Iug$tPwF2Iw$V./\/Z~ۍ?{2gY)Ŕuu$-T|HgHYS| 05YS| 05YS| 0颯%_,G^M{ϑ{}ח{}ח{^o>{Y~ 7w\oq}swZ־h޾z{Bhb)J.b),fMf1k4Y3YgLHϋ6V{[B*///y:'s=ʏ+4JjǕ߷_f ؊݊ݎݎݎ6 #o߷x@۷Wxnud`<:0qϭ])ϭ̞OFw|Z[[s Wr Wr Wr Wr RxQ|Z[X?_|wPbX Y.q;#v Z.a;%D`Xj `+FSBMw7ݕ[lMwk nP%@FRa#YtWz`ף\36 `!`Dm!rø "7Fn(nQo[[% |A #‡É~;q.K+Od!C2T_zl◸%.U0̐BĎЕoD`'2TÉy;qVϒI`{'zbtK(XyػE `밵 ;`^axva ",!vJN;a^ !8?ȷY#dm03OAGO$,xq^q^q^_O6롱$~{'oĉ4q5G0AȄ#Z}DĄLsI 1!y^};R=:bosT@R'#"& xmF&H,7~謥]&H|et6.F2:mZd$LVJ{yb'b'C'[C$C$5bmE1bاAKa ",Q"F TpbNH@Sx ;}jfTG} 4l\q) W\j%3 a7[Hxĉ7Bě8DYJ;KI`Ś9z0iV\B5$B]':@&y aܐqar ,XFR0-0& :r,J 3J ŚL1D>"ЩJ#ЩJETr)$AozMDmb"~֢Vo2ZMVDo2zϛL6y66o29~td*^k!q'oj+g @Ȅ"` 8L, ݖ(ab)&: F=+Ag3Cd<)P'&s}PL?>(&0\Hh &0" tF뚁xy|yϗ|yϋ|yϗxO5>]  1N-+@ G7W8ʥ%d\ZJj$l?#FS#²Ԙ!hymQ}vٟ]&6}݉fCе3} tj׾D ^Btgx;$.x(^8xG(SY`jW)7l:_ahTa;IMFmߠ#LxYYN Ȅ1Ȉ fp"Ӳ%NdZĉc҃EI^[D&(2%eT)q.ӊ[loA0"λ˻˻Ż˻^J`'?RJ]+u?Z%[~9Ud

Ů;=ΞMkzʿb/=ջSiNN-sNrڤ"|q:׏Sr/r/˽|p/7b)x>E;e=SNMvF9{~ofAE|o-L :0` |nukf`IcjD15"LKɟի^}}/8 Hbc  wL`Hحp/q+DU1᭐8vHxv+V8Vȕ4O Fq`|̕Tr୤|?s`}+<[ziO`Hѕ7+õԕ'%žT{R^;RGFJ{ڸ_~f6/#]̏8|H~Mo 0Һ?@qtf8s&3rLnUl+y( oāRHx-kkfY\u-&β$rLeqIĘ8*0*b"<%SS%6ӺzL _bYusyV]~U"gյYu9r} ?cIsO;~8FO8-qZ~kԛ=zSoL73T~jL73~uږ.Q]Dp)Ɍ6.d{]׮f߮W3cՑ]ZgR="a"K0(hM &4Kв.iB\v6(/6Ay K Ayp_Jbֻ5߷Ƭ+N+N+Ֆc?c)#p1^5RG-Q%Άax kvȸ{{{{^{w;AdSN;}>U6־hp= էތԛџz3So|XO ԛfޒFsebF|% ]H.!Eih8]4)]j07Z`nea[sy\˳[sysu.[MBiv1/2/2/}1_a|rfbVjgXά4ng-:\)XQ)Y8[zfk0ZV_____1`Y"qUV|-҂ha]iޕes8$5 )UVYqx>XI޶{LmkD:t<&0^IK1!+ CV{[S"yy|;[H6u'صN®U=&wnlٽ޺ߓw<N2#_=-+ReZȚ+%:e#Ns]{ 'ϵ5ȝkKWw[6;09fg)>Ӧ+i_0I0?͊uuNj~Q rޯ6}E]oX Ѿť|cDoKOj4"NIz ro^%#_)^օQ9Xۺ.`>!O :Ke#)E[ ;9˜B@l=9nmDی'Ki@!/Bv/U}j[Tky}̌ y䝬PUP@x ;ԉ6}R@/)D]SkɓO|B"0v9ޑ%9"3ԷPmf ̩olvSN@ͩE[DBtns.ޯ%])7 *0BGJ+mcT4fQAE#⃊FL*AE#AEc0P X}PXN0P@\AlAlc'9Zߣu/ʷ /ʷң|[(=F8eܵ(CT^"P{@-"wC 4Wu_}?(^c?(3B{L=Ypw,S834T M*Gyj)sL1RD to-kگ;].rOyH5 bB~ƯVGj y$2SI܎$Kn7j'يFjBHVMhɪi-䰨$FX:ϡ tP:r(9T̒C6,9TLMѰ`UPwDjI%Gb߮ vl@R*EB*Ҁ rri*1}HHHHU$hU[}k\oMU0W+c?2,+>f%5[zk/^/^/u^/^%"b6k;:ڮh۶CN"ZD[[D;:"QwD e*eGjry$6PWV*LR/zOBq:[IjpH@B&`Z6#"ⵋmuuMuus}o|ko߷NkmHHِJ&alHx NEd[ٖm3'6fL$&1js%Vk5f+ńTVgY:DjfWV]}ҖgʹO\ȲdkBIVŖYBvl/dW͖YBvmj%N#D;=Ns@o'SϩT~} `46M^1 9䄳ru KtR2C,%>R2Cp#4I< g۷~ jafbW w.g]O7g?xNL#5iz1r98 ::tNty(ҙJ,H+itәFg4:'D :g^:>"Qpi@ku'k!=mgϬӖ] LmuEfj<][Jg1+&#eŊƳ%+ &rOM/Ԏ>5=ykGgn>b `=Qon˨O7ܷY5j~In0_WDpyrbQԷfXNo qmc@|2 wMoٚ:I~scs.(at&Xr1/Hvs7ZsGZsW¥i+UrW*7M 6B C4.x#ީNw*#>J%>{fNۇC3x1T0Y|&K- vu4FKKa1lGė: RJ<|ϒ ƭtӛ#O:bia_ v41%]n8qC|˜/0'򱴐S]5sY)Gc G^VȂY;.<9d"2Wk ȵU`D?ĉ>#=ZK!ː+OѪ%?;D&U6غ7?2ε0Nq.ab\\ʩSq+B+qAY''`c$}?Fc$eb@?/5SfnqW6nS6uuI䰊I˓\BУeU'GJN@EKKN@4V6L'}6̐gh9a0G^?ĉ}(+G[ňɜ|;aٴ%Y[fVV(#ZSeDkN^FeDkJgٕeDkG|ˎrٱc1.c12c16c!m)--oؐ DK+yy&'}4yFMcц``!ر 9?0ΚёK.\rb؁b.̛ k5Cz\>(j۰`re\x\>#8b/p^DًWcUi1V&cPUb Q#D=b8'B..+E.*>T)6k[F莦EKl .vBa.`vBց[F1}6# ')~}+Snv{Q798[]ۍbM{iߴOGf~S%"u7WFhа6.GV(Z{r:| OΒa6/WZ0AGhZ֪9j2˶Z9rU"Z5p- 4;В>:pO>uZ n[V8N(=sȅY˶ߴǛ|^W6?j\VL9J0`j {fI[A[9[ʹrO>h :.N}r Y+6C+>R[WM'z_utcutWWNg}f}f} ;?ˇ }`rىY&NG!8JRmFsY1M|8ay ܪv ܪ/`ܮ0` 0`;p0rP8rP  C^8W!U#wW!]݈3we}b8뙜{MLu'b6\ɷM1D.kG?e$ ̲̎5& 3k?W+效+5h)o"0cWk"X9@8qd[?7ˈ|._q)Rb{鹊oL^2=Wk{ϻQ4#.˧s? Ss$2D Sk$>ŀI|a]7gp`]} 9?Pn/>0'kX!츑ܺhlWt'l.(cy%io(K2eIQ ;b=ʆC]p\=JO"ӺBz+TB =2Py$`GGQ>8qprs >?A|}".iA9֚r嬅E7̅M?XBc'V]NNd,[ˉlevs+t,]:}b ewxz7Gr#*EJwiOxOGJp{ƒ+|XIJ mfBկV .*2 ,_zUwUwUwUW۞46!4J;,J;,J;, 4cG-ׂ(E)99"^,ө/?@r@UCW6ddYdVQ\Yd?'Q+cjA'01^S"9%9sؓKs'sG4HtβNؤ[MڽNؤݛtjؤݛt*7i&HMIO0o'qbH["Sio4M?VAc!B@Zi'Ht [u }0MH:H:;J8ü[+0=ry7OiiȄ;2H IZp]q]q]4ۡb~pcG\p)\f1\nOpS,E3v*hNeة 2c2Ne|ƢOY:`ԵASm_Si(T1YyuYʘ#9K%rjY*|)+/|]Q]A]A]A]A]%#¢]z}ui-.b.Y|Sˁ₧FQ).xL%;}&CH%kVx):EHCH!Ur$JfH%Y7@ :94|uQ__G|a}XTV%aAe& A,|Y? lcͬ̚9ͬ̚Z-+c`ނ[0ָ ƚN;_Q0v(a ܨ-pʼ a—^It"Q aq*a7%q(a7%q&a7%q$a{qudߴ 8#%p:./5Fꇫ||P*d[ ()‚JTJRGA:; ]}[j$P5ZZ3v0'g`jaNθtNΘG.2\j eTCd¥aNfF$"AFEy;e)mNh@[Dz$BaD6 ն^W~]u^>@E>"UMю(%rD-elSr웕 6"f%kô%k W#8U%~Uɱ!9S}"3yRԙ), PgL:[dBٝ r0Ʋ9| l_o5AtyU~p7.7.7.ڍ;[$;?3cD) 3cD) 3c+VB A7Vp{Ut"fkֈ[^g/q˫#nyt.^:/}]|C_ y ,B ~ҿ@ br;:%)@V_>2@ȺAP:RD͊W(b6d4#8Ær oʑ3lȾ)Gβ{¹H'0?AtC Yr(Hk_ d|D'܃= N?Ƞ2jȠ"gS/? #/f| W _%l|U]c}>@f@&z'ڬWӌ-u4#/f/f/fa;C +}Ȫ,BfRIku??G#X #H T{BYw껸ϔ5_>S|A>ON:.)O/ i=(UHW['T[\M`Kfob0g: 7àH:3Jg:ClaІUѸ'Ha-7:#x/F>_>_ #=I:"O0e>_}A|1N2vg$h :d)rS:3 k)+ k)Zn* d[֌`}狑uQ|tV@J'vx/F>_ӸSZrӤ<ܼESKD9O-[V`#cD>9 Le~: J3:~EKj >;y'3t||cc z^r x-A_p =Й_t}1t;r8#cE 8>~ s#K|.ħ˼;2N|̻yw23P2羽-Ԍ2-Ԍ2-Ԍ2-Ԍ2T@։dȼ L@:q"@2q3ʼNy/ 4cf T1T7} Me9zS@}T@~~.s8h8ϡZ8?RfaEw<h)VTxZQkEZ* M*~3/:N80::0:082\e` c=`@8SN+ӊc=@9-!'[V?81c8p8ftz^?A:}t$y{[ZC#*q: :t*tT,ա+4P6UJ|.uGnpC786a½\[3z57\[Q~vpnEgW IpnEȨgώLo3}cFnMFnMFnMFnMFnMF<ei^nk/C{ֵۡ=Оur;ۉYg10c Yg)Na%Pw(Aw[%ˉJq`܁+.V8j[JmŪ@ ȼDNU/x#!JC @k3B%uUn -G?X)H8Fc$P"`2@~@vu \*\y&KR'nn_3Ld0JiaNa3Ld*t/H_ d ,|\C] j+S?A ue'Lue'8Y_  Oy;v0Рtdtxo'#脛܏t?'>; b %DϽI֘,zhqpkM;kY}VYAFG"x(N(SwNy6SFh8i6Sfh8Ńtfh dپ@ȸA|>І 3aC mЪbЪbЪƘc0_ d~D<᫕>:;:;:;B;J;iOb d}$k 9g30mt096 㺝SlÚ6)؆$\.} sln^alRE/Ϛtb6Nlæ6Mj. S?@J)'|.qƲ-g\t8*8c zyb0-v5aRHm_ d Cܟ[jn{sbwP"pyd= b kpx1NI?M 74-@дpAh{ |!aJ[gJ[gJŁ=Qѱ0$U:vG7 @.Ʈ۟`\-xPtmqbE?Nlhlj ,8!ðP/ $ F L73A6U1u bHRn ;*5J <À<3uwNBf R'ĽRq\ pW22{W4ኟwuD&D/tq 7n5\uPCG=˃ \f%qe.0 .K'<%sm޼gOzuWٓFu/ _D۷6qK?6kbw \ %lI0E}/"7HdYȦ'ak  ޏ)SH_j)hdz5S1jL%(HVR:ZJZ;jy|P{ :^.+ }pk KZ]d#xеCuIKk',dDv ZLOyfJHXƿ6DKef|PZ</:E e_@ɇo@@P iZc VHY|)y@KR_ʞ'2RBԷ:4B[U!*VKm|{侫@ɒW'< ~*>`C[-'u3P887Wj?L(DU{?,ЬIpy;$!{)LqȞ5{^к>Q / ̍sJT S]/H 4OМ^As{b#hsNo}x[sܑ&ݦvyH(k/{H^N:AùޠyoP7h({4'h8s^ᓖ*2)wCe5P0#e3lfy-#?ϰeFhV) =>8i`!F):|1`bVmGPD5%'5ʚ eMm8Ԇj\m8&h^~f{Ga隷<# w GL8a44 ;$ 2>A3'Α8gv\?8D: ys7hB{Srܻڐ5k{dh$W#Y#h>]z!v x]Xo$y*1}^pϫ,DxP)1OҘ'ԉ|ịU"_CS}O! Ey{UpGOjN3Pzx]gw7|7+n$ ΢S+EWwatA҄~V8`5ή1=I*k_jΓWy7OS]|/g!GY5|.WvM5}.W6M5e.W6M_$ p p" ,wE0LW^Ć%O;(w/c!Wx|w0d0i1%J+/TZ:u_aרw5F|z__S?{LHo5G|M_zZ$# IDڳdkZ{돀Gsf%3k,YcsfdkUXˆNF|uzl0cϳaG|uf)]|Whv_x7@Zr^NgKR_\eѡxtY('-]JgKeDaW], ^`]?x~ Jl5xп`[|mG;Efhw{OZ(`]Q]Q]Q]1HJzcpmnpm@=­#[:+=_ J+=ޯ{z{C)Jd%b- x~6Dm>}}Rk~}s2qG9ߔ}w9UWG Le&q|MJs9s>_;Ndk,[]U7MPλFX;7%菑`<8׹\}L| ;\D1G_S/lNgFFP)m7_x7O)D1~槄槄%h4R^iFg"YЫC,K crFg!hj65wR5wR.dfij8/ c^> 5RH #5 0 zZ{W޻AD PM~s-C~N3d:SNs5ίy ̯J_70n(:n> kqsD:_̯-j,C膬3)#uG 리G,1O.?%״.?%ה.?%ו"Jw'k -ulnݳ{?WY`UqW`XgaUUqx^@}ՁUqq*NY7VI8ǑUqU$u=af]2'f%q=ab]&ߣ7(Nް(Nް(Nް(Nް(Nް(N^]u5qv'[oXjo8ĩo\gK %,3$PtIs边׷y`\[jl-xZږ+}7fؗK{c_.i}Y@3SS/$\r߫}X7rW}+=D/7ڗwoMmMmMm]zl}=ЗJ %冢}q`wE`s?Wyqʬį<9\xnWpn1-'k#D;s^x^x^x^6D;/^Xu7?y]v*#@D"z?w"$燭f[Oɶm=5ؗB_n(/w 1_~g 8nq|u x~\Q8/Pox:*kΞ<@<@a'5,(pS7 onʄhSD3!Z!J B!F%)&g &AID$;<+f@fo$C$+ >kvx)j"`"ESof=S-22"]hj;CKۇԖ-&@[lb3rnknWݺ.%u ,!є%#qSP`5e[q>,B}?,%z" g7 0+܊3V,54h(N|pz< hgHP?;wʄ27X .$Cq|sgPK`|vi. ]8*9O 2H qF+tǑFnFwaF+uȍV~5e3Z)~­'6зZo}+^ez\Cß \>euho }+&wktktnt 83"!]  8}N[z=z>`?}[3֕x^@}ɕYK`r>8w @-t_اKdN>]"sSO4/`Xra1W\r`n!Wjv_a;a;a;|a;Od.J:Xb|_ &z.^tMn'3py9`py$ EM䠆Hj0C&he?ZlJJ["N6E:, X-`ʶ "/lX_Zۯ|͎QyނӒJUr`qfp5b۾xP O_qUOW~zGܛp{\JVyY70_6{0aqin*1D16D1DBe\We\PWkh$PWcۅ.vzӅ՝'Wo}M'փB0͠ 4z nMd[=c$*#l gAT|`s_Vemax 굶Veh5Z*,[U>Z_eh q5U8G`ڗh_flCv/s}qx?xg*nz7v{nz7t]YcKJ4f&n1N!Xpb c\ !j}2Uw{h$PwcۅۮmW4zӅl`:*} Z~4Wh>tpCvP( G A;k߳2X Vg xoeMQeMP1ڪ&XքT7`V&fs7 ΃&-SH=г5=dX_`e5Sb] ߻߻5vz|n?Kgˎ=#3\?TW=oX%c^>x C?x ?xV*nz f*nz7t]⸢YcKDLEM1`1N!p,@etT@݉mWŶ+bt, oIݚ-w׾{㇮>tapBanGAܢ oi 얞n/-e`@ǥ@t/=JLhLښDhK[+mMvh^,r?0X%4ou~[yKp2V/S ZL h? h? h? h? hـ h? hyO$(}QLr*VUX{װ{ױNtQGͷcdcf+?TW&x #LFU00۾^ý7v^ ]↮p5\1kl`ky_& 7ф[ԄcC0`B[_LmWŶ+bt,;+(<5wZd_ Njt5  ;' vg+ݝv-ZK|cBTIT jh,uDOE4!"j!ZКD- It aх`\$" 8ɧu^SC"xdzcH/=A C"x^q eQ+ -C"CqcV$ |ޞ u}U,~oo3jEɇhgŠN,k:^17_8䗮+p0 B"(7vb_kLBh5U$C*R|MP+-X cm\7[(o9 Qe,o9XT1W~PzLf^+SPszp,}X,w`D߁}$,\rOМU M`ʾGLnY;bʩ#sHݾ#sH6ĽF"?oɄf2/!?250w?``Kv$%\Ca-=5lL6 dî19`Z cYe0aGٿUñpleKeKaKaKaKKzױGKAJBL-}ah4Q+*7xI0nR7l?9_7i<_N!TA+DDY-,fJB5,rA"xsc@"i,  nPJ7;R)L)1ed_BShz1eEuXR)Ś{yS `݊ܰnEnX"7ۑmRR)uL |AqK `˶y#ij1#Ij1#)j1#jŘl u)#[Ȗ;#;3[Y~ԝl& 7| $ܜӷ yWQ`N N N n7Mѐ؋o(W*՟RMIh A LFmLQU-"z.5R4Ĩ&{kg?j)&'ke!F/>y@Kr; tMv!ӆ`D喝 MuZ-1gԺ~h?WaAAAzѠ>㎟cl_XQQ+`֩ XG*bFeZ"8#x?i|Ozaа~hد^!4iKqKpKo3o3or.."}-ZhɈ[.|-t׾&k90 M/ۦ̀ÀÀÀÀ ـÀplzȎM/uecY'X ;u p:j G?n{vYQʕU*ϫd\q}1zi/F/e$ 1zY}Sxr~ތ[Kƭ5֖pkϸu<էKfB%3N&C- hBo6dM/6C#u튺vE]lћ.7!^}%zO9F `E``YDD>d?z#J`cg]:@w7=-BL"8%ג3utϠ3u\KnH ġU82Xv BwAdI˓2XLd >CLi p-? x~ 6ph"WV{`N+PˀNYz.J}Zw,d>UP#@?*U |vhUC"1ߛ\R,zt 0nAB-HB?݂d -HB?݂d-xy!q 888t ~?nax>eX|XFYWkd_m8^[yp6[-X@?݂Bhd;5mv-X"O,~E`bёe`9/ pt-0nt '-OpB?!t \Ãكe=8AdǑ*:}?Ÿ 3N#O31\y<]$"%O S?3$87W}5~zhi}q:x ?P7}@j;݂e-Xf;݂e`,0w*,|b #}qLEB$]$O8 4>L23ApVĜœ7;7;7;7cli 0v75 Mد=22,3β,yiȭdI(]9A(;7鉲Sy(;{D)XJɑ\g8RR$Փt(XJɏ\)I(ZmJ[eULJukrTF6 гmm'nnO>jKP,f@/S+$Fޭ@uк8zD;?:x&p/kI% Z2t]Ow_kݗdCHb~n6wL@5†s@512<8:t7Y@ʈMrſD8*\;,ey:gnk-#N9ZtʑD¥S$Be#'6FЍSnSjȼb^M+@”$Lѱ` "ݩJNP7*RߦF :yV^B#uBxY|,gnʐ95DKHHf0)M uGpqgsޕ*-?DߝGbo 4㋨_"ZM&,^&,uYM"h_FxNoEANoӹ %ѨA=FSEg (IϕRm `dROJJē.Ş'%sT[bd}F1eʠ9%Sd`S_P-q!Q WYft~ PhO}T]NߝuI'wgG-ywI΢s-yoY}RgIH\["ڻiޝMlJ-GuPj9AD6oM=%zj6Tn?83YQVPNpAT\$!&hLd6[!I~6!h DpmBfdxQmAp-SOen<ݖ!x-Ct[a'=VMwt[~w w-o5ZqeՈ* [Yn9%r2KdHFDkD+Ps:&*L1#{~dϏz~#G~渟o#Ƿgsd (tSؙX2³pci׷}HOX?ZrWn+ܕ[z[.}|}n%S~@ .:Rl[>۶}m]Zic-'\k =]Lsl=9[_ܒ5w[d_lx98F7>t!>t!>t{mpl\k?2g<ϖy-<[<`<\XC-i!ɴ5[}BgN :է*tRT!N%*]e,ae SU%(%2@j0@["xxtٖtB-GӖSˑ4rdj[J-Gl sˑtrdj=0Z9P`G;rŭVrP?.Wrj0GUӆ<6Qմmn&_8PGw3p Wy!WVS[N*J'D>|O*}U2pFs.sV?oˀg;2 㜚p mz]!Ke;{{ ^"ť@w2H$tN)}]ѻ\>z'㉜YFdHc虌*r~1=qNNe[;E>zHut~AA?ZQiU_. g)a\نR(]R.#Õ2zDٺԕ2xDٺ;E,"M4i@FŕyHڊH~ YJH_3jJѥJҥWEnWJ'RSm2t)@9F@ƀ8 M+ŕ4{$5@7@(Y>s 4{ H֣戇\P]'89"j PpaVxQ.j4*Ppɽ7~OR+O8R(֡S2 nM ܴIj~isKhӯ 8tf[Ґ{Zޒ[[Dथ k-K+ֲäq-.K8uE@f}{^k/ssGSHXcn!1eYix` #tT9w0EJ\~Ku{j9Z=Aԍ[ r\<6xW:Y˜zs=6.ީ3>- hmeݦy,kl hmefֆ, @ ixӜ`V.bBZ[BZ%վѢ}c` {*( HKԵVHZ@ OK'ug|՝ ʥSxHwukp׭\:{BH+}n PB(ԵƫX\X`5J?TkUIҡ[D[Xlb-->J~!-' i_i}6Ɍ}c`0PIau[ʥSXHM$VdkI]_um$6sv,psn^5K96g&F l!ljdmQlAId`VM"[(T6pʰEVj\?94CCcSD LYoV4[E\lXBهz; y}0y`L^5Wt:ؗ9zQ,5sҧ,})[*nʮɔݒ)'=P)Z~JS%@yO>O>=Uܻz`%~cZC+b aTJFeݰ__ah EUB/1(וb$Q* A dBlL[W ;P'eխZ¹̭bj n0ѥ{i5Lrt`ZI.=L>ѥi'9t3$G?J)&WP7LrTYD&9LZC1e²&'9X֚Orȹ5䐃1Zka$e3`ck+ڷfV I MrԖ6e,f6_32ͥ+yRn?A̭$r OPmd >$o! eOAw.C8~vx~ (}WO]!]z6}]MqoӇ@!v6}]MaoӇm.]?u>p WV"WgiS£gA6$ˉ!YTm/Kۘ rjk7$˩ِ,Ǫfx!*" ܿ߶ U!ZeY uص3,&dkɇ~Ymd~ʠ*BˢUFeBl]mG*i;1%sH;1%qHzS,5rm  S.|o6۲$mf.b^(هzY7w ]}0Fdvwt:ط96ZJ\<')xr')٧rz2dʙ /ɔsr-u'( f}}[:(5|BC|Ad!p)h<G)OQu.ֹ[<)+zSK)?ʉX}zJhR}4LM>4 SSZMLi=Aj3V.R>f7AݳݳFԻGpsnQ?;IMPs"lX5ZUo [zNy=NiuZͷزVc涐Vch3=ZԘw1Tw*FN+6sԊI/f>>^-VI9@?Eÿ..ЧME-eSiX0)ҰARJPa-cJZHL C2;tXشVcVchs=^Ԙ{_c(c ex8U2r[ւIL>0gM>&:bZ<T&b `¥B/j[lXX1}ZX1}YX1E'o2&tJQ=oiazQ#|d3|fsxXu#n@+s}@ߒwE!uֺ^E;hm~8hm{\*Z~JQу.IVqq=Fɢ#/Ǔ?:T4#o3Jڑ׷i+Y-DbDpOy2{ rzn*%}O)4433F)6LQf2(OP灺@tV6mdI+ț}o}}o7rFyeݻK4;Sw To QH2.XE2.۠Q`MJ-XVjS5:lT(rҕnJՕnJӕnJ 3)ءlCaC:PjR)+ٳ{w{wdtv]ࣄ|ps7~: 21D u;; }RVjRzyXWMD;6D5+(w4n5эTA؛.fXu9Go>Q[Q[Q[ӏQ+GmMښ:5uw$uw>VQ[/uRWڎEnbJZݐ"nJ%n:%n2%n*rHOClf 2.Dp9qЊ՚̘:ݙ1UO^tc}E1u'cIԛZyZMPņ> C?=gL;βzv;@-Iݭ_u>lz.5Rh"Ɋ)JmOKk3CVKQ'm{X2=iۓRI} K(ϓ@KvȇЭ)۹yC)1͘jsfLɘ:1>iT2T>lN.vbf ӿ< e}^}^7'7w'7t5t5t5>i| Vduο={Z)R /.p~B4ë'cg.?um=h/=,M-|0w\Q[pdԶdfo+6s~3f 3mߌY6Ra.W7v:UU*5*\ll1o;|g;|ggf }pwOPEOPP@Pg"Gɐ7B/u%\wCG\!bI;9t Kɧ+XNN>B!=׿r[|_~}吖rKc)TI81*i'\TS{)= = J= ʧ=TϥSf 2|*dM5eySCykݛVۚ:5u>nkzO ߞVjR)EBzcr*ܛ.ǧJ2)̽R|J$so{uw`MSN%{R+O)⦑)H5J$rJPJ-g5ʪ$rBPJ-;[jw[jwZ~J7a9>9>9s>9s29s>V.Rܼwu,f`u-@kmYe x-2ڹyJi8f"@jfNm: 43D,r:&[ 򶤎ϯ HR)ZO7 8i#($"SzuB$8D*N'~K^XjR) zG[LI3nt:zK6~7mK?*DC=@թE(<@U!@?}7kXVS֞R]=giMhur~ izov#ov^uܪnO/p)n_MDppH-i#$'FjY'~;%[iMiMvan͠N: nH is D !&;V:%S~exM ),*d_EJ lXZV;EzkVZ%O-Ҕ(Xr>^Kr@^KjG)*uʾʁt/r"]KjI)*u$t"izXޟGaX55 55~rݻ\+].JykY7Akupt},^J<%W⩹O˕xz3r%Z&Cijr%T׆ϵ|P:&{ʗcҖ)>I[||pJ&me'dҖ)I[|T=E}QK21ULDLx &vZ}i+씁IwVjR)uj=^F4'WQAeDy DqpI:S%R)[oDNT"g\z*Ubk-UbkDEG^Y$%c,-- ;bfV[bdgYKԴWJۍվurã:w <7jY-/%e}/KЇ$/B'RӿT/+YٍfP'ZA<7o]2;o"kw =4  6,ZC-z=5|Z-"QWHTHw,fH]ɉ?dlt锓1z)c)cf̥Sjӯ7[Q#7}}<禑O$ 9t˺uaQ#R"AǛ_%Q>i<;nzʄ$=IYߗ)Գ.7.ᯫ3,S$1[ߕuS_zթɜ6knCVcH8ZM*s7%=zV^tgz НQK0kdGuj𨮮g} [QM9S5PNi/r(VDGRr.V4GRWF` e9X-D3B gl(r:MO%n6S[0S@`_/XJ+"v.uRWӸiӸG4nQ nQF@4֣rh \Fd0/af PO\\O%R # Y,FR2Ye^V 5e/ξ}l/L(sMrsoiܶ l/^^/|naBͷزUr5cAOO$?łVNUӂBqzYDzpYj-Ezjqo/n\'7j%j[o/h0Li+vi7~/S=~~_ټy$M5PfUMsFGů/>/&''RdVK}.dי u'z2}p`FQ%0TQ6F4jʨ|-wO-R*ś[0eT.y~9*?x~(G-g1>f1u}~or]MU]i.-7{2odޜɼQw]ZTf Lll-қZ7_9E,ٕQ}]!Ep_1JWL)RJ}e+ip_2<ྲ2oo{72oo{78oo߭0}ũ8- p}pW;@@ϚfnKݞ̻#w<0ߪ^N{!(%Z ! 1$6d-āǐ`xO_ܐ- ANT* 7*H-A)8j:QwSSӧoLˉ~~{[o/> KʼT(PKClAׂS;3ΨVG %az*yPBI}q>33R0̴LA>3)Vsc`\A ON'WA?/%Fi7_5|txnNîsWD/p#!|%E8v%!.o2 !0u!d] *BAaFÍ0'U#όC}/HTzFRݿQ"a[fSo{L<{;8oG,/МO #qަ. D$X&VLdHxnQ-<;,857N+(5E-E|Nĝl42202&C/CCCZ2yxѦqDi}G}vG'[m3?=mNmM#J>(8P2@;Fz1;~eOh>RהGd?eOnmoooϬo=v6f|n~Jߛnn[Ծ3|(L:GwG u1tyDAh]beڎiesuj,>WXb5{-0fA9bPebVj|f[m<,/JJ UVtdŶ+ Pp_;bDJqvufSka׀}߮scngirz~-gg&&ׄssۻ%[Sۻ-ۿmH}mխl;=[Iϖ{gK-l%?;kIZҳ,Sm+u5pky_F-ڨ}U~^FoY9j}_2GKu=7yS'd2.cytC k 6w|0܅5LwaՉ.-8MnKW_o٘}`o>ssY7vY7u>n#,PA(ʈ G4@0 Rʌ#:_0A11 6nvOZ7usꇺ9[@@ [5ٷZo}k`K氤v7v]C7\WJ'w{7)9O}ZSx'qRUW ޷=)L}W ﻟ'wk_+嵯J׊{es)}[shE#ŎA!'p`%o5ZxͱUkxGF)yWJI+#MWAbUkBaAAo\R\ֿqݚk@a@׀>RIgK+=[(ligK7=[(F6a0a&^3R;qmoҦ-27u1<[(lisϖ6B}3=;L6ӳ3LEm~NNu(ӻqoƉ>w:9S{vzlIy.>=lPn)_Ub~# $ZUX}'ѪNUMIIߙYzl972~l7>n6n]7#q})|1|QDШz1 SʔLD9_l\SUPPHՅDQudLՕ;W׾zS0S')o7,T@ho̔a*|盟|y-0X|Cxn#fq){){){_){){?)=ޣ-UH?F]I=n YRxϚ{'g͑-p%dk;9JUs\k_3Z~uvI5gvOG=STS}&NK;kߙ櫛 Iw~x-t;soyXxʩnTHWrnʹc {7СXjR)Ej ijRLSm 5%Xu렱`݆P΋3X'V.RLt)]>ֆ%maI۳L+$aICKsՊ2HJڈ2H1uNT5= }>opq7t<3MŐ9CR/n) cX )˜BJ`^)xe tS,uSY&{|eI'u!HMpZ p+ xzpr0>K8[sc*@_[ٔz6e 7½yS^R)¹͆>)˔d:'."79ˍ)5⾇'ў xrur IN6Yq ý5]`7{Xz);tKu/u8v #1` #4,tTݲP:θ|1pOéư=Ǵ{O1=xZJ\j>Xť@'X;&k>>D'W!]6z|cU%Rؽ[o$7>+uSV,rNߘD3J4/J EZg"/ӎrPޘ(ķP(m(zo;mqJ߸[xKͧi'2:!ShlW%-u2o-y!E̱۫OW+)}qLW+GF)j帨1Gx7*nvw7k6Ƈv>k7]|nR=:mb> >g'bĞa,3 EC|WR(2||@ls>M&Ln@u{Qhf '۷odߩɾӾ;g`>3ś/VrM*ٗ*}ܗ*eJǼ1yO7y7*%7gz{*=*ޔ(~U[9YT$ oJ7%z{%S+LXrޜ'굯d_ɾV}~k-=(ES$ST\mo'{SeGO?}}w~RT-OSS8fodɾqo\z@.y xL?gzw7ߛG-^ys,Q2xqI cEUm+ok_y\.euǛBOe|ɒ%Kϗ,>YdЮ|盟|D3Q^mjD3p<ьAO4cWl @h4cSq|`|P|@\s>u%Ir h_1$[>" AhGZZC퇧*q٩)٩ ~vC(DяC=LgP퐲B! A3Vړ3Sn|f+3sI=eȃQ[MP_ޭ'm$P{^m'|{Td(fMɢE= |Ez++ ד7Jүդ_k_ZOSNK$4?;=,:-<AxÛ@7ɻI^X֪UyUygegf20fQ~g_ b~`tXaPzTnT8E{ #0F4>Ph|f| vvč_ĭ@@ĝ@$^ ϒ['&OlMؚ93ϕo:ojWμZbFWeFWc>>{/{޻f-ٽHgv;W'Nt7U'N48p{O<"yD[ɽ="%ǽC&xK֤D@ 2iSْxG%ؾ1':)G QQ(ӾjQfY[^LsWA¹\ Q MWĶ+@5^AcԊ^'u|r YUPeګ@i褤NOB9޾n[j/oNOB^BQjվ߶Wy^:{XpLo:1߾Es:#! L}gd卵NICgiVgՙju~j:L̺$4ɬ;ɬJ- n*7mq4 4!$Wz{ VO2q`$  =yd;Y@6l=٘K1?{XXp~"PnT>~Ҩi Fƍ/ cU":y/j@Ajafүy ܯ~C]dI9=Lɜ\NQ68S_WrfN2?Mu|U朧X|FCyvlɯ=,Mch^[=vluqXݲ힘|=̩y~nsњ&kRXc:;u8uk= VRF $1,4𩼛{ě{ě{?ޙɼ{ տMSꦧxV(㭨Q[QFٟMFI⨩C5u~;!gtQSWn"ԕ#}SdNjޖ7=}hC-u};D ĔGK^>ZђrJt XЯgo[zgo[-={K>G>G>3|[Fedo >ED8?1qj0Ԙnj^E}0`׋zsۛs7K}(U7K~H?$+AD!D]!D(["Hfk(BD?\>`OBXOTO #1 GPt?BW"Bw"BO"r m5l+(Q:GArC(R9K.?ɝ B #â'L'J%Ykn8Mf:s;u=`Zb|cjjFs[D,~}cl=wPR;QiFz( КhMf@]#2|h,8Q>H~FL1>-]|a|:XJ(ghLC4Gϧ ^L Rf? QKKKKTYTY?TYTYIqWZ+Jk+WG^iPfRf'eR-uR-uߧ{SswstF̽Yot~G|~G|I|t}'y8o.rv/ctyʻJ򮒧 q&.L\+[+=LFН=ܛځe r*j﹮XKvZ ]}Į}`[b]nXl),g0@SaRSOK/X,!6cE|eG6 @OwӼ g%RfV[JJJJJO__J[+~S9^d-J{+1re/eFRf-uRg-uRg{ZWs^eҞ+J{+͓{y^i)aVux{ŭPuW.{tqGw<;OyZ3Igؼ@:v5Y3!gC3!P {P=ĭ[[ĝ[] Y}LmiqDjMǗjN-Ǘd pJy1R?(IS}ر(GS}">JTzrdYO{~.]_HwWf30P}K:Ԛ&kzfɚm&kT%_9-JϾ_=ޣv!LŅClM#$U!;b+o=Vޣ'#UԘJ5vqREYfXL˙c9۱Iq3SxfvHg- &8LMppge-X.3AW#*v~h@glH@f`HLjOۖ4y˶%MܶmIww+.W7z,7X.rcq뫝&$~sI:++ۣ!K˽vŲnW4ǼvEt^M3P%>$)kAS˜ׂ<8YOyp^YOypr~,'3y-y_!ykF^3 )_WZSEPS*}VCOZ)[>QWZP:؂: G|I;2J z4 Z!4.w ,%(?̼W3z T\`#\U \:0_Of~̧gF>3 ^|SM ' }"  0˗ ~Á\JqlnoȲ&$&}ӝa~&W盔 VЛFX} o^a5ymVFX"a9{wq6º8a]AR"Fd71%16]5oוYd;5Jּ;Yd{5W*n*V*WUa(\DEɯq'IN]vv"Dyۉp=qE8Uݧrq%"WTrYګ n%*:ۯnbKbkbۗy 7>aO<-Sxo'g"L==i*O<*oxXnR3ZO) 0\U U/F*f8{Hhk YCR1x#{ev-N-n qHt$ՉWKWOÜkۃ] L{`f)fvEo`ʃ]@$2ۃʛ:#`@ېS;>LVR1ջ8lnLW!c|N^';&3_Of~?k)65)bAJ}%EP"~_A5 pJ&+8d8 jW[yy]vwq7ו_W2~]xu%ꭨRE*TQ[Q&=iGҮϯv}%}g'3(_Cz^W8gշ_#+u~ԯԑ:RRGW+u~ԯԙ:SR_3+u~ԯԙ:~#TçdӸ=8|ك?8w [7༕TJ`O3L(Q@KJ PU1TeQR(?-;<8yc<VjR)u#fN˜)tII)R oO NVe/ĂoroN<ڹyJ6Bf1%t~Rb*g$g`$2T`ɧDv%Tb\]1Pf*1)1WJ!$[$Z~J5#jCwo:Ӄ؄I&&&&cF&ߠ|I@',$mDfaxuUêFaUaQRU{XVPRmaUܨ7čxC7č!kxXc2󝙟~O;~1kN;~1kΖ9{ɚs&kΕ9ךcMM ^5)We/VI]]ݿHngRE*jTQ:[Q&˝;=igƻ3ڝd71b:䋞08S lZ- iz iD{ôz(Cq-IU} ٟ@Q"6=~D%G6AC(GĉD qBl?h+&B.o4^'ۢ_$~U! %6 ( n9߀,q-Aa.x3 ]f"`4D &`lhDvV9Xk(\F"Ėx/ F/D0f0=`x5 vcDn"aFn"a7aZQmvjPM׵Q.ll^Fդa~M:W_~5_IW&]-tǤ|f^yv?ڦ/1}(hu\Uhe.}9+XD .F Ӹ {֢j?G}~,)d.[6]TR|r~?Wa[Io&1)]hc#9J5lO=eazqb8zqBzqdGFɱA;EA(ctXGpQkIBFz ӲL={ &9"n DnЪq2Z?TkjmPZYvZ/Y^j={ "LAY~Ə#]i A4!r& ;k]QY#Hoh9WFkk34Fk3cjk3ciks[[8چ ې*l/[njcvK{$;Pcyjj';hTqԇÊ>rr-)Ҕ/s'.Wֲ|L,#`"sd $/7YǗ N+,o bra'hA LɀL4@J2TRv( 8rCiQT(.u:R5b=o1-!&պyP:(._ybޯ[ J /YU@0b;;o1+> Qݏ})Im G.Im G.Im G.Im .Im 'H#H@/T؇6SGHլ ]mR+H@ P&vvvv펶e:ږ%X[^ogV[?:@j R]ItKX8u" ў%ڳD<{6Hgs7t̼W31g>u<#|rka #LGR@2Iex(3ߙ()?2BL~tbc!7n2l Qfݏ*&UFImI1r:%}PQvl)[J$K)Z$K);miĖR1ɒa-Nń%Ô[,wږ[,wbK`;mK\< (9v)j}_am$5ͅH ksYjXZVblH}_9jXKJ-9B$U(4QG*{'U,Du5:5:)[o.a |'S^LQ(1R(q%%bP9\L)Ǖ N`~Ί\lŸ>B:~aYaS*&voJŤՎMڱn YbǬ[w)=]5: ja^C0lkmx ° V5 6Za)3Oue٩ңS-[C>PxvA& O; Mv0(<(`4QxQh𴣀QT`g^lb-Ƃ6>B_Bp`'-f|riCh~Ho1v[4:bg8;pvaecGQ8v1Y`3>V6V X[q+~Mv&nIݓ*{$ULT;:T9%:[ [k8=.O%lׄP¦MP3 R6A.$t(t(t@{WaOJ\jX YdWYM,q&=A]5Y#n)5rZh]eCjwnwn߸ʊY]Gt#}6'UAJ lzmGI&MYHo(uS)z/>$ 39>$(< @>U[E뼯{jV2=5yO|qл{Mf-V.RG3QGͯ*&U,UX^eKR%HPjR)CLNn45/hn4M'$hgnx8iixYyuާڈO `Ɖ̥SjBtNRܤ-I[*%UnOg(rbo/ԑ~ѱ[Aj U KӋ.O/~R$qˮ77xBӔ. M=TCGr^ЇĔÂR7C)ZhSfkOEdCC iJM[[h;0G 1vKqC1 Ӣ-4&Lo2:dbw $ K\<.Vnͨ$֌LnΨϿb: WX T/lCU$L ?eG#$uV".=3LiN3kgDbiqS4?p,r:&z@9hAqz K\j=9f7%Ln ীQQn)Ő>$=A ]SEpJH7>lV~"U^?^(0J\j?Uw˸[2qw˸[HAhF1 pA|$a4QFx[:hJ4-$$-<ވɁr  o6g=L jAU3ZjEP"Jg?x@0Oh PeS%5KsY @r`)sY"f ?׆@b/KJ"J/Z@i_^eM EX.?E p|w08a"nB=lج32ԁ ٿ_p8s8HR?:`D`Ʌ#|̩5DyS.͏nuId%iAdZv:sāt@.d#W۪L OķجO vC ;^/D zp{Q/ 8W܀QtNdS4MQuNdo4M]SG( Y`#tRG9!~N+&PL|)!wmEܪ| :V"hE:rjn&~aJ~aJ~aJra 򷢾}R(UaH]H >դ^rLxG(l̹UV h  kru=|;N8kMͤ4mdР#Ex#hA#c/O moE0920)RԥnsSzM]@ TmBuZT?T#gVuޏ4' ]e8qړC˪K/2 >aWZ.,Yooox);R8Rv:m90ZJm}J,>h ТI$q&5gw0rc_eƾȍ}I*[TIRR~KU7=FCK 7ZY|]Е-X񁍚[Vsc`ojl샏0rce>ȍ} .onnl-K*TwcC)a4pqc[gK䈁ݴqi<>6J5=ښ^yFK][$ ,"QWdI2S*K(?7Kq%hKLqjh [M7(KJ-Rx -%\KBgLt_X !H# 1M?nTmGˣ'e -Aӹ%h7SizhwKwkA/;.wf+3ߙy_2q -!ؖlo6xJtiy/"oMx@x߀u u7p,nz{ޙ[gn󙙯&]n& wrZFwK[rݒuJT+-o@ZVZE+ YW`/N)S[=glN{vfd .PC'6ק)#PՊF6'ElH@}' cMcnUkvCxQӚ"BUђ,JAG8] .7Cɘ{%cטֈaOM/U~[ɾr+SăOٴT&oBaR(S:%\ٲ)AHn/Dy#tj4@0 cZM`Li41m0-iM: 3*@-_3׌u5`7e- hFWV&=Ge8*<P G7qiȽl޳>>ĕ%Wu zQ3:žq3:o?-k|]A;7|J)9Z˧hO)zÅԳԣf_C oəBFhbqՊjEZjݬ.I]z%v!x(:   u_Ѫ'~GQZUh@ul7:jyg`N/}5 -P/tyW|.ΞsqD'\sqwf]썺|g'3_ZR tZ7@Aiq 6~/][fW>x߀k ^U ﮳+gn/33_~Y5e,5JY,KOޖ嶯fˏ ЖAOx@.X)S6ݷN{6{f1;O0#;3!NS@P)}<}^|@B͏3fyw߱u,U=1>'[عUݹŮcS+Wݹ;_ˣ\J+h0^AAy* ݺPb)gjP_A`&A5NŖ1B >5/p 8c!6 tJ6sd:Z D?4#d"t}ZuAM˷4iȷ>~bu9%@QiD$YϮ+\]էEwCq;+3B;,$=W 4ǹ*x V.RtD/3ȟR2YO"Jd>qp(-!¡LZ'gأuL[YWmА bO RoD ZIH N~4HIH""S$b Py\|1qWy_wބex+O\!pY} nm"ִ@pAH"N"8XH<oXVn}WP]Сꂠ^ bTAN#T >9`m3("Ԑd@&PCn@H0 8!(^˖,?4A4@LMjȦLNSV&LO|ʴH]fueriZ?SW&.oYz`g]vqH<=p`2󝙟~oNlo`̣޵'-c{B.=!QWΣN%!Q%N{bok\ Na3~H?$+`FNn+S&q,h籠Ȃ(Lfp\+|! I rw'-AD|}ߩi NE~&z'X$ f RW RI% u$vdN^GbA>y 4 4óL ,S.I{x'puRqV$) t= , bPO"ADDD5 ١/kLwjo2,OnAP'{(ӓ[r KIYyj%<AV:dQ:E@QĎE@&Bd SHUWIH(WIHLxNKe=V+%DNY/,|vgEҬ#89ΗԼ7/9և3"W@8 ^K;/"h8i<#hO(WԤt%P(YHltQCdM# V"$%tQ2F Xi )Ka4e|i5L/|ȶ" Ӕn50M-{hd4QŠbۈ (A(An "5>YtQ)uY^]dՋ2I2IiϘOk||N|+'~R~dhrIF5Ǔ2IIF7Ǔ޺iE&$c7p?R>w^'6aC`6aC`6m723,L PWaU zkD f RIT&  tMi8%& sⶽ Ȕmi2n;4cMIo$c|˶&е~5{ t5&6&ww1}jc= g@{K^Lm>SV{e3ƅ〉ɍ  aᬲ{X8O3.Lz\8*K]QH&ADVbçdTe[Cim%]{LV{iڙf(!+i|qfvAf*_A܄{ ̩@X2"8 L3f-&H4棚꣙dIiR2cdjihZ*&2 8}8v8/`qR)v)5bRS)v95`޺O.CA]6Ft5ҧ`JM5N}`3"3"jv٩ $=3 s3n^݉@m8՞N纆S T{n[\U{n[\z199UU@OVELX[2M X9'o/Dp: ?ؘg-OB4#h"G;LQx&.rW\N` v`۵kT9g;3foF Qi5٤lRJbʵ,VA.X|-DG Z?. ZjR. jk&VmD<} 2@L$i3ony7Yo9_F`lMG^UHlC2o :#-#J0DڙvkDz]7A*_8S侒>z_72?_} @NVw>, (QU)\!q+ޙɼ,vȘjlA A*Z JZPZPZ Ca>R'`uoq*o oq*pEڟh?o Nq$qI.~[%^μO}3?..9w`Q0U `<`0\ pӮ2Euɪ(G v0$IPCIC)'~ٙ^S w}2x#yjטf׸JֹJ6pAX*yO>p-@4ݷ%ppi"r,d$[ t И1_0I8B]ԒL.tчT7echTjRUTL9`6߰@ɼom79ԁ9 լk}}"`vE e]th]S_ 83C)y&x,';r,qdg9Ynv8,,7;rg'=99gלR^e)/ Բj!!Q9)gT3y/Z99icNN555cC,ѧDc:*"%H@:ILd0$ly5gb >]c2ſA޲I :Ip'pWCIĚ+,$$G"Bx3MGi=JxDF4 Rui ;l݅Pr# |Q(NFq (8>*-3{p/#`xPx ў)Y9Ѽ67\PhXT@QQEk؊$i+" # y ySSWB]pjT1SZ)́Θ)3fJ)%;&:R1yejyejyejy2꼓箌Lq2Ź P P $ F`C$uԗ-|iD٧[žKpz.)鹤 rWb9%zR_[7~.Ü2I=Bɤ]vI޲K]$xˮ[vM޲k];{ =B٤o5yˮ[vz %zn-֦9H*noT_ cv^^޾{#dξ9NkN>e-o#iTA:&eyUxzxYgC_ 3Lt}ƝIϸo@otRIYmFNl}#{v۾=}IN9~\}coߘ@\ !piŃ;(E2 VWYJ%%ί\T=ݖ<Ug7\T=TR\8oKs-ͅF =ۛ3lo}}"@xRn'r&m7:.O'eMHaHrmmAΰ"Qc4Rxd7{&3}׸sAX*^7wv*A `jJJyHMY@MԧJW6f_1L@{gw]vv m>I>YMNINӀ{fέwڏw䝷&띘}ɜw&sZ(eiT2᫼o*+{&srǜ81'%zIsRhNE m8M*h̑7u9+#on<٭qS; {e[#(wFY>J 2KQ :Aw3=; 4`h#6U e+35D۶23VfLb+3EЫAo2S@$'o(>ľt-|0ZbK5X`Rӕ/|/:(#BoH]>Vϻn.[qnYӕe` g2>̯mwF ݆Q0 Ӝc2bawAKi9 ]M]M]EV&]͈VЧ}0 Ч }0 uI$@%)]Lt^~y{e:::E"U4"`t˧H$) -"ct o( n{vk S@uO0=%٭ggvI0_IUĂ]NKk& @'[BTn|rS[=%@Vɧ(*3f)uud#(.4$@-46V1 $1DP}"]!p"X wJ6k$k&4>8N88o¹K¹nZjѺ# =+ (}x':@_+>Sޫr?HW׉͞UpIس c݋$X".%\Rm@=ֽH˯ N`*^ޚޖQ赚Tȸtn@   lFp@ 7ŧdwb9ts߉4ӥi~'KNL-ÁP% ՆK$,W|Vm#:pjiU[6t$em3,ISR1~Jj..Ҷ嚂|JJYD?%5rJj/rM G y%,z@KXi.0숶W= YҰ\CYBx2Q qaQaeRxpzmVu4= Ax@8)<PH XՂLj|`W( q"iRSÝSu߹ߤ.I]fق{d %,q??؅{'bc7.>pmPf[eP3mPf}VI@et ]3R\b.eTZxw|W0n^ wz%6dWUn^}_wzw^eWyӫ{u3+;G^濎`aʝ$,jaʝ$,jaʝX㰎u8n;fq'3y_-yKo[zK[ޒq[zҳ-[o[z?±G=Gc (=2P{d2}*o> 5("o?SUJŝ,&q|]?S޷%޷'wdNy83'7dcHU^nv *AsRǜSWjAM]FP2u9)˻ĻĻ/:9gɜלdz9}?z-K`a]m$+4%i $oK⭃hۗ-Is[F3YdᾓZ8?B>51zH!Qk&O3>{~R˖lKyo[-ch, !Rs>H"5He?%2#3˼IUUՒտ▯1̼W3k eCnA B*ΉՌa̜~Q߆1P~@mCawX* 53^n8yK2ɜ}ye w& ߕ,|w= V H *Jy22^«dUkUkUkaN,8#>b%GrNx8C鏴ϕ΀$}p$s%2 UovԙK\^r58.EJes_@M\N$Hi F2/NAV1H=YTkR^&^a%Y6Q#MVjW3y/**wumk7*H(sZih@u6:(GQGdkQmh=3ysԹ@m uHݜ|@Zx6:I E>y4|vuq#.JxQ=2뢄G,#/Jx2MP4E41XJ^Nwwy{?zi?R!H#Ei?R!H#Gz ֵGu[X uGXw uAK^zȓȗr & P)&?>C<"|)둌G2~#w;w4Y@b& O"`ے8:yۇS-éјWOh  EVYyG7ٳdVέ%[O:չd϶2y~ykgoɞ'{cϾu  (=hTV FD0F?Zjj#rL@E*=K=k=[=L.32wY%nq5+]q$W\7.+ݒ=wO#gy_I7>%>5>l3=L<+ds{rQoݒZ>> Oy4i4:%F|GSPʣGS-G\y[NM "-xx˩[8Qù?nOmZK:tn#Wgmxd7s;sm{O#ٳdϾ{R3~ށgw`=~ëȡAl U:hPc%PcgP'_P3F=k=[={=3 h$ܳ03;zjTj0 F_~G:}už:B_~G/ΣЗ_Qۯ(y!鲬lGT{${&{%{'d7!݀+= uFX,vaYnu `Eʳzp.It۹=6VyVLHZlP#cGDzsodȾer8,7;r,PO#RHkN"D_4*iH'󾉷o5awט]^לD_si}I5gdS@6$įbb0N1zE`a=SQt 0NA׆{K-?@i}jʣh?6*K3e,tQY讣]Ge ֥?E(`j֥f J< & ooh&ΧDj:"9,9)rɖeN$[R#9A.s"YtD)։)~ ^7xl:o_R;s_R;  Bl!u-Yx[C𶌇f=LV+Yad}VٺlIB8rg&%+IP12:m~G ~-z˭r[z Vo-Xoނ?`,[zo5s]##kzwTn09{w;⻎]cnkkO1g_sr?J_-;4 YC"1F:ݔnJ}xh7>|' *~P,w?J](.w]F?vu~ ?ze.cwH](Sƀbϱ=)ey`)l2^9G`U՞T{[9sb{.lyhzaK;884ùl4QzdSy p#4x)Ϻ>H="'2F"8 }MiJ'hLS:Ac ӔNЙba ӔNЙZ>Ag* !ڞ9imHމ'qPZ7qPZ=P?Q8>VNkGN'-NZ;=Zvz8ihq1+_;; ӻ ݅=齕)V`>vZ8+qZ8-TWaXHን)YJq(YJq(YJq(Jq(Jq8Jqf ZZyX4}}} S?'LL}iFO3qZqcc)Ԑְ$@)%)M5,9#5,9#529#'B{hq"'B{hq"Hc{5XR0{L(L,L*LTk?L1Z>ha wuZѻ:]v;WΏt*#|ʄdӁeB2@2!wu8D:[X w6/yƾ$gK Xxƾ$nKrGNIH ى:'1PR71PRh %׫:"1_ ,E“S7-_hWS}@~ɿuQ"RE,.uȻU<\6׵ m(tlxmy4uKle"jEkŭVV[[\q+-Uܖ* nK+nwܱVpǎ[[o.˪wY?epUeUwY]u Ş0=a2G#gf> J`V㋽g^՞=.ܧsǞ[b7zeR'O,g$b3 Vb! N9Yapטm/ohZjap>^[[42ҏ^y~T;iM+"iM)N*Ky.1]0c<`tQ'y9Y⨓e~ iKcC<0 :zoI zI(^yOt@MDDE䃗"~_ Ew©nwlwlFlCU7bpjFI$6&;:l{h`^4hRSݪ lE{^4z]u*M BQxc78gx'Y 929|4Q0ŜpNvܰpÎN4MP̹w1>Ŝ~͹aHubӋ(>Xb gpNpܱ`{ 7;XB|-L]';4xW[L{OHn'{Hs›{O~jGצ~(e]3@κ>>C=H]#e>r}+;&]J9XumVEǀUc>P0BPz(^%X}.!]&Yٗ"R.~>$rq\-_|*"\M;b䇪&?T-&Ŵ"JD4lu'擘UʉA@(bu{R7"0)goFʧ/rvt1ts:x9\^KYbnUE8]*c"ǎE{XX*:&[R( v7kY|p:p:p-bWرȱc_c">@5Ŝs[yklVb;,E3v9Y⽲ l 3ec0)m$.+طb{WgYvu]eWgُ,:ˮβYg9?Tg9YNu89[y3N88ċ/ΈN_sP~Hdǣ яN,X$Fy(;C]x<7S_D"2U#2թ#2U.Vt3k_;?5"! ~H.\Uzbi[˥F:ϱSaקZOI^[hF:ql4aC<ؑX:#ckI!'[D#)<";ODDu""[1H4DdbhWn2А#QQG.]G]F<) <κ8T]n(KR8⤋.NO<^Pw>>-%>{R(s$>gR( 2(1\cby9KR83"x3i†S͹n5bNhŜЋ9a| f'cabaqhyơ zhI^,G޳`UT [,Xbӿ4|e3νe3R _!(F\j #{5׽~lFjaǾ`Q,w=رe.c\PoRlP,҉/}-$™F֙LZo*2kݩȄ0"xbDko֣ެK YZe.i-Wo6Mh?4Al,2 '}E&\,+2ba_ @ljOصZjV;kG,5-1Yа_ \bcpEILVdB&"*<Ӿ"?E\IP6ݡvjvZ .QJ[>tYDqYDpFk\3ZAɗ̠S"ʻ8|5< zY`D2PSG; :v$tH&ؚLбS2pBE?IߤP)D~Hd׈Hn؁"$"$"$4$bR`ߊ;v 9@r$GB1Ŝ|iCTxo؊ (VYXk‘)oے 6%Az-(mm ^ ?Hg5/'Z2B,"LV¿Ǡ'4Cаh8vqQUz{FxO"QI$<=Dg'|xOA<}>Vl,ؚ#}G@:$`Bq)3)6ׇWuJ_[;Z|m񵵓k~4ݵZ CPZh? jQ5`hWjJ G$I:55 5 uimDPw?> R%..9uuzɩ;~S`}*žqᓃ߸H ΤPJ UBiy+sz8RI%NJ/9uF+l\*՜+vkkkǜiOR KcaJXxDFuIZ"}Ul>–c£ ^,<ƒ.&"2:'+a`ʊdɆ)+RV$LH6H6JY;"9vdErȊ`G/#7)TtL =Ů@6#N}ϸO"\jѿMvoSTj6.BKݪݪݪnҞR0?4 h|YBzՒn;ta,IvU5Q>W)+į+į:]!~vup78}opr#IݮNUw:r`{9=A8.q\,OR7)TtL E6S( ̕5ps,IEꤢsuRڹ[̉bO?O:lM^sRjלkkkǜI|,L Sf3:Wyj$y-Jo(q%bޓǹrPdX KH!n]ܘ+ 1W tuc.&,+b}*XcC8؁F'GNI*ئP|&|`n1OXOXOXOXLX^Ŝq&w>>XyZ5ŜgsYyל0^Zu'+)#o@q',wZ=d0.…"&|wV T7 ɜVx&sZQi%$lBFؐ(N $b[9yӦ}X#[1u5u+n-.^啵 |WS~ʼW2#}Jg"Bݶ3'ݡ.;"Gv#"w+D8 l?yb#4^qKQ|pMá7 :4L-sUlػb;"4G_Y}egE,weںg0^ V!HRH4у3ëW6 ë ssV̹ל{-m(_QtIǿSMDZ@I](N-NЁ-Ni:IZb}*})(Q3P3P3P'3P3fS]Ore5PkXC:YcMvƚodձXv$I8Iz)OR|[uI9%J*ysީ_$uFaڅ4vkʞ=]UfOWӏӯAsg~p=lI,mS*Q"HZ ONBU]ҲjzAQD'z`#i> "iJB6>lػb}`8 GG\8M?0\vq&( nVhآc0!_#0D$_uX>uX>ul]> 숔xDJ$~BEǤPf Q޻p;9=C}JN*)9اtR0Ŝ|ر|ر|غ|ؑ!#CBbNŜx9~sPn͗oyX{]՝VuU[{YzA{o(k㉔5Dʚx[(޲G=BOܣx(^yo=x={OJkL(_o)_oף.trR9~r)&uc'rNŰP>PR^s&% uPX} =_%痒K PҬ8F'~JaD$ouʬ䑼eF,JS,@0T74/XrͶ2w Ͷ4iL D]{2kH-Eiީ4Teyf`&S4fSԬ}FLqS6w"͇ϣ5y^;K"GF#4ƑQGFuLoa%`.u l6T]σ:x:2jؒBA{u 8MT4>ۚqokvƓƛ3Fʗ1!rG5lVbuJĤi5!VDL1ՄXs1ITJ)[wkZ~7ִRDoi7Vs.&:vtƎcGg(}x.VuXI.P7<ؾI8}p`& vUۖ]՝>| ؞.8=]p`Q%]p`x}'~BEI*@S(]{1'bNȸJJqo{P6/dL {6^skz9Zǜsv9Gk:7'7 I£y I't?xJ Iطbc֛R;x$1*P,<¼qImKx㒜=jaѧH$F=&w+ޭurz6 Hػb}+6~W{+ttACOi\B849 s}n%."|7 H}93s(O߼ໂ ~+8~#뾗%Ⱥ"뾫N:ϙاbߊ[;vʺ)뾣G#m )t׈nȺ"뾓Nʻ YQdlػb}lLY{1'bNŜDmR[R[R~Kj"zO5=ΧϮSd[R{'b}[,@pppcamk!GFѣz)cG;gH4Eca3$~~DB]лvD;:MxĦBAi]?ڋSR%k4AO?AVp7FT\խV>Uk_SvFk]N_OO1fF l,ӨnLueSJ/rM. `< HWv]}e?" <6Cv8s ױb}-ӶHCGGR( pBiq]ŜF"n)rtИ1I9/:%RDŜ<5gʞ3eOrٓt.eOr =0ͅAw7W;맢IEuuuc|ՍU ~pH oq3[fYe>BKO#5fq1Y|=nN:"![muk\P|s|}3% }QPQm)S"xʧJg\ݮNUwuXL[1t{YLtԁ1o,[ځځځځʩr+y|e3c бXxbًZاaY9K?gvӧ| | V/\sbε)ho[ -\X kLF|  `5PZsJT+~|EN!곉`?04P3 $8@BЎ3 $bl9@)eI?4C?4CWfͨO19N$tXi8tXi+ saatVFiKy +8A!aLrzfP$稇aD9D(̘ \? ҹ? !ռجfJT4S2Y)%͜OiYUy6BӭLT)o㘼L/[ɉk[z2nL}w+4:=jN߿_t/:!Fyy9!/XRވJy#Ny#My#My#RKY {WSFxa)rl)rl)rl ,r)o.p 'a+dGIPxLnKJ)Nf8.p"&wcЦ 4K75vXfaFgtAgtAgCgK3|ͧ?,=QI.()E! e-./ Y1HꠊEBbBND:bU))̇c܂*V(b)Ř>1'}cN8ƜY |WS nPs&nR5+4f((U"fa0)a뾥3'ZgN8Μ9inn |৚ԏdx,&tj1$Bbd#rpW.}. 6?f+f/(N׫bCT`_OjgʟS5}/Nm.KVib`&Vib8~*#@iJ4llN41)+M$kRvi=YSߥqdMP+kT6рOeӭN&&&&Moq]tJ<$.8_Dߧ/}T}R}蛫ә*ূG{fT@AH3̪>Y7DD'5J+ؕU )fjvf]P3^ -&t[M{׷oH5^lKBKAKw^ͭ볉0 t`nEL>]hɧ˺c0tYQ".1Jn<-nqssNtrv~;ta{~i4~hhE&)TrzJDb,O%A"!ۤэmR6T %ztV'RI8}R~b'ZsVuX.)W\]1N86T`ZiZicR(Oc+}R[N%1TaNO%쫓A"Wg$O l?s=P$)朷sb1j_snn\(`e7\S_|*k_uâZQFêP~t#|<xnw]eWoُl(z~ꉧWO>q.@OIMݞ.I=qŜsF ȑ*IiDgtG1 {?اj΋Ŝ؊9sϊʇX8cbDcbyG:m0DA}L"ߌ@˰n&P|VQ, +"kH$ꖵC$u!:n]+]`[߄I`{o.A yH E ۚ(18/ d"Bw'lOX؞" EB-B 9,(MIU!>ft cF'0 է}P}7 է}P}g էkFMcߑ I`ߕ)<:7]nhŻrCpK҅!]jW# |^bt1H:S܇zE-]*س _{t`f O7-[Qfk|~>l>MAgk|ztR֧t}YJW)]o~lWWlu*U7F\ܵq6X.ZNۂ<`QgGД^aۮl~ضk5ځ6#(ϩ@IJ n7SlL{NW7ubYVnfmpӶO&[>]ž)(xΧ`9| )2O |WSo/8ww^}{ uE۷oc)ixwF gOu,:yb9ѰSDN b:˜h/&AN,\VeubK"7Gq2gQ&c9d1G/?_t/:tzk_:]6| )^ͽͪ2C͔jxgM֑h) @"*8ܝ#jizIjiͤPKsT5_/fyG3`&?fL^1HgGZrћ4fiEҘ}%Lc\:ه.et5C?4C\?4Ox5sO1<:P&g1n5ǘ}cYsgsϺRk^K|iG3RԧXI9P8BI(!b$ G? #=:_:Qn??^ ? /K3|ڣBҴTP "J9o>hn$fO )2m l xIw)8T:>IbߤNIS[baw1c# 8c蜨JCEwr u<1tncl#(b#W:JU:JGV%:jNYU5_~hL7h??&5u-qlFY$< ]-:Dq)UHrGsX4-F¶ rodlH~:1.K),/#'6dі D`>XEh 4KʩCY|d暾:sn}e m.Wp_ns!ljoCNpD\Jv@gux׃>[Ml7ߤlTxv{VSݪN+;d%lۓmOVh.]8zj ާ΂}WņSj?uOXj?OOOʩs\ulOԑkl``H(I)4H(BLNgJABaONgJA#©Ng[#W:E̶9_t:WC>~h~hK~5UdN9tg,W4fQNoN?;t+ݜ~vwF9=t\qr::HbOas-ǎEi&P4W3%~Cw>LʇeXV\J6JHFi YZJԭ]Oc%'o{W޻ޕ~xS 66M&g xZ|cLvA*O}O}O}O}L}nߘn4Pw>>~z-Fn7$t [p(vz-lxC|=bsI~]?jQr'QșqШ4'FtAtACK3<ͣ?">H~C7 Hް$c $* A"!˻]yNmGJv)ay[],@iKm*epJl'Vft+H O l?&}-_i/CY<|Ba¹'E לZ|{)1RbĸJJqKY: gVZqhPZ*nx We -y~GIKؽ8 ,Ћ@: 8;5`;RmGV&u+),F+FY vd%P{|O !?S7(jYm>cWfY}e>B[J2oa2oa^TCd"s!2:"s!2+ %owN3{qaȭXV@b8_+|- Xw+ػ=lɯZ" [,ZGsC}1 e0vm*ɞ.9ӥ<'{縧KalKVtBӅ vtfpwNToщgY&)l ,lѮˠ|a?%|PDJwnD "?4Ntuaoϱ—!S)1uG /)u  €7V%ݯHໂ ~+8~yDo*Cxx]IE]IE]IE]IiHqR?Xg+9+}2}BOBOBITMT#&R\e9dM^`Ym2 e77e:&uM.M.Yv)o'D^[STg9Ynu[rx4 \N)j[~ktׁ]Gх:v 4OJ}W)3EʌmQVmaV^*(QzǞמ]i-i-iؓK=8 z02ݝZtJ0N`@(ӁPS>+r {={(|V@>+ ϊܚgEnL$"c)4}328 ]$m]$W5Fi]$u[|xaahCP+)J BP+)~TRtJk%o%.ˮw 5[kxP05gZC,ZsV5ZseL+ҹ6uÜ<~78woopWbņ+F:&tk-ZK񩥘b;ũ[ T@*ڠ!<"梨Q9)}cNJ1'厊6HK5G>Q<<=\]Ve0>.W({ >p8rȣH?%7W3:,D@u}#:E_ Qֱ:8T]O8ʲO~M\2Q{]] vu'5ƞ`ԍWmLPnN xt\#ΛekM/6>FW}/Tե'Pow+ܽpR=ƶ`/`l };U߭<;x v |xw<'R4'5ZiNjҜhٜ91z̭ss_荱ºu"vjwaw|N+;cG<ʼ4VD[-V[Z%>Z{{E>j|W(4؋`NSN٠ SjH="zT)3S`}*Ŧi b:7 P3׺3Z>7s!3Kݢ618">6]W *\a}GipQڧu޶}>\}QާCoۇ0*n PPk*Ԛ ZSwGMoM?j5uך1$̩.s˜eNĐ(bH1$cRu֪s[:?UsYhtj]>6<]z{Jpo.~{lɓ{Qql\6twLVUUߪZVE N,ǭVkqzj٭$h(T}j {czZٞ@EC$=kOkTL7L(ls0F0f0V00>C0EeQ^e=*Lt9l6xew$P2;cQ(/^5VLQUc^-NQղL+9vcGoڛ:Z6D7y7ԝ@@ab 7W? R:t0K`|KK|(UuuQ,g\y"k9ΞHOv!u]EHwa$(~b}*}zhR왁偝XNzh]C{5CX< kZ=VO|'Qţ"اxTDx?EO[?qoĽsn:=:=:=:=R:=:=GjkX9qđ*\鰂$Y+LNb+L-"bAj5sDNNgi٪9tgh+Y(JwI9U俧9yusCFCJgмT> $B>U |4Ѭk23KO)X$$:KJB"Iէ୙\[IUI @$_<>']AhLb.޳$1yKYHXne ;8"vpEJmԱnw1=c`{"D :ߦNNeVŋTAPTNAS#`SL|,51Y#eq?wG`,5KhnK)g!-%aPDBHiHIH)HH FK8 36<؞9{Z~BEǤчvCvw5!žAv^;{֐MgaJ¯ui]2msjщs*?M`X4 ,t{:h,/DER("13;MqMqMq36<~eR˔aQg{ٿ_s*6T`ǥ~:&ZR('A$Xb_ Sw*-vؓzSià7.Ehܺ뭋p$0nHPmu 7nJ?qKgvj٭cФc Or![͊ R`#o4a+I(KĊEJw1Фʇu(?&:Й~Y@D~@ge=$:"Cr,Nˤ T[xNE|^>JYPІ:6ۏ:Oeطbc{[sl= H*N U1(W۷pŜs-Ao R~ m[hфbι+طbo|O~{B_sbε9|͹t+ߓDn|O*&_|:x,#Hc-hH&Kh֦^mث {?cEYͮH|$zK D]#1}+䀹C)]ߥt-]דtj^ԍQԍYԍU7Xnbq-X,7rS]7֊+Bd_Q W ؔR"X"X HxtDoQ.1[zۢtIjmQ$5޶(]@oP[1I -J E L;_; h=@Tw=ĜR%M̙)[Ĝ%M̙)Yғ%mwKI-]6Sn//!6Y'چS$m(S6r)D9ʔd~^'~ҍT ˯}'FY~s~WzM(vKQ0M,v" n] l)ECD~4%jMaڄS ޴@+,:vg3+z^M.69b&^H%ug)]WjSn/_ xq< JO":U(BB1vG0G䋃E#PX܏HRy*Ghֺ ,S#[#հD@&l"]eAozA5`# 'PMF*>W:A%OmtJ${PI "P6`%t0 kOC]K'gd/1^:I@#dey}!T̵ +>%sigٔ\9GJ*sM. nJOC`*s*#݂lZ "b!7PtQ`._ coō 67.tzܸm%Ku~8 hBЁ(`:+:|kց:uҧ|mI#yΞ:X?[P=*frY7ih] X$Xzŋ"C_ ]Fa[4@ljEd ,>#rf}~GyqF_q8ے11ۧ lI-Μ(XgN 'Jdesp*&y Nm|~Edn1X$LmЭ).۠[gSܫXR`xq/Q7t=C]\ Eģ;Dfٮ?;ψPaL(f̄1aL.s0CW 4 P.&5bR Q.&5Z$T>'c;θ;?:*vPxOwvcيf/vgΧ<(ο ^yK'B[h~ ͳoizRzvN^.edҫoN0,rm޲Vr3Y-E9}y[7/o)@Pqny{[#eF\Ua ǽq]Xq]]{+q]۹|s:_O!yl!xmq(qE9Q^4 ܣΕ!#9{sԹep `tNF&`t0qԹŽ-qŽ]9,39Mk۷(olֽ1:}^^ۺuSN21 q !bbK8ZfGˌ#hq&C-7_B/5CTI(ru(鿒P('rc$"T¢)_FJiO"_ (ww']Xs> ..?h?x Ty$ O1IO#iڀ=AkvI4Aa3#H(xz oߗ>o䚰 /ׄexV9x_IוPbk= szȧz)JHxZp΄ gOexʪO"Z@BœZ@xVg8^:^z|oh27a j+@kEP`t`m)k Hٟ 0(y@'t eH T,.MS'^,pc\4exEhאw%(y)MEE)0QUD|94L" !9|Kn)Nm5'Ŷ-CԣCѮ s6c{lxkl[xǶuj)Jl(ΰv_ =m mBS^]1 $3MdufȪnLJ 4P켠b~GytY_A2Ѯ@KϩBUWi* hrO+7[SIvCOJZ6|k* h]$)Tqִ z\5p'ӬitK*@zKS*zrS4pT? E? EsKP5K%jO|k1ѹ9,fh4 EĥY .CZr!3A$*s$<0P@05w$r"20!$Y,Pr)sX _S:J,a: Jtݤ@Wc_WLF{e)ﱽ(Kysza,c>X`2Y>}Wk>EưsJQwK+=zg()(W _+):^:Q(+(AN@J Je>-Ki"AAWAV47jeW}eܨRuߣ")Y>nyZ:nJ}uؕqzWpB(yGyG7گn++C Tak=*BuPv%23K*-$PN[[눭w}էUڐqҸJrJU K9%?u4 "X& vwA)ьt0xF5ǣ@A@>&<02nbutDۑ@G݋? ih@hqp-B0? nbpjXp&p՞ qU ϣ*C.TMȔ.JjI|QRIX$rb0ʉE(' &x%zC^L?$nABN :KmDhQVWr(cUF9{'`T998wu8q]+Fc0vep*[EeyިQy\F%pSުB}գ؇^+Fj]1b~f7 gvm&&0 BK{\ZJ5N-1ܤOb'LwKOXf&= ^*~ioԍ 0y_3@5ܺ"auK׬`ƾ 57T~PCknB5OgX~gyhtL=t+zVБVИѼۭџy[A?8ʬ eV8Z[Y$Ux w'l֟gCE e9Y̊0n "4pDɣ08f5ƎlF-'MdדdwyCnV/a[M-4>e"rCM[i|~K")oЗ- o߭wCv蜇Hitʳ{xp %2蔇Hi4Ey4Ţ*xԘՊhxâKmˣ$xԘDRD3OaSvߟQNI:LNǬS-T*I̤Q }i˔u} zIǧk[kvO׶X`DzamkҮֶ6zd db80?\.E_\.\$r]sd 8UհϏYƏZ,jX%/8SHr/SHrs) $9A-HrˏGF-s ,+rbi3ˋpbSMD1u^JHemˆA1mtF tŖOi[* 0mtk Mi`u+gSRiF?pĊ=gvVҷVJ?YAf#+4?ZS.kfV岠rYrRk X5@?`02Y~jϫc mnඈ[&G%g%W%!-pr~kXV^̅wPѱgق*V-fʼXrmrȲ뾍rC[^ߘ߆T2 6 pU3VӰ} 9Zq9aZmŚӟme5'?ۊ5'g@{ 7& %ٸ?~RtY$/×_WL%\K.̆%avÒ0aɅkຂ`B1casl# `m!̡090.+6°Ki7o,e6- Pm旅Z>\cfk0;>ηyjS1-}l`+7Vo[l c&[V,3k#4ٶ=Bm#4ٓÚ9faZO1=mfsiSœ H@2XFL&veA3q&;LZ'ǙNNZ'vǕ6GKw㮾|Zgf v68nep1!s VA|Xb'7Hi˯,ZZ[T-ӭG#Ut>R傀iY-v?, ma`VXfDmvr%1ZV-J2Cc,˾>XPâmnf.Q^-yXM z lgu3F:c1Ag?c~\ <;t3F|a}PmW w;BKeKZdZJZaRJgJZaYմ,Ųiيeq(W='Oz@g @9%yR!u#G"D ȑkyҲTF pDH*s; a}ᠻV@zmYO\Ǘey-'{@(Eǒq- a$ǎEpj䱣nkQs,J鶼R-T2gڂfծ-y/= [^)õeo%ϲc8c8k+-}=:r.sۇܿ,et vqCȬ!IcI¬"і!B[w uĖVƇaa}X/ p0sjz6[۬ubT/,ҍK+/,%#< |zWt(?~ (".iC$ xtoW[O(HW0Bc tR ©X(WN#b9{ٳ:={ݳ={ݳj YQZ)&U[2SdCH=,Vqv6j Gۨu~ M $Z6)>h٤ hi_hpGôEAMf6TvP3Ampmp? n!; vAzbѠh2S }(~@C?!/kQ[Ylw1>Fm]deMd:]06֑BeܙuuqwVBXm>*w,͖t-6[l ,->Xehu5jۭHحȑlȑ5Mu;-d%i &kNK0YƖ`* XZ(հP:c :S:90] MfW#w--XBc}}8mvȷQ^fbGG21>,~agQy[:D7KUMvRU`}T͂EVnRrio!Zcn·E؅ooWE47 Tf."Ci}Gv]CtPngr=jK,'2-sB*rUfTB8UA-AD\"5s 8"yM$m ޕ!ݺ[ϗɝJvo0hTQuJ v{cWFV>o륜Y<8{4g`Ά9 sFV>oV%MY§vC{Fv[t)e㨼zQʥcjzx;y{ż~~~-Y:JCT UҰL'G?DФR!p/)2q/)@ M8GQwu[uipŮ fr27<(y+_T?|%*9Z)3`NI+qb[u+ߗr_K n=pv!BǍ`۽ӄ|PSOj3PS.TWleiA ㌝㜮tܩyX[R_u/|# FZבmSݓ(g]#'T)޽ ,*lB fxB^l{3*Ϩ ރCp_Ӭ *P={f@ҶE o[#l9P@} PY#@&nʙ1 QIbϘeH QPŐ> QۙbȀ*jz4{X heL{1mcp}/zp~=[mڊmV۶O!ݭv[)o+wV,W(W(W(Jj>| p˻_},)]o+V([Lա[XJ娱:4zQcyh{2ԡ'Ρ'VQ]&̱>0`eLXR>`72ne"qH{#{#GވѾ7{#ؾ7{#joQX`,p|000w}Gn\_ 00wءYXn{b5rkhߋо˭}/[}/[ccccCC~0000000pyھ}AxhІ .h rsB?Ax  ڷg }{ʀ۳U[CȻ 7;r(ھ 2c:r/]:6ӡ^Y/9XRӱT+A#و fFij@6)>5{+$*- WUо 2Uh4VU%)'GAxK2D ̪OU$DU$KLJQkˋ 9mkܶmkl-/>,o u x ~CYer%QQ/zediÈNG#Ji+ \_ ?,SxXF>j-#rc3;J+חc_ɾ#U0 q-`_^-a<8L8ap2<08~A uq L{GǓ] Pp#^]? !tDӽxyOdȭۻ~"C@ |MڞM7mkSwTn-`KR4. w)FU> o}{{~`^X׈zXp,']C]ȸ5ymլW}zΏ1-В Lgu7[u7[u7[u7nj.VpRfOzիB>nU>V@[eQ X7*> pkTSSNᘞ!.wE`P.?*2v6oc;jEF77D>z0S.DHޤG՛hv?}>rˉr vj4; k섬k;njNph["\n)9DvqPUddauw@vqڤ.=W.Ǖaqer\ЕaI,nU8Fw)A$z` 1{`<l[<%,"pv}(3%v3z>ī4Q-ӻU"*nȀ7.~Z:76u,pֱ`YTuLɱ!} *:&TR 똜RRn^5uL/xdululֱMqX6YǶч:>g%"r%{"ֱra{!B> H.#g B5Ja{;#t/grrT-yޟy'b'b'bo\r2.ˍX̯mbL^hY pty*éapj}X}*B{42/#e!ΕO$A! 2[ I%s\qaZ֩E8aZ2 IpvHԖeapzuˀ=hd|_FۈN댚<z~0leL|#leLq2&8[sc91q,$d` [,~F3s0D3k<9ο`Ɩ ̦mPlږ '˘ӱey*Cҝmplˆs [6$ζl(Td6SVי;Fϼ1:#]vy6sƱz8V*&ô}χY\hVsCYZq(XIX!霒Xg~з@}}۾|d62[X_aX)僷5Vk+bBF)eĦЪBRFh J)ZeXSAoaaW2e=̎f`fwnJ63mAbA֌C5c!dPH8Y3dC!d-+$\_7,Ue@Y=5"@ ,|Qڱ%0eؒpe#. whI8~p2z[K!җyKlI~T,;a;d%pBm3A[=;ŖuN%:$zv- CKªG(b=f K-aXx$̊ fGSD9r/|"ƚ ƒ49ru]%wm~8y3;bmã#p0rX`YNˀS2`i;@̇{4#-pD4'cMPV3O j&(gfƘ.pZY=1] Nbpz}Xw (}<ܣpF֗ad'etaq./* Jo_zF7;a {t1831] άˀ32e{422?2"}գD,OV}M"KIVIL.%Y^']J2Ndz!]DtQ6q=t,+Su^&5DzXű8 |jy ɽ@303 30 neC)SvLJ,iD)G"̔<_/O'Vz] (&f#dQ̲̤'y,be*mJoJ +)94*'[5[5[u#dQ3{=3Бuh@v&agAXf6XIP2W4=diɐ~&C_/W+˕|>.f&NZyou1s0ݙYLX;>Τܙ}GȺnyWȺnykkzZȑuΠ3Du<|!uYׂΊ1G2 }Ҿ\i_/W O 9dŬKȺY-"ܣ;1ѝE{tgY;2?,4e]̺fYuh>8#<9YwGh?L;@4 rͬ!Z0f YL s|$Üd_/W֗+˕unʓ0P2n(Y7̬Jf%3f6P2íbZ%;wpo2o#%pq-Y,ka,k 0x`8!\qA@8 p,Éf @+& <Š283,Ί24 C\ibPP;, o@L"̊g;@$R$9ܲ ,ael{,=J^%KQ\˝wWK@`i`Z`Zu0%>A- &C@r-pKas lSK!%,`VH0;@x.qP r8u^ r8`!xLAIl3ټd$iI')IùY`p%9H`9 p&<" ͆"9͆>lN2<\$iHgfNg3f ӹe:H,`vf`vgWnlh|"?A*j'S@;9ʈyMqLr8 Ug9fŮ=LDN°kH]{ +wé`ή 3D4*O|c!]{,$k]{,#5cqH]{, 3{>Ľe?cמ Lܵg`=X`Ҿ։':y?8CQTWw;boXnS_B.B iEO.2u}6"`|'?F x4i@6`Q"{" K~:cN*]4dg|I3+H_Uŗey,,/z[FF02ˈ1+OD4 چfz5Y^mX6c5" ʟ :l sR:=("Zj")h;WJWJ4#Td*!w{nJk׭|_wq|c$D'@S|yh85@ƙy&yj*i/r(i/Nr8.78- \|C8.w8q\pظܡ>c -?= ~yR<)_/OۓEgȪ`^dpZ3|ކ1fgP-M071Ak>0pjX: geBYhd?܃>aVlڙr iyR#-FZxOŌ@';pžW ȋ ]X N,/J Rm¾T3ՆHE3z .[pfHAB :8q6!xxf375Lƿ3GtdÉ|E-sBiX^OO`yO`u}yܫ/#x^4,>-kof9.ǻrEr0z:WʢΨ~}ΨcJ,Y!P8 B8 2Zڳ?ZkESoQ̎rEr*y&9<Λ(f8/}dB[]O_[mh`}uN!X]+ߵ]+*Z &A0,hP%nOw2 w2 C[fa|`:}+웏\a|  #W8V\H#bVese3*cx,f4Fs@`4vsw 15׼n_}-k!XKyEJfhPJf 7KI-_h .t0WL')`MߨG|mמo_{yC qaT%P(3%f㗓y0G2e^4!2w3LO;k4vG3uow491u0{~c` \hUuyvFgBˁ #a[ 5n5ָ@XVMvr}Y`hPf4K(+%fC >+_tckjnlEMhP)ël֬zjWhXءaZ<'U!|5o_xghXwy"yGRR4 (%GR_vkrBU #B?W^.8 `7>gLu !BFdidNwww z } pYC/ g3›=/ nV[H`Ո[;P?m۶no~{Sȋv^]`5ޢ]`GB G#ÀaF(wGC8!0f0V0cf;afygUwyLa H˩'s= s? +=nx.ֵ尖},`y|YoR*}>6 ?з h|˹Ʒ X\-gD 0?, T ?A=ZVYn5ȬVYcehDr'̰xO[╬ &}"E4i لq0獕Ha Y0% WB|;bsYN7&" YJvV%S!d*rZ{ֺݻ& ε/lYtc9D _ζZOXmYt[@ʀo*#ȅڲ((䔲"jJ6lN$>Pak5Qa5@7Zg'bBU-SgUˬYj?uVYgU˨~U'ʷi|ʷiWEg[dYȕoehd?b98pѶS,'y{T8Kb:o^:o:o:7Nnk5 묶B- x6``ـN!!М+OU82 o!2D PH=>@g>ײo"겣GeΩˮ MF2b ]bSQ%]E"t Ļ Yio7r[t\e"`ֺ9[l;Xԅ^nrGV/KL,po6m ڀ;/ίgP>OTlkTl5YB> B>sB{amރX(k" 6Sx9g17Jd1/d i-C;y!S"s[d|Nu ϩn4Ouq/>=S:pj \5"j \=552,KH//X 7b2̉}p3fl/^(ͰS iojOڂ B2l愠e =˽۽=f )-+v9KyN/oE҉U!KXZXe,aa SzFeEOХ'r|>hQIt9I.hqn]'ݺe"OӟOWK ufCa6زf{-e0k.3^ s9\ &lBgWzL[3p8"UsBI;V~F갰X7_Sfc@exxo)ob2%R2$B2#Q:2ƀU7m8=l볒^}xPT< a̢E*Zki , lV̢U(, l\̢02 L% xzޟEã:= Qˣ= Q0Fa1 -{ ŞQXlbݱ1i^ټ?[D js/fQLY8*bνV%r! {8*bν Eӯ*fp_yňm&9|f33I~|ܰ|b6zPzPzPzPzPzPz<<޻N(p8pbĄr_ޟxv{K:#ec\& rL:0u<69sJGH@8+);ǒ_$rd,eSuŭ[X-l"Mja ;V [ٱm*5 r5bѰuQ`[",tuKpl<9[DO-n w@lb6غ_}S qt*֭RZ†G@ `v<59@;QEnSZU{^ƪ}Vcޗ9jvZ U_0enan۸Bt;dL^n{GȘeX#IJf`FfxFuȘ,LcYƐ J4:!u4 mga۵P89Y-NbVnӤ0f؝IZٝIVٝIbٝI&wgn X>Y֏e" O!ue\E@8"`QxNw`\>hrD0/^-"EaW06Fe} ɝ,mLHdYf[ɲ̶,eYf"4axx[;pmY v#%{GG/mTb/Hc1n+Z)}ׂnz10.:×>Aj ,38.V6gS+OH f/-Fԫ,Qm}"LAEJ")ʌj~J8?H]vyN ښ*okn3_flejEX*K*}AQ0WL|U]uv<5Mqw[MnlKl-I8mYʆ;ڲ$9ڲTWԆ[Vƻ-JPC; m(f/ _cmN}sbLLL+LX5OcgGjz`jz*OLV/wNc`˾m{_JUFm띘z2ؾϙbW?g|_Y*}uYR$]>F&qW$V,J`,JATR@dS)j"Jw$1y+|<^+: M;q\Ms7-:nKB" Q~]*Κx c5=_"l] Y+r#==|(H6سlg`O\.-HY`EL!Xv56/" (6/" (6f!Y}i%w$m]_V#bd 5↹q\a:_jZxe]2Ғ w+rw{Ż5tnFPN{3(eiL7XOs{k=׫'6||SR@ V/XR[BZT mMQiVl&toM'W7++]5WRg g 3⦹"nZt( 3W+]_j-ޫzmն<+k\[w+~TSP{>{챇clkMx m9+ZV'ujdNߙN ߙNޙNޙXpwS#Wj:59A 2q\a.Gܰ7:N?g٩qͲܜɧ.7gʩ͙ؕ;rWzPN{#(24f5g;zebPee]mWvFp3,WJy,W-_ٮ+۵ze֮lڸO֕ھ>YWvv'8cG|3v'8Wml Ǟ/{X=F 9 !fsBlNt!LL/\g}*Ǚ{̀˜r@N,B*#p94pr@L0K0w^tK"ӀEe2ݫ2P ע2P 2`KE®@$]/\P@98@#a(>@5 wո~uzMne4zBnդߨLr{Żw}oxHo@ &o"*ַyԭj2B2 ݅:DGeXPșRv"Qw*TvBz.U5uO봿zKB+(qx)y\*7^8 -TU_: V@>"v|Ut_*"2r _٦nz _i&?,i)oUNOc"eZDڤ΍8pX {tmta`O2 ,.2 O)֊X+R_d`@}AEcEEcKZ8أv` {_8g{\=VP6/Pv/4 hm묟}Te@=-Z:s u ѝvFWB;ݙrWg]>l\+}·Y`hPv4 (+ECΖ |RKC߭x;0iV7+ ԉd?A7pq#7:(nu^q:W}@qq#c KHX᠏᠏᠏vgp.FAFP|Q;;98h;0iy7ʁZΔ ߶v&U @uS$v>ƾo}`7}c/crxQ "8 \E@XvrgMX;tg剺-F=^ewMT2najrKE4'=5p iw:3p iw:1p+@} \utqx@ vg-Az-|Quv YԐ1>`KGEC2aQ鼬P tWRTfŬ͹}vshgnNZm2N dVsVă@eȚf+,tQm_t(jC/4m'CkPڢ>>HcHȘKFR!r Ѽ"!_ӼHz+=]_Hx(9S}Jʅ .` UH aţ f;Sky[xPt-˴,hYeCˢᲑn}@\R1so2{;5F'MgQΩE" B%Z}GchN N`yxN Be"z:''YƷAqjhe| %&YƷ0Bqjhe|''YƷAQlSĘ:Xv񹫃 "r,;<#r圓==== tBUd>Ds/BefbD䈠%ϽE'{]Q뺺B0[>#jy; Bѩa˽ʹW'r'r'oL Oސ 'ourc9G,aj9S̙>`éiWma::?UhtGWBXCYXC?Pu[k(c eXzӸ;{Ӹ;Ӹw#}DkhrGk;Z-=˽_xGc=~"@9Y"@u@n" ʜGg)un ޫ:ޫ{*Y<|jXh,skފŧԵtϧhx>u]l[lwxE<"ٻ+Ήڽ휘0QAA2(o%ٷVB>]uYaxE|2KK{iEA5R"bkO!FJީX)yb7Z]~L"0")FYbQ/t+hP<-*^uo;o)ke" w~ͪ/XY,NReG?B-ZZ*QiAFa#Z SEQ!'}N@d0t:J 3T"R(*"VQa";' ēw;IW/c۴FmEƊYmEM׶ u™E~&uBD VͩYޔYB߁cF]]U@$[xB-NZ!R'rK2kXr4j֛pdUJ>`^ƭRTp \ZU:hwؖVPoj뮦{j7ts@t Tt OUt St󢊨^qa].3*u+OER5I- `NǡIUzN_O2yHNy"Ipp4 Yp4 p4ua@! (j} z\𭈅v|^x]ppjr:vv-u 6c+kdQ@}8 d_B;"jr0u eAc K||}c{~k`}t| VB2a4n=(T[ "}Kq{9#"ͨBD=z-BE\.;QJM)mgՍ̢TՄZʡE'-I{lI}:+'AV)DH'/K"TByIdBE^Z 0L0a9 \5 flG[`kl`wۼ#+=Dq! ԽA{/5սLypoj{5׽OG:#= ߨ ႂNwS-x6vuz!ƤUdii,-^KOZݝ=Ug}?5Ėz4%旣scjW>vYX_Qtw#ylqnIy6raxإm~&`86gXdp"+8b|{< 񭈅vĢFJeAK#AT QDOQ#k@!D;D!%(( .%@xO k",g#V2FepqՌ.߶14ƹ~ۺ8o7",KXʌXo9HRlpI9ҶT;V0GX6Y@ən)#)#)#))9)J,UP{rVRE')8k?&qֆ&qLiC=LإI&֠`uW^|?Hy4Р|GèlhhlhΆ.c"|:,>'02,+ @l>\Iep%b{+ 6\IyJ+8Wl^)$ؼR -:@e`ynwynwvdDZXd@ENֈ,vքbbWM(؈,Ԕ bGm蜳q&Ǟ!Z!!96ުm36#>ުm67>*-(S'?t 0@vGH~n2D3OY`)̾?eW,C0N0;Xށ 5nB=U'ynҪ<%jS[8)=u2.SR-\Sj}eנGR4 UC'ZuU9]].5oE[ʮ bL= _# B!ȍlAFBwbDzl;t<ׅH ٽ5Dz)m7ɮB9C:F9f"ؒ<6y-}+:Flv(B''`P'`Eɍ*;%ʀ*zg7֏_FVE hUO&!EJbK³tݮkfdUF_D0/"XZ F_S i P "@ A%+T1@P} ӿkwgh-ahhhhheKtf%Zj_WE#A$qQ ͡HYsh,RˮKxB¡HYX84 ) B eaxٝ :5 f]w. oq(PFq(3x8uy'~]މ_w3~[^_WzJ| !"ÀeʠSuڮfS.IXҡlUWl R( ޕpN.πM#Њo?A'Ȯ+! @^q38fp>z'j=j'==O:'7BIp"?xRUh0jyйDIdp9 Ipe•2/,Ʋҍe*/, ahڗfav|fps |>7X|nUOˏ\ ep #Ef oEݬbZ'w S,lk5vzZ,dz[uҽ:,`6O'G4&?哧SYOP~9i嗓vJ嗓v`z2 vZ%d-gv YwXڬvi /0o0 JUR'f @P¾-t[B [SEo"bqʰyd+yd+'[!1*n8[e6"x! S6A ݆s2CGE?4 uZ/u{n?Ivcc;Nvsl'c;Nu#TynZk*K8]i_Z؊p@CrT;(uNy3 #Ojيlh^b1-, ٴl$d"G2lGxlCTԢ,5Y\ôz|i0=q ӿk2vi&D[oC$.D4 hD<莦G64IGH7ŠH eYQV&YOyQ *xn]N }N=*J^3 55ٌT2 }I%wZNn0q@|C`C"ՍETvE܅$*?^xQo?kuu@\m-KZ^'pZ.J"O?pRAHu+"5N~7*5a'W]j"мYe`! M;@s7а\ќ+hXh %ЍCtL!LQ75.E\e,=} x2%K%y hޢ߷-;Tj\ݦ)݃*%+|і?@D[Of{Q moKWL lA2z5N}_͵ p֟ A:EHzk6%ew.DսCvU`8*D`Ґ^%M|5S9yS6OdsΦl~M2w"x!tz~ND(UywjJP}+bD8 ;!Bd!堚T2&rHeŲ#CfŲ#0Yl-Y&2Y Ӑ>E,JWEB*RQ1MɎ0_u_PH!$p/-1 2/vX>0/a2Y?Ao[".D^;-c)PGy@7zv__@w{ RV@*_z*9k;Usty6~U.o="jzWьڼ[~Ѫ:}"D%~8{fW'XOT,]n1;ݟ zߴA0)uss8I^Dӝmvܘl5Wtg,ILw6Gcg$K Bd鞁S8ՋpʸI{'GO2mJ,hL8sxrڲ%81՞Bt}Yޕb]_wGbח]葬.IT]_z5KmkݶӖC/"YLB$ Bd1aڮ#!&Hi5 p"YؗN$ S1^"Y+f$Hg@(McKLW [Ŵ5L1 MSLCvW-OZ]<#<#>c/[=]z~i>ུՒ0"l]K$+ݤ^CHtNn !~PCk*BFDzɎNzyiі&Knn趬ScKZ햾?)-S[*^|EN*!2Mv79`jpUz-ʶkAӶ?$6K_0 n=0Oэ5P.9>#*4#uv|S6)2Ʀ9lNGf?fjo;#@>#43ܐ-x ?.0'ZPZGת]B{t_Okg~7ϦBk4tqܸlCp^ôR+S1)'w$pkڸI5uTF@ӓPn, !DM3Kʖ/ZaxRfF04{ j ax00 N%ݭZ{aU VemqYJ;x@kFwnkvZsg:@F_!@JQv\jy z6F'Rj+V d=]Z\*V!zwqjqx 9E9Qkc̛=j+[^4E#'XQX @_-42Ffi0qXxL)NRޝ6=m|:OۆbUR6<*eYsB\&eYkB\&e,eh\/<j{g{Kg{f{Kf{f{ %LvqG8!J#2P :"Ȅ,F6GAOxȰ,2,4D,> #,2,4D,> #,2g\Cu[kzhB]l Ofl>p[gndd|lifmo#YJxRꟷ,^d)m$KW8f)asmժʏL>H#>d?0G8)(}5|ȶf[uϿwJӟt[B Ϳ'/Avᕈ%q]W.^0PKd/%֓BG k^yyDȿ慈ʈVRr[Kml$['{m˼'as'EpE5*!~%֏j-;y6 ¢>DYxf֓sB'XO U`=9`%9`%97(nPmז==(Z_44_ BVW(,+Af2sU3w:?^h,_nJ aKy!44M|ZB[^X&sXxGw4nja*6C͐ > KCZ[UUq YjMa ""n ]ls54W3ODs5[pmlkg[h- T}cS bVm*"A4oS u,7g{VQQmё`KCg{4==hzzмyzec邙i y=mca]d46 i4o4=ik}*֪V%X\sD8B!0qf}"D'!@,:ѭ+R!.#ad׈V+@ e5R }{ +!;+w}95ll:#ۚؒzCEnSw ^o ZS5hYLt 4=3:5WTo\Sq5k3vn\ =do Ђ$XATŦ* ;Z!SvԠs3eehMtU˔ֻK=D"mUPp B>ɂ>Le<%L"KeEE-{%""(ꞽ]3ȘDkY-T;:[+`PEȝɈREȝ\.K1*B4cDȝ\^"ph!AE0o!U2ifgd@9iY&(Iyj! <|v//<(hU3@"}@ۇEнۙ^4(Q"]l{%ʇ+A)_de/Qv e +Qz;a({>Z?!^kFphBpsD-7^ rD&GC)P=J=*k)1YLIeAem#*Ψ.UEV91޹VP JʁGQ= Vc.JhEsk_sd H̑;(XTꠐ]H ͔=G{7{Lh_}S _{ia) |Dߋ_Qk\R*Oj}YLlڨOYmT*7:)TtP|z>۔o yao(Sao-`υ-NrTN2] [wGz by 朻˖sw2s.[se{e.Cr @%,rJE5P7|tT߁HAu3gP1s2(<.2s2(c=.2tlغm9kXr)^ERmd>V veo%B\Kܕ+ }s-qW;|uBDP ]AY/{NuP cAY/{y"Ž[y(M 01p0w qAn`|prHNϡa! "(̇EHjrPDp4 (Y5P@栖*A-UZL TYj`(- :lrY=@e*W/(;E[ʕmhˇ@SE؃ҷ7.B DyE@@5vX/k%nWt;r[^-ll"B\+6.m8IaEɃjCUe? BOJB^t"4$FmCO ͱ'4A s!0BP@f=M8Bp̐j9]Gv#fZu2lWBPw1rHfZgٮEvG*An_w*4_WW'5D_LB۹Tl;7V!cɨ 7 &T]#lBu3lBu+lBu;4'mG 6^ѻfw`uhVt f2;۪}BK8^BKgvQKUԸT@}f(87B PpfXY7d5<5|MMM&&> %aJQ.#/9 TJ l VQhE؍X OBn eeɹJfu0Kvk %GõF0\[۵GbJMMM^}öDT9Ek"j5uNpݚ7AĘF@1syta>+m+J|[m\q#r7;X-GJY)T4<+gźB@!+ȊrHgŦEQlPHhŦ Pl l"jTIo#>$. A7 z%lHK5rmhgD'!_nruS'?&~}le@P<4X~ nl[:mUUID"ͫH,D'"W ]DuV3S͜j=6+{Yvƫع+e63gڹ+0= zN5T/Vg{`YkCE`@XV E`r?Dݝi=d~><ʩJ: Z7}`]֡*5e<2X&G-m>/"tEDG"z)N`_n2&/1?r&dY:RLY:dYl\Oʲs]-co/R[ƛ_#|AĆo@iذ(\6,zHoXHEMLrRM</:n9:na=bQM_EEeQ!=bQYTHHXT~|>ϧ|'}>'VNde;,ϒzҹAJ`(^RS'\R[j]=H}+ˮ/+.+._0p2 5B1 cK6r&\v5#y[F2"oyۋ\v[ zo12ӿ^Rfx53ҩgDb7ȩd +J?hAl˦*2LJ/?wÃiVI ʢ۫9=B'rT48x̾M(7v Ǝ6aؑ#Q)/ށؑj9UR\%E,c1%s'[w;@KWn+BT68|Noxox/v\$,jLb*& =u= VO6Gb' c*J%m&Dy7B)giK/f?A'Th O9Iߴ6op*f!.ꛅ6oڛFl>"p,Bd±±ű wa"3ȢKʕ5lK~Q%aے_aIE@}y=(."J.!KZrGVUdޛ\cn (䦛_6xٷKwʺ#^ȸEe_7+s+UDޗz7N[-J'涝-J$Udn̻I(n(ʼ}nEN$[wBT߀\u\DWBdxB}c%2PӇe<.L eRfh_Y}eeNp2/L2^qڜ~@}6b&9'ʤg{W<^JLVFq9ص8skqc7s{bxPꜞuNam_\|l2XFƁ9{ t;2veaa x|2٢,e⢧լS! BEOY *  +9 4Jfn% dw`iJiƙfmEI.(S+pYFƒЌ-AQY܃Bk*~o*_NǍV([e1y4N@D''MxۉM-tے-oߏnIj-G7Un]W x"sUɏ`nKDf$^"2s$S/΍wBeU8(@>k0휬:WwݿL&%_s; 0s' 9 Jޗ<,q`=/"ZVYTPǩEPth"F'_ҽKҭל[@Vvc;ztgv[Ns۝i*(j'CNgNA( $[^N@ Ǎn:[ _w1p#T_PUȗ~AU!_Jvu(]W u`+W~\^yU]{rW^ׯd]^ aヨWޢ*+?[Ty _g{WɎޢK2ʎޢ*Kna6xttsNt46cV伩 H9ݦl$sؔtuuZ " iz✆~U?UdfPkOR>||_zd#*GF>h>)Pwn4ݡR}?} ?} ~_,*?wʠvu%P$PZq3[簷^s}w>JCg$^g$^g$}g"UT}Hݕ[B^nR6>ɸO} }|U+nTh9Wne׍*:ݨs!hBn<UHUؖ rTa[."bhWE]}" *M=uw9dE޺3,!޺a_Efq.:wW %ȴ[ɋ>h Epg9s.. *(Up7yxאf:LN.L+뾒qud\dwS#mJZ{s <y_ 1F@Ӏaab `귺@T=OX~jq"b,?8p1Z@\ c@` 0"367;^[fV^G*[H^ŋͪ] b3=\U!?'v٘ʱ'vX-lF'|d'OnS' Py8{<< =xcnS'x:8ϟ)د<4<>t_!*yĺAtN}Q{e;>INCn^dE9XUKǺZ?E)m}???E9D֬؄VҠଶAEY+^Ȫa}ike(K1XNZ+ o֞T7jwl wk!+z pm@MPo;!+Hui<y^8>>Ijo ܻ)p>zPcP96cuZ8uZ=zк:=!t)r,G]{{d3^n7'7Mg7777&{z^9+k]MasP?0~CU9a |X+YVFQHSj>ǽ7ǽO p/dO YSCVvºZy0&9zRm6yA Rhs/H=JjyS@6v^Krץa]eSc嗁B> @r_O}3j~bFmo6[̨fyl=67Eo*;͐T7o*7/n7/n7/n7/n7/7@MPQoToT7o*7/>>I׻o^o^o^7u:?Ǫ+rHd1P(2DAa5Aa5u@([TPBgNFk|f'eAL- "ZwzN5TǝĭU#o:o:o:o:o:7Jv͛jTI|I{g'<_yJ2w꯹swIN?;(sr޿ޥ0!|G0?#~#~#~?{wCw݃^mWHECU<r\[,IC2&3\&LfԘp1½c2UV*8Y@ QǡL}T"  NTsr6 TYDSeZqሞǿ*l$d9W񋝑]mlpByƦnv .Dݽ$ݽ&pu!Y铹k>}B[Ó.*E=(9:;-]{{dѽ<Ī9WḽL`W]tK&%GT~=|$QAG9,yTEÕϪg՞ƄT6&jOJFFu2+V pbN /]ཆXS'A%A@@Ad|NI OͩړA%C8g~6OG>tw Ϡۇ88TQg+%}>8fш=6qvd6崋 RS?|-q_pew!+]N /dj Vxo!+TIk $KZ5jZN՟Tw-½|-xA9C小NQ/om5nmuIDivs ='vk'v}k'vyk\"Iq&icdKD6I'vmkᓈjTI9vy%$s-=O;pND8r.Gyh٦hŶaE+uX{-Z.sӽmCdmAdyE2wm^df!E""X8T+O*GެHVcCVY9-egV(Y J͘jT'pqA }r~K_c.{~Oc_Q v/p'ؽA{ '37 0s;;^upKHcIv4Oey*gz6FܫkĽF܋W.xlW. x咈O R*fٔln4+8䶠dM6xfbٛmgf~̜֞2sjBuڃodM8̳3%/|}ח|7^RRXVO[oVF#z/%51X{ZnʨwEVSO*rn巜lƱ' vjBJSĩڰ`q6,4EG B\p2dCK!@&wjnnvyw4UhVMM_y}r[X8zAJj%mav(5U)+mU(ƗӍw&;bvƝI1;4Θ);c_,9ݬo;"Й>~g 3)zyݙ|\ }#3) f/\Xh]]ͅuVOs3)~[{ʸwxTƧ2>5iNTgnv@@W^ɠ(D/?7J|;o9\J)gT&tFliӄш--{0zOF#à`r0a^6 U^oed='owS3Sf̴/eVT̴7T@mg=g=g=l*T@}OvwS t-F>1[ dH=M5~U8kQ"(~ATTFB7de2lTWK0WO0H0kog'%ߓl\wMqTƻ2㷌iDU5ӈZ5Xpz H%SPRT>]Sjה61Rr}#k҅)w}iGbGbŒH 4_U)>>dO4DT <U'OD "VrVrYH+;T}T>obN Q)YHV6s3 0sYt ׆<'|8Ӫ8Ӫ8T7[&vzw a6kUdkUP"("4[u]-p݋Q,S-؜232Q3:r^څoTXEB+UB*'U"NK=b_hC%&FGsd S)F`N)[mk*YWVY77ޜ5ysٓ7H{7W4Nnһ9w[Kꊒ"{VKwiuܥսf6s;eekA7AO[P{Juy[PK;%d{` 3[WV\ #>>fL M(X3/Fl}V#5CkޘZFڥ7.-z]kFKlyV]^zwyw{K[|e;+?Iy~ 5?t'uWtgmɝ'w֑Ygrg]ɝu?"^R[I9n5帵K4fOO鵙ͭlngsלtOVzI{M{K{tTL%W*SIJj|FyJjRFO#eo +[OR>|_Sg> e6 DFN,*dKmĨ-Bt Fҁpqbh-LDADtu׍'ȽȝOy}Oy\>{ԁQ8kzBa{֔=kJs5\cn =kzS'x}OBlT®T?VB!6zWe.$+MHVR|{Xe*2U-o%bdm d d؁cn%uT7UR%TVJ[MZ*WoRYc8 pfV#*A,u9WwHKwea-~YRл P!F  ao|Tco+Qђѳ(>;u19vr'tA0Y;gMq翮ڛ#xΔR<>c֗Jodndndn_sr/5uO%ԮvK%{*=RIԿu){/e޷⟖|>e`&15!711Xj$F63&F63&F66~#kλ ?ȚnqA ?v~ 7Ωo}zVnYݧgv}zVnn頬v>=uvvf]]ӽ{O~O~OnݧUÉy<`v;\~]Oun9||XS{~#œr7,4O$œİxH 'TI䞕䞕䞕䞕̒2k5/SVȩWd^^kk.|:m˶\٤$ޔIi$ބ4doBnE2ldolo;>Iru[^c4!7"-т%nC*2sK.iBn4"@f:@Do_*D-qu؈h@F\B:.qyxg#R*}A@@@2\i6 /{TI{w+n_m8v^Uufe+c+c+Oot-cy9N3j9URkA4c;2-wm2-w2-wd >i egS?Cй\D@й\D@й\D,wy]^?o~.ZN՟Tm~A@@Adn~fI ړ_r 7 ]0~?^3knqq- 9?rkѷcͱh vNu~Sq%-U+ T 8al? FB^ "3ucc$Ml鎡a aYUBp R}cWj[W*F6֕ `w'Ndޝ<ȼ<ȼdvAlsS?<Ϭσ<Ϭ 6zʗRJU/RV Ɠʃ$k?wwA}nM~gfn_:M=vѶZ./=؝mѕcUGW]Vٖ]9vYe[8rʶt=L;ΎDcD$''t_D}=blkl9FƖeVNT~6ѳ2lgeDjY[m=+w[mmuPwMsjD9K9gg=]~сA9F/t rI)ǣTN9D"C W ?XS,-Y-" T-O+޶]5޶]5޶]5Ep2mߚ\Hx3眄> zn ~q gёGD[3QH JQe2.-S5},C .iWDh"$Vkc=2^ uXiJOH0N+')'nPΓ*AT eS:נ g6 lM6n Z)غkӶ)غk!.`뮅 Jݲ-o6oɭvjoɭvjovOnܷVNTzVnYgzVnn頬tPvNu~SAA==wooot:A^Xnj-oEV:^{moosoosOݖ6췷oS'㞞{ӳr{zVqO=&!e=yS͜j=y^K>_%/|Iuyһ$sy:{Ӂ1O_t j, cKa10|*(ѫ@R(TDa;{ΐʯppKHeS-E9n71soby0+"ȸ[W9;p'9/GeƘ-d@A[,{z pT!nr"6]8#CmJ)J)9 ABt]*:/tꦫnxG{\bR7*^ ;it0wDȝvafmM/Or:^ h~^ hTW- sw 7m mͨ=P r7M8Xopb{e =U˩jhg3b]h1YƛL ͟1Z̟Ny'ijʟP@q@%ϘldM&Ge)r m|sroY.1˅{Ȳ#习f툾‡f“>$~[x'`'qFbGThdl/G!4Cۄ^ɭCUʜA2 w@&+3IU#QP%0BF)<ff'0A>ەmodE9–5O6\FإE@MTrG&HI&0MpMp1*S/Y9/>(P^J"l=#$}DHPy?*M`d"wg `t?"Teo߹r婿@2( dU @2( DNBfyH%rdBD"kTHcBw+>_߭,*"JEP$Q9 Dl8;\S_}Wt`i-' Ĺj(H`)dGL! {xfw`uhh.`&z>W7&7?aM7/;,Iǭ*y@ɏr]Ca몏VôHc('{UfjTPtT *uxJ/Ǫt "=V% CA@l${Xc~3, W4\G9kh-+{?@Wa/_  {ATV` ޢr3G̠4\sp9O5< xs^gV(XGN]m˞lom=`;y}}֐\9tmp@G"Sl\EjLr!kDwd_Ǫeti2A7D-%L"Q'+hN2G`N996<I#lny OGHtaNJedO2FHN|*dq}r5ZUFVǤܯnުr]lf€dv7soW9ޚr-]-(C %TȂ  Ud`Ed˔\a^{Uٞ'h*?OV}{Dd@=B"2!ѭ a7YAXͪV`|Ѯ_}է4>U]YfȹOՕsOI}jE,!x%Yl^Aav0WP`"\{] $a8#SU40"UEɫS';BmJwW"3X] wW"JvurZ"He/g,uMDfrYƽ6C*_NM%HZih0@Q)'PTj tL"㆏0k|~jUh ;2`Ȭ|;26!FfզcBPCM͚͚͚fᐺff9f9f9fu".u/Zbv (Pa*,bC !XD Qm*ҥIJ.^›]Z6T$Ҳ2'.-*tRt I|S6$X':XEۉBD>~уztXxCF'íPF(Bu3jc03D9s1k J Dm,L͚͚f7+=lVV'x>P'PmpgGBdU<;P'N+v'݅3`!_b4S}]8'݅uX2'U?A8UXMhvu3٨|sVm+DLjC^U:dT 2 tM@~XECY >,Ց"gd׹Pza9"@R8 Ud2T2{g'<6ylнnew[s  &r]Rx06Ӄ^>#k7w2} Ds+5wSNM;-y3~='şfmGU@Ū!EBt!;UTU[U ݥs͋Ńn+?r,UV ~akW6jAyeK\6\6o^\6Eg8qTQQ~AΥ|d3+_Y~e3{6}Ԧۦ+S[~A?@q::um6꿜^6h7D X|Ak"0R؀hcpb{giK# VE@D Qc땉@jDJVط޽o}{[}:u/>%>5>W+3+gx7|nnfnfj|!ʦ'{BdO(읯;+QiX))'mN2Wd_sҦuuu亲ɴt7 2s\ce+ PXYze$~?Gp;Uamzs\seioei%x[ ւ=(o=3#أ {ek3 3 ^AZSyﷵv֮~jW}jo5̳.<.SFK  Ԙ Xs||_eϞ Ԧ3S~~ \qZJqZJ+++i ի Yǟ KV9 K9ϾK:c!.qt[<ۖ83R*'^G66'$l)lNI4>hu|$a#gsRPn`}S-dD>h9;Zd .99kNΣi|ڭmo!tN ]SJnUE"nvmCXO)u*"}PD˹9>p!vs|T-O*V暠heEQoO8~ajI=憰*B "*2` "[P`^Bx;׶^[֣V|-R׶,_xPzBךj?ߵ҈jVa=`U`U`u vk={`д`д` lx硈`p| OA.%Ć=:fX`I0aVE{.=#z휗y%$*SۼF7^~j@2_suٹ\]S]s? lpg'<߯Ab3pjnN8#5gff[~sRɵ8=._}s,N!FfoS)_4KF離A9uE+W;>Qkm@ѵJ'9zRYuEy]WT 뺮ZFpSutUu+mG(5mٰWtlpγQb;Fk<垮)l;]: >zS@ pk3!P7)!jBfgLek1WA#X:rU'[+KWNfWp,crH@f+ W~ Gm`8d8tòȐ U<0D"!b!"w1XcAٴ˵qqq`o9*_K8ѡאMbT(Vt-~~7z \ξ-/K .-Lh2 _^B~[è~?è{? f8KM_A--ySFN;e%Sίwѿ^Tj_U}I<ۥ|%sM^\S*sBcR@tHuR* T("bkݒ~ LVM 7R72 LαҨ~&XiT?sllT9j6qa]տ^A@@A9kPΥנKA.g lpgr9b bbbbF>=VʹsqAփ,,,X0GYojw"3b腲X[ H'j9UR z"H:vyt"ȳCV YQs݉ݢ/]Pdt0@Bf,]#xIVb^+h/%*tMy/ S9zI\Ksa^z*G+O*WW,KOʥRN'})w$l-j<[u1 ShBV^R%TVS%᚟tMR;: Q&TF#¶VEa[z+LbS-T]RLz>s=\g+z|zzr=_\W;﷞\||zs=߹?yQ[ϵ^+O? O? ӏnb}9n VKs&heL;c:IyDENԒ70)KStoõ2J/B\(S_FMe\_Fo:U<7wjc)9FVsNVNVsOVsOVsOV&y sS sSuM*M*M*MsSG'}d3k_Y~8;0;0;0;ENbҧqz((vFq0=% NOEf)+@mmmm:ړr~hy- ɨVgbC':T)J&ߋENP 간ej"^f("dGw0;I~SRR5fe+Gʞ)+{읲]P:%eԜ=t>'d_ r~O*p-ͲZ@$LK^4w~H76TR*DATzBTF=+#9M-~^¬ɩ ?=l[ Ek6O.@YRlQvsRJk;jFqPSB ?AhnJ?Bi{V!i20wU )ɕTFy#Ę !d(1&Cqc:7tCiC:6tCqcXƍ11ycL k7ĠfOPs$9\Oإz'WNХZ֥Zep|e]2Į b{ r(}M62) {Z= kErS%GZH^6 B!l8,)BqXҼkm1=ڮczQAuN^vznM)"MZ=؁.7LWo4j2w6zɔLjcM&'hWk2%?^-zLjaj`#E0˚5Q|Gm3lͰ6, HTqRyKÑdm7lvÆm7l]vW^^#k\3k\Y[#{B"69 mr7)4R~>Y{疹-eڻqƝKw.oܹظhU_ ר`el f!`I]~ĺzĺvĺrĺ|znY0gHRoݝ;^;^xV~|W~s+?%rԘS•dTXoL9Ԛ!j':D zpO=`Z`&X 'E6< po:9={cN'gqh= U\H7tۣO }¸xcm,:.X8U&ELNDYE ;\]DE9Z]~C?:]ӧ\Ε\9=+fs+fn}z2[g{b0xГPfI(H3~#+܌N$BiL]h=7b!çuO]N*5ᬩ2gESQGSthM ):~v0Eg?L#Zn-"!"ڔ`ı6%2ptE3Νhfofkfof&|5|Oy{",eX*ja'X f%y?7,_ߨ$IEwCQcTzB|k_k?vz^K2՚5 ;Ws5 ;W#N؉W #Dg_ ?kR@alѢ6ңEڇÂaAlA+;|$Y<"ϩs*>,BNE߃%izݶPe7ԭizΣ}s=_0UA Bo!#:_)zqv$:wͿӀg;xͿӐ;nt4j#SՠM՚J?tɡ#OhKmiFY#Z~QӟUj M1_hzGS;bsw0Ŝ)m6C:!S`iPߓ/=2ߓ/~15#=Dz9)Z?J~k#o !}-`ӶBڞ[ZV}0oثXG}WBb]^ 9Z \kV);8*g7mCl!uܐznȀn]7d*lA{" փG‡]FpvWgk'N*Gn;8+u̍1a q]Cnѕ;]Cnٖctsoԍ}>`}GPa" Gq+G~UFuJnG[%yUbn6;hSCn6 Ҧ[n6&:"lP`sF0Y<nMӲԭꠛT@V WѳWYaF;=׾ܴܴ~]w憃 !ә- { w}{# 0a@%qm " )"u w2Q7{G,e '.Q EM!F\1K5`ZWXFRZ2K,Y:ٳ>GxQk)ɳ}zwü<[-9d<+ig9&4jWiOZʴdZmmL[Nj 2^ V^,JX>X>X|[mזZm׶՟hﮃJ뭃J묃J뫣_*Ը7Fd zŐ3WAa]DnMDE:&tAсa3/@0["=̑|͛̕;W~r*_YͪqY5BϪqzVгjоS^'Hy0`榺[nGj{榺׫>ُOI~<5ӟ~థWŸ \M&B N0 N N03H03H0Ŏ 9| 5 giGY=7rSVJِHs kCt9%U(mMmv++{n[-ۭV[zx[\3u~px/nܭdV?[{s7q6B!ݳpCC-@DI@Kai=?,<,c}/C1eţ|(x0ݑfL39<Ǐ?_$m"iI=H,;2g~zhr-SY2JfY5YVaև5Ї=;⾣Z j%;6[/}>&}G>57r>Ing~޳>{cɎ=K%;˱=XX B TZQS(N5TZQK(LTV/6KT^⬠J-R^⬠4eB4eA0E(w^kk-מH~u&_~U>Ed5!Z}{3+D^?Wd C !hsw~5wm]=Ev\wΗw;_.|ru >q|P"G48= 'n#}d)-BOiyzJ˫SZ^HiyzsR׼r|ΰ7;fׯ]^ם3-[`#>. (EmG@Fn:Y~%+'6\Xz4=SmZ=3g̞ 68=a g܆Y62-LK#̴-DK烖CH mBg躯 xc2X5~c?Jj?jnZ=9zԑU֙UrH cυ1fQ ))pP͂i+FkY|59ҫi̙\Νn}DɳvҒYzR;xGطNL}?,;7vjv̚oǬvZLqk7(>MQ§)@lS=L{mk ^lǶض>' ;N|;5e!|4,0蚉yo>?6ܷqǹo8o6=odYྑe{>|p,o){} K D+r_@3#ΕB< aYxXòrCȃq7<*^ފ~]?h~@{#AWٹ|HWrѯ~|+ݯZ  x>nv۱߷cv=j)=ţ=^X ȍ8eAf)H /f=i141Ȋ=nCu+={BTQd+g̣b<*Vyȣ\zU~<1aUHIݵ mWSa Y̡md63D[bg! m^}-}#AJP}>޳Gvn/DnLH$ o"ѫpe;+D.>D,s%E-Dv1$;-~'Z~Ş ̀H;,D uvp՞S|V{ vm,6 FPK"5Ԗjk|W|ϫr ˮBOXvz² ˮBFo͎%^X 'Xq^>3D_bg! 1n9g0 7LèFO 0T3$fP$Pn3}fϗg.-~?sW*b ZX=A |BSuƇ}z:s6^S9 oKW) >ٟDx|aqXyƐf#;'.j$lQ{% YD,nd zMqݰ=%Y~[v68omqڨ}ڐi?,狅2 XB%9;vfakxIQA*+{JMykL筍:[O[u YRd0,qY`K+ֶ5550?XvCPKYJ^sD}?3?>nv̏1߷c҇ӱ>tc5?ZZ_,|Pf%bjގ&'"^-R$S&.ZiE| *P9(뽛D#{Kɜl'h $u"Һ6 D?WÛߖ/8S7eaY~9V{%CZ.~)Z/] M:=Mݜ~s9Ȃc~GSwhcIɺK6L]RBS{, a֓A\sɵ/@d~PF[ ɬw]rBWIWkIWO]m a/7خWeY?AoۋrIg:u9l26ˀ6|e`2 ,c~ CTTT+ԵߥW`.=M`!e)_xg*2xg*2ڗzЙ j=+hգVu xK?A_E _mtڎ)@h[ l~=5@Qj]QjݮAUޮ˦ଣ~xBEg (欣gE<'rS)G>G6҆\-E J%jVQRs PIJ{WIB6Ӷ3i>m{|5kݾ{5nmc]=XV^CndZy ɺjɺr;SP“RRXSat$9ʯM=̶MC;mW>v0ۖ~o&BGvmjo=(鍏%QM6Ln7RVE ʦMA(Pgm7V>s+W_NYaHm CnSRtBKm HM˽S2.NM螒q ل4>_ joV{Ç}DǼPSb˝^S.wzOUӫ~U+[ j'(Td ]ArwM$$#A홠JP{NxSTӞcbs WVRH aßTSԄh<lde۾&9A}<xaB aBUud2SD}GEu>G8 q;.l=qs/,l=qs/,l=qs~/,l=qsv/,l=q7K-"DfoĺXjRU^ !}>Ny%2tABD0z`,"wr|)B+T;*SB _/9v!=1k^AVMIC#R϶o/*;}9Pl^i3yOh5TnPݞ }_n;7j.R=RݒV3}FngqVjvcTxBz*U@L6 X4r `@`ȁ@BztFF;W~rIn]2y˖^>%%C]~罤y}.9bUdzguu󠮦bkj>yr*o5UR;Yyoyoڹd͊ ~w 'zb>T *Ջv=S|TyFhF{F{F{Fntn3@_P\/-,/0$%GF  lY` ~x~v+]}Mv5ٕkdWɮT;&+T)Skukuu^{uZ6uh~zݔꦒꦚjPx^M!;UT K}^!rWEo(}F[5xܪQfoeZqj,8$f*d$2ڪ,k""֘+MpdWjRZRxGvz8+ }?mg zI>!$#Ew[Y~;٘+z+}=^1qc̼1yce N&'h037 f̜pg'+pBZyh ׃meT2aM/pwʍؖ&9 uI΀UE2Hd};+ $)Ur3oU jvY[SWObOd̸~ Z<|B]8Y-+F_eykxa:gP'Z݋&rda&6!B`Xɖl !"I0(̯r~@yY$đ,U$D}'~K0^ S[Ir*iom!Ôn.p.&?SƖUw!m@FcqFcJoik]Dkݪ盱ۓ=9ۇw8?Q|s"0@n̓4GF^вpykx­ufO+8aCa$xXat+x0{h+)tk13Мj}BKZlгo|R\[\`_\`_\`_\zrf&D s)geTZȄ 7) 7&pkW1YhޠQ*P ~K<}. }