package Ġeu . kan ade . t ach iy omi . extension . ru . unic omics Ċ Ċ import Ġeu . kan ade . t ach iy omi . lib . rate limit . RateLimit Interceptor Ċ import Ġeu . kan ade . t ach iy omi . network . GET Ċ import Ġeu . kan ade . t ach iy omi . network . as Observable Success Ċ import Ġeu . kan ade . t ach iy omi . source . model . Filter List Ċ import Ġeu . kan ade . t ach iy omi . source . model . M ang as Page Ċ import Ġeu . kan ade . t ach iy omi . source . model . Page Ċ import Ġeu . kan ade . t ach iy omi . source . model . S Chapter Ċ import Ġeu . kan ade . t ach iy omi . source . model . SM anga Ċ import Ġeu . kan ade . t ach iy omi . source . online . Parsed Http Source Ċ import Ġeu . kan ade . t ach iy omi . util . as J soup Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . nodes . Element Ċ import Ġrx . Observable Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠUni Com ics Ġ: ĠParsed Http Source () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" Uni Com ics " ĊĊĠĠĠ Ġprivate Ġval Ġbase Default Url Ġ= Ġ" https :// unic omics . ru " ĊĠĠĠ Ġoverride Ġvar ĠbaseUrl Ġ= Ġbase Default Url ĊĊĠĠĠ Ġoverride Ġval Ġlang Ġ= Ġ" ru " ĊĊĠĠĠ Ġoverride Ġval Ġsupports Latest Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġclient : ĠOk HttpClient Ġ= Ġnetwork . client . newBuilder () ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( 1 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. read Timeout ( 3 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. add Network Interceptor ( RateLimit Interceptor ( 3 )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġoverride Ġfun Ġheaders Builder (): ĠHeaders . Builder Ġ= ĠHeaders . Builder () ĊĠĠĠĠĠĠĠ Ġ. add (" User - Agent ", Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ) ĠAppleWebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 1 0 0 . 0 . 4 8 9 6 . 1 2 7 ĠSafari / 5 3 7 . 3 6 ĠEd g / 1 0 0 . 0 . 1 1 8 5 . 5 0 ") ĊĠĠĠĠĠĠĠ Ġ. add (" Refer er ", Ġbase Default Url ) ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ= ĊĠĠĠĠĠĠĠ ĠGET ("$ base Default Url / com ics / series / page /$ page ", Ġheaders ) ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ= ĊĠĠĠĠĠĠĠ ĠGET ("$ base Default Url / com ics / online / page /$ page ", Ġheaders ) ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ= ĊĠĠĠĠĠĠĠ ĠGET (" https :// yandex . ru / search / site /? frame = 1 & lr = 1 7 2 & search id = 1 9 5 9 3 5 8 & top doc = xd m _ e =$ base Default Url & xd m _ c = default 5 0 4 4 & xd m _ p = 1 & v = 2 . 0 & web = 0 & text =$ query & p =$ page ", Ġheaders ) ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Selector () Ġ= ĊĠĠĠĠĠĠĠ Ġ". b - ser p - item __ content : has (. b - ser p - url __ item : contains (/ com ics / ): not (: contains (/ com ics / events )): not (: contains (/ com ics / publish ers )): not (: contains (/ page / )) ): has (. b - ser p - item __ title - link : not (: contains ( Ðļ Ð¾Ð¼ Ð¸Ðº ÑģÑĭ ĠÑĩ Ð¸ÑĤ Ð°ÑĤÑĮ ĠÐ¾ Ð½ Ð» Ð°Ð¹ Ð½ ĠÐ± ÐµÑģ Ð¿ Ð» Ð°ÑĤ Ð½Ð¾ ))) " ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Next Page Selector () Ġ= Ġ". b - pager __ next " ĊĠĠĠ Ġoverride Ġfun Ġsearch M anga From Element ( element : ĠElement ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement . select (" a . b - ser p - item __ title - link "). first (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorigin Url Ġ= Ġit . attr (" href ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ characters $ | / cre ators $ ". to Regex (). replace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ page $ ". to Regex (). replace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ [ 0 - 9 ]+ /? $ ". to Regex (). replace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Url . substring After ( PATH _ URL ). substring After ( PATH _ online ). substring After ( PATH _ issue ), Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġissue Number Ġ= Ġ"- [ 0 - 9 ]+ /? $ ". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Url Without Domain ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( issue Number . contains Match In ( url String ) Ġ&& Ġ( origin Url . contains ( PATH _ online ) Ġ|| Ġorigin Url . contains ( PATH _ issue ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissue Number . replace ( url String , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġurl String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġit . text (). substring Before (" Ġ( "). substring Before (" ĠâĦ ĸ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġresponse . as J soup () ĊĠĠĠĠĠĠĠ Ġif Ġ( document . select (". Checkbox Captcha "). isNotEmpty () Ġ&& ĠbaseUrl Ġ== Ġbase Default Url ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġdocument . location () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" ÐŁÑĢ Ð¾Ð¹ Ð´ Ð¸ÑĤÐµ ĠÐº Ð°Ð¿ Ñĩ Ñĥ ĠÐ² ĠWebView ( ÑģÐ»Ð¸ ÑĪ Ðº Ð¾Ð¼ ĠÐ¼ Ð½Ð¾Ð³Ð¾ ĠÐ·Ð°Ð¿ ÑĢÐ¾Ñģ Ð¾Ð² )") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( baseUrl Ġ!= Ġbase Default Url ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġbase Default Url ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġhas Next Page Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġm ang as Ġ= Ġdocument . select ( search M anga Selector ()). map Ġ{ Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch M anga From Element ( element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnext Search Page Ġ= Ġdocument . select ( search M anga Next Page Selector ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( next Search Page . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Next Page Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠM ang as Page ( m ang as . distinct By Ġ{ Ġit . url Ġ}, Ġhas Next Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch M anga ById Request ( id : ĠString ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ base Default Url $ PATH _ URL $ id ", Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Search M anga ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠObservable < M ang as Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( query . startsWith ( PREFIX _ SL UG _ SEARCH )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreal Query Ġ= Ġquery . remove Prefix ( PREFIX _ SL UG _ SEARCH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient . new Call ( search M anga ById Request ( real Query )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Observable Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdetails Ġ= Ġm anga Details Parse ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails . url Ġ= Ġreal Query ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM ang as Page ( listOf ( details ), Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient . new Call ( search M anga Request ( page , Ġquery , Ġfilters )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Observable Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch M anga Parse ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector () Ġ= Ġ" div . list _ com ics " ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Selector () Ġ= Ġpopular M anga Selector () ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġelement . select (". left _ com ics Ġimg "). first (). attr (" src "). replace (". jpg ", Ġ"_ big . jpg ") ĊĠĠĠĠĠĠĠ Ġelement . select (" a "). first (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . set Url Without Domain ( it . attr (" href "). substring After ( PATH _ URL )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm anga . title Ġ= Ġelement . select (". list _ title "). first (). text () ĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġresponse . as J soup () ĊĊĠĠĠĠĠĠĠ Ġval Ġm ang as Ġ= Ġdocument . select ( popular M anga Selector ()). map Ġ{ Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular M anga From Element ( element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠM ang as Page ( m ang as , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates From Element ( element : ĠElement ): ĠSM anga Ġ= Ġpopular M anga From Element ( element ) ĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Parse ( response : ĠResponse ): ĠM ang as Page Ġ= Ġpopular M anga Parse ( response ) ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Next Page Selector () Ġ= Ġpopular M anga Next Page Selector () ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Request ( manga : ĠSM anga ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( base Default Url Ġ+ ĠPATH _ URL Ġ+ Ġm anga . url , Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Element Ġ= Ġdocument . select (". block . left . common "). first () ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġinfo Element . select (" h 1 "). first (). text () ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġinfo Element . select (" img "). first (). attr (" src ") ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġinfo Element . select (" p "). last ()?. text () ĊĠĠĠĠĠĠĠ Ġauthor Ġ= Ġinfo Element . select (" tr : contains ( Ðĺ Ð· Ð´ Ð°ÑĤÐµÐ»ÑĮ ÑģÑĤÐ² Ð¾ ) "). text () ĊĠĠĠĠĠĠĠ Ġgenre Ġ= Ġinfo Element . select (" tr : contains ( Ð ĸ Ð°Ð½ ÑĢ ) Ġa "). join ToString Ġ{ Ġit . text () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Chapter List ( manga : ĠSM anga ): ĠObservable < List < S Chapter >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġclient . new Call ( GET ( base Default Url Ġ+ ĠPATH _ URL Ġ+ Ġm anga . url , Ġheaders )). execute (). as J soup () ĊĠĠĠĠĠĠĠ Ġval Ġpages Ġ= Ġmutable ListOf ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Str Array Ġ= Ġdocument . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring After (" new ĠPag inator (" ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring Before (" );</ script >") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. split (", Ġ") ĊĠĠĠĠĠĠĠ Ġif Ġ( data Str Array [ 1 ]. toInt () Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpages Ġ+= Ġ( 2 .. data Str Array [ 1 ]. toInt ()). toList () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpages . flatMap Ġ{ Ġpage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter List Parse ( client . new Call ( chapter Page List Request ( manga , Ġpage )). execute ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. reversed () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchapter Page List Request ( manga : ĠSM anga , Ġpage : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ base Default Url $ PATH _ URL ${ manga . url }/ page /$ page ", Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchapter List Selector () Ġ= Ġ" div . right _ com ics " ĊĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Element Ġ= Ġelement . select (". button . online Ġa "). first () ĊĠĠĠĠĠĠĠ Ġval Ġchapter Ġ= ĠS Chapter . create () ĊĠĠĠĠĠĠĠ Ġelement . select (". list _ title "). first (). text (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . contains (" ĠâĦ ĸ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . name Ġ= Ġit . substring After Last (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . chapter _ number Ġ= Ġit . substring After (" ĠâĦ ĸ "). toFloat OrNull () Ġ?: Ġ- 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . name Ġ= Ġ"$ it ĠÐ¡ Ð¸Ð½ Ð³ Ð» " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . chapter _ number Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchapter . set Url Without Domain ( url Element . attr (" href ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġchapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Request ( chapter : ĠS Chapter ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( base Default Url Ġ+ Ġchapter . url , Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Str Array Ġ= Ġdocument . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring After (" new ĠPag inator (" ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring Before (" );</ script >") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. split (", Ġ") ĊĠĠĠĠĠĠĠ Ġreturn Ġ( 1 .. data Str Array [ 1 ]. toInt ()). map Indexed Ġ{ Ġi , Ġpage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage ( i , Ġdocument . location () Ġ+ Ġ"/ $ page ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( document : ĠDocument ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select ("# b _ image "). attr (" src ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPREFIX _ SL UG _ SEARCH Ġ= Ġ" slug :" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPATH _ URL Ġ= Ġ"/ com ics / series /" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPATH _ online Ġ= Ġ"/ com ics / online /" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPATH _ issue Ġ= Ġ"/ com ics / issue /" ĊĠĠĠ Ġ} Ċ } Ċ