From 0964442815760aca082fb5598157cf3e710d7fb3 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Mon, 12 Nov 2018 12:59:47 -0800 Subject: [PATCH] chore(travis): update to mastodon v2.6.1 (#630) * chore(travis): update to mastodon v2.6.1 * check if mastodon v2.6.1 has a race condition * apparently in 2.6.1 direct messages no longer appear in home timeline * Revert "check if mastodon v2.6.1 has a race condition" This reverts commit dde8ef8be58eda0563170e6b73165fdcbea54f6b. * try to fix tests * fix more tests --- bin/run-mastodon.js | 2 +- bin/setup-mastodon-in-travis.sh | 4 +- fixtures/dump.sql | 197 +++++++++++++++++++++++++- fixtures/system.tgz | Bin 55219 -> 55084 bytes routes/_utils/arrays.js | 9 ++ tests/fixtures.js | 2 - tests/spec/003-basic-timeline-spec.js | 2 +- tests/spec/005-status-types.js | 7 +- tests/spec/008-status-media.js | 38 +++-- tests/spec/010-focus.js | 15 +- tests/spec/017-compose-reply.js | 48 +++---- tests/spec/100-favorite-unfavorite.js | 19 +-- tests/spec/101-reblog-unreblog.js | 38 ++--- tests/spec/102-notifications.js | 24 +--- 14 files changed, 301 insertions(+), 104 deletions(-) diff --git a/bin/run-mastodon.js b/bin/run-mastodon.js index 16999f46..f7a5967d 100644 --- a/bin/run-mastodon.js +++ b/bin/run-mastodon.js @@ -14,7 +14,7 @@ const writeFile = pify(fs.writeFile.bind(fs)) const dir = __dirname const GIT_URL = 'https://github.com/tootsuite/mastodon.git' -const GIT_TAG = 'v2.5.0' +const GIT_TAG = 'v2.6.1' const DB_NAME = 'pinafore_development' const DB_USER = 'pinafore' diff --git a/bin/setup-mastodon-in-travis.sh b/bin/setup-mastodon-in-travis.sh index bb3b26c6..c67a5d5b 100755 --- a/bin/setup-mastodon-in-travis.sh +++ b/bin/setup-mastodon-in-travis.sh @@ -8,8 +8,8 @@ fi # install ruby source "$HOME/.rvm/scripts/rvm" -rvm install 2.5.1 -rvm use 2.5.1 +rvm install 2.5.3 +rvm use 2.5.3 # fix for redis IPv6 issue # https://travis-ci.community/t/trusty-environment-redis-server-not-starting-with-redis-tools-installed/650/2 diff --git a/fixtures/dump.sql b/fixtures/dump.sql index 28350fcd..e071c7e1 100644 --- a/fixtures/dump.sql +++ b/fixtures/dump.sql @@ -82,6 +82,45 @@ SET default_tablespace = ''; SET default_with_oids = false; +-- +-- Name: account_conversations; Type: TABLE; Schema: public; Owner: pinafore +-- + +CREATE TABLE public.account_conversations ( + id bigint NOT NULL, + account_id bigint, + conversation_id bigint, + participant_account_ids bigint[] DEFAULT '{}'::bigint[] NOT NULL, + status_ids bigint[] DEFAULT '{}'::bigint[] NOT NULL, + last_status_id bigint, + lock_version integer DEFAULT 0 NOT NULL, + unread boolean DEFAULT false NOT NULL +); + + +ALTER TABLE public.account_conversations OWNER TO pinafore; + +-- +-- Name: account_conversations_id_seq; Type: SEQUENCE; Schema: public; Owner: pinafore +-- + +CREATE SEQUENCE public.account_conversations_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.account_conversations_id_seq OWNER TO pinafore; + +-- +-- Name: account_conversations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pinafore +-- + +ALTER SEQUENCE public.account_conversations_id_seq OWNED BY public.account_conversations.id; + + -- -- Name: account_domain_blocks; Type: TABLE; Schema: public; Owner: pinafore -- @@ -558,7 +597,8 @@ CREATE TABLE public.domain_blocks ( created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, severity integer DEFAULT 0, - reject_media boolean DEFAULT false NOT NULL + reject_media boolean DEFAULT false NOT NULL, + reject_reports boolean DEFAULT false NOT NULL ); @@ -976,7 +1016,8 @@ CREATE TABLE public.mentions ( status_id bigint, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, - account_id bigint + account_id bigint, + silent boolean DEFAULT false NOT NULL ); @@ -1202,6 +1243,43 @@ ALTER TABLE public.oauth_applications_id_seq OWNER TO pinafore; ALTER SEQUENCE public.oauth_applications_id_seq OWNED BY public.oauth_applications.id; +-- +-- Name: pghero_space_stats; Type: TABLE; Schema: public; Owner: pinafore +-- + +CREATE TABLE public.pghero_space_stats ( + id bigint NOT NULL, + database text, + schema text, + relation text, + size bigint, + captured_at timestamp without time zone +); + + +ALTER TABLE public.pghero_space_stats OWNER TO pinafore; + +-- +-- Name: pghero_space_stats_id_seq; Type: SEQUENCE; Schema: public; Owner: pinafore +-- + +CREATE SEQUENCE public.pghero_space_stats_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.pghero_space_stats_id_seq OWNER TO pinafore; + +-- +-- Name: pghero_space_stats_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pinafore +-- + +ALTER SEQUENCE public.pghero_space_stats_id_seq OWNED BY public.pghero_space_stats.id; + + -- -- Name: preview_cards; Type: TABLE; Schema: public; Owner: pinafore -- @@ -1890,6 +1968,13 @@ ALTER TABLE public.web_settings_id_seq OWNER TO pinafore; ALTER SEQUENCE public.web_settings_id_seq OWNED BY public.web_settings.id; +-- +-- Name: account_conversations id; Type: DEFAULT; Schema: public; Owner: pinafore +-- + +ALTER TABLE ONLY public.account_conversations ALTER COLUMN id SET DEFAULT nextval('public.account_conversations_id_seq'::regclass); + + -- -- Name: account_domain_blocks id; Type: DEFAULT; Schema: public; Owner: pinafore -- @@ -2086,6 +2171,13 @@ ALTER TABLE ONLY public.oauth_access_tokens ALTER COLUMN id SET DEFAULT nextval( ALTER TABLE ONLY public.oauth_applications ALTER COLUMN id SET DEFAULT nextval('public.oauth_applications_id_seq'::regclass); +-- +-- Name: pghero_space_stats id; Type: DEFAULT; Schema: public; Owner: pinafore +-- + +ALTER TABLE ONLY public.pghero_space_stats ALTER COLUMN id SET DEFAULT nextval('public.pghero_space_stats_id_seq'::regclass); + + -- -- Name: preview_cards id; Type: DEFAULT; Schema: public; Owner: pinafore -- @@ -2191,6 +2283,14 @@ ALTER TABLE ONLY public.web_push_subscriptions ALTER COLUMN id SET DEFAULT nextv ALTER TABLE ONLY public.web_settings ALTER COLUMN id SET DEFAULT nextval('public.web_settings_id_seq'::regclass); +-- +-- Data for Name: account_conversations; Type: TABLE DATA; Schema: public; Owner: pinafore +-- + +COPY public.account_conversations (id, account_id, conversation_id, participant_account_ids, status_ids, last_status_id, lock_version, unread) FROM stdin; +\. + + -- -- Data for Name: account_domain_blocks; Type: TABLE DATA; Schema: public; Owner: pinafore -- @@ -2304,7 +2404,7 @@ COPY public.custom_filters (id, account_id, expires_at, phrase, context, irrever -- Data for Name: domain_blocks; Type: TABLE DATA; Schema: public; Owner: pinafore -- -COPY public.domain_blocks (id, domain, created_at, updated_at, severity, reject_media) FROM stdin; +COPY public.domain_blocks (id, domain, created_at, updated_at, severity, reject_media, reject_reports) FROM stdin; \. @@ -2397,7 +2497,7 @@ COPY public.media_attachments (id, status_id, file_file_name, file_content_type, -- Data for Name: mentions; Type: TABLE DATA; Schema: public; Owner: pinafore -- -COPY public.mentions (id, status_id, created_at, updated_at, account_id) FROM stdin; +COPY public.mentions (id, status_id, created_at, updated_at, account_id, silent) FROM stdin; \. @@ -2455,6 +2555,14 @@ COPY public.oauth_applications (id, name, uid, secret, redirect_uri, scopes, cre \. +-- +-- Data for Name: pghero_space_stats; Type: TABLE DATA; Schema: public; Owner: pinafore +-- + +COPY public.pghero_space_stats (id, database, schema, relation, size, captured_at) FROM stdin; +\. + + -- -- Data for Name: preview_cards; Type: TABLE DATA; Schema: public; Owner: pinafore -- @@ -2678,6 +2786,13 @@ COPY public.schema_migrations (version) FROM stdin; 20180813113448 20180814171349 20180820232245 +20180929222014 +20181007025445 +20181010141500 +20181017170937 +20181018205649 +20181024224956 +20181026034033 \. @@ -2805,6 +2920,13 @@ COPY public.web_settings (id, data, created_at, updated_at, user_id) FROM stdin; \. +-- +-- Name: account_conversations_id_seq; Type: SEQUENCE SET; Schema: public; Owner: pinafore +-- + +SELECT pg_catalog.setval('public.account_conversations_id_seq', 1, false); + + -- -- Name: account_domain_blocks_id_seq; Type: SEQUENCE SET; Schema: public; Owner: pinafore -- @@ -3001,6 +3123,13 @@ SELECT pg_catalog.setval('public.oauth_access_tokens_id_seq', 9, true); SELECT pg_catalog.setval('public.oauth_applications_id_seq', 1, true); +-- +-- Name: pghero_space_stats_id_seq; Type: SEQUENCE SET; Schema: public; Owner: pinafore +-- + +SELECT pg_catalog.setval('public.pghero_space_stats_id_seq', 1, false); + + -- -- Name: preview_cards_id_seq; Type: SEQUENCE SET; Schema: public; Owner: pinafore -- @@ -3113,6 +3242,14 @@ SELECT pg_catalog.setval('public.web_push_subscriptions_id_seq', 1, false); SELECT pg_catalog.setval('public.web_settings_id_seq', 4, true); +-- +-- Name: account_conversations account_conversations_pkey; Type: CONSTRAINT; Schema: public; Owner: pinafore +-- + +ALTER TABLE ONLY public.account_conversations + ADD CONSTRAINT account_conversations_pkey PRIMARY KEY (id); + + -- -- Name: account_domain_blocks account_domain_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: pinafore -- @@ -3345,6 +3482,14 @@ ALTER TABLE ONLY public.oauth_applications ADD CONSTRAINT oauth_applications_pkey PRIMARY KEY (id); +-- +-- Name: pghero_space_stats pghero_space_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: pinafore +-- + +ALTER TABLE ONLY public.pghero_space_stats + ADD CONSTRAINT pghero_space_stats_pkey PRIMARY KEY (id); + + -- -- Name: preview_cards preview_cards_pkey; Type: CONSTRAINT; Schema: public; Owner: pinafore -- @@ -3495,6 +3640,20 @@ CREATE UNIQUE INDEX account_activity ON public.notifications USING btree (accoun CREATE INDEX hashtag_search_index ON public.tags USING btree (lower((name)::text) text_pattern_ops); +-- +-- Name: index_account_conversations_on_account_id; Type: INDEX; Schema: public; Owner: pinafore +-- + +CREATE INDEX index_account_conversations_on_account_id ON public.account_conversations USING btree (account_id); + + +-- +-- Name: index_account_conversations_on_conversation_id; Type: INDEX; Schema: public; Owner: pinafore +-- + +CREATE INDEX index_account_conversations_on_conversation_id ON public.account_conversations USING btree (conversation_id); + + -- -- Name: index_account_domain_blocks_on_account_id_and_domain; Type: INDEX; Schema: public; Owner: pinafore -- @@ -3845,6 +4004,13 @@ CREATE INDEX index_oauth_applications_on_owner_id_and_owner_type ON public.oauth CREATE UNIQUE INDEX index_oauth_applications_on_uid ON public.oauth_applications USING btree (uid); +-- +-- Name: index_pghero_space_stats_on_database_and_captured_at; Type: INDEX; Schema: public; Owner: pinafore +-- + +CREATE INDEX index_pghero_space_stats_on_database_and_captured_at ON public.pghero_space_stats USING btree (database, captured_at); + + -- -- Name: index_preview_cards_on_url; Type: INDEX; Schema: public; Owner: pinafore -- @@ -4013,6 +4179,13 @@ CREATE UNIQUE INDEX index_subscriptions_on_account_id_and_callback_url ON public CREATE UNIQUE INDEX index_tags_on_name ON public.tags USING btree (name); +-- +-- Name: index_unique_conversations; Type: INDEX; Schema: public; Owner: pinafore +-- + +CREATE UNIQUE INDEX index_unique_conversations ON public.account_conversations USING btree (account_id, conversation_id, participant_account_ids); + + -- -- Name: index_users_on_account_id; Type: INDEX; Schema: public; Owner: pinafore -- @@ -4357,6 +4530,14 @@ ALTER TABLE ONLY public.backups ADD CONSTRAINT fk_rails_096669d221 FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE SET NULL; +-- +-- Name: account_conversations fk_rails_1491654f9f; Type: FK CONSTRAINT; Schema: public; Owner: pinafore +-- + +ALTER TABLE ONLY public.account_conversations + ADD CONSTRAINT fk_rails_1491654f9f FOREIGN KEY (conversation_id) REFERENCES public.conversations(id) ON DELETE CASCADE; + + -- -- Name: accounts fk_rails_2320833084; Type: FK CONSTRAINT; Schema: public; Owner: pinafore -- @@ -4453,6 +4634,14 @@ ALTER TABLE ONLY public.status_pins ADD CONSTRAINT fk_rails_65c05552f1 FOREIGN KEY (status_id) REFERENCES public.statuses(id) ON DELETE CASCADE; +-- +-- Name: account_conversations fk_rails_6f5278b6e9; Type: FK CONSTRAINT; Schema: public; Owner: pinafore +-- + +ALTER TABLE ONLY public.account_conversations + ADD CONSTRAINT fk_rails_6f5278b6e9 FOREIGN KEY (account_id) REFERENCES public.accounts(id) ON DELETE CASCADE; + + -- -- Name: web_push_subscriptions fk_rails_751a9f390b; Type: FK CONSTRAINT; Schema: public; Owner: pinafore -- diff --git a/fixtures/system.tgz b/fixtures/system.tgz index 14a7abc0e65ab13d117904dbaa89a193ed0ec66f..e40e5dba31dc30686c03b5fae9f22d9599237f17 100644 GIT binary patch literal 55084 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

M?=qBde^M*R}0e5p!`e)R`(n9aEYTUeZiC4&>k zrvV&{ibpna%zuMTZQ{p0GR6f8<6o+ibY0vNVx-6E^;zVy8D-tspIeU{vmn+h+aZEy zw0%~o8)8BKNrki-{-N}J3oLWbgG#e?%HzKNX}_D;mzF;Nxy69T1KY({z{C@yDK*YcNZRY2hcNB3d@@vbR{+m{f8|hra?F)|U>r)ewTo007ArtaS zAA73JKk6-|)_(O-gfu}R)SK!e(74xwuIIv#ErM5Zz>FW1V7v9j>IEF{X5O?iho#%P zvyU^XM0&rCLLH}6l95!3w!F(m5%cOsQl#I0*Y)NLU>nP)-AUL`E6kLAG>F6tE_u@B zlxvKlJ;n!=82%eWFQ#^^pb40%WQjK|B`R*mt7fY4c<#X~jbuKDAyq4F( z3W!KmIwH2$b~ADBN|jbY*iHu-5>l$x$s5p7Xp5jlw5om|NJXzb4H`dpSma+HZ>CBIY+S#O#--9RI5<7%wu5@{n4 zg-C`Wr{#jtNnav!NmOM}xR%Y&Fx9x;Wl!%Y^pn0!3`%Ur_va1eg1-V=Z~olD0N#^E zZCE(1QodUk6|C$!R?u0lr=c~2+Lh|0Gq>|X0regO?E{+9?GXIJ5f|;-L(W6iHR=Gv z_q*eEHu31S!vs>w5>|3(zb2ewr!)*w#_GP?X~`E#qPIp@J1i(KIlC@!aZk<5!W5_H;22A zy>^VpC2otI+PK|P9=d^Y@80-^LsmnVoP27_nB&hdJr#Cqn3qsOSBF79;_^43*e?SX zW~EWLmqp-c#oU;WE61NvCVo*j+*+5F6KQz{RI7Za*`qo2P&%#B|?ECbdX{o zPA*5ep>4m|)TTBgzxipizAa+hoh{m<+&)y*#jHABod|sHzf&J}9=&kk(2LcC575|% zW#P*VxLDOZvI5T`Or5FB@bDd1elx7+u9~(V^@Op+)DjcxxGU#e|5DaJiOWxc5~r7X z*{uwD{R~7F=*stl(s>>YbBv928(u@NLhc<^_-rBpH@P>R5cn2{;AYumhtx)--bb=_7p z`8rc+e;SaKc^#?IJ;$tp@pV-}Qc8f`Xzl}}O4v{8ZZdTMoZH=%hvcJ`!_#nmJPfz>^touSV)VH~6$itP%sTzE#>jY!^l@QetRvLb#a%Hs`b(v;ECGV0 ziE)_V5y*eYA9i|kuoaS^vo~0g?yg%37<4Qp8xKl z=p3mq$#Ov8vncUePhC(neXSa=m&|k!VWKdTwpsM_%Bk!6h+Hj8n|z!H>1AYw=Vg8- zauJn~^$w7l?Didza9y3%V4&N#<6Rnwt1bqnCaJVHG-&wQoBP#A94YTL5n?KR?Rk>_ zn7zVJc4k*&(7skdjt$o}_`@h9gwq+(`n@vR=APkuE_p>9hi4Xw%y1}w z=OrC)5gH%-DC@wIHaoT8g)&c@Fv^Vt_tig`BS&xV$V@fdA)@jP`DOk@jqCOXY&g{E z^C1Pq*MlsGestt9W#*$SaAyk>MXOj1Ge#5dey+8QmQjFTT!4GN)L~McFxG?cd<3J$ zf?6BHEq@1Sv9zoe+F3T##i51%VN?tO5$>=O z?)uh!rM`=Q=ny^PKdZ#3YWYeBq;s?jI~Vp)e!hNLpW<_Ue=H#MI6Kdc0z#1>e6%D{ z1n_g6WwLvHRKp8X$jz&lj$QRHDYSXdowHt^Tf?$YKo@KEZV*KIf6NL|w^bu+HO}5Z z%CLg3V%Xc3vV-R##0L$n(Kwvg_zahQt)1j-LBj2PZ@=Q3elFRJ%8r`vYl(U_7JIrm z2&4<{#>1yn0wxv5s4#OhjQ$Lu;pMy>@EYBZ&-(2R?wsvc@HmR5cj%PE29Mp|Em(G4 zn2;Y&O6F4(HpWpBAp~n!tuS2X+rHvzKC~i&4slF+7FV>(L_Hwk&QEcL4YLSge9yX> z)SqwdMz;&V`m99*2Xr&}6%0wBZ9lFOvgfpZ@WHh_S#8*VwvOf2TLCs?G+vs>j_74^ zApl>*uI9><4!229j68Bv5wj#)2c>{rhMu)aI?@2|s09)gdBX6F1Zfc&_OQE8*l$ zQPfnFim-UOU);{-d!$`I!>jH$rhx|4pR>}g>3!4|b@Q6h!nBszMoE3%(}cAma%JF0 zC=--@9Hn!vb+z*v^SX|!s89Gh0ent>$dsmErds3Op^+s6|ZT*XZ=_2K3n# z6M=Ie?Yach(eG7d(<#pWf{DWZgb!!T$4=|6Es~hFqI+D~S-&5+>cv|6aW!!B*r=Bl zd6_z-no>?fh!fBUaU~BGnJFZGxCx!MllNgDKwZ~4bDAOk9aLP!$AltL;*eIK_$4$OyhnXttg8mLSBBhbIh>%_B!&|q6yrb zdE7;hxmKIm)FGpbOhNXw%0OXfjjzwDh5*Y&4)>E^{>}o&B}am&;Fh=A_S4+q!on5| zYFhJKHmH_J-)t#-Y~YI^;Kezhwi{~q$&fZ%KTTmTk$u{R6naL~1!=&Z6{~z+-%X}Z7tbu+V zNRlp7_BK<=9-}KF$gC2H_kK7KlTldEx+RBfWFVvwdDej@lNX=b$<#C3fC!Y49eO28PpOKLP+ldoEw+nH7ZahX-wf?$Oi{ieq7P)v$t| zWBkl#PcPk$y6l)TJ7|nf&O6`~O}Pd9T@q9z2S>USr?dsD3ia;frwUec-`1dy_I{{R zfu%SUMj2w}7F&B&9q*4o4$~vrVBLsVq`+x8Hj3b>XkaXj_7=TZ`Y-F)KhPrD<?jFzwl=T4rK>lyJPO^#J{vwydD}G9u8EcKaPWL zY|>o>qKVXG!Y*^s6?$Bj*C-mUnIzeirlKv+Y4jt<75>~j(nNag{mAC+V#=!=WU5_Z zDjj7q3o+W0$?d)JRL6V;*hVZG_6J3yARvf(&6cu7Sa=Qv1+avH;n#eh&j5|BX@9(RU9I3JT?}Ml#|R&u zxRb>g83K9(cTjW%G?R1*8wJMPyRj@uDYn1Q`6Y9pQK|=T z(-RJ4bRheBuvCT$%ZD~NryiAf7MflfZOrKqJV;fbCG|(xZHN%7Z)cnc_^9uyx1MNp z6ZdH{zVb00f3dbOErCN#cRaN8LhPQy_X_>U1z6uLg%gn~eH+|)3>I18-83351DmOW_2xJMgUw z7_C82h3fFw($<%@O6c5GL_Q(lN2-H*yRB@lp4(ipuNymwtQUO+P&k#~N8fS#>kPl> z4bbhkeP(=jj_|GlW$Vm(jbjN`154z?n+y)IST*{zvXV>GG z%~BnhzFhO=1e*(-lZlNGy)( zhhI(|1TwPI?@IqSWm7H7ulXVo-SdbjS7T|^wJxn1ENV9FWOT>aSg4`$>&4=G)BuS& zmk8e}_E3zZr3;WAACq{`Wv~Y)ZWyl61sTa7r_G7}((Znm#`D#|pN)TZf5-8B7pJQ5>4oyvjakA4{j&3g$~Tn3 z?Mgu@Sh6P5zUBiZ;`AJ>RdpVa(Mt^B)=4M|09fg)(|}s(tZ{9C-FX~P$D=SmrL}C) z+yqk3|=9ME}{?< zQgI7aXq4s%okR0JxB)o}4V+nPVRS)C;-d;YaRVXa-JCWh$EqY`u**~K(11Qn(&rG5 z=#-sptCM9w!y6jRT_%~)Ju$6Fl0?&47Xqvg7q^)7HF$YUhF{T5A300HcSbFU(qXqD zHLErZ-Mu0oJ0qgyB&1byix#1*rU%q2?uj8hbT=hfDDeD8d){LJ9`=rt)nr7_y|VLc*3XGH->fBQ6i2 zVNRek7LMxb7(4-|54utW@g~Qh=Gi?Q?H#8D$^L{tV?Ad(VBKQRA zND$s~@F(NpQ8gt#;PQR~J5bJ93vf8&QjKtbS*qqD&?IEkVbUmkaN*8r<~-V8sMN8O zN}d(g!iL7e?tfr_VRK6818g0n9We+oi>FXeUO9t-2W#RXl>D|@HPL+TwV8=Ai&noYxEQftxt_OmM~JqmEo)5sD{Chzl&g@ z&g$x#Ho^sMfyZ*dIG&QxY+y9;v278nl>As$(jpBhLCkoYH*@8=i)U7_xD+Hf*&cb4 z0!_|{gVle{hdxB3yV7$w;p0&7y31c53GNGAE4~or@}3uC4YRE*`%_)6e&nr-31~C8 z^!7CN%Za&Zr{8K9HCY~V`Ob+;*S47A(Mg$>*5qcG`uK>3(}2-TxvW~Nu4O!;eulxf zz(h!yluuhZS*;t~$FWc!@l39A2PHRn{RlcCPz`O1xA5ZLSR=U#Ksw(*#D5*xid_xI zr^eQ)_)UgfubOq%##cQ;c+Khi&M?~Ps)H}sEAC2b3a%!By2)?0I1S;P0A(>;s>H^G z6u8_Kgq8c!ncQRxkJU=~cy{`GV85Np3{QI$r&#G(d>WABy86xnAr&$<5OGgU%R}a` z#FHe5|4I%_zh&=rk88$$y_F4ft`tQTnMPes^--l&(ZkjYxj&eb)ThbkP11iqCno?6 z_<;j=*Z`ky;S%6VDm%QL?!o;DlwP0(3exuSKs`z)i-m{r+u1iDjBWc6w!ui>1s*p< zY9KOK`)J;g21r@pmyMD+-9o|b%~=MWAOwo-3SSuR3G4lgDx(lQJdC9>4B;jl=Rm-@?_0gTRS$)Qb;+`M3Wf!-?z!W zJynx-Vr}npaXMhx?$<|=s0Mk5>HFwrYVIqQQj_Utc1I%ST>hSDm+mS^icD;?ji{f|7e>W=_iiD5rhqk(NSCHs-OvYGl9_d>W>u+)l2xk{JAz=R~jLhWDIM2hBY6Ffey z*eYAU0cEXBtZO)~Mt(-7PIL|VyfecAOjocIb-+n90}S7BW(RT;kt}LQY3ppVNVJ*Ps^P8!=QK?JHU%&L z)$4O4SpAO3w``LL`wm%BIHCy0c;lZ_GaY8soa4sUhHt*QH$r%m)~GPa)q((pSOv@Z zI<^`b+e{fm5^<<+m%5i*OX)DR#f6Zacn3&L;kpXqF6n5sFarB|(`lJGWbJjprJQVP zI)fZV?$TK#XxUDM;xxEETbWt$QxpYDhcBBgh8Z++c;6uCSR#P8;@!7z+zm@HCm6g@ ziM!FQ-{TUMJGC<5DB)(LEiVmepW5pxRqX5Y4J6Z5%f^@NkY@#BwS9}IJwyZh9kiOe z3SJQBwr+%Hqbr3aWlftePWdXNo?xnclZG^P9xFg|))JCDJlklk@pM>_ z1;L6fCwU43u-HfFXuyes2QX{(M@SH@yaJtswA*Ed0yDg;U3D%Ej)P7QzXK& zEeF^#;e7^dBYgS#+a|DsMgIL`1rP};+^ULR!jjXND zMj5}`X#;^3o5=Q_W$}*#6QuqZq~KhKz6TzIrwzI#87xAu-d4QXBPen1n*k)p&h`E0 ziLl!h7y8#Ixe0=9#?5&nwbL=a1q>oD@=YNwOc8qjp%=n0)c)DHJw0E|Ls)@p{RO#R z+;&pPT7lMa9z7+)>C463%A&#zwwCNdCW1hjTw^4^BA9YdR=I~;3mP{>b7nu)4)XFT z;XzP#_&3z%AXxbd$3xHe8l>_ zkL7SwV*4+T** z_nk}^;daMNOxL|lqCKN~)Bz>4D+g|mn&=4GnJA?LEx?2FwtpH;3QgQn_jY_#4?9=T zC{1|WOr3eQT@=$fbX7_UH(oDy4{+4r6B{1y{rxK{;)HuJN#1uqWCsI1eSd$?@^an{ z`YO8l%SvOSJ^)?G+_0I-Du5d$2Y1H^@Z&VNNXG?7cwTR6jxN8BU4&}XF^Wm=cRRos z8UWx<5QDT1nqU8l1xA@5HQhY>0=82uDz`3=UDz?LdP>L6C#vBNK2&aRU3d#Civ0OM zb)haz>!04A=JP#Es&Dv+#;8-?WS$6CX@T1MGAzt?KxZ+?Gj`U$6&vVxpvM-@#tHti*AOU$@8m%Jg5k(G(n(t>drGt-<$o4Pq zZ7NqhIB^1WaqY(M(h76YMfMNCos&uc#euR(!S|?NcL~fFEx2mc@KncWO18(@Usc@K zUXtl%ga;yR^K&QhvJK8g*u}T*Z>12b!y1wOHI=rNS7}c$BmQQ7sYH(v>D43qPcCS> zJVbG1NM&~WbIx+SEr9n{+Jl!P+?z;2cK?IeF!u>?bpBhBiD`quzs~Tln0sK2nW|aG z=wD%s%)21e#C{G262z5dWSRUW^-hf=1axze$%L6z)V&SbmWkmcNVJd7qZF?=+9_8R zNojE@57l{kh!bcs$Y%*E$3t=~Hd8*gcJZ;u^fWt4wbw`G@AIzcSGJK{+B)513!cUb z;x`~C8dno&7qUpnY6PhrU`PRq`ChobIcnx(&k`9^$dh!-zU9JR#yQu%wyGKLc2uIs< z6A_GZxNffV1kt0&gliyE*E2h8w|i=~oY}E=SJB}{2hU7!rnc!zf~0ffK?xuoXeraU z5ge73qm4gSi$PytWlFq7k(u)>`ZLnv{A^ylb$`!?7vNEFzHT}0 zdYD;T>b1DJ&PMa0bb+$0EU@PI`QHX7bS!W%ds^HZheMX>S$p&9l???M$iJ@$jw zzy&9QzC|XBed`a^lgo6zY=)+v+ax%-^2}ks5vRo{D;84ZZ!AJsRnb+es>7Ls8XNJ7 z1nk4Te3wMDYxs_?k`PVbOJrEPJ6!GgFmvdDYnu&!i861(Ni~jUpyPv%^1(`&;hDD#x0h?Y>@_o*(FXasv|mp z*tizM+4tXa0SiI$OHwXLzaq@xjg-fn1H&}aY48<zY7 zp;$RNKYOBoYN~|$j=p_WHxRaetcP2W22&5z@|daeaK|)Ol%kGX7*3U!@N?!iffzt4 z2rk62S|1Z3TjqYi#hZeqPI@$Akg`Kin_FXrd(4)#tuJj^Q~HL5+tO^eI3|1f%?sJQ z{hCXuSxH`vex2UN)@>*EXBtJh!85u%8##kkX%(FI`$I}UL=Id5tZ%T?^|(;QOK5`ESZ@HtUfos zlh&!jtU*v#JqnQ_6aR1#1Du$oqO9(|;SVhqFmh)b3Dpor8;xY4PymvXr_k0DUGaJh zB!C(|%M*@?#%^H2w{Yki)cl(axU#Ek;cxWv|7-F2f3E+A|N8%C{}b!~_J98?>c9W| z|KIAr|Azl#Wct7QKSuWd?f?Fl)PKkS{n!0Z%%1=5fBMJ$oqqq{+#i>L74rzlAd1T# z9pX0W6=I6XYkg3t0jA4Nf+ohYF@`Zl6eey|qb4rykGdmT?S|w7^MU9s)sxRT@9WKY z)1r7*^@c8f!dPe99Y9Tmqg*z3xm^GK4KFXEY}}=7tkCn_>xltj0QJ00KskU+WILbdhr66 zqZU`Abyv4)W5+0+@}t$nFH=D1D~ZLFKzlMBbJ>XRXBD2I1M?Qd{29tlc&c1htb(l~ z`Xd&Yq8J!&07-%2kbzZHaZoWFv&@pMoT09XXpUXRW~+tc72s7Gq7`t>6bt@cjg|L} z$p;&u3~PpE^y?=|E?ItVL_A11RoHU@mI_=z!e{EIt!L6%SuH%-@27sZP%sGFW{92w zXKaOVf*-S)7ofM!_?Xr`dOv$LM}AxA^*QDMJ5dEY%tWP%W%o~reWvFe5?RXTtmgkx zsQ3GWG$$B(N#Nr2&XA$2r1ZD?8!o5VUnLT9QrEfXSX_Sob{RKm{-I5px*`76@g|b&w%th%8;OUx_i1#D%~G9jSCLoaBA~BI3gy$fS>;n| zCHQmV$s{$01oFBt=l#aKQE#pR3`QT#j0<^cdfzs z1-J2+?s^?VhyF7M0tIMD%{8B?klr<>Y#t%9UhaWz5E98qi+GDXMi`MH65Kf`*bY@l zV`O&l!uQivu+O{7Yq)mqNNY3fJ1(RrZ1F{D5BERlugw)$_~w%0ZCVf*??33zazDWSP~A|z#r{?;>(sSHoi`ykkdZN(CAf;c1OO_-J-`lG50e_wgGhnx1%fj6eD zXCA&Re%$H0m-SBkR`#4a9q5VM6$ps&yJl~9vNuqGM`%5Hms3?#<=foAD{cx*Vka4% zUD@B}54qjTNo@CB@3I(?kw@ZR^VjzZYLh0b0A3i#sa)2k@uj}k1;1m0;tdXoW*Sm+ z!N;vPsYm>$@6Yd&ya*hYjE`mNUwOV`yV;B;5u{CmaN84K_N`asWib11b9s(+zgAjZ zvwCka6CVMfA;1uS9bR)#b1zu2!5BGV>|QW&AKq>BMpALT>sUV4%~3-P7b#(SEq zrZzbwKME>RJo7x5{m_5NpRdot2#qncjqQ%7V46SZij20-DU=WOV{~Nqq>7QN%Dq_M z;ckvNDgW&!Jv%&3lz%57?CVvxJH+@v7XQqmO)OI$Bo=Cz--^UAd@za_=IHDGLaJ}= z$7r|rb>pH4Gf1pgW{sEnjr+wL;)*`O2!OJ==}4rV8Vi(9teB-1k9Xk!{p(R3zw5ek zOUK(RN3{PKp=-EL1DQd2k&GNS=r}TvLx#(!cBj1;vYDmrBr^yWbLLH7|DskcecX+v zE$(#-9U(i_?jay;FG8VOgwH>wYkuR({WLvJ-lsS6`j@(K9m#5zAp)(CUvt<3)o&eN zd8XX&tY4~Wjq2AMJD}^>UXP@WI~KzH;!(kNGT$-3sR_gcyJj~I-1qXCV65<2lPUwA z_2JR(rOK&4RsxYN*&%4t_R_X9A>JN=P@qPL%#oP}?-RXNk`RBPZNDL^t66&9)tJ$N zCi(JQRS}K$W_T3CQpHr(K=>O9GqOiN63uc<*l$y@#blgdRba9IEB?}$rw9oU-3?{? z_S<9D7V!63D9puG>Rx-Z2LYUn=t9~0f#=XIaT_1$*C~L_#2!8x@I0UJEFOcW=KauV z)hq0+iJxV^`oN_4ke995lB7cRIv7=uLnZ=XoG_AAFX(!^NM}$jX$=_fs-EjC`s}9d zo%ug81M#>=_bL+o5b&Yjh)L(6=T!=h3pO%5c7=4Q%Uvp|zzwhl_O-Mtd$p$59A*G6 z&zgULigzZxYqxpDKVS&kiiQ^DVx?VB$+4To`i#ACVJo*qreMPZCcY9xCGZYGPA6y} zhTFGn^(KL+x761{mwPm~#oS#9e3zN}jw|0{F3&F8V%qrS!LTH$ZsSg6Bbwq@~H*k_Nco)9Y7 z47Atkn*RlVE&l<36aRp}@&K*qg_$j}8L=NLZfD_a5nQtAb^%wOwbc7!##kr!*JIh; zuMu1Qu62YKd>9h0H7|I^DPw)_k}F(wu+XeU;*maSSI zQsF?!2lX|>bk}QD2qkuGM42E$DhCL2Va_gYv)pyExBdoy`&o*Xpz%a6V;O|@kDDBg z?gcXfm00?x>i09KwV3Z6vy1X9bG5=!s-!PiFlt;b1_O&WGbO+x#tXc>q(~4*8nX9- zTBcp<`Nw_j4=j|A8XBAvw*w+ZF!}o|Cibaeh{>hP8aUiBBB%7Vi}ssOn|Q!NZQI2UJ>;J=GNako^-^|LzcpC%Jh6 z2GWTMQK4Wjp>&=l79EVYP-XaD9Tu$oKTuN}Y;4k=+`QuW33i9^&LvY$GE^mhlfR1q zN7MxY7j|~WFv$|lf#lp*o3k2SzWXYDKY2a&tAph~nmsmsnMp4_N3~3uxN_)!P`t@y zKjIXSGcBIy1EQiVTEzb$e=dYWu#KfWa+-LKt3uF@9(>CK`fGpnx-J+sCDcV4tJBua zM&A9LQQ;Qr=7*43brrj~p?N2ZYj}xcZtw183qR zSxzdGu*c-07$M^Wf`5>Bh?~k`wZN92wE^BFhhIm;_9V1vN0eyjTMN#a^`57A4r~AbXrxK2E`8Qo0U_yNS&dFu_OROQxVOI8UW0>5H z{weO98a{h!%D6=^p}KsB)6F1}6Y?y3ne2B0#P%cqu#Hr)s&(^l63XMG=>VnJJ-{ew zjt;IuHLR_tMeuA%fj5*((FSX$83#pK4B@{~AmW zRU&8_!DOy02o;0;uW8~BRmq{<0*5198`YKh>e!a2nb43f+{3A~dXjTs7QvToQ96r_nc z;!Be7Hge^u$X-{E40Q3&yp9gbT!E>h7O7s}8h@9(#9>giMs61=E&OJJgPqa&3cTAo z*lO3q-c7VU^Aw1=XJZP;C>armP)NVv(7o^nBD;<+2plVf5N!f@F}B&yu1AB$V^fBE zy|;qrXxU;@Vw*m?$7rV^X=Df$P*AP{G1hq$np{yxyDCBtTEXrhVC@7a&lR|uCulL~ z;*TRk{>bujo2(+3Nf8><|HIfibHChJnbpJT-yxKEg{H?KA%bGOLO~5bpWEFWJWIgG z_;61{NP&IP^H~CV`kaPS*@cD@2+txOK|;V9dBIWa2Tp>RElKO%nyf>A+v2Gjckx=` z$eUpF8PX{5HWZ?5D+}qqtOQb!2MFRtwd?ppLd`kQcR+P2;u9^-#Tw`uI+ z9S6qYQ&cnQ8co|u5PzXpDTXDP#D;o(W*`7OSc{Y}*=<;8)6O{W+i*te?oabd+SuV` z-ki9UQo)OuGb&(eVAPThFv#$DW{43a;OxmAZP>b!;2mq2puNVSssSbzK_jjd&?>V< z+nLwlav(YQa73DhxlG5r!>$I_)OWH{FDloHW~SY{a%UA^3W;p4Vz1WncNa&4cja@P zhAK-y$l5KU>f27r7Jm}R3E~#y1-$z$#1V2nB6s|m##wMd|NdWikQmc)iM<;#(TQd= z#V+m&TKoMRl4V|HUey|o{nS=AUia+63Vv)arg)=FQC5RV;?a5M-2)=dG=Iwobm%bF z&j7h->}*bdtg=$<|H}R5^OjF3O%kCer~l=Cpf4y!QO4it{`)g%tSXsWH5tE2(OJF+ zCI)N7^o%xC2eW)CE%QWG#RS5GqrugD-n|4q`X)BJPw+&#_K2K|0V`8-1?zN;g+q~I z%XRjddl@^fN|6R-Bp+wxak7CSn#%YE`u9@p#xMQR;5MF&sZ1&nDm2io45$EsZHMh} z=n?al)V!t9%qzk1{&7`ez3&;4m95M|4A@F`Tm%8i{6Z1pZTg4Aa&D?y7RQz5s{6vz zANs7>pX}Buf4cIZs5>IFuOV~-D%|bA=QsPirGL{r(SRDiEJX`ka8F`P_V*n21yt1j z$x8KgI%*p1?Qy$(7Y}z)g)jfIr?>3&N#Ai<(Ok^o4Lv`HA|&08WyYui#s!nG;eH** ziQ(oP<%<=^0!0)+t@D!YtHMUmmZ1s$xQpTK?Vu6oljC7`%`j^FJsVM1vt#$D%O$6! zQ(7vmedrE*8#&(L4E%kwAZO!FG-Q#nJ11cE)AZbhfd5g@Xt^_f#$qb$3Y&qou$=r%@5 zBcf)@>~(ccB5&KYh`N_|7UQa?bG(_l$mtey@Dxh&SNnlW3HI%*8T%7DI+=NumtlG% z@k{g8sqdur@^BflkhWJLO+fnl+%nf|0}fxe#(e0z8$_-yJkOrpk&o0K zF_j*c)IN4`Eji-N>WOEnK?-Mbb^wjX(ftR3m)#p@FTiuQy7d#g+e`$!_u*MMQ>NlL+g`5E@*hN7YN7&}E43J1q(;-oqd(3mS|krH z9{evEDALn4C`WuyUKgqOUPq~7=aLz$cRlKIOd=vUtf?VUz!}rEYCkk~ ziB|!wv)7AcDte%mnV}PZsJbx`s?0SE`+9b;Rp@QA<*%{75f*_5moJVxAobqA-&K8^ zmuq{E3BBE&i|Qex1xbG5z0pbfpc*hUIH4sq##GnarHDv2`T@LH_tUM8Au+ZcY=T#^ z6v@Y_dNQW_)VtfpZ$l|4Eu>avt|@Oye+Zx6Rq0y4Zpw4NY>5!(tNwQ0D|=!O(ZQn?wi$ z8Y0P`5*KpfjVjUrI6^3>QlWXM1CP&kE4v>y#MbX;$4Y-&=gzO|%WEaEjGKB#zBZL! zx$g~$F`4114(2Uhlv8f2N!5R)I8JmOeZXXk4X-FC%33lymK-!VQa?DmS1Gc?V|^X1 zi1|3ELK42qac~I4iGWG5?WF}n`#zT##AwaN!tvjbx_(7Hdc0S$uuVwB7nX~g(e?rv zeM8^;Mo&jEL!O+AIC?UHas6m`Z!=gN8OL9n5NduP8q*rS}m9KK$44O&=e9CalFR z_O(U58cPr2?XS}Wcf;9IE&x-16F)pXqkbL8oTL|{e~F*b&c%L*=l>*r_ZiBTUC&G8 zrjvFGiF2wFXh^Zbv@I9vPrI$((Ub2Rqrm&xrrmN&I>bLc!r*PZ5%yU@%4*oE(p9#j53k9tIl zi)F8xr(babY&ikvxT0j?wp^zm!`~A6II1)@%1P5cty}9hl3Rx@$*26zskXInfJO4E zGR`6_Ual9XvxFY$md|qkj~14`n@7IUlg`Lo%*PYUDPTou9Y@;z)>x{dqeoPWek?JE zaa+LHeIPEZ6Gjq8mf}$s=CU%PF0+3E3)NkB+6{I=;8!f)Yeg{$ODGM;43_|-4xL0l zBG`+yL8NqAJRVdbX*ff_OJgrF@?;H`UlOo`sZn|FS4>W-_16+*RugQ9ZO&JNj&UzZ zPlJRvup}uTD%ny`JY46cig~T z(^fFMOp-Fw@EE#VKh{sWDgQq9J7Og&!Ce*__m%AbN&IGZUWWf6ejBDbDUp{P(UtT{ zdO_JJzVC!CKg2t`XT$I?9Hg+CtXR`m7g#TO;{`GXs6>rGxn_nw}oAAzq z&bU&@?TADw%Q5wvxbe3hV&D46M?t{Ms@!W0Qw;hZmX!aC@e7{$LG&hWu#`8FLBzlU zc$FR)d6YB((v?!_^&S}=z7ac5KC1wyP%G0Mef_`#1%4z>u*%%~jHrCfu?-o_L z|Mn^iGhs_uYXEGZaJoCLJSau+FQh;3P143ggdtPqTq9j z6+=FjF%@=hOxDv-HfyxmY7W7>p0xS83w|s7#+e2@W_cP$t7rc*cteXVmy&*3Y8)kA zBv2sob9*6b{W?Yj&7IC|1k4?_v?BsB;I*4IvYag zh3}MI7)Rz<2ZrQs>+F_tpt~E&3Km#EWBP^WK(`;n$NgB=;J32~*YrjxXYIP3G1+hR zyYfFr^{uAizjfDqDX$>+(H3^=mFdX+i9|yo`ZNtgxx;xSgSz&dS%g!5Ji_{jUMFT! zX8dxzB-ZoLC`X`&JG-=(zI2g3caY9B%;Nf6tM>|W1@ramU*yMeNr)tw$X~4}v%x}v z)+I!Cdh@yBiy%0?`2sXz@Wv_;!% z#=&)p8qF+Lix~fuhoJ2)7Hp?}a4Dv$nvQ*0$W-M+^WaX3-k@#e!(wwJ+(4MR(XS|y z62h*6a^=Htc+7VHI&cNA>E;=|V*}m}_!B#t=DDyoqJ&B0cCn@F3*Yx>=@Tf|wYf2r zi7F|-EM?H@dEVj%46dNTFNMTeMn)w{+)`pDKdt_U`=rx0~ z5d)^W1r1hcKikIBdy$0vepC>p_dDYoPePD)om*H*r>@L|q|@u|7@N<$E0g4Km*K}^ ztvQfF{NnMW%_kYN!SvgcE`3?Cax@px?4jPxRL6AJ7Za2(EseW(n@UodKavzp-@aH?WA=LH z5F_xV2r6hH&zB+(wV$C~v=%rAS6G^nTc60(Jek*t`Y{C5+=Fcb%^+Js8y-mq&8BQ3{9T%Kv+&0sPJX=!oVg`aN6W8Z*jls004b}c@Yshr<`q$)az z?lYv5FuaUhm|w~1N3mgd37nGrZha|e87zvN&5F6o|6uPfgCbeGML`$t?%KG!yEg9b z?v1-c;SLQnuHCr1TjB1FTOkdN)3`Hx?{m*s+?adr#LRd9d@CX&>qk~(RKA&6Z^l|r zE|B6$=3~XA?4QFBTH5nBS?UVAoA7HR4zbzWJv;L$m=iCOWLsRW=m_6M64uOuLqpma zuGZ#+&Nej-?@6H9yT@pXJEP+1A4SZ*qZIjnl+W;z7d8b zY#`so7Q9YgF^wu;w0{qQ}_?+Q)jk3`fVR{UF;cxWaj@3)Qo|Y#_Y1Ekq79|UHNf) zd3>rV{I}}!ztK4DU4Pza5Bh7a@ZE{uB&8;gVG+HFNR!=eoYO#+g}+Lk9c^VhYd>ZQ zVh|^cTi&_s2@UBmLbh5)*{e)KEfblvGS^NK5D{Cv z*nmIqhn7IdQ?RfHq3|IxFWe=<9@Q24dn)g<5z_7lGt9X3LtRp&f~9J!`l%G=B_s8ohHQM~CAS zc0_tMQj@-g$Xmc&uO0wB*2;f|8v^3cl*!6$?Ji>llXk@A;?S0sXJAODS+=MqDzJj2 z!X8^=vo~Y?v_w`t`_m0t`n}oNX<`Ff4jGJtV=AZb_UyNpeFhhO>&G!iaVv8xpbu0G`vS-r87b(zuXg&Qt#t65SLUgxmnI7lJ(}0 z>?IC=Hw~Bcy7x)?ES!hhr|cij*L~c+p|!8#ncMZ0-Ecvo0XO$)jwDVm6vr@hXFqm* ztymeeUu!|Vk_Og%PM?8%gyvm0I*WX#_Ya>@@`ptnJyNk=WH` z;3L2@Yd6;ABbB@ZUf`x8gH<^^M12CgPPk{n-^9dxL^Fw%7nXA^a6|d&?rxCCr`*@1 zfu;rl76q-OvVmemQ>r;Ka*L>EB^ZrK6x@vRFq7yVmZ3P!Sa2PUlAgjPzYecU+is0CKBtQFuaKpvTxI85viCkgQLc;>vDlEnOGmo z67$Ey@n~tL7^@gv=65q2kYt3?u11Q+`hB9Fn4MAYVyrk5s=faGF##e=(C9NXDmyR- ztJ)m_t_J;t75PUc`pVTp8!6EnUB%1kbr{hlnsLhu0+k?}m~BxiwasC9PT`R=+K4qY z{5Svn=*N*3Dec;}>J9V9RVzsk&r-%MT|e>tdT9qQNg*|AH`*SIe(G3P2^BTpaaT`c z55-*leHx9FFB~b*3)*|mHZWQ6`Ky^Hc7s$4B_^sZCd1yZGxEFZ|8PE{RuPPb;ph6pB;hNP1b^-B_%C8wqQp59!%(LWJ*vG-yre(Fzx=`lFL zrp2q35KYC_9>8HhYz2!OH!KN1y$kKD`S1=*YcT!ni+iZ(?qU5DddJ87+ptz%TY-Xm z1ZFrKU1yhQ1^ekC2dR4JOUFyh*UK$k(^KoP1O2u%$G%;U@MK58!dMh{Mbq@yZ+~g{ zhO*e-7Y@!ugD-3C2j=jl;&t@pmC>>W5|%~yWPkpc?QMxu>VBc5s&}y-5MR{jt7dmu zDZ)^xLD5%!C#L^>o414ebnj`0vXdAv!Sx`F;kN&#mc43cfWVUtOeyh)+6+)h{QKQc zvmeE&Wy{cOYVI4N3X>085nHY%N%O{oh_Rcjrbw zWs|&u!77ZBPR|xBsgQH>V#yw#R@S*H@hBWU6lDuTL;mEWt16QL_qkOUN6M5hk0-`|~&u%?_LBay8}pQjdQUU}_&7 zLuv*qtktII6=up^?i=n(@!VboU}|QLQA`;Qvx;_1yqFja9N;hvbc`-_fFA{1DX2t*H+M%~+|cPu%aJo8E?-+g zZFP)|j;nzt8ZO*^oCBizLr>LTRw7?j$>My|2V!% z=Ss&lyml1=aGGq7d1+O{qY;VJ3M#rRCcGx!``M*=VSU#gZB4MOmnIq*TE_;i$86`; z`f{B^dZ?r73ChKs)mU?-to3Jz9gL8U7(}Sh zs;Lv8X=BT{6Pl^NYH?}kuJr=ekCX-x_ZuneKZp+`=9Q>+wosnmC5W)fnH4eMB& z{&NrR>O>psbMzm_4Xi7nGeUJ6L*({pS4`)v$(3_VX?)Ols(xlC3d5`d@C^YnMRV?R zLAA~s=ebkuI6wvMPBh`6ZwSRAU-Zhk56FNo7jB5Qy|&TmywhE|<;X(-{!NWMI(UJY zQ0k1UG0=7NOAPVFjfE~#fYjYU-M#Od%K206PE4rdo10-x_w$v;KZq|jZrH!5v1*}y zcCZ-eT^ZSEtE$UtE|Ml{^QQFjV@r*Elv-zRS*YP1@$xl;y4u2l;=)&M&Px?-pxzdL zDfcMuzQ{hPp>BPf{IL6Kc5S)O>FTlvJBaE3KzyOrIE|m-=E!c1pX8lxI-MtK&b0Ja zw?bTpyS7y`b3EHD>cq16Ge1Df?Dj+s{Nn&F_TTY{H}k! zQsy{)^PXSM16lNkN0+xL3zCmVTn^l5ry?I{3A(bVvY$P_0*@eokt|k9N?#cWZyhAw z+T@q6aWrO#a*J;OUY}?byIWSglnd4upE&Ff&VT&rpb9I$2M31#5U{(0F0cUSR+gJP zDt#mG&O7XXo1(oQv`TVp|5NO(wq5YH;rQeDuIJ{o<4O_1rwHf9Ek*q2ky?T}Nyr}+ z_@_&NQjQ!Bm$(Cog+;E{lGdiW39sn%Qq%_-Uiy0Poj*nWsO7@W^kvQS1pP9!GwvV^ zk4satwp1W6oA^YE$oFmb&WeKhZ^V}`*&Nw`>Som5X>cJ`SG#l~dbz&&L8~`#^?u>Z zc*bp(&RlW>Cg?$O=Mk7Bt0ViSF{I_!VjNKjIB*>w>$n>5#_2_xj{6%JzUHeW`f?ukdf9)rn z%{~LV7XapG1m8-vIK{Ha3&DUDv@>zAEwi)(vgX`68|Gc1nrlbhOPA_9I@XR>xBV%{ z6I;pK)`O9_foh#XgZ)ijk4C2(5~M{U4OnVqRU=_#zuXC!3y~@l5Um2K2?g3~Q6n;t z#;b5TvTjND=4HsJx?vzNsT8PILeBxl^r!vdzKY;Cj{o>i!&m!CNA#joAKs|={C)O3 zERf^D=^gc{$>u)|pKA&)Eu&kvk2^F2lH&|PwMrZ$6)NU%mH2RJ1b|I%7_`h{vjn7J z3!SG1dUPR)+znU4VaD5bO3^eQ^H9RcZ3%$snI_3Pc62s{agIJQuWZhBdJaO-p2NKa zHk$Uqo4^ca!1JR_wkFn+(-V`z9?FI>4K#u958*-adU> zt&Yj_8~5BA!kUYcO++&31UdO*W|ZBJl@W;fe-l3MPC3((%3yuS7t7y!GWeUXV+E~h z{Ivz2w^gPfxCXspW-FI;aCYU9O?hP^?4Ia&nWN7%Q<2K#&R&GpDKnMP@^CwaJn+eF zs-dHG74^+I0tsUGR6RxhG~m?`gr@k37BfiVi&jq*%Cy0Eb`%EPM5;SZQa+@?&WOZj zQv2|mw&5!gzkmAM@LAILJO2$={%!dFKZ*aL|Kj*p^?&?t{)?UG-~Au|h4Eh)|Nk}p zAKCvs{{M>jpBewZ1*nUamHq!L0sVjWpB(Hw+`RwS>z{+2o15p~{_|fE{~iD7^Y`+P z|KzviSpfX^`#&P8*hxyNs@ghxIJ?_AyO7CAN|L#_Ia}K~SpD_w^*jw5O^st*;fL*8 z3596jHw9;P9C$Kyi8vs3G7SSc0=j%O`S&#(wSEjKDQKdx!f2?(L|{CQ8WVCX;wsz$ z`H#e~qUhL(mtFrN`{nM3!|C^y6_KOro4lr3I1oH?x-6#}HxRi(f)oQBHaax2d%z+V zf=J~8K!I3aWBFhj07!CpQNaj<3 z2Vw)n{1PQf0b^373^1h)K3oI<^B%MOApi#7$Z;SFlL2H{ zR?(jUwt|4_S?yRUfG!&V+gf3WAF#>{V3X6amIc(e0YEe8NR0q^WB{95bOb#B+89i%!epGke(lYh&kSnq%nVOrE2;_eNgwP7g}M3u`>)w57cl@}*CS~D zor$%H5GV)>bbS9oeF1H2j8y3P5NF+pCe{KdJYLtiaryh$NPYj>v9|W>;9ymLNW#Eu zLMQOuX21lb^XBjrB=q`l2kzaY3gIvck%4{$4@})EmJrXTAcUK59wy1Wwjq7Ik}OgT z$(eWPGGOnkVY()M&W^v~D4~dvNTDC5Uih%w+hKZv64~Jf)PE6y@K0tgH?n}bSD;1L z^#JWX007rr&iy~>;GuxFVY{>5AD5zUGKJItptW3zD*#~pnTkboqDgcV9su}U7{X95 zPITLk&jf-c?uXgzM|w5o374Q68jwJjK(quByP48ghf2^zPS=w#n6my9BjEz6*+!?r3Y443|aG-v6- zo}GkSm^0_rOeh@B^ZjV9$`)-sNknp#4fGoyj&sO?jb&s|qJfVIA=P5Cfub6@YJ{*} zyBex1=FVca!5bPgL<)q!1MMwAW=1M5tE;H1yeeBxMoh(pv5vrt02Qt_KueKYuFy== ziSaaqZ_dFUr7O!sxr~{F#ft79Ejh$Xg&8BsLEG^aQm&y`a{+TfdcjGZ@|dY2hf9`_ zGIf02(!LRn{~Hq-<5;_Q9_1w?`+&RvM{t z#+=T=_nryu6r-rIp*2NLn{qlbT5t#u|aO(psDv`xOX3)2p;9^HfhY zh%{^}1k0l;ZOWZBMT>*<-eO?&1{DWYB#YGw8%*}QN63&Y2%3DD$n8<8B0WR6hiDq6 z*8;p4x-#ELy5fW@E57qfa>{e+G^yWwvlfNh&vbpv^-xAQqASa|35wmuzNFuyCo1Jq z>|nPtw69FhNY|~Btx~I!Iql)8Juk~E?UCxzdkH}mAC;#yq?NHrnt{nX(pb~jDnl&8 zRT37st7WOQFCqHg_1U}6sq7*%ztdjxV_v9eNjgCqE#7X#aGz@5al~j}$^h0)e8aazHHh4B2?qN64aWM*^lPnn`EIC9YTVp*3@*a1tM!S9s zcX>HYIRoeA8+8{v7j_p>n*~!`1@!rPobGdjW0GLCU-P0!1!-*dJJmrdk}4rKEk~5B z7OcrSH7oUPCEk?}W|w#(_abfu`y%^7yxSbxdL~o6ptiBLNtHq8e3OVB$zaM4%MZVg zc|aME8o~xDCPX~M0P^M0FMzx+QB+{V>b`O9Ts*$8LmWpuDYPc^SAPw;?bzAZ8uEvu z%$ejFJJbl(px?`LaAt>Qaf3m~v=LDeI+3D@F44M#^XwVi-t(K1?mM5KKc|1*&aq)v z;jd$s=VlP8Wcebr&fCe=DLTSptv9u#o2M)1pg_#e!cfcOIc_}lHI_GZBBJjA$$$+7>pahV^s1yG z1F7=0EQ69?%2{$Zw=dN&X9?4E_D0k%}&>-cF0zb7UTo2u@6F zE%pXp22SuQ-KNhkqA2HyzO2n}%@tKc9hS4!3)aVn+syd}sOgm%hZ(3&C~ND@C_CEC z=Xdu~8>|`AbQ@h^t&$x@eM0TsR%PQe(}JR!#hSO8&zd|J3tKH_E00d|7exNu_grU7 z8wTAEZzAKp8(I)rN=w#DRxffdO%I~AF_p)U=`W5(HOh{z=c7;yP;YRQsI4m`}UW_B}X$K-hU8MG;u{iubSHg+T!#sTmm|ZK1T?^7@oZRRWt!!Fvq(bPr%oHzsLiUV zP_(L8#qp={;-B&v!TDlH>TgJMAC8}N&KH3Y5)N&Ngv=3_42>yKi1L}T#m{%+Vaxq6 z>9U1Nm3IqM-?(e1;!DrPL;m)?|Iw!VjPQ{mJEwJOz`WyaH0pmyBMmSk_1F@47eDRgAM2dEkY7OUtq0L zx~Q5)fr=nMjKIDS`l75z-4v>LKBb;pTaXX%TrlslVDXSB=vE{{7B&VKozvbO+()PP zrU$_RPB`e^pPlC%A(fzyv{%mr(WAZPU%W7ckXDN8nNx&~dY~GuT#iCONROt9Vuswh8B|Gw% zMyl&-M4s(Xrt(j^9fOpb!y2zd-64F#-pNCKYsM7Ki0}MC_RU`D(FfbA z2UoDn6Nbzl%%WKU_XZJ3vzvPec=_lCw^| z2TBpMJ+Pu1EvgY+pI1^*nQexUaSiuJ0?q!!#gO<7$X8d-MWJO-cn-xyLT@xl9eW4G zb@LYcZdOK`MUMTcD^D|5Y~btACe=tE<4>VF&ivi>O&G{;CfCRFiBW@&9o#T0zZYzf zKxLoZ3XBC#Y1`OYL*9c5$bWVvyh9jT98i9_*89^aWStdeE@VL%m(z-r;&Y7RC!o5Qqb6VqV3AOoD8KB#Ium z4{{{zBS`y&#>9;^?5&=3j{InL&D%!@5Na5GMIm$I z*R%&Fh@}aQb`!NDtE?C%gucVEZxf6(3%4DXKt0+%34o0YE%lub6wNVaD`Bqn5sjmlJqgiRw;n>C1cuci~|bZ|6$oKd^JxNWCO+8 z9CQiA0RQPsdyUHtYs)<&iv8y_u-3q}EzD@mEvG?`w3 z^%DEhWzwAmD$M6xkW;lG823!yaR#|f3Masvshhf_tE($;Me!(lKa($!mT6W^Yk`Y; zl0)+j8gP*w;O}D5YfjWKYbmayX+~G2=fY`A70Qt7-Bq-(7%Y)J8^oVmEea8Y=R?Z| zdBV`28}yB>r?c|U<*W}P)g_;Rl6B|4lnPk^#g6bg1kAKcY3^s61X4!8kag1__0VjY9gNLz{mu(1DV+vK^OEz?HTEdnWLZs?Zi z_Up+rokhKy@cTUdBVQnp{NcwZaSxj|wSzVZqck~l6V59PS>&9yp@64+mi$%R22T|U zXFY;i#AM#up7ODC-la#Km1WsO=z*Z5j?@ANdC6@M_tu~+jXk8`Yf#yT?m5yU0a(S= z%f18be-O%+JDZ=q$_%HYmcN#JMZ0rmJ(!+(k>YwE+Wo1#&j7HWY(mxDKH79tcr}g| zkAXujn7Gez7X5k2qqunR_v$U=E?=x{5u%7ZO?a*qff`S2>2#~oFD10AE}%DMX`>^K`qDBh*7@&gMm5 zS~|&K;KxmxQe!jw`O8iROlScgjU!J^z+-jb6yx-Ph37lR$GkkdWMdT*jOE_y3V@#A zK~x|7K57B`jLiB(TD`t|$B(3{7!UIn!YoMn{@l+I<}Y0PWAw}=&m;96*RBp7(k@3Q zMiJ$a!<5zBV;{>qfjcdRLXXo0LziLm%{1A3o(>0_2EjkLB%Pq0bU>? zvyAX6-_SxbeaNR{=o>=U)iB7{Vnt-MG!G+!Z$&>x;)Me4MJ7C9b~t*Hq&YEH9^`2{ zmgAn1wO%<+EDd$#VmidhcP9J#^G^+ANvN75s23_0aA z$Kq-mHiXu9bV>AjG7tO$d5{6SKRYavLbF*as=O;I{6M#HNt?OlL^CfAw3(APnHQpy z*I~TMCon7J5R~;ca~d*d9)1o%CW8BOTGJ6@OXoq(nZ^(wY;o3~L=(B>@)kDl18m4% z*kqG&m(Mn`LLF#Skjp@r8;<4L+M^i_qbuh>$fWo+2x`#0hTFhH1ddq}tYBmyYky>O zWQRxXp(8!Vn$4FlvWRVlOQye4K)NIxj{U)l8RF25WXK8dZCjfA@lp_u94*T#_g1c8 z##q6=sdm9+yl09Lccym0ps*JOpkHuy0HlBjJM`TQZ;8K-VMh8=c42T|sI3Ob9UroJ#9nYmVv z=O?$Q{6S4rxO}e}`tV3sZEeE~@aoQ=@r=anOccI^VknuNi$ODXMC*v>X-Y;~*Hv5E zhiLF<3S1k^;ChraQC#6N{iO6hy)Lj~q&DgcKbW|G-W4s?59tKCh#Aw`Bgsc?8cezV zR?Yhf10EN-ThR<{pd5V`VbjY!!F_h7{UwAVNyMNqTU^-Fuu= zA*%geLxAl}e+b6zB@ecbXJ1*J!qbKf((7wPX3|-_UR&!(ipVeyih_y|ibhEu<4KX- zrew;tsQ^L=RGG`2S` zQw}mhiAiLZ&YfVsh^8}aCo?V>>!Jzu@W4cQ1 zyL+&Bb;^HeY6s|T}vV17CIn9qAJCe)j+fqG9wy_ZDxJ|R*C|}Y~ zbJKIhYX8-uf1UxTCwF>^juhUS`AO2ILB4<(fHKr4C!ENIkN6<024)mxayR|i5Tp^Z z`9A0m>9bB4D z&O{Fp+0op7OXGyY-pTv(^h6-Kr3tS4=opJUN)e(duyVcn3B=i@kKeY=Yd9#5f|)^B zF`PSS#Gy}ej5)5L>w+cuIREgRA0xi(tCeQwkuY*0m6iz)luYCcor*7kf)HBGEGk3V zcDG1i)ZuNvoX30+%`)}0#`#r2IjHtcW~y3yotjiQ>rYS1@@X0)hsd8=1{>B1{2G2g z#*w%eA(LmPh!0N{yf8SDpk9iYMw_{YOEKfbENhqh0b~=7Z=36@5HijLB0d^vtRL^< zDYjm}*vnvv_nWg!r_VemT_|Y11;wCNqh0oKP(%VJ@h9=DkagS_1((q;y4$9L-@Nd0 z@)P<8?|br-v%$~{WQGkK)53RuMw>R9q`!B~UNxP)&Q~biCaDsjM319l+UYLtrP`I& zl#C~HI`y6;(fV-y(bSnan)yOFb=oz~&oup(n!$VMod zTHgQqQPu)Gi8xi|uVt?X!OzWNYYQ(D`CwvF)@2!RK59j}gNudjH!-olLE*Kv6p<<< zhlxCcubR#RpL!`vGK$9;vp+7{O*hcy8z96DPQX8+OG$KcH!|v~E{$VerO&d&Q@?^; zFm9-} zut^_OQ?SIHKQxr+`t}>R=(N%>$SKuXRQ0f*7VDnm_8a1aBd<0=CQ+$_Wn4En zHwSyYAEr%V4P&kKg(mzV=V8f-yJuHZY!oUtm|(VHmO~T-HCl7F{j+J z-2l~#F=6_)<=H5_wx8UgM!|ra**N%79NmrKfvJb&1b6s{S^$XekT!ZwQh{8?4QucQ z=lGqa(gWPfj1mO@_yFQ4zIsXyx5JAZ1BF**Na@Q^wk^FDt^-B(dD(U88<9QHcTEuVeie7fTEF)4*w z97l(ZD6_R}%jF~Ugu|lm^#ir68@`>y2M&G8ux|&ylH6UHA}^%W)wS(wOGjJY994J> zM5&#;iHfP*!!4Kn3HKx8fyPdTg~M>i^xERG$81)JN4Bqu{-$Ww6SsW}OdcDpJ)j*? z7q(im<5|ooG;l|Yc-@YR|4w`eK{U{V`$;z#ILz0GjS+~y_)})DdXbJ}u;;g{FTrXk zdwi<8uSN7ponJ#q-p>KWq%gQ~6+wSwKHxm)vou`K>O&0lVq#YQ8gMkJ)gB-RjdYlO z=O;1ZU3?%N{hP~S))u67t>smSm(%uDl@0?kI^+C1LH;%M5u3zOQEmnBWuo2`L;sjO zTzjJzE^NhNXiG+wDn+^JP!Xm&5XzFKoE{V55ZUhYXA7yDyFK1&v%&2w4`sr<3ZP`9 z4}{HEfmdA&6Xs9^%rbxGFtd`#lTQ@t$|!g)$f~)^y3A%a!3Bs9Rbz2X3xQfBM9S)QN9DO2sVK>! z4{ySU4br(EaTBvYx6kMcEh>6^k4ZZTH91o@NaAKg4tHzs4!c zOk2q$2BU}!5a%R@QN!8Kosdd@u7vJb$E;99#ydvsljJt1|{t!9`6VmT3-v4(NP=6({7`Y z(RsyHcq&^f?VtAmC7KX-%p|V-K8WIl%tn)7$M^{WO;NB*{j-|j!`S5+M#rts>B|op zRI1eds2H~1u(YTHjJ=*h?r1-1j#t!#Q`W~7|I0(L{b`=yBf~9<7oabu&c(KwN}$(> z3anqWd6PxLugf{y5x)v&EAU&#a_wEIvFzGxW9@+-m*$g;#q==W4fLFKFGuVsiT*AO zJGJ-J^(D&w$}T$lH+WhI*&*K~YfmhbTfv%{ueVX7O_kfHqmf=uL?=XiY>>gCuyLl% z%Vea4+39#BQWy~uX6j`$lN^Kzuy)xqn*=2LJcdcDaM-lI5{w6d;6rF`Nh-=jC>9vZ zFfGb@vV!P6`Jy5R(l?91-cwS81%D#Xj&Wa|M85$EC6aYypLnno6St?7p)I1TWlBr0 z;=0EkQg$SJ%$s4GLezk{%B#gRVVy$C>(An6_;J-GqpuF$233hiTD}CcdUjw6;+%#Z z-DIA$z(qI7JowXxS?btBMS=L+y=z7f&nSZGewnkqPgaR}&1V*5v7Fs{K`h4v+GgFkAm%z}6qN=e+;#iMh8h+^%niNqgTSJCh;rVDG`bvD2a0-pzE4(y zhJlfmpyvJfyE;v^Jf8*S9%Gwx#F8$yFu2g9C}D~x2UB~a@2JSbFY#k7Q-8W?n5rcB z6<<}WfLie0XLubGj=Sbt0~vu1mnaoNXogz)W@tDjX%EOcw+#~jQGzY1PmHyD6}3w5 zIuB@>tA)WVpcagGdxGj47h}NicHPmz?fPG+|N39k|AF)0^?(10_^*%u z|J&-n|55!PI~OlE$N#4-D= zG9e@;_!9HJnua(ygg7#dr?WM-m~}9>_&qsZ{+(`pu$Kcny#=NCKaFqgRBC@bzvXXt zT?Xw4Kjga4^6N~+M}*Jr=uZH4j-NjEW5f+-(Pug`0(g0NM$V5&%{^5f?!Ws#W$>NO z*Mw!2H2~tF;?b1X=JU z&^tm*3;ZF!T|4ey>-6@XA|?q2f@YQ*C?N}MTke2U-odl{#(I?P2tR@3U@22b-OwvP zFlla$ua&S9t&f$^ANUSWL1>|PRk3#TRjHv6Qb~%lg_3NM4bdIuJonExTR?*TY50PH zNA!H>VR3Kd-5CPfpZ=U}qbPP1jIaELm-l*of9GP6Mps<#F&+NN##Wm6F48^EgpeIQ zFd?yaHpa8~hRNPrAE)BPpC$}(Tp-;>Lk$G*23@$^V>ldO#f@&{OVl^d8diLIQNP3t zT>miG!E%aa@Jm+y{UjpJ&21BDx8=u$&X*7osRKE~5_$>`6HiUbcn=f!-8-$LekNi0 zy@jS*G`2A)E^o0D@+-GXW(8j^eYAn@!GNAvJ;EHwwYe~$(eg7TbemTe`t}9l?n()m z1x?F{9D)m~#vZ+&Jo+GAy;hb*2npf0Tc~6tBNv6EF-Q4D1E!ivQL*UxixJ}5Wmjl* z>sZ=gxH*KB3$At0H)-QJyIw4eXT+N=1;=&K9h6K=i2nWO^!tb<6%={*3Y`8R+Qr|4 z?`!=xhScaBVU;k%%KAl`0{A7Od|=t8ne5$M$-o9`MB`Y##I^f?kVb{0uF+DdHVh`{ zT-0xp<+pajGBBRIc`%Rl6+PO-x|r|@Ldd@qrBB-)?iW^8R^~fq_NF{gJ zb)+2gMEgi)s;tXdJ{>iQEsyMbR+RF%qfI%UUCJyW1-4S{Vq@=v_6N_RpY)7?(QDc7 zow%RMee^Q8rvW*+CU~yanf{?^n`*l*ujupM4{#YuOlS$uv_jV+5L|)2<~|s-Y;DlA zVi0_xHd^ez8zFAruW?ULp9)xJmNCN7r*Oyf_@_|%Ql5e(hAFzi8+BiT zG&Nx*2kZIC+VUCX)_bfIqQN~fpG!5Nr;)X!w2rAt1HBOP9Zb+vAzF9OTj_pdVF=U~ z+)F(ePgi4q!A0LRjNeoWEW*cX3e4e*#2R&3m*G6=f634fA%}i;3`f+e4uc1;QLge~ zmLl61(D!WyIe zG$>$&BLzr9pc5v;Fhf1_o4DzGnN}pzxAeZ4=kG_k=G(UdiMSCx@B;gwTEE&)s)(Ow zi8RP)3()TN;de7v+36Cu-9+6(Kcvpq;Q`=)Js>}@oLeI+1SzBwR4Yb=4Qz|utF>mj zX#Gz`?7rWAxuVUqkNyV=eo!DQ&_js$HFBsLnE60{`Af0uU1haygZo}4tNjwi>CjSR zw4RiI=tlw06*203?q&^0>mV^c3WyX!a-D+Y_0szlkpD?Mr)7Dof{oH+Os+^ z_ociN8W@!P^5s->v%tXGXd`*O=etHzBwDLjOI8JR3DB<8@3`(p5+?=XL;p*2%8#KJAxu4$Ha84p9mGjbEcYRFH36Fy&&>)R($g911p;((x^mRJ0i;^l&;8KmbHYc2*H7kIAS zBR7D@#8%!+KeXo|-jW?|M37Ur*zxx-639!6mE1`Xn=za*N%^WMl2;E;mx%yWd8kT! zT3hMu{r!x$dufDwB41+6zR$!Ju@<$GMkAACi}3h4!bMtuuZtiU6dg#z==TGWQg1p` zFixJLd?4b|Q}Y?thU)3eLCoLoofdQnSqC>FW<;I2_<$}DSCt(QOk+gmJ2L+&bOyP5 zi#L}KMoX?EJ%?G|Ej$R=+YS~wyThJy*+c!0%r0t_OXzLK07bvX?jXnnq75ns{p1gS zFBx7NQWYA6q4{U4VKlm-!kB(Bu~_Nm&oT0_0uP^AshU@Qe4t%@3V~d0(3QJQu->cD z`eemWE}_Y0ILy~Bx>sRCNxGhPwTDj?^Jo1g&7P&Q$t!Jd2|fXaulW!@&x)rT$p?Kt zutz$12hmfjv>|XBBtyo2wuy6-)#dNwp)zz4hVW)()y(jDyZwEE;q_4AAx{(S! z(PwJ9w}~Fb7gDDzCs{EA+H22Oux~k_kTbLZ@Q!WMmWI@;!h%}ldtN~=I0VxAM(aiM zI-cRT*2-AgW|`YYF$+g{h6D1sqD2rD{LSy9_z2#hjgI}A*Y8D;YP4}2r?#Nx@q<&6 zFOg!QJTxhVUT&r_o{mUn(R!uxT7dE~0hEKTp+}o&rKp3fdgI$>?EX5ubKB@BGZ0HH ze~`Gc3KASdU^>-7CA|wc@3P{lo%R_#guRgB?b#HCQ9kN>J+jZXv@6=bxm<rC5L{#M;L72K>o_4Q0&0U~Sto?A?QBoGa!{W3Z8JH((uFKktfh-w7W z|JKfV05!2Kd^}NlM*^V=h7yVbp;tkA6$Jzoqy$iELJJ*5dJ~b}6%bI0ARrJyGzuah zAkqYpDn&v^nu0#S-23jk@80{(n|WWE_w8?H^WS98$?l%ao;@eOOq3A_6Dkt##n^2; zX*(6?T767z?F&gfY!8Au@VjZ6(fd6M#W)@E%Ot~=oU@>wO^k`df<6kiFJcv?Ebg|&s#g7ivOm9WM}r~Q8CS8 zzsfz#uuC2GT~CG8il1DrJfu)rG=|qrxK8>qDLxf;R}g|EJHlj#YtirI8#bzBtG?4> zZF5t~WmrX^3w*|GpyG>ZoZe^O^JnN%H%XAi<4i@}zP0-oLN`~l>Xp&*1KFD?B`(U4 zN+mdZ%G3$d1|2dWcDyjt9XGhE6QlM#-^yQOzY`feu_nY4KX>7nLB-MNU`gwis<_Uq zdF+}obXQ<${Kje~ox0mp3bjL5g0CfHwe_F|lKaw2izmkGHOT@3QqTJmAgHIcxCqG` z(Qi1??D=sm<j(#`?~umuH0qvv)nE?v|U|sI#zKyj<;a@2X$&>j$x6I!)GeEw9)r zO5MlruY?B(va`Cg%aR-_Uom0hm{*UX5<9OOTFtJbG<;cFX5Wl=T^Dq3t?Rh=VC6|{ z=5AIeX4DPCF?%9Tu1jJW#zah6FQBH&GrU1zV;-`n@35RS8mPu)Cc4sl+NhNFMLnGe z`N%cho0MH0_4w~FTE&Zp(znt3aytfEI8uduWzS~lAS02@99`V&*oEssOf1(j`hJhP zdRKGjLnOuSTrpyK6k2WXc~kOej1X&TmjYXnj zM_ zAsz|)Dip)O4;{zaw9YmeA@N=5J|E9b>6=Qqh4(^BAILWPy2Oy!4SZ}%eoKx6e<3~- zt|f-&msDoAmX%$)|5CQzPIb8I!20qj$jy)mWV8R>`nJZ0eQwv)ctu%oXniApwZ3Y;`tyGf(_z1G|3!qFq|&qq33(_~x6 z%G6o$Ks{RKcDUowC?T=)45-F3oPCyIBYCF&<2YW0r%G}U8~tdrq@`p<7lwjFVQbjl zX>=W<-%49L?ZdqtNAfiyZo42A3#v>7ohi3USQUGUKQOwk8rW z?Rm%`1;y6sOXJmJf}UO@k1(1y#{BRy(w6;P$H+RZVx}eD2gu|PKpMsUJ6>@W1I_PN!K7-lFVyJho58n4Gwjbf64H!e-`nU)#&`I_oksShbFY@>fvL~6|VeqeKg z*mCy~&)Nj)$tX-lald|JCJ%WYsxR}^f4oz=zy69*XaJ|6``9gpvaS#$_Nl#0{My}& zew}YE1=WsY=FUx{m8YkUqRTu+OX5~D3!Wi&7b<6stV&m&EiKt>r@s_28g?OiAO|DfU&W96EyhRqt?vRX4ET1-t0gf1W4d zY{GwQ)vmLptOlnq@ZOG)Je8}DaIK*zl9{T-<9%-^Ju6KM)nwNVNQssUTqot-d`h>9 zJ9S~do8X78J#WIrxR17rPRAI(CVDkfQ7}u%(TS@%zCNEjc*#V0MuV7|8rQl~%QpWd zHLm-5@f+>{WQdB@ML#=(=I`D+JA|(>HZ2PHhsQ zTVfp_>U-+6jlz*OBG`d4DjlglyOD#5(~dG zNfjejGdDQl?5Af07?VGsOT=m~^;MAJl7ClR6sr{Qw(DQ5ep4{VC*Y=6^l_?-f zN+Xrz>bRVdC3R(YVhvGik+M>tNUyrre#%s`a%q&t(Q?1e1-AwE_gKcKS2A2%UBr@| zENc!GutCfFK)+BSse2Ir0|mTf;yZJ6k-Uk#-8%FsrYdxZ`!?1cCdlNFHK8Qr@Xp7ZOeS|~*IO4s=EqMtO7JX-`x;5G-$ol(LT1x_NuMu5`Zf`x8)tZ>HjdU&B zikx}pd5ZVVbZ)44c+V>9WaMlEOYe&SgGXlfj0N={G}>R(C^spvtmuBbR3Ke*twJ?z z`Ls$c&sR<9gx#Vd!D2ScUh3_FK>Esa;0O>JX17Qoyk_a?DAbdw*RTh!1S=UN)lZWpQyeO$=4&!{_<=W7iY)2 z6HSAxA|J8MdSAI^-m7R&QkDKjUWiOC=veMWp;Px&Yv8_Q^-MCP??XI3_B8RwXk#Sk(l6S78i^xXyOt*wF2@f+UoQq&AeXGNHqUPPEB6Fj) z?UH2(tS5snNElh$lgiA&3===2e_KoRsunjalRvWp`pkivZKKQ1y|`ydEg<9>h7QOIUzU9++pn2f8<(znBDP2h>oPngLwbFs&z5JDw&W5dRKDqjdX|n zDCcH6`*URlg>sJf?#uGj!`}?;HE|(p9mFtf`-3*2PZ)|=OqnsauGof;JsC6q@Jzs|uRQK9s6?|29x3RUpWv*LLvIs4e?f zq8JxtOzshB-xmZ!xkG$NhtV$m$6AxvPR=&Z6qq=KFPI4>3=HjM&YQM?Y3j^AetY9q zVpiJQnLlSeTNT(hc@{Qsme1r8DWCIZ2V8Pm+ccpiI9OawAmj9bCr0P3J3s!|AR6GN z|2?59nt5n^$4qFjE6`!&JwFYNkjc-nQ5NZw;Sfq6?SZF z_~#gUrXPQRNxnIzO`mF^z$p?UDTyV4ONm34XfQ$5BG|EZF{97<)F(NW43R@s_Lt3> z+GI72uaKYc|Vqx8#;+>@xtOlvh0QutfCqHj74ft3i{o6*mnCQDS zTy#5BB6(Ljx3@xi4eArWVT>3Qv0OtL6w4!9V%U(BEP^ur$}6^Oc@wX+A+kBv@(5Zh z=d<9)JU7~W@1nAK2t3*~B~=Zc7E5GNnjBzR%?%&Wa~I~`1ZUEaFv`xprja%COIu{y zW)@1SYlxn4%Jw_rAby9XWh%aVB_usj=*mvO%TEY)Sj4dj9#FK*a!(m*GWOb?ewN#~ z6)ltgfZgWT*RI9ZuzNyQn%W}97QV@b?=AAE=a%e?uH1NSnD5Y5)1oCJ^dmcWbm^w7 zi&BWerIzc_GT!eJZ{6VUTDh{*bg!ZWSL)2pnFMlov(W0N=KRoJIp#F@fmne7T{+Q? zMYYXgkuCVL^Zc4E=OiBun$6#d@3?s*fvL2qDDpA0*t5o3A$DPQ41T`hrL6+D&?50} zGYWb$YO&OAZNU9KNnh3rlH?p2Z#pw-i?B5+i!H&n;P}P3a;1uVIZR=W|I@CS4IQ-2 z=*=*3xbM3K`ZnjI=J;SaQOL45Z17lXN2c3Z#&(-|T~{J0Sm4*F*N;)qw9mq)r)&ds zwWb}%hu`^sL#_Jxtvjf5KBQXRTjf}5n$$RsADXzn@j4-z`djf43(g6pJ2)msi16`n%GM%oY0Za)EYf*_m)D;?q3uXFsgVXEItdf?k7CEt88 zkt2c36hoC^pl|N%UE|bbW3<@tkC9bOzBINh8uagJ%ZQ{vx4;6$N%wo{pY*eNi+xu* zP{$trnF9xg=dabVu!yjlk(H4b+Qa_8%`yE~{!dg?;#dDGEq3t#KL{ylQNaKG4*^!e z*dah5y8Tr$(9a~I_~W8vgyo+&LdXMa2tIrdG{_ZX1+w3NMF0B_82|v_-^{_aOAWFG zVL+ZBuYb6Hoj{HtPi+^p?ZIzAKtH<(`Td3e$03Kc|Dq<+$J32a^EJ}V#nIDCRCEx0 zEVD0`3J6t^&SMA@NzRL~fdo#$csb2eTM`x_2-WJL!J2#`3*bxJhoBv$}J79n+# z3n3~g9TY@H2IWO4YFoSd`3D3BT}%JjBw#S1ZD@bjRvCYN#@QkM?_|J-CEY+C z``f+ux7mYy_RHFWZ1!KV`+ci|q5ssXe_HcDwpIW1jDOdv0RKJ+?MX)Yzk3(}00937 zIp`m_2&qiS;GYR5Y(GLsqTke^BP16gl?fUAGr@#%M+iwoNHRjw5t56L%7hI5nS@RY zOqhIt33~<;W+-4fLUIvO`CmF^0D%8D9Q_$|2ls#VKcD{t008_4113^4Qd0r_`2_3W zUdy$=SpQN1^v44MLfL~`F*E4zWw{8cOvvD$2@C`P0000000000000000000000000 g000000000000000000000R9#J27{e($p8of0NXqpvH$=8 literal 55219 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 F_#cMyg>e7? diff --git a/routes/_utils/arrays.js b/routes/_utils/arrays.js index 7de1c4e1..b13882a2 100644 --- a/routes/_utils/arrays.js +++ b/routes/_utils/arrays.js @@ -44,3 +44,12 @@ export function concat () { } return res } + +export function indexWhere (arr, cb) { + for (let i = 0; i < arr.length; i++) { + if (cb(arr[i], i)) { + return i + } + } + return -1 +} diff --git a/tests/fixtures.js b/tests/fixtures.js index a22a0a95..bcd0f7e1 100644 --- a/tests/fixtures.js +++ b/tests/fixtures.js @@ -4,10 +4,8 @@ export const homeTimeline = [ { content: 'pinned toot 1' }, { content: 'notification of unlisted message' }, { content: 'notification of followers-only message' }, - { content: 'notification of direct message' }, { content: 'this is unlisted' }, { content: 'this is followers-only' }, - { content: 'direct' }, { spoiler: 'kitten CW' }, { content: 'secret video' }, { content: "here's a video" }, diff --git a/tests/spec/003-basic-timeline-spec.js b/tests/spec/003-basic-timeline-spec.js index 2c3ec0d2..183c03e3 100644 --- a/tests/spec/003-basic-timeline-spec.js +++ b/tests/spec/003-basic-timeline-spec.js @@ -22,7 +22,7 @@ test('Shows the home timeline', async t => { await validateTimeline(t, homeTimeline) - await t.expect(getFirstVisibleStatus().getAttribute('aria-setsize')).eql('49') + await t.expect(getFirstVisibleStatus().getAttribute('aria-setsize')).eql('47') }) test('Shows notifications', async t => { diff --git a/tests/spec/005-status-types.js b/tests/spec/005-status-types.js index e1b09e55..2c4eedc5 100644 --- a/tests/spec/005-status-types.js +++ b/tests/spec/005-status-types.js @@ -5,7 +5,7 @@ import { Selector as $ } from 'testcafe' fixture`005-status-types.js` .page`http://localhost:4002` -test('shows direct vs followers-only vs regular', async t => { +test('shows followers-only vs regular in home timeline', async t => { await loginAsFoobar(t) await t .expect(getNthStatus(1).getAttribute('aria-label')).eql('Status by admin') @@ -18,11 +18,6 @@ test('shows direct vs followers-only vs regular', async t => { .expect($(`${getNthStatusSelector(2)} .status-toolbar button:nth-child(2)`).getAttribute('aria-label')) .eql('Cannot be boosted because this is followers-only') .expect($(`${getNthStatusSelector(2)} .status-toolbar button:nth-child(2)`).hasAttribute('disabled')).ok() - .expect(getNthStatus(3).getAttribute('aria-label')).eql('Direct message by admin') - .expect($(`${getNthStatusSelector(3)} .status-content`).innerText).contains('notification of direct message') - .expect($(`${getNthStatusSelector(3)} .status-toolbar button:nth-child(2)`).getAttribute('aria-label')) - .eql('Cannot be boosted because this is a direct message') - .expect($(`${getNthStatusSelector(3)} .status-toolbar button:nth-child(2)`).hasAttribute('disabled')).ok() }) test('shows direct vs followers-only vs regular in notifications', async t => { diff --git a/tests/spec/008-status-media.js b/tests/spec/008-status-media.js index facbafd0..c8c275e3 100644 --- a/tests/spec/008-status-media.js +++ b/tests/spec/008-status-media.js @@ -1,34 +1,44 @@ import { closeDialogButton, getNthStatus, getNthStatusSelector, modalDialogContents, scrollToStatus } from '../utils' import { loginAsFoobar } from '../roles' import { Selector as $ } from 'testcafe' +import { homeTimeline } from '../fixtures' +import { indexWhere } from '../../routes/_utils/arrays' fixture`008-status-media.js` .page`http://localhost:4002` test('shows sensitive images and videos', async t => { await loginAsFoobar(t) - await scrollToStatus(t, 7) - await t.expect($(`${getNthStatusSelector(7)} .status-media img`).exists).notOk() - .click($(`${getNthStatusSelector(7)} .status-sensitive-media-button`)) - .expect($(`${getNthStatusSelector(7)} .status-media img`).getAttribute('alt')).eql('kitten') - .expect($(`${getNthStatusSelector(7)} .status-media img`).hasAttribute('src')).ok() - .hover(getNthStatus(8)) - .expect($(`${getNthStatusSelector(8)} .status-media .play-video-button`).exists).notOk() - .click($(`${getNthStatusSelector(8)} .status-sensitive-media-button`)) - .expect($(`${getNthStatusSelector(8)} .status-media .play-video-button`).exists).ok() + + let kittenIdx = indexWhere(homeTimeline, _ => _.spoiler === 'kitten CW') + let videoIdx = indexWhere(homeTimeline, _ => _.content === 'secret video') + + await scrollToStatus(t, kittenIdx) + await t.expect($(`${getNthStatusSelector(kittenIdx)} .status-media img`).exists).notOk() + .click($(`${getNthStatusSelector(kittenIdx)} .status-sensitive-media-button`)) + .expect($(`${getNthStatusSelector(kittenIdx)} .status-media img`).getAttribute('alt')).eql('kitten') + .expect($(`${getNthStatusSelector(kittenIdx)} .status-media img`).hasAttribute('src')).ok() + .hover(getNthStatus(videoIdx)) + .expect($(`${getNthStatusSelector(videoIdx)} .status-media .play-video-button`).exists).notOk() + .click($(`${getNthStatusSelector(videoIdx)} .status-sensitive-media-button`)) + .expect($(`${getNthStatusSelector(videoIdx)} .status-media .play-video-button`).exists).ok() }) test('click and close image and video modals', async t => { await loginAsFoobar(t) - await scrollToStatus(t, 9) + + let videoIdx = indexWhere(homeTimeline, _ => _.content === "here's a video") + let kittenIdx = indexWhere(homeTimeline, _ => _.content === "here's an animated kitten gif") + + await scrollToStatus(t, videoIdx) await t.expect(modalDialogContents.exists).notOk() - .click($(`${getNthStatusSelector(9)} .play-video-button`)) + .click($(`${getNthStatusSelector(videoIdx)} .play-video-button`)) .expect(modalDialogContents.exists).ok() .click(closeDialogButton) .expect(modalDialogContents.exists).notOk() - .hover(getNthStatus(11)) - .hover(getNthStatus(12)) - .click($(`${getNthStatusSelector(12)} .show-image-button`)) + .hover(getNthStatus(kittenIdx - 1)) + .hover(getNthStatus(kittenIdx)) + .click($(`${getNthStatusSelector(kittenIdx)} .show-image-button`)) .expect(modalDialogContents.exists).ok() .click(closeDialogButton) .expect(modalDialogContents.exists).notOk() diff --git a/tests/spec/010-focus.js b/tests/spec/010-focus.js index 204e628d..840dc437 100644 --- a/tests/spec/010-focus.js +++ b/tests/spec/010-focus.js @@ -5,21 +5,26 @@ import { } from '../utils' import { loginAsFoobar } from '../roles' import { Selector as $ } from 'testcafe' +import { indexWhere } from '../../routes/_utils/arrays' +import { homeTimeline } from '../fixtures' fixture`010-focus.js` .page`http://localhost:4002` test('modal preserves focus', async t => { await loginAsFoobar(t) - await scrollToStatus(t, 9) + + let idx = indexWhere(homeTimeline, _ => _.content === "here's a video") + + await scrollToStatus(t, idx) // explicitly hover-focus-click - await t.hover($(`${getNthStatusSelector(9)} .play-video-button`)) - await focus(`${getNthStatusSelector(9)} .play-video-button`)() - await t.click($(`${getNthStatusSelector(9)} .play-video-button`)) + await t.hover($(`${getNthStatusSelector(idx)} .play-video-button`)) + await focus(`${getNthStatusSelector(idx)} .play-video-button`)() + await t.click($(`${getNthStatusSelector(idx)} .play-video-button`)) .click(closeDialogButton) .expect(modalDialogContents.exists).notOk() .expect(getActiveElementClass()).contains('play-video-button') - .expect(getActiveElementInsideNthStatus()).eql('9') + .expect(getActiveElementInsideNthStatus()).eql(idx.toString()) }) test('timeline preserves focus', async t => { diff --git a/tests/spec/017-compose-reply.js b/tests/spec/017-compose-reply.js index 29f269c2..1b5fab40 100644 --- a/tests/spec/017-compose-reply.js +++ b/tests/spec/017-compose-reply.js @@ -6,6 +6,8 @@ import { getNthStatus, getUrl, homeNavButton, notificationsNavButton, scrollToStatus } from '../utils' import { loginAsFoobar } from '../roles' +import { homeTimeline } from '../fixtures' +import { indexWhere } from '../../routes/_utils/arrays' fixture`017-compose-reply.js` .page`http://localhost:4002` @@ -52,48 +54,46 @@ test('replies have same privacy as replied-to status by default', async t => { .expect(getNthPostPrivacyButton(2).getAttribute('aria-label')).eql('Adjust privacy (currently Followers-only)') .click(getNthReplyButton(2)) .hover(getNthStatus(3)) - .click(getNthReplyButton(3)) - .expect(getNthPostPrivacyButton(3).getAttribute('aria-label')).eql('Adjust privacy (currently Direct)') - .click(getNthReplyButton(3)) .hover(getNthStatus(4)) .hover(getNthStatus(5)) - .hover(getNthStatus(6)) - .hover(getNthStatus(7)) - .click(getNthReplyButton(7)) - .expect(getNthPostPrivacyButton(7).getAttribute('aria-label')).eql('Adjust privacy (currently Public)') - .click(getNthReplyButton(7)) + .click(getNthReplyButton(5)) + .expect(getNthPostPrivacyButton(5).getAttribute('aria-label')).eql('Adjust privacy (currently Public)') + .click(getNthReplyButton(5)) }) test('replies have same CW as replied-to status', async t => { await loginAsFoobar(t) - await scrollToStatus(t, 7) - await t.click(getNthReplyButton(7)) - .expect(getNthReplyContentWarningInput(7).value).eql('kitten CW') - .click(getNthStatus(7)) + let kittenIdx = indexWhere(homeTimeline, _ => _.spoiler === 'kitten CW') + await scrollToStatus(t, kittenIdx) + await t.click(getNthReplyButton(kittenIdx)) + .expect(getNthReplyContentWarningInput(kittenIdx).value).eql('kitten CW') + .click(getNthStatus(kittenIdx)) .click(getNthReplyButton(0)) .expect(getNthReplyContentWarningInput(0).value).eql('kitten CW') }) test('replies save deletions of CW', async t => { await loginAsFoobar(t) - await scrollToStatus(t, 7) - await t.click(getNthReplyButton(7)) - .expect(getNthReplyContentWarningInput(7).value).eql('kitten CW') - .click(getNthReplyContentWarningButton(7)) - .expect(getNthReplyContentWarningInput(7).exists).notOk() - .click(getNthStatus(7)) + let kittenIdx = indexWhere(homeTimeline, _ => _.spoiler === 'kitten CW') + await scrollToStatus(t, kittenIdx) + await t.click(getNthReplyButton(kittenIdx)) + .expect(getNthReplyContentWarningInput(kittenIdx).value).eql('kitten CW') + .click(getNthReplyContentWarningButton(kittenIdx)) + .expect(getNthReplyContentWarningInput(kittenIdx).exists).notOk() + .click(getNthStatus(kittenIdx)) .click(getNthReplyButton(0)) .expect(getNthReplyContentWarningInput(0).exists).notOk() }) test('replies save changes to CW', async t => { await loginAsFoobar(t) - await scrollToStatus(t, 7) - await t.click(getNthReplyButton(7)) - .expect(getNthReplyContentWarningInput(7).value).eql('kitten CW') - .typeText(getNthReplyContentWarningInput(7), ' yolo', { paste: true }) - .expect(getNthReplyContentWarningInput(7).value).eql('kitten CW yolo') - .click(getNthStatus(7)) + let kittenIdx = indexWhere(homeTimeline, _ => _.spoiler === 'kitten CW') + await scrollToStatus(t, kittenIdx) + await t.click(getNthReplyButton(kittenIdx)) + .expect(getNthReplyContentWarningInput(kittenIdx).value).eql('kitten CW') + .typeText(getNthReplyContentWarningInput(kittenIdx), ' yolo', { paste: true }) + .expect(getNthReplyContentWarningInput(kittenIdx).value).eql('kitten CW yolo') + .click(getNthStatus(kittenIdx)) .click(getNthReplyButton(0)) .expect(getNthReplyContentWarningInput(0).value).eql('kitten CW yolo') }) diff --git a/tests/spec/100-favorite-unfavorite.js b/tests/spec/100-favorite-unfavorite.js index 6c1aad9f..39e0b6a4 100644 --- a/tests/spec/100-favorite-unfavorite.js +++ b/tests/spec/100-favorite-unfavorite.js @@ -4,6 +4,8 @@ import { scrollToBottomOfTimeline, scrollToTopOfTimeline } from '../utils' import { loginAsFoobar } from '../roles' +import { indexWhere } from '../../routes/_utils/arrays' +import { homeTimeline } from '../fixtures' fixture`100-favorite-unfavorite.js` .page`http://localhost:4002` @@ -59,20 +61,21 @@ test('unfavorites a status', async t => { test('Keeps the correct favorites count', async t => { await loginAsFoobar(t) + let idx = indexWhere(homeTimeline, _ => _.content === 'this is unlisted') await t - .hover(getNthStatus(4)) - .click(getNthFavoriteButton(4)) - .expect(getNthFavorited(4)).eql('true') - .click(getNthStatus(4)) + .hover(getNthStatus(idx)) + .click(getNthFavoriteButton(idx)) + .expect(getNthFavorited(idx)).eql('true') + .click(getNthStatus(idx)) .expect(getUrl()).contains('/status') .expect(getNthFavorited(0)).eql('true') .expect(getFavoritesCount()).eql(2) .click(homeNavButton) .expect(getUrl()).eql('http://localhost:4002/') - .hover(getNthStatus(4)) - .click(getNthFavoriteButton(4)) - .expect(getNthFavorited(4)).eql('false') - .click(getNthStatus(4)) + .hover(getNthStatus(idx)) + .click(getNthFavoriteButton(idx)) + .expect(getNthFavorited(idx)).eql('false') + .click(getNthStatus(idx)) .expect(getUrl()).contains('/status') .expect(getNthFavorited(0)).eql('false') .expect(getFavoritesCount()).eql(1) diff --git a/tests/spec/101-reblog-unreblog.js b/tests/spec/101-reblog-unreblog.js index 008ac50b..9e08ba0a 100644 --- a/tests/spec/101-reblog-unreblog.js +++ b/tests/spec/101-reblog-unreblog.js @@ -37,44 +37,44 @@ test('reblogs a status', async t => { test('unreblogs a status', async t => { await loginAsFoobar(t) await t - .hover(getNthStatus(4)) - .expect(getNthReblogged(4)).eql('false') - .click(getNthReblogButton(4)) - .expect(getNthReblogged(4)).eql('true') - .click(getNthReblogButton(4)) - .expect(getNthReblogged(4)).eql('false') + .hover(getNthStatus(3)) + .expect(getNthReblogged(3)).eql('false') + .click(getNthReblogButton(3)) + .expect(getNthReblogged(3)).eql('true') + .click(getNthReblogButton(3)) + .expect(getNthReblogged(3)).eql('false') // scroll down and back up to force an unrender await scrollToBottomOfTimeline(t) await scrollToTopOfTimeline(t) await t - .hover(getNthStatus(4)) - .expect(getNthReblogged(4)).eql('false') + .hover(getNthStatus(3)) + .expect(getNthReblogged(3)).eql('false') .click(notificationsNavButton) .click(homeNavButton) - .expect(getNthReblogged(4)).eql('false') + .expect(getNthReblogged(3)).eql('false') .click(notificationsNavButton) .navigateTo('/') - .expect(getNthReblogged(4)).eql('false') - .click(getNthReblogButton(4)) - .expect(getNthReblogged(4)).eql('true') + .expect(getNthReblogged(3)).eql('false') + .click(getNthReblogButton(3)) + .expect(getNthReblogged(3)).eql('true') }) test('Keeps the correct reblogs count', async t => { await loginAsFoobar(t) await t - .hover(getNthStatus(4)) - .expect(getNthReblogged(4)).eql('true') - .click(getNthStatus(4)) + .hover(getNthStatus(3)) + .expect(getNthReblogged(3)).eql('true') + .click(getNthStatus(3)) .expect(getUrl()).contains('/status') .expect(getNthReblogged(0)).eql('true') .expect(getReblogsCount()).eql(2) .click(homeNavButton) .expect(getUrl()).eql('http://localhost:4002/') - .hover(getNthStatus(4)) - .click(getNthReblogButton(4)) - .expect(getNthReblogged(4)).eql('false') - .click(getNthStatus(4)) + .hover(getNthStatus(3)) + .click(getNthReblogButton(3)) + .expect(getNthReblogged(3)).eql('false') + .click(getNthStatus(3)) .expect(getUrl()).contains('/status') .expect(getNthReblogged(0)).eql('false') .expect(getReblogsCount()).eql(1) diff --git a/tests/spec/102-notifications.js b/tests/spec/102-notifications.js index 4cae0106..29211359 100644 --- a/tests/spec/102-notifications.js +++ b/tests/spec/102-notifications.js @@ -1,37 +1,25 @@ import { loginAsFoobar } from '../roles' import { - getNthStatus, getNthStatusSelector, getUrl, homeNavButton, notificationsNavButton, - validateTimeline + getNthStatus, getUrl, homeNavButton, notificationsNavButton } from '../utils' -import { favoriteStatusAs } from '../serverActions' -import { notifications } from '../fixtures' -import { Selector as $ } from 'testcafe' +import { favoriteStatusAs, postAs } from '../serverActions' fixture`102-notifications.js` .page`http://localhost:4002` test('shows unread notifications', async t => { + let { id } = await postAs('foobar', 'somebody please favorite this to validate me') await loginAsFoobar(t) await t - .hover(getNthStatus(0)) - .hover(getNthStatus(2)) - .hover(getNthStatus(4)) - .hover(getNthStatus(5)) .expect(notificationsNavButton.getAttribute('aria-label')).eql('Notifications') - let statusId = (await $(`${getNthStatusSelector(5)} .status-relative-date`).getAttribute('href')) - .split('/').slice(-1)[0] - await favoriteStatusAs('admin', statusId) + await favoriteStatusAs('admin', id) await t .expect(notificationsNavButton.getAttribute('aria-label')).eql('Notifications (1)') .click(notificationsNavButton) .expect(getUrl()).contains('/notifications') .expect(notificationsNavButton.getAttribute('aria-label')).eql('Notifications (current page)') - await validateTimeline(t, [ - { - favoritedBy: 'admin', - content: 'this is followers-only' - } - ].concat(notifications)) + .expect(getNthStatus(0).innerText).contains('somebody please favorite this to validate me') + .expect(getNthStatus(0).innerText).match(/admin\s+favorited your status/) await t .click(homeNavButton) .expect(notificationsNavButton.getAttribute('aria-label')).eql('Notifications')