+7 (812) 424-70-23
09:00 — 21:00
Подобрать квартиру
О застройщике
Ипотека и рассрочка
+7 (812) 424-70-23
Новостройки
Квартиры в продаже
Застройщики и продавцы
Панорамы новостроек 360
Аэротуры
Тайный покупатель
Новости недвижимости
Статьи о новостройках
Мнения экспертов
Аналитика рынка
Новостройки Москвы и Московской области
+7 (812) 424-70-23
Новостройки
1621
Квартиры
61112
Апартаменты
4294
Застройщики
885
Скидки в мае
Панорамы 360
Тайный покупатель
+7 (812) 424-70-23
09:00 — 21:00
landing\models\Landings Object ( [loadData] => [logoFile] => [patternFile] => [helpFiles] => [helpFilesArr] => [_attributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 166 [source_id] => 736 [source] => build [name] => ДОМ.РФ | Недвижимость_Янино-Парк [url] => /baza/mkr_yanino_park/domrf_promo [route] => landing/default/index [title] => ЖК «Янино-Парк»: цены и скидки на квартиры от ДОМ.РФ | Недвижимость [description] => ЖК «Янино-Парк»: цены и акции на квартиры от «ДОМ.РФ | Недвижимость. Подбор квартиры в новостройке, актуальные предложения и ипотечные программы. [status] => active [client_url] => [redirect_to_client] => 0 [phone] => +7 (812) 424-70-23 [rc_number] => 4155 [logo] => b795267f0793dfa3d11bbb21c35ad8a33bc96d41.png [content] => [brand_color_first] => #1c1b28 [brand_color_second] => #8bc540 [theme] => main [theme_color] => dark [work_time] => 09:00 — 21:00 [pattern_image] => [discounts_till] => [company_id] => 834 [button_color] => #ffffff [help_files] => ) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 166 [source_id] => 736 [source] => build [name] => ДОМ.РФ | Недвижимость_Янино-Парк [url] => /baza/mkr_yanino_park/domrf_promo [route] => landing/default/index [title] => ЖК «Янино-Парк»: цены и скидки на квартиры от ДОМ.РФ | Недвижимость [description] => ЖК «Янино-Парк»: цены и акции на квартиры от «ДОМ.РФ | Недвижимость. Подбор квартиры в новостройке, актуальные предложения и ипотечные программы. [status] => active [client_url] => [redirect_to_client] => 0 [phone] => +7 (812) 424-70-23 [rc_number] => 4155 [logo] => b795267f0793dfa3d11bbb21c35ad8a33bc96d41.png [content] => [brand_color_first] => #1c1b28 [brand_color_second] => #8bc540 [theme] => main [theme_color] => dark [work_time] => 09:00 — 21:00 [pattern_image] => [discounts_till] => [company_id] => 834 [button_color] => #ffffff [help_files] => ) [_related:yii\db\BaseActiveRecord:private] => Array ( [tools] => landing\models\LandingTools Object ( [logoMap] => [extraRows:landing\models\LandingTools:private] => landing\models\ExtraRows Object ( [rows:landing\models\ExtraRows:private] => Array ( [listing_title] => [developer_title] => [mortgage_title] => [map_title] => [ads_title] => ) [acceptedRows:landing\models\ExtraRows:private] => Array ( [0] => listing_title [1] => developer_title [2] => egrn_title [3] => mortgage_title [4] => map_title [5] => ads_title ) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [excludedMedia:landing\models\LandingTools:private] => landing\models\ExcludedMedia Object ( [rows:landing\models\ExcludedMedia:private] => Array ( ) [acceptedRows:landing\models\ExcludedMedia:private] => Array ( [0] => panoram [1] => housesVirtualTour [2] => aerotour [3] => videoReview ) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [logoCluster] => [redirectImage] => [callbackImage] => [_attributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 166 [landing_id] => 166 [chart_rating] => 1 [chart_built] => 1 [chart_build_info] => 1 [mortgage] => 1 [egrn] => 0 [logo_point_map] => [link_fb] => [link_vk] => [link_tw] => [link_youtube] => [link_ig] => [price] => 0 [show_plan] => 0 [hide_apart] => 0 [extra_rows] => {"listing_title":"","developer_title":"","mortgage_title":"","map_title":"","ads_title":""} [logo_cluster] => [show_flats] => 1 [html_text] => [html_text_bottom] => [show_developer] => 1 [sellers] => Array ( ) [not_group_flats] => 0 [excluded_media] => [] [show_panorams] => 1 [show_houses_virtual_tours] => 1 [show_aerotours] => 1 [show_video_reviews] => 1 [redirectable] => 0 [redirect_image] => [redirect_link] => [redirect_title] => [callback_image] => [callback_emails] => [callback_send_rc] => [show_media] => 1 [hide_filter] => 0 [callback_text] => [hide_build] => 0 [hide_ads] => 0 [hide_callback] => 0 [hide_map] => 0 ) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ( [id] => 166 [landing_id] => 166 [chart_rating] => 1 [chart_built] => 1 [chart_build_info] => 1 [mortgage] => 1 [egrn] => 0 [logo_point_map] => [link_fb] => [link_vk] => [link_tw] => [link_youtube] => [link_ig] => [price] => 0 [show_plan] => 0 [hide_apart] => 0 [extra_rows] => {"listing_title":"","developer_title":"","mortgage_title":"","map_title":"","ads_title":""} [logo_cluster] => [show_flats] => 1 [html_text] => [html_text_bottom] => [show_developer] => 1 [sellers] => [] [not_group_flats] => 0 [excluded_media] => [] [show_panorams] => 1 [show_houses_virtual_tours] => 1 [show_aerotours] => 1 [show_video_reviews] => 1 [redirectable] => 0 [redirect_image] => [redirect_link] => [redirect_title] => [callback_image] => [callback_emails] => [callback_send_rc] => [show_media] => 1 [hide_filter] => 0 [callback_text] => [hide_build] => 0 [hide_ads] => 0 [hide_callback] => 0 [hide_map] => 0 ) [_related:yii\db\BaseActiveRecord:private] => Array ( ) [_relationsDependencies:yii\db\BaseActiveRecord:private] => Array ( ) [_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) [_module:landing\models\LandingTools:private] => landing\ModuleLanding Object ( [cache:landing\ModuleLanding:private] => yii\redis\Cache Object ( [redis] => common\components\RedisConnection Object ( [connectionTimeout] => 3 [hostname] => redis.spb [redirectConnectionString] => [port] => 6379 [unixSocket] => [username] => [password] => [database] => 6 [dataTimeout] => [useSSL] => [contextOptions] => Array ( ) [socketClientFlags] => 4 [retries] => 0 [retryInterval] => 0 [redisCommands] => Array ( [0] => APPEND [1] => AUTH [2] => BGREWRITEAOF [3] => BGSAVE [4] => BITCOUNT [5] => BITFIELD [6] => BITOP [7] => BITPOS [8] => BLPOP [9] => BRPOP [10] => BRPOPLPUSH [11] => CLIENT KILL [12] => CLIENT LIST [13] => CLIENT GETNAME [14] => CLIENT PAUSE [15] => CLIENT REPLY [16] => CLIENT SETNAME [17] => CLUSTER ADDSLOTS [18] => CLUSTER COUNTKEYSINSLOT [19] => CLUSTER DELSLOTS [20] => CLUSTER FAILOVER [21] => CLUSTER FORGET [22] => CLUSTER GETKEYSINSLOT [23] => CLUSTER INFO [24] => CLUSTER KEYSLOT [25] => CLUSTER MEET [26] => CLUSTER NODES [27] => CLUSTER REPLICATE [28] => CLUSTER RESET [29] => CLUSTER SAVECONFIG [30] => CLUSTER SETSLOT [31] => CLUSTER SLAVES [32] => CLUSTER SLOTS [33] => COMMAND [34] => COMMAND COUNT [35] => COMMAND GETKEYS [36] => COMMAND INFO [37] => CONFIG GET [38] => CONFIG REWRITE [39] => CONFIG SET [40] => CONFIG RESETSTAT [41] => DBSIZE [42] => DEBUG OBJECT [43] => DEBUG SEGFAULT [44] => DECR [45] => DECRBY [46] => DEL [47] => DISCARD [48] => DUMP [49] => ECHO [50] => EVAL [51] => EVALSHA [52] => EXEC [53] => EXISTS [54] => EXPIRE [55] => EXPIREAT [56] => FLUSHALL [57] => FLUSHDB [58] => GEOADD [59] => GEOHASH [60] => GEOPOS [61] => GEODIST [62] => GEORADIUS [63] => GEORADIUSBYMEMBER [64] => GET [65] => GETBIT [66] => GETRANGE [67] => GETSET [68] => HDEL [69] => HEXISTS [70] => HGET [71] => HGETALL [72] => HINCRBY [73] => HINCRBYFLOAT [74] => HKEYS [75] => HLEN [76] => HMGET [77] => HMSET [78] => HSET [79] => HSETNX [80] => HSTRLEN [81] => HVALS [82] => INCR [83] => INCRBY [84] => INCRBYFLOAT [85] => INFO [86] => KEYS [87] => LASTSAVE [88] => LINDEX [89] => LINSERT [90] => LLEN [91] => LPOP [92] => LPUSH [93] => LPUSHX [94] => LRANGE [95] => LREM [96] => LSET [97] => LTRIM [98] => MGET [99] => MIGRATE [100] => MONITOR [101] => MOVE [102] => MSET [103] => MSETNX [104] => MULTI [105] => OBJECT [106] => PERSIST [107] => PEXPIRE [108] => PEXPIREAT [109] => PFADD [110] => PFCOUNT [111] => PFMERGE [112] => PING [113] => PSETEX [114] => PSUBSCRIBE [115] => PUBSUB [116] => PTTL [117] => PUBLISH [118] => PUNSUBSCRIBE [119] => QUIT [120] => RANDOMKEY [121] => READONLY [122] => READWRITE [123] => RENAME [124] => RENAMENX [125] => RESTORE [126] => ROLE [127] => RPOP [128] => RPOPLPUSH [129] => RPUSH [130] => RPUSHX [131] => SADD [132] => SAVE [133] => SCARD [134] => SCRIPT DEBUG [135] => SCRIPT EXISTS [136] => SCRIPT FLUSH [137] => SCRIPT KILL [138] => SCRIPT LOAD [139] => SDIFF [140] => SDIFFSTORE [141] => SELECT [142] => SET [143] => SETBIT [144] => SETEX [145] => SETNX [146] => SETRANGE [147] => SHUTDOWN [148] => SINTER [149] => SINTERSTORE [150] => SISMEMBER [151] => SLAVEOF [152] => SLOWLOG [153] => SMEMBERS [154] => SMOVE [155] => SORT [156] => SPOP [157] => SRANDMEMBER [158] => SREM [159] => STRLEN [160] => SUBSCRIBE [161] => SUNION [162] => SUNIONSTORE [163] => SWAPDB [164] => SYNC [165] => TIME [166] => TOUCH [167] => TTL [168] => TYPE [169] => UNSUBSCRIBE [170] => UNLINK [171] => UNWATCH [172] => WAIT [173] => WATCH [174] => XACK [175] => XADD [176] => XCLAIM [177] => XDEL [178] => XGROUP [179] => XINFO [180] => XLEN [181] => XPENDING [182] => XRANGE [183] => XREAD [184] => XREADGROUP [185] => XREVRANGE [186] => XTRIM [187] => ZADD [188] => ZCARD [189] => ZCOUNT [190] => ZINCRBY [191] => ZINTERSTORE [192] => ZLEXCOUNT [193] => ZRANGE [194] => ZRANGEBYLEX [195] => ZREVRANGEBYLEX [196] => ZRANGEBYSCORE [197] => ZRANK [198] => ZREM [199] => ZREMRANGEBYLEX [200] => ZREMRANGEBYRANK [201] => ZREMRANGEBYSCORE [202] => ZREVRANGE [203] => ZREVRANGEBYSCORE [204] => ZREVRANK [205] => ZSCORE [206] => ZUNIONSTORE [207] => SCAN [208] => SSCAN [209] => HSCAN [210] => ZSCAN ) [_pool:yii\redis\Connection:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [enableReplicas] => [replicas] => Array ( ) [forceClusterMode] => [shareDatabase] => [_replica:yii\redis\Cache:private] => [_isCluster:yii\redis\Cache:private] => [_hashTagAvailable:yii\redis\Cache:private] => [keyPrefix] => [serializer] => [defaultDuration] => 0 [_igbinaryAvailable:yii\caching\Cache:private] => 1 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [params] => Array ( ) [id] => landing [module] => common\components\Yii\Application Object ( [controllersPath] => Array ( [0] => app\controllers [1] => common\controllers ) [defaultRoute] => site [catchAll] => [controller] => landing\controllers\DefaultController Object ( [landing:protected] => landing\models\Landings Object *RECURSION* [theme:protected] => @landing/themes/main [enableCsrfValidation] => 1 [actionParams] => Array ( ) [id] => default [module] => landing\ModuleLanding Object *RECURSION* [defaultAction] => index [layout] => @landing/themes/main/views/layouts/main.php [action] => yii\base\InlineAction Object ( [actionMethod] => actionIndex [id] => index [controller] => landing\controllers\DefaultController Object *RECURSION* [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [request] => common\components\Request Object ( [enableCsrfValidation] => 1 [csrfParam] => _csrf [csrfCookie] => Array ( [httpOnly] => 1 ) [enableCsrfCookie] => 1 [enableCookieValidation] => 1 [cookieValidationKey] => W6JPTjdy4TDAVfTOf3FeumVYwXv-wA0a [methodParam] => _method [parsers] => Array ( [application/json] => yii\web\JsonParser ) [trustedHosts] => Array ( ) [secureHeaders] => Array ( [0] => X-Forwarded-For [1] => X-Forwarded-Host [2] => X-Forwarded-Proto [3] => Front-End-Https [4] => X-Rewrite-Url [5] => X-Original-Host ) [ipHeaders] => Array ( [0] => X-Forwarded-For ) [secureProtocolHeaders] => Array ( [X-Forwarded-Proto] => Array ( [0] => https ) [Front-End-Https] => Array ( [0] => on ) ) [_cookies:yii\web\Request:private] => yii\web\CookieCollection Object ( [readOnly] => 1 [_cookies:yii\web\CookieCollection:private] => Array ( ) ) [_headers:yii\web\Request:private] => yii\web\HeaderCollection Object ( [_headers:yii\web\HeaderCollection:private] => Array ( [host] => Array ( [0] => www.novostroy-spb.ru ) [x-real-ip] => Array ( [0] => 216.73.217.63 ) [x-real-uri] => Array ( [0] => /baza/mkr_yanino_park/domrf_promo ) [connection] => Array ( [0] => close ) [accept] => Array ( [0] => */* ) [user-agent] => Array ( [0] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) ) [accept-encoding] => Array ( [0] => gzip, br, zstd, deflate ) ) [_originalHeaderNames:yii\web\HeaderCollection:private] => Array ( [host] => Host [x-real-ip] => X-Real-IP [x-real-uri] => X-Real-URI [connection] => Connection [accept] => accept [user-agent] => user-agent [accept-encoding] => accept-encoding ) ) [_rawBody:yii\web\Request:private] => [_bodyParams:yii\web\Request:private] => [_queryParams:yii\web\Request:private] => [_hostInfo:yii\web\Request:private] => [_hostName:yii\web\Request:private] => [_baseUrl:yii\web\Request:private] => [_scriptUrl:yii\web\Request:private] => /index.php [_scriptFile:yii\web\Request:private] => [_pathInfo:yii\web\Request:private] => baza/mkr_yanino_park/domrf_promo [_url:yii\web\Request:private] => /baza/mkr_yanino_park/domrf_promo [_port:yii\web\Request:private] => [_securePort:yii\web\Request:private] => [_contentTypes:yii\web\Request:private] => [_languages:yii\web\Request:private] => [_csrfToken:yii\web\Request:private] => [_secureForwardedHeaderParts:yii\web\Request:private] => [_isConsoleRequest:yii\base\Request:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => [_scriptFile:yii\base\Request:private] => ) [response] => yii\web\Response Object ( [format] => html [acceptMimeType] => [acceptParams] => Array ( ) [formatters] => Array ( [html] => Array ( [class] => yii\web\HtmlResponseFormatter ) [xml] => Array ( [class] => yii\web\XmlResponseFormatter ) [json] => Array ( [class] => yii\web\JsonResponseFormatter ) [jsonp] => Array ( [class] => yii\web\JsonResponseFormatter [useJsonp] => 1 ) ) [data] => [content] => [stream] => [charset] => UTF-8 [statusText] => OK [version] => 1.1 [isSent] => [_statusCode:yii\web\Response:private] => 200 [_headers:yii\web\Response:private] => [_cookies:yii\web\Response:private] => [exitStatus] => 0 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [_view:yii\base\Controller:private] => common\components\Yii\View Object ( [assetBundles] => Array ( [landing\themes\main\AppAsset] => landing\themes\main\AppAsset Object ( [sourcePath] => /home/sites/novostroy/backend/common/modules/landing/themes/main/assets [jsOptions] => Array ( [position] => 1 ) [css] => Array ( [0] => /css/bundle-msk.css [1] => css/main.css [2] => /bower_components/owl.carousel/dist/assets/owl.carousel.min.css ) [js] => Array ( [0] => /js/libs/bootstrap.min.js [1] => js/slick.min.js [2] => /bower_components/owl.carousel/dist/owl.carousel.min.js [3] => /js/libs/main.js?v=2 [4] => /js/libs/jquery.mask.min.js [5] => /js/libs/URI.js [6] => /js/bundle.min.js ) [depends] => Array ( [0] => yii\web\JqueryAsset [1] => yii\web\YiiAsset [2] => landing\asset\JqueryUiAsset ) [basePath] => /ssd/novostroy/www/assets/spb/8b25cd93 [baseUrl] => /assets/spb/8b25cd93 [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) [yii\web\JqueryAsset] => yii\web\JqueryAsset Object ( [sourcePath] => /home/sites/novostroy/backend/common/vendor/bower-asset/jquery/dist [js] => Array ( [0] => jquery.js ) [basePath] => /ssd/novostroy/www/assets/spb/50f34210 [baseUrl] => /assets/spb/50f34210 [depends] => Array ( ) [css] => Array ( ) [jsOptions] => Array ( [position] => 1 ) [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) [yii\web\YiiAsset] => yii\web\YiiAsset Object ( [sourcePath] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2/assets [js] => Array ( [0] => yii.js ) [depends] => Array ( [0] => yii\web\JqueryAsset ) [basePath] => /ssd/novostroy/www/assets/spb/36265491 [baseUrl] => /assets/spb/36265491 [css] => Array ( ) [jsOptions] => Array ( [position] => 1 ) [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) [landing\asset\JqueryUiAsset] => landing\asset\JqueryUiAsset Object ( [js] => Array ( [0] => https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js ) [sourcePath] => /home/sites/novostroy/backend/common/vendor/bower-asset/jquery/dist [basePath] => /ssd/novostroy/www/assets/spb/50f34210 [baseUrl] => /assets/spb/50f34210 [depends] => Array ( ) [css] => Array ( ) [jsOptions] => Array ( [position] => 1 ) [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) ) [title] => ЖК «Янино-Парк»: цены и скидки на квартиры от ДОМ.РФ | Недвижимость [metaTags] => Array ( [0] =>
) [linkTags] => Array ( ) [css] => Array ( ) [cssFiles] => Array ( ) [js] => Array ( [4] => Array ( [4155] => onMpn(function () { if(rcArray.indexOf('4155') == -1){ var config = { rc: '4155', className: 'callme4155', showEvents: 'yes' }; if (App.Rc === true) { $.extend(config, { showEvents: 'no' }); } else { App.Rc = true; } mpn.init(config); rcArray.push('4155'); } }); ) ) [jsFiles] => Array ( [1] => Array ( [//js.make-connect.ru/mcs.js?v3] => ) ) [_assetManager:yii\web\View:private] => [_isPageEnded:yii\web\View:private] => [context] => landing\controllers\DefaultController Object *RECURSION* [params] => Array ( ) [renderers] => [defaultExtension] => php [theme] => [blocks] => [cacheStack] => Array ( ) [dynamicPlaceholders] => Array ( ) [_viewFiles:yii\base\View:private] => Array ( [0] => Array ( [resolved] => /home/sites/novostroy/backend/common/modules/landing/themes/main/views/build_type.php [requested] => /home/sites/novostroy/backend/common/modules/landing/themes/main/views/build_type.php ) ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [_viewPath:yii\base\Controller:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [_homeUrl:yii\web\Application:private] => [controllerNamespace] => app\controllers [name] => My Application [charset] => UTF-8 [language] => ru [sourceLanguage] => en-US [layout] => main [requestedRoute] => landing/default/index [requestedAction] => yii\base\InlineAction Object ( [actionMethod] => actionIndex [id] => index [controller] => landing\controllers\DefaultController Object ( [landing:protected] => landing\models\Landings Object *RECURSION* [theme:protected] => @landing/themes/main [enableCsrfValidation] => 1 [actionParams] => Array ( ) [id] => default [module] => landing\ModuleLanding Object *RECURSION* [defaultAction] => index [layout] => @landing/themes/main/views/layouts/main.php [action] => yii\base\InlineAction Object *RECURSION* [request] => common\components\Request Object ( [enableCsrfValidation] => 1 [csrfParam] => _csrf [csrfCookie] => Array ( [httpOnly] => 1 ) [enableCsrfCookie] => 1 [enableCookieValidation] => 1 [cookieValidationKey] => W6JPTjdy4TDAVfTOf3FeumVYwXv-wA0a [methodParam] => _method [parsers] => Array ( [application/json] => yii\web\JsonParser ) [trustedHosts] => Array ( ) [secureHeaders] => Array ( [0] => X-Forwarded-For [1] => X-Forwarded-Host [2] => X-Forwarded-Proto [3] => Front-End-Https [4] => X-Rewrite-Url [5] => X-Original-Host ) [ipHeaders] => Array ( [0] => X-Forwarded-For ) [secureProtocolHeaders] => Array ( [X-Forwarded-Proto] => Array ( [0] => https ) [Front-End-Https] => Array ( [0] => on ) ) [_cookies:yii\web\Request:private] => yii\web\CookieCollection Object ( [readOnly] => 1 [_cookies:yii\web\CookieCollection:private] => Array ( ) ) [_headers:yii\web\Request:private] => yii\web\HeaderCollection Object ( [_headers:yii\web\HeaderCollection:private] => Array ( [host] => Array ( [0] => www.novostroy-spb.ru ) [x-real-ip] => Array ( [0] => 216.73.217.63 ) [x-real-uri] => Array ( [0] => /baza/mkr_yanino_park/domrf_promo ) [connection] => Array ( [0] => close ) [accept] => Array ( [0] => */* ) [user-agent] => Array ( [0] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) ) [accept-encoding] => Array ( [0] => gzip, br, zstd, deflate ) ) [_originalHeaderNames:yii\web\HeaderCollection:private] => Array ( [host] => Host [x-real-ip] => X-Real-IP [x-real-uri] => X-Real-URI [connection] => Connection [accept] => accept [user-agent] => user-agent [accept-encoding] => accept-encoding ) ) [_rawBody:yii\web\Request:private] => [_bodyParams:yii\web\Request:private] => [_queryParams:yii\web\Request:private] => [_hostInfo:yii\web\Request:private] => [_hostName:yii\web\Request:private] => [_baseUrl:yii\web\Request:private] => [_scriptUrl:yii\web\Request:private] => /index.php [_scriptFile:yii\web\Request:private] => [_pathInfo:yii\web\Request:private] => baza/mkr_yanino_park/domrf_promo [_url:yii\web\Request:private] => /baza/mkr_yanino_park/domrf_promo [_port:yii\web\Request:private] => [_securePort:yii\web\Request:private] => [_contentTypes:yii\web\Request:private] => [_languages:yii\web\Request:private] => [_csrfToken:yii\web\Request:private] => [_secureForwardedHeaderParts:yii\web\Request:private] => [_isConsoleRequest:yii\base\Request:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => [_scriptFile:yii\base\Request:private] => ) [response] => yii\web\Response Object ( [format] => html [acceptMimeType] => [acceptParams] => Array ( ) [formatters] => Array ( [html] => Array ( [class] => yii\web\HtmlResponseFormatter ) [xml] => Array ( [class] => yii\web\XmlResponseFormatter ) [json] => Array ( [class] => yii\web\JsonResponseFormatter ) [jsonp] => Array ( [class] => yii\web\JsonResponseFormatter [useJsonp] => 1 ) ) [data] => [content] => [stream] => [charset] => UTF-8 [statusText] => OK [version] => 1.1 [isSent] => [_statusCode:yii\web\Response:private] => 200 [_headers:yii\web\Response:private] => [_cookies:yii\web\Response:private] => [exitStatus] => 0 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [_view:yii\base\Controller:private] => common\components\Yii\View Object ( [assetBundles] => Array ( [landing\themes\main\AppAsset] => landing\themes\main\AppAsset Object ( [sourcePath] => /home/sites/novostroy/backend/common/modules/landing/themes/main/assets [jsOptions] => Array ( [position] => 1 ) [css] => Array ( [0] => /css/bundle-msk.css [1] => css/main.css [2] => /bower_components/owl.carousel/dist/assets/owl.carousel.min.css ) [js] => Array ( [0] => /js/libs/bootstrap.min.js [1] => js/slick.min.js [2] => /bower_components/owl.carousel/dist/owl.carousel.min.js [3] => /js/libs/main.js?v=2 [4] => /js/libs/jquery.mask.min.js [5] => /js/libs/URI.js [6] => /js/bundle.min.js ) [depends] => Array ( [0] => yii\web\JqueryAsset [1] => yii\web\YiiAsset [2] => landing\asset\JqueryUiAsset ) [basePath] => /ssd/novostroy/www/assets/spb/8b25cd93 [baseUrl] => /assets/spb/8b25cd93 [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) [yii\web\JqueryAsset] => yii\web\JqueryAsset Object ( [sourcePath] => /home/sites/novostroy/backend/common/vendor/bower-asset/jquery/dist [js] => Array ( [0] => jquery.js ) [basePath] => /ssd/novostroy/www/assets/spb/50f34210 [baseUrl] => /assets/spb/50f34210 [depends] => Array ( ) [css] => Array ( ) [jsOptions] => Array ( [position] => 1 ) [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) [yii\web\YiiAsset] => yii\web\YiiAsset Object ( [sourcePath] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2/assets [js] => Array ( [0] => yii.js ) [depends] => Array ( [0] => yii\web\JqueryAsset ) [basePath] => /ssd/novostroy/www/assets/spb/36265491 [baseUrl] => /assets/spb/36265491 [css] => Array ( ) [jsOptions] => Array ( [position] => 1 ) [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) [landing\asset\JqueryUiAsset] => landing\asset\JqueryUiAsset Object ( [js] => Array ( [0] => https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js ) [sourcePath] => /home/sites/novostroy/backend/common/vendor/bower-asset/jquery/dist [basePath] => /ssd/novostroy/www/assets/spb/50f34210 [baseUrl] => /assets/spb/50f34210 [depends] => Array ( ) [css] => Array ( ) [jsOptions] => Array ( [position] => 1 ) [cssOptions] => Array ( ) [publishOptions] => Array ( ) ) ) [title] => ЖК «Янино-Парк»: цены и скидки на квартиры от ДОМ.РФ | Недвижимость [metaTags] => Array ( [0] =>
) [linkTags] => Array ( ) [css] => Array ( ) [cssFiles] => Array ( ) [js] => Array ( [4] => Array ( [4155] => onMpn(function () { if(rcArray.indexOf('4155') == -1){ var config = { rc: '4155', className: 'callme4155', showEvents: 'yes' }; if (App.Rc === true) { $.extend(config, { showEvents: 'no' }); } else { App.Rc = true; } mpn.init(config); rcArray.push('4155'); } }); ) ) [jsFiles] => Array ( [1] => Array ( [//js.make-connect.ru/mcs.js?v3] => ) ) [_assetManager:yii\web\View:private] => [_isPageEnded:yii\web\View:private] => [context] => landing\controllers\DefaultController Object *RECURSION* [params] => Array ( ) [renderers] => [defaultExtension] => php [theme] => [blocks] => [cacheStack] => Array ( ) [dynamicPlaceholders] => Array ( ) [_viewFiles:yii\base\View:private] => Array ( [0] => Array ( [resolved] => /home/sites/novostroy/backend/common/modules/landing/themes/main/views/build_type.php [requested] => /home/sites/novostroy/backend/common/modules/landing/themes/main/views/build_type.php ) ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [_viewPath:yii\base\Controller:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [requestedParams] => Array ( ) [extensions] => Array ( [alexandernst/yii2-device-detect] => Array ( [name] => alexandernst/yii2-device-detect [version] => 0.0.11.0 [alias] => Array ( [@alexandernst/devicedetect] => /home/sites/novostroy/backend/common/vendor/alexandernst/yii2-device-detect ) ) [yiisoft/yii2-swiftmailer] => Array ( [name] => yiisoft/yii2-swiftmailer [version] => 2.0.7.0 [alias] => Array ( [@yii/swiftmailer] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-swiftmailer ) ) [nodge/yii2-eauth] => Array ( [name] => nodge/yii2-eauth [version] => 2.5.0.0 [alias] => Array ( [@nodge/eauth] => /home/sites/novostroy/backend/common/vendor/nodge/yii2-eauth/src ) [bootstrap] => nodge\eauth\Bootstrap ) [nex/yii2-chosen] => Array ( [name] => nex/yii2-chosen [version] => 1.0.0.0 [alias] => Array ( [@nex/chosen] => /home/sites/novostroy/backend/common/vendor/nex/yii2-chosen ) ) [yiisoft/yii2-bootstrap] => Array ( [name] => yiisoft/yii2-bootstrap [version] => 2.0.0.0 [alias] => Array ( [@yii/bootstrap] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-bootstrap ) ) [yiisoft/yii2-jui] => Array ( [name] => yiisoft/yii2-jui [version] => 2.0.7.0 [alias] => Array ( [@yii/jui] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-jui ) ) [yiisoft/yii2-debug] => Array ( [name] => yiisoft/yii2-debug [version] => 2.0.14.0 [alias] => Array ( [@yii/debug] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-debug/src ) ) [himiklab/yii2-recaptcha-widget] => Array ( [name] => himiklab/yii2-recaptcha-widget [version] => 2.1.1.0 [alias] => Array ( [@himiklab/yii2/recaptcha] => /home/sites/novostroy/backend/common/vendor/himiklab/yii2-recaptcha-widget/src [@himiklab/yii2/recaptcha/tests] => /home/sites/novostroy/backend/common/vendor/himiklab/yii2-recaptcha-widget/tests ) ) [yiisoft/yii2-gii] => Array ( [name] => yiisoft/yii2-gii [version] => 2.0.8.0 [alias] => Array ( [@yii/gii] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-gii/src ) ) [rmrevin/yii2-minify-view] => Array ( [name] => rmrevin/yii2-minify-view [version] => dev-master [alias] => Array ( [@rmrevin/yii/minify] => /home/sites/novostroy/backend/common/vendor/rmrevin/yii2-minify-view ) ) [yiisoft/yii2-httpclient] => Array ( [name] => yiisoft/yii2-httpclient [version] => 2.0.14.0 [alias] => Array ( [@yii/httpclient] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-httpclient/src ) ) [yiisoft/yii2-faker] => Array ( [name] => yiisoft/yii2-faker [version] => 2.0.5.0 [alias] => Array ( [@yii/faker] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-faker/src ) ) [yiisoft/yii2-bootstrap4] => Array ( [name] => yiisoft/yii2-bootstrap4 [version] => 2.0.10.0 [alias] => Array ( [@yii/bootstrap4] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-bootstrap4/src ) ) [yiisoft/yii2-redis] => Array ( [name] => yiisoft/yii2-redis [version] => dev-master [alias] => Array ( [@yii/redis] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-redis/src ) ) [bariew/yii2-invisible-recaptcha] => Array ( [name] => bariew/yii2-invisible-recaptcha [version] => 0.0.3.0 [alias] => Array ( [@bariew/invisibleRecaptcha] => /home/sites/novostroy/backend/common/vendor/bariew/yii2-invisible-recaptcha ) ) [mpn/yii2-validate-action-params] => Array ( [name] => mpn/yii2-validate-action-params [version] => 1.0.0.0 [alias] => Array ( [@webivan/validateAction] => /home/sites/novostroy/backend/common/vendor/mpn/yii2-validate-action-params/src ) ) [mpn/yii2-seomodule] => Array ( [name] => mpn/yii2-seomodule [version] => 1.0.0.0 [alias] => Array ( [@webivan/seomodule] => /home/sites/novostroy/backend/common/vendor/mpn/yii2-seomodule ) ) [yiisoft/yii2-queue] => Array ( [name] => yiisoft/yii2-queue [version] => 2.3.4.0 [alias] => Array ( [@yii/queue] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src [@yii/queue/db] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/db [@yii/queue/sqs] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/sqs [@yii/queue/amqp] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/amqp [@yii/queue/file] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/file [@yii/queue/sync] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/sync [@yii/queue/redis] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/redis [@yii/queue/stomp] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/stomp [@yii/queue/gearman] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/gearman [@yii/queue/beanstalk] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/beanstalk [@yii/queue/amqp_interop] => /home/sites/novostroy/backend/common/vendor/yiisoft/yii2-queue/src/drivers/amqp_interop ) ) ) [bootstrap] => Array ( [0] => log [1] => common\bootstrap\QueryCacheBootstrap [2] => common\bootstrap\DebugBootstrap [3] => common\bootstrap\DynamicRoute [4] => webpush [5] => seomodule [6] => issues [7] => votes [8] => mydebug [9] => showLogs [10] => landing [11] => floor-plan [12] => quiz [13] => profile [14] => rcLanding [15] => findLanding [16] => customLanding [17] => chatAssistant [18] => webpushConfigure [19] => landings [20] => sitemapModule [21] => queue [22] => queueAdmin [23] => queueExtra [24] => queueSearch ) [state] => 3 [loadedModules] => Array ( [common\components\Yii\Application] => common\components\Yii\Application Object *RECURSION* [webpush\Module] => webpush\Module Object ( [params] => Array ( ) [id] => webpush [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => webpush\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [webivan\seomodule\SeoModule] => webivan\seomodule\SeoModule Object ( [accessDoctype] => Closure Object ( ) [accessRulesAction] => [pathConnects] => @app/modules/seoConnects [actionIndex] => webivan\seomodule\actions\ActionIndex [actionCreate] => webivan\seomodule\actions\ActionCreate [actionUpdate] => webivan\seomodule\actions\ActionUpdate [actionDelete] => webivan\seomodule\actions\ActionDelete [modelConfig] => webivan\seomodule\models\ConfigMetaData [modelSeotext] => webivan\seomodule\models\Seotexts [filterTemplater] => Array ( [default] => default [twig] => twig ) [classMapTemplater] => Array ( [default] => webivan\seomodule\templaters\def\DefaultTemplater [twig] => webivan\seomodule\templaters\twig\TwigTemplater ) [params] => Array ( ) [id] => seomodule [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => webivan\seomodule\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [issues\Module] => issues\Module Object ( [params] => Array ( ) [id] => issues [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => issues\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [votes\Module] => votes\Module Object ( [params] => Array ( ) [id] => votes [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => votes\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [debug\ModuleDebug] => debug\ModuleDebug Object ( [accessHandler] => Closure Object ( ) [params] => Array ( ) [id] => mydebug [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => debug\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [showLogs\ModuleShowLogs] => showLogs\ModuleShowLogs Object ( [accessHandler] => Closure Object ( ) [layout] => @showLogs/views/layouts/main.php [pathLogs] => @runtime/logs [params] => Array ( ) [id] => showLogs [module] => common\components\Yii\Application Object *RECURSION* [controllerMap] => Array ( ) [controllerNamespace] => showLogs\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [landing\ModuleLanding] => landing\ModuleLanding Object *RECURSION* [floorPlan\FloorPlanModule] => floorPlan\FloorPlanModule Object ( [params] => Array ( ) [id] => floor-plan [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => floorPlan\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [quiz\QuizModule] => quiz\QuizModule Object ( [params] => Array ( ) [id] => quiz [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => quiz\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [profile\ProfileModule] => profile\ProfileModule Object ( [params] => Array ( ) [id] => profile [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => profile\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [rcLanding\RcLandingModule] => rcLanding\RcLandingModule Object ( [params] => Array ( ) [id] => rcLanding [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => rcLanding\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [findLanding\FindLandingModule] => findLanding\FindLandingModule Object ( [params] => Array ( ) [id] => findLanding [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => findLanding\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [customLanding\CustomLandingModule] => customLanding\CustomLandingModule Object ( [params] => Array ( ) [id] => customLanding [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => customLanding\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [chatAssistant\Module] => chatAssistant\Module Object ( [params] => Array ( ) [id] => chatAssistant [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => chatAssistant\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [landings\Module] => landings\Module Object ( [params] => Array ( ) [id] => landings [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => landings\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [sitemap\SitemapModule] => sitemap\SitemapModule Object ( [defaultSitemapUrl] => sitemap.xml [generateUrlParams] => Array ( [models] => Array ( [0] => Closure Object ( ) [1] => Closure Object ( ) [2] => Closure Object ( ) [3] => Closure Object ( ) [4] => Closure Object ( ) [5] => Closure Object ( ) [6] => Array ( [model] => common\models\LabelListings [select] => Array ( [0] => id [1] => url ) [orderBy] => Array ( [id] => 4 ) [where] => Array ( [0] => and [1] => state = 2 ) [urls] => Array ( [0] => Array ( [loc] => /{url} ) ) ) [7] => Array ( [model] => common\models\CompanyPerson [select] => Array ( [0] => id [1] => alias ) [orderBy] => Array ( [id] => 4 ) [where] => Array ( [0] => and [1] => state = 2 [2] => expert = 1 ) [urls] => Array ( [0] => Array ( [loc] => /person/{alias} ) ) ) [8] => Closure Object ( ) [9] => Closure Object ( ) [10] => Closure Object ( ) [11] => Closure Object ( ) ) ) [sitemapParams] => Array ( [domain] => https://www.novostroy-spb.ru [pathSitemapFiles] => @webroot/sitemaps/spb [tempDir] => @webroot/sitemaps/spb/temp ) [checkHttpStatus] => Array ( [domain] => https://admin2.novostroy-spb.ru ) [params] => Array ( ) [id] => sitemapModule [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => sitemap\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) ) [_runtimePath:yii\base\Application:private] => /home/sites/novostroy/backend/common/runtime [_vendorPath:yii\base\Application:private] => /home/sites/novostroy/backend/common/vendor [params] => Array ( [isRunQueryBootstrap] => [adminEmail] => info@novostroy-spb.ru [sysAdminEmail] => admin@mediapronet.ru [mailerEmail] => noreply@novostroym.com [mailerQuiz] => quiz@novostrou-m.ru [contactEmail] => contact@m-novostroy.ru [mpnEmails] => Array ( [sitora] => s.nasredinova@novostroy-m.ru [shibanov] => a.shibanov@mediapronet.ru [gribkova] => a.moiseev@mediapronet.ru [pavlovskiy] => v.pavlovskiy@mediapronet.ru [melnikov] => d.melnikov@mediapronet.ru [pavel] => p.paramonenkov@mediapronet.ru [kp] => kp@mediapronet.ru [kis] => a.maksimova@mediapronet.ru [kolpakov] => s.kolpakov@mediapronet.ru [stahanov] => a.stahanov@mediapronet.ru [mainСontent] => o.yakunina@novostroy-m.ru ) [locations] => Array ( [dropDownList] => Array ( [spb] => Санкт-Петербург [lo] => Ленинградская область ) [quiz] => Array ( [spb] => В Санкт-Петербурге [lo] => В Ленинградской области ) [inDistrict] => Array ( [spb] => Санкт-Петербурге [lo] => Ленинградской области ) [nameShortDistrict] => Array ( [spb] => СПБ [lo] => ЛО ) [urlDistrictList] => Array ( [spb] => /sankt_peterburg [lo] => /deshevye_novostrojki_lenoblasti ) [districtKey] => district_lo [panorams] => Array ( [index] => Все [spb] => Санкт-Петербург [lo] => ЛО ) [panoramsAdditional] => Array ( [spb] => Панорамы новостроек Санкт-Петербурга [lo] => Панорамы новостроек Ленинградской области ) [dropDownFilterList] => Array ( [] => Санкт-Петербург и ЛО [spb] => Санкт-Петербург [lo] => Ленинградская область ) ) [aliasDistrictListNovos] => Array ( [spb] => Санкт-Петербурга [lo] => Ленинградской области ) [not] => Array ( [callCompany] => Array ( ) ) [newTypesAlias] => Array ( [1] => Новости рынка [4] => Аналитика и прогнозы [5] => Мнение эксперта [6] => Для покупателей [99] => Важное ) [newOrderMain] => Array ( [99] => 1 [1] => 2 [4] => 3 [5] => 4 [6] => 5 ) [newsTypes] => Array ( [1] => novosti [2] => panoramy_novostroek [3] => expert-nedvizhimost [4] => analitika [5] => intervyu [6] => statyi [7] => infografika [8] => sobitiya [9] => video_novostroek [10] => news_company [11] => off_answer [12] => builder_review [13] => novos_review [14] => showrooms [15] => konkurs [16] => novos_video360 ) [newsLables] => Array ( [1] => Новости [2] => Панорамы [3] => Эксперт-недвижимость [4] => Аналитика [5] => Интервью [6] => Статьи [7] => Инфографика [8] => События [9] => Видео новостроек [10] => Новости компании [11] => Официальный ответ [12] => Обзор строителя [13] => Обзор новостроек [14] => Шоу-румы [16] => Видео 360 ) [newsAlias] => Array ( [1] => novosti [2] => panoramy_novostroek [3] => expert-nedvizhimost [4] => analitika [5] => intervyu [6] => statyi [7] => infografika [8] => sobitiya [9] => video_novostroek [10] => news_company [11] => off_answer [12] => dnevnik_stroitelya [13] => obzor_novostroyki_metrazhi [14] => showrooms ) [aliasesRooms] => Array ( [a] => апартаменты [s] => студию [1] => однушку [2] => двушку [3] => трешку [4] => многокомнатную [price_n] => апартаменты [price_s] => студию [price1] => однушку [price2] => двушку [price3] => трешку [price4] => многокомнатную ) [ads] => Array ( [roomParams] => Array ( [odnokomnatnye] => Array ( [key] => rooms [value] => 1 [name] => Array ( ) ) [dvuhkomnatnye] => Array ( [key] => rooms [value] => 2 [name] => Array ( ) ) [trehkomnatnye] => Array ( [key] => rooms [value] => 3 [name] => Array ( ) ) [chetyrehkomnatnye] => Array ( [key] => rooms [value] => 4 [name] => Array ( ) ) [studii] => Array ( [key] => rooms [value] => s [name] => Array ( ) ) [aportamenty] => Array ( [key] => rooms [value] => a [name] => Array ( ) ) [mnogokomnatnye] => Array ( [key] => rooms [value] => 5+ [name] => Array ( ) ) [tanhouse] => Array ( [key] => rooms [value] => t [name] => Array ( ) ) [odnokomnatnye_apartamenty] => Array ( [key] => rooms [value] => a1 [name] => Array ( ) ) [dvuhkomnatnye_apartamenty] => Array ( [key] => rooms [value] => a2 [name] => Array ( ) ) [trehkomnatnye_apartamenty] => Array ( [key] => rooms [value] => a3 [name] => Array ( ) ) [chetyrehkomnatnye_apartamenty] => Array ( [key] => rooms [value] => a4 [name] => Array ( ) ) [studii_apartamenty] => Array ( [key] => rooms [value] => as [name] => Array ( ) ) [mnogokomnatnye_apartamenty] => Array ( [key] => rooms [value] => a5+ [name] => Array ( ) ) ) [labelRooms] => Array ( [t] => Array ( [0] => таунхаус [1] => таунхаусы [2] => таунхаусов ) [a] => Array ( [0] => апартамент [1] => апартаменты [2] => апартаментов ) [s] => Array ( [0] => студия [1] => студии [2] => студий ) [1] => Array ( [0] => однокомнатная [1] => однокомнатные [2] => однокомнатных ) [2] => Array ( [0] => двухкомнатная [1] => двухкомнатные [2] => двухкомнатных ) [3] => Array ( [0] => трехкомнатная [1] => трехкомнатные [2] => трехкомнатных ) [4] => Array ( [0] => четырехкомнатная [1] => четырехкомнатные [2] => четырехкомнатных ) [5] => Array ( [0] => пятикомнатная [1] => пятикомнатные [2] => пятикомнатных ) [6] => Array ( [0] => шестикомнатная [1] => шестикомнатные [2] => шестикомнатных ) [7] => Array ( [0] => семикомнатная [1] => семикомнатные [2] => семикомнатных ) [8] => Array ( [0] => восьмикомнатная [1] => восьмикомнатные [2] => восьмикомнатных ) [m] => Array ( [0] => многокомнатная [1] => многокомнатные [2] => многокомнатных ) [a1] => Array ( [0] => 1-к. апартамент [1] => 1-к. апартаменты [2] => 1-к. апартаментов ) [a2] => Array ( [0] => 2-к. апартамент [1] => 2-к. апартаменты [2] => 2-к. апартаментов ) [a3] => Array ( [0] => 3-к. апартамент [1] => 3-к. апартаменты [2] => 3-к. апартаментов ) [a4] => Array ( [0] => 4-к. апартамент [1] => 4-к. апартаменты [2] => 4-к. апартаментов ) [a5] => Array ( [0] => 5-к. апартамент [1] => 5-к. апартаменты [2] => 5-к. апартаментов ) [a6] => Array ( [0] => 6-к. апартамент [1] => 6-к. апартаменты [2] => 6-к. апартаментов ) [a7] => Array ( [0] => 7-к. апартамент [1] => 7-к. апартаменты [2] => 7-к. апартаментов ) [a8] => Array ( [0] => 8-к. апартамент [1] => 8-к. апартаменты [2] => 8-к. апартаментов ) [a9] => Array ( [0] => 9-к. апартамент [1] => 9-к. апартаменты [2] => 9-к. апартаментов ) [a10] => Array ( [0] => 10-к. апартамент [1] => 10-к. апартаменты [2] => 10-к. апартаментов ) [as] => Array ( [0] => студия-апартамент [1] => студии-апартаменты [2] => студий-апартаментов ) [t.count] => Array ( [0] => таунхаус [1] => таунхаусы [2] => таунхаусов ) [a.count] => Array ( [0] => апартамент [1] => апартамента [2] => апартаментов ) [s.count] => Array ( [0] => квартира-студия [1] => квартиры-студии [2] => квартир-студий ) [1.count] => Array ( [0] => однокомнатная квартира [1] => однокомнатные квартиры [2] => однокомнатных квартир ) [2.count] => Array ( [0] => двухкомнатная квартира [1] => двухкомнатные квартиры [2] => двухкомнатных квартир ) [3.count] => Array ( [0] => трехкомнатная квартира [1] => трехкомнатные квартиры [2] => трехкомнатных квартир ) [4.count] => Array ( [0] => четырехкомнатная квартира [1] => четырехкомнатные квартиры [2] => четырехкомнатных квартир ) [5.count] => Array ( [0] => пятикомнатная квартира [1] => пятикомнатные квартиры [2] => пятикомнатных квартир ) [6.count] => Array ( [0] => шестикомнатная квартира [1] => шестикомнатные квартиры [2] => шестикомнатных квартир ) [7.count] => Array ( [0] => семикомнатная квартира [1] => семикомнатные квартиры [2] => семикомнатных квартир ) [8.count] => Array ( [0] => восьмикомнатная квартира [1] => восьмикомнатные квартиры [2] => восьмикомнатных квартир ) [m.count] => Array ( [0] => многокомнатная квартира [1] => многокомнатные квартиры [2] => многокомнатных квартир ) [a1.count] => Array ( [0] => однокомнатный апартамент [1] => однокомнатных апартамента [2] => однокомнатных апартаментов ) [a2.count] => Array ( [0] => двухкомнатные апартаменты [1] => двухкомнатных апартамента [2] => двухкомнатных апартаментов ) [a3.count] => Array ( [0] => трехкомнатные апартаменты [1] => трехкомнатных апартамента [2] => трехкомнатных апартаментов ) [a4.count] => Array ( [0] => четырехкомнатные апартаменты [1] => четырехкомнатных апартамента [2] => четырехкомнатных апартаментов ) [a5.count] => Array ( [0] => пятикомнатные апартаменты [1] => пятикомнатных апартамента [2] => пятикомнатных апартаментов ) [a6.count] => Array ( [0] => шестикомнатные апартаменты [1] => шестикомнатных апартамента [2] => шестикомнатных апартаментов ) [a7.count] => Array ( [0] => семикомнатные апартаменты [1] => семикомнатных апартамента [2] => семикомнатных апартаментов ) [a8.count] => Array ( [0] => восьмикомнатные апартаменты [1] => восьмикомнатных апартамента [2] => восьмикомнатных апартаментов ) [as.count] => Array ( [0] => студия-апартамент [1] => студии-апартамента [2] => студий-апартаментов ) [t.i] => Array ( [0] => таунхауса [1] => таунхаусов [2] => таунхаусов ) [a.i] => Array ( [0] => апартаментов [1] => апартаментов [2] => апартаментов ) [s.i] => Array ( [0] => квартиры-студии [1] => квартиры-студии [2] => квартиры-студии ) [1.i] => Array ( [0] => однокомнатной квартиры [1] => однокомнатных квартир [2] => однокомнатных квартир ) [2.i] => Array ( [0] => двухкомнатной квартиры [1] => двухкомнатных квартир [2] => двухкомнатных квартир ) [3.i] => Array ( [0] => трехкомнатной квартиры [1] => трехкомнатных квартир [2] => трехкомнатных квартир ) [4.i] => Array ( [0] => четырехкомнатной квартиры [1] => четырехкомнатных квартир [2] => четырехкомнатных квартир ) [5.i] => Array ( [0] => пятикомнатной квартиры [1] => пятикомнатных квартир [2] => пятикомнатных квартир ) [6.i] => Array ( [0] => шестикомнатной квартиры [1] => шестикомнатных квартир [2] => шестикомнатных квартир ) [7.i] => Array ( [0] => семикомнатной квартиры [1] => семикомнатных квартир [2] => семикомнатных квартир ) [8.i] => Array ( [0] => восьмикомнатной квартиры [1] => восьмикомнатных квартир [2] => восьмикомнатных квартир ) [a1.i] => Array ( [0] => однокомнатного апартамента [1] => однокомнатных апартаментов [2] => однокомнатных апартаментов ) [a2.i] => Array ( [0] => двухкомнатного апартамента [1] => двухкомнатных апартаментов [2] => двухкомнатных апартаментов ) [a3.i] => Array ( [0] => трехкомнатного апартамента [1] => трехкомнатных апартаментов [2] => трехкомнатных апартаментов ) [a4.i] => Array ( [0] => четырехкомнатного апартамента [1] => четырехкомнатных апартаментов [2] => четырехкомнатных апартаментов ) [a5.i] => Array ( [0] => пятикомнатного апартамента [1] => пятикомнатных апартаментов [2] => пятикомнатных апартаментов ) [a6.i] => Array ( [0] => шестикомнатного апартамента [1] => шестикомнатных апартаментов [2] => шестикомнатных апартаментов ) [a7.i] => Array ( [0] => семикомнатного апартамента [1] => семикомнатных апартаментов [2] => семикомнатных апартаментов ) [a8.i] => Array ( [0] => восьмикомнатного апартамента [1] => восьмикомнатных апартаментов [2] => восьмикомнатных апартаментов ) [as.i] => Array ( [0] => студии-апартамента [1] => студий-апартаментов [2] => студий-апартаментов ) [p1.i] => Array ( [0] => однокомнатного помещения [1] => однокомнатных помещений [2] => однокомнатных помещений ) [p2.i] => Array ( [0] => двухкомнатного помещения [1] => двухкомнатных помещений [2] => двухкомнатных помещений ) [p3.i] => Array ( [0] => трехкомнатного помещения [1] => трехкомнатных помещений [2] => трехкомнатных помещений ) [p4.i] => Array ( [0] => четырехкомнатного помещения [1] => четырехкомнатных помещений [2] => четырехкомнатных помещений ) [p5.i] => Array ( [0] => пятикомнатного помещения [1] => пятикомнатных помещений [2] => пятикомнатных помещений ) [p6.i] => Array ( [0] => шестикомнатного помещения [1] => шестикомнатных помещений [2] => шестикомнатных помещений ) [p7.i] => Array ( [0] => семикомнатного помещения [1] => семикомнатных помещений [2] => семикомнатных помещений ) [p8.i] => Array ( [0] => восьмикомнатного помещения [1] => восьмикомнатных помещений [2] => восьмикомнатных помещений ) [ps.i] => Array ( [0] => студии [1] => студий [2] => студий ) [t.a] => Array ( [0] => таунхауса [1] => таунхаусы [2] => таунхаусов ) [a.a] => Array ( [0] => апартамент [1] => апартамента [2] => апартаментов ) [s.a] => Array ( [0] => Студия [1] => Студии [2] => Студий ) [1.a] => Array ( [0] => Однушка [1] => Однушки [2] => Однушек ) [2.a] => Array ( [0] => Двушка [1] => Двушки [2] => Двушек ) [3.a] => Array ( [0] => Трешка [1] => Трешки [2] => Трешек ) [4.a] => Array ( [0] => Четырехкомнатная [1] => Четырехкомнатные [2] => Четырехкомнатных ) [5.a] => Array ( [0] => Многокомнатная [1] => Многокомнатные [2] => Многокомнатных ) [t.b] => Array ( [0] => таунхаус [1] => таунхаусы [2] => таунхаусов ) [a.b] => Array ( [0] => апартамент [1] => апартаменты [2] => апартаментов ) [s.b] => Array ( [0] => студию [1] => студии [2] => cтудий ) [1.b] => Array ( [0] => однушку [1] => однушки [2] => однушек ) [2.b] => Array ( [0] => двушку [1] => двушки [2] => двушек ) [3.b] => Array ( [0] => трешку [1] => трешки [2] => трешек ) [4.b] => Array ( [0] => четырехкомнатную [1] => четырехкомнатные [2] => четырехкомнатных ) [5.b] => Array ( [0] => многокомнатную [1] => многокомнатные [2] => многокомнатных ) [room.i] => Array ( [0] => квартиры [1] => квартир [2] => квартир ) [room] => Array ( [0] => квартира [1] => квартиры [2] => квартир ) [t.d] => Array ( [0] => таунхаус [1] => таунхауса [2] => таунхаусов ) [a.d] => Array ( [0] => апартамент [1] => апартамента [2] => апартаментов ) [s.d] => Array ( [0] => квартира-студия [1] => квартиры-студии [2] => квартир-студий ) [1.d] => Array ( [0] => 1-комнатная квартира [1] => 1-комнатной квартиры [2] => 1-комнатныx ) [2.d] => Array ( [0] => 2-комнатная квартира [1] => 2-комнатной квартиры [2] => 2-комнатныx ) [3.d] => Array ( [0] => 3-комнатная квартира [1] => 3-комнатной квартиры [2] => 3-комнатныx ) [4.d] => Array ( [0] => 4-комнатная квартира [1] => 4-комнатной квартиры [2] => 4-комнатныx ) [5.d] => Array ( [0] => 5-комнатная квартира [1] => 5-комнатной квартиры [2] => 5-комнатныx ) [6.d] => Array ( [0] => 6-комнатная квартира [1] => 6-комнатной квартиры [2] => 6-комнатныx ) [7.d] => Array ( [0] => 7-комнатная квартира [1] => 7-комнатной квартиры [2] => 7-комнатныx ) [8.d] => Array ( [0] => 8-комнатная квартира [1] => 8-комнатной квартиры [2] => 8-комнатныx ) [9.d] => Array ( [0] => 9-комнатная квартира [1] => 9-комнатной квартиры [2] => 9-комнатныx ) [10.d] => Array ( [0] => 10-комнатная квартира [1] => 10-комнатной квартиры [2] => 10-комнатныx ) [a1.d] => Array ( [0] => 1-комнатный апартамент [1] => 1-комнатного апартамента [2] => 1-комн. апартаментов ) [a2.d] => Array ( [0] => 2-комнатные апартаменты [1] => 2-комнатного апартамента [2] => 2-комн. апартаментов ) [a3.d] => Array ( [0] => 3-комнатные апартаменты [1] => 3-комнатного апартамента [2] => 3-комн. апартаментов ) [a4.d] => Array ( [0] => 4-комнатные апартаменты [1] => 4-комнатного апартамента [2] => 4-комн. апартаментов ) [a5.d] => Array ( [0] => 5-комнатные апартаменты [1] => 5-комнатного апартамента [2] => 5-комн. апартаментов ) [a6.d] => Array ( [0] => 6-комнатные апартаменты [1] => 6-комнатного апартамента [2] => 6-комн. апартаментов ) [a7.d] => Array ( [0] => 7-комнатные апартаменты [1] => 7-комнатного апартамента [2] => 7-комн. апартаментов ) [a8.d] => Array ( [0] => 8-комнатные апартаменты [1] => 8-комнатного апартамента [2] => 8-комн. апартаментов ) [a9.d] => Array ( [0] => 9-комнатные апартаменты [1] => 9-комнатного апартамента [2] => 9-комн. апартаментов ) [a10.d] => Array ( [0] => 10-комнатные апартаменты [1] => 10-комнатного апартамента [2] => 10-комн. апартаментов ) [as.d] => Array ( [0] => студия-апартамент [1] => студии-апартамента [2] => студий-апартаментов ) [p1.d] => Array ( [0] => 1-комнатное помещение [1] => 1-комнатного помещения [2] => 1-комн. помещений ) [p2.d] => Array ( [0] => 2-комнатное помещение [1] => 2-комнатного помещения [2] => 2-комн. помещений ) [p3.d] => Array ( [0] => 3-комнатное помещение [1] => 3-комнатного помещения [2] => 3-комн. помещений ) [p4.d] => Array ( [0] => 4-комнатное помещение [1] => 4-комнатного помещения [2] => 4-комн. помещений ) [p5.d] => Array ( [0] => 5-комнатное помещение [1] => 5-комнатного помещения [2] => 5-комн. помещений ) [p6.d] => Array ( [0] => 6-комнатное помещение [1] => 6-комнатного помещения [2] => 6-комн. помещений ) [p7.d] => Array ( [0] => 7-комнатное помещение [1] => 7-комнатного помещения [2] => 7-комн. помещений ) [p8.d] => Array ( [0] => 8-комнатное помещение [1] => 8-комнатного помещения [2] => 8-комн. помещений ) [p9.d] => Array ( [0] => 9-комнатное помещение [1] => 9-комнатного помещения [2] => 9-комн. помещений ) [p10.d] => Array ( [0] => 10-комнатное помещение [1] => 10-комнатного помещения [2] => 10-комн. помещений ) [ps.d] => Array ( [0] => помещение-студия [1] => помещения-студии [2] => помещений-студий ) [a.detail] => Апартаменты [t.detail] => таунхаус [s.detail] => Студия-квартира [1.detail] => 1-комн. квартира [2.detail] => 2-комн. квартира [3.detail] => 3-комн. квартира [4.detail] => 4-комн. квартира [5.detail] => 5-комн. квартира [6.detail] => 6-комн. квартира [7.detail] => 7-комн. квартира [8.detail] => 8-комн. квартира [9.detail] => 9-комн. квартира [10.detail] => 10-комн. квартира [a1.detail] => 1-комн. апартамент [a2.detail] => 2-комн. апартаменты [a3.detail] => 3-комн. апартаменты [a4.detail] => 4-комн. апартаменты [a5.detail] => 5-комн. апартаменты [a6.detail] => 6-комн. апартаменты [a7.detail] => 7-комн. апартаменты [a8.detail] => 8-комн. апартаменты [a9.detail] => 9-комн. апартаменты [a10.detail] => 10-комн. апартаменты [as.detail] => студии-апартаменты [p1.detail] => 1-комнатные [p2.detail] => 2-комнатные [p3.detail] => 3-комнатные [p4.detail] => 4-комнатные [p5.detail] => 5-комнатные [p6.detail] => 6-комнатные [p7.detail] => 7-комнатные [p8.detail] => 8-комнатные [p9.detail] => 9-комнатные [p10.detail] => 10-комнатные [ps.detail] => студии [a.list] => Апартаменты [t.list] => Таунхаус [s.list] => Студия [1.list] => 1-комнатная [2.list] => 2-комнатная [3.list] => 3-комнатная [4.list] => 4-комнатная [5.list] => 5-комнатная [6.list] => 6-комнатная [7.list] => 7-комнатная [8.list] => 8-комнатная [9.list] => 9-комнатная [10.list] => 10-комнатная [a.list.a] => Апартаменты [t.list.a] => Таунхаус [s.list.a] => Студия [1.list.a] => 1-комнатные [2.list.a] => 2-комнатные [3.list.a] => 3-комнатные [4.list.a] => 4-комнатные [5.list.a] => 5-комнатные [6.list.a] => 6-комнатные [7.list.a] => 7-комнатные [8.list.a] => 8-комнатные [9.list.a] => 9-комнатные [10.list.a] => 10-комнатные [a.short] => апартаменты [t.short] => таунхаус [s.short] => студия [1.short] => 1-комн. кв [2.short] => 2-комн. кв [3.short] => 3-комн. кв [4.short] => 4-комн. кв [5.short] => 5-комн. кв [6.short] => 6-комн. кв [7.short] => 7-комн. кв [8.short] => 8-комн. кв [9.short] => 9-комн. кв [10.short] => 10-комн. кв [a1.short] => 1-к. апарт [a2.short] => 2-к. апарт [a3.short] => 3-к. апарт [a4.short] => 4-к. апарт [a5.short] => 5-к. апарт [a6.short] => 6-к. апарт [a7.short] => 7-к. апарт [a8.short] => 8-к. апарт [a9.short] => 9-к. апарт [a10.short] => 10-к. апарт [as.short] => апартаменты [ps.short] => студия [p1.short] => 1-комн. [p2.short] => 2-комн. [p3.short] => 3-комн. [p4.short] => 4-комн. [p5.short] => 5-комн. [p6.short] => 6-комн. [p7.short] => 7-комн. [p8.short] => 8-комн. [p9.short] => 9-комн. [p10.short] => 10-комн. ) ) [initScripts] => Array ( [ymaps] => ) [preset] => Array ( [default] => Array ( [dir] => images [source] => Array ( [0] => news [1] => company [2] => novos [3] => ads [4] => tp [5] => plans [6] => panorams [7] => banks [8] => gallery3d [9] => planirovki [10] => person [11] => thumbnail_bank [12] => plan_3d ) [subDir] => main [not_public] => 1 [size] => ) [adminList] => Array ( [dir] => images [source] => Array ( [0] => news [1] => ads [2] => plans [3] => tp [4] => banks [5] => person ) [subDir] => 210x140 [size] => Array ( [w] => 210 [h] => 140 ) ) [novosList] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => ads [2] => plans [3] => gallery3d [4] => company [5] => news [6] => tp [7] => person [8] => plan_3d ) [subDir] => 385x290 [size] => Array ( [w] => 385 [h] => 290 ) ) [smallList] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => plans [2] => ads ) [subDir] => 160x120 [size] => Array ( [w] => 160 [h] => 120 ) ) [zhilayaDetail] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => ads [2] => news [3] => tp [4] => plans ) [subDir] => 860x450 [size] => Array ( [w] => 860 [h] => 450 ) [watermark] => 1 [waterOpacity] => 0.24 [cropped] => ) [28x28] => Array ( [dir] => images [subDir] => 28x28 [source] => Array ( [0] => thumbnail_bank ) [size] => Array ( [w] => 28 [h] => 28 ) ) [150x120] => Array ( [dir] => images [subDir] => 150x120 [source] => Array ( [0] => tp ) [size] => Array ( [w] => 150 [h] => 120 ) ) [80x80] => Array ( [dir] => images [subDir] => 80x80 [source] => Array ( [0] => company [1] => novos [2] => banks ) [size] => Array ( [w] => 80 [h] => 80 ) [cropped] => [fill] => 1 ) [banksList] => Array ( [dir] => images [subDir] => 160x80 [source] => Array ( [0] => banks ) [size] => Array ( [w] => 160 [h] => 80 ) [cropped] => [fill] => 1 ) [location] => Array ( [dir] => images [subDir] => location [source] => Array ( [0] => social ) [size] => Array ( [w] => 155 [h] => 112 ) ) [pdf] => Array ( [dir] => files [source] => Array ( [0] => news [1] => company [2] => novos ) [subDir] => pdf ) [docs] => Array ( [dir] => files [source] => Array ( [0] => news [1] => company [2] => novos [3] => banks ) [subDir] => docs ) [ddu] => Array ( [dir] => files [source] => Array ( [0] => novos ) [subDir] => ddu ) [profile] => Array ( [dir] => images [source] => Array ( [0] => comment ) [subDir] => profile [size] => Array ( [w] => 50 [h] => 50 ) ) [listtp] => Array ( [dir] => images [source] => Array ( [0] => tp [1] => news ) [subDir] => 240x130 [size] => Array ( [w] => 240 [h] => 130 ) ) [180x130] => Array ( [dir] => images [source] => Array ( [0] => tp [1] => news ) [subDir] => 180x130 [size] => Array ( [w] => 180 [h] => 130 ) ) [190x130] => Array ( [dir] => images [source] => Array ( [0] => tp ) [subDir] => 190x130 [size] => Array ( [w] => 190 [h] => 130 ) ) [110x110] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 110x110 [size] => Array ( [w] => 110 [h] => 110 ) ) [90x55] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 90x55 [size] => Array ( [w] => 90 [h] => 55 ) ) [276x168] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 276x168 [size] => Array ( [w] => 276 [h] => 168 ) ) [276x175] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 276x175 [size] => Array ( [w] => 276 [h] => 175 ) ) [165x101] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 165x101 [size] => Array ( [w] => 165 [h] => 101 ) ) [720x381] => Array ( [dir] => images [source] => Array ( [0] => news [1] => panorams ) [subDir] => 720x381 [size] => Array ( [w] => 720 [h] => 381 ) ) [inFocus] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 220x117 [size] => Array ( [w] => 220 [h] => 117 ) ) [listads] => Array ( [dir] => images [source] => Array ( [0] => ads [1] => plans ) [subDir] => listads [size] => Array ( [w] => 175 [h] => 119 ) ) [adminGalleryList] => Array ( [dir] => images [source] => Array ( [0] => novos ) [subDir] => 240x150 [size] => Array ( [w] => 240 [h] => 150 ) ) [200x147] => Array ( [dir] => images [source] => Array ( [0] => company [1] => ads [2] => banks ) [subDir] => 200x147 [size] => Array ( [w] => 200 [h] => 147 ) [cropped] => [fill] => 1 ) [110x81] => Array ( [dir] => images [source] => Array ( [0] => company ) [subDir] => 110x81 [size] => Array ( [w] => 110 [h] => 81 ) [cropped] => [fill] => 1 ) [156x156] => Array ( [dir] => images [source] => Array ( [0] => company ) [subDir] => 156x156 [size] => Array ( [w] => 156 [h] => 156 ) [cropped] => [fill] => 1 ) [850x560] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 850x560 [size] => Array ( [w] => 850 [h] => 560 ) ) [700x700] => Array ( [dir] => images [source] => Array ( [0] => news [1] => plans ) [subDir] => 700x700 [size] => Array ( [w] => 700 [h] => 700 ) [watermark] => 1 [waterOpacity] => 0.04 [cropped] => ) [280x400] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 280x400 [size] => Array ( [w] => 280 [h] => 400 ) ) [255x185] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 255x185 [size] => Array ( [w] => 255 [h] => 185 ) ) [255x175] => Array ( [dir] => images [source] => Array ( [0] => news [1] => novos ) [subDir] => 255x175 [size] => Array ( [w] => 255 [h] => 175 ) ) [720x200] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 720x200 [size] => Array ( [w] => 720 [h] => 200 ) ) [720x220] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 720x220 [size] => Array ( [w] => 720 [h] => 220 ) ) [720x230] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 720x230 [size] => Array ( [w] => 720 [h] => 230 ) ) [720x250] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 720x250 [size] => Array ( [w] => 720 [h] => 250 ) ) [220x147] => Array ( [dir] => images [source] => Array ( [0] => novos ) [subDir] => 220x147 [size] => Array ( [w] => 220 [h] => 147 ) ) [60x60] => Array ( [dir] => images [subDir] => 60x60 [source] => Array ( [0] => company ) [size] => Array ( [w] => 60 [h] => 60 ) [cropped] => [fill] => 1 ) [1024x768] => Array ( [dir] => images [source] => Array ( [0] => plans [1] => plan_3d [2] => gallery3d ) [subDir] => 1024x768 [size] => Array ( [w] => 1024 [h] => 768 ) [watermark] => 1 [waterOpacity] => 0.08 [cropped] => ) [186x186] => Array ( [dir] => images [source] => Array ( [0] => plans ) [subDir] => 186x186 [size] => Array ( [w] => 186 [h] => 186 ) [watermark] => 1 [waterOpacity] => 0.08 [cropped] => ) [1024x768bw] => Array ( [dir] => images [source] => Array ( [0] => plans ) [subDir] => 1024x768_big_water [size] => Array ( [w] => 1024 [h] => 768 ) [watermark] => 1 [waterOpacity] => 0.08 [cropped] => [watermarkFile] => themes/default/images/watermark3.png ) [origin] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => news ) [subDir] => origin [watermark] => 1 [waterOpacity] => 0.08 [cropped] => [watermarkFile] => themes/default/images/watermark3.png ) [1000x500] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => ads ) [subDir] => 1000x500 [size] => Array ( [w] => 1000 [h] => 0 ) [watermark] => 1 [waterOpacity] => 0.24 [cropped] => [saveOrigin] => 1 [bestfit] => ) [800x600] => Array ( [dir] => images [source] => Array ( [0] => novos ) [subDir] => 800x600 [size] => Array ( [w] => 800 [h] => 600 ) [watermark] => 1 [waterOpacity] => 0.24 [cropped] => 1 ) [1024x768_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => plans [1] => gallery3d ) [subDir] => 1024x768_without_watermark [size] => Array ( [w] => 1024 [h] => 768 ) [watermark] => [cropped] => ) [80x60] => Array ( [dir] => images [source] => Array ( [0] => plans [1] => ads ) [subDir] => 80x60 [size] => Array ( [w] => 80 [h] => 60 ) ) [658x380] => Array ( [dir] => images [source] => Array ( [0] => news [1] => tp ) [subDir] => 658x380 [size] => Array ( [w] => 658 [h] => 380 ) [watermark] => 1 ) [320x180] => Array ( [dir] => images [source] => Array ( [0] => news [1] => tp ) [subDir] => 320x180 [size] => Array ( [w] => 320 [h] => 180 ) [watermark] => 1 ) [412x309] => Array ( [dir] => images [source] => Array ( [0] => ads [1] => novos [2] => plans ) [subDir] => 412x309 [size] => Array ( [w] => 412 [h] => 309 ) ) [116x116] => Array ( [dir] => images [source] => Array ( [0] => company ) [subDir] => 116x116 [size] => Array ( [w] => 116 [h] => 116 ) ) [120x90] => Array ( [dir] => images [subDir] => 120x90 [source] => Array ( [0] => novos ) [size] => Array ( [w] => 120 [h] => 90 ) [cropped] => ) [1360x460] => Array ( [dir] => images [source] => Array ( [0] => novos ) [subDir] => 1360x460 [size] => Array ( [w] => 1360 [h] => 460 ) ) [1200x630] => Array ( [dir] => images [source] => Array ( [0] => novos ) [subDir] => 1200x630 [size] => Array ( [w] => 1200 [h] => 630 ) ) [658x380_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 658x380_without_watermark [size] => Array ( [w] => 658 [h] => 380 ) [watermark] => ) [1200x630_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => news [1] => novos ) [subDir] => 1200x630_without_watermark [size] => Array ( [w] => 1200 [h] => 630 ) [watermark] => ) [800x600_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => news [1] => novos ) [subDir] => 800x600_without_watermark [size] => Array ( [w] => 800 [h] => 600 ) [watermark] => ) [860x450_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => ads [2] => news [3] => tp [4] => plans ) [subDir] => 860x450_without_watermark [size] => Array ( [w] => 860 [h] => 450 ) [watermark] => ) [700x700_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => news [1] => plans ) [subDir] => 700x700_without_watermark [size] => Array ( [w] => 700 [h] => 700 ) [watermark] => [cropped] => ) [196x147] => Array ( [dir] => images [source] => Array ( [0] => planirovki ) [subDir] => 196x147 [size] => Array ( [w] => 196 [h] => 147 ) ) [pushImage] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 192x192 [size] => Array ( [w] => 192 [h] => 192 ) [cropped] => 1 ) [origin_without_watermark] => Array ( [dir] => images [source] => Array ( [0] => novos [1] => news [2] => thumbnail_bank ) [subDir] => origin_without_watermark [watermark] => [cropped] => ) [700x1000] => Array ( [dir] => images [source] => Array ( [0] => news ) [subDir] => 700x1000 [size] => Array ( [w] => 700 [h] => 0 ) [watermark] => 1 [waterOpacity] => 0.04 [cropped] => [bestfit] => ) [social] => Array ( [dir] => images [source] => Array ( [0] => news [1] => tp ) [subDir] => 968x504 [size] => Array ( [w] => 968 [h] => 504 ) ) ) [priceMod] => Array ( [def] => Объект продается [nosale] => Нет в продаже
квартир от застройщика [fromdev] => Скоро старт [requestprice] => Цена по запросу ) [callbackButtonText] => Array ( [0] => Акции в % [1] => Зафиксировать цену [2] => Узнать об акциях ) [callbackClick] => Array ( [yaGoal] => mkbutton_newyear ) [callbacCompetitor] => Array ( [0] => Акции в новостройке рядом [1] => Сравнить с похожими ) [allCity] => Array ( [0] => msk [1] => newmsk [2] => spb ) [novosContractTypeLink] => Array ( [ДДУ (договор долевого участия)] => ddu [ЖСК (жилищно-строительный кооператив)] => jsk [Договор уступки права требования] => dupt [Предварительный договор купли-продажи] => pdkp [ДДУ с эскроу-счетом] => escrow ) [novosBuildingTypes] => Array ( [mono] => Монолит [mono-brick] => Монолитно-кирпичный [brick] => Кирпичный [panel-brick] => Панельно-кирпичный [panel] => Панельный [mono-panel] => Монолитно-панельный [frame-block] => Каркасно-блочный [mono-frame] => Монолитно-каркасный [block] => Блочный [stalin] => Сталинский [wood] => Деревянный [aerated-concrete] => Газобетон [reinforced-concrete] => Железобетон [half_timbered] => Фахверк [frame_panel] => Каркасно-щитовые ) [typeCottage] => Array ( [dom] => Дом [cottage] => Коттедж [taunhouse] => Таунхаус [duplex] => Дуплекс ) [cottageCommunication] => Array ( [electric] => Электричество [gas] => Газ [water] => Вода [sewerage] => Канализация [heating] => Отопление ) [parkingNames] => Array ( [1] => подземная [2] => многоуровневая [3] => наземная [4] => гостевая ) [parking] => Array ( [place_type] => Array ( [0] => машиноместо [1] => бокс [2] => гараж ) [parking_type] => Array ( [0] => подземная [1] => наземная [2] => многоуровневая ) ) [typesDiscount] => Array ( [1] => Скидка [2] => Ипотечная акция [3] => Субсидии [4] => Рассрочка [5] => Подарок ) [carSizes] => Array ( [0] => 10.25 [1] => 12.25 [2] => 18 ) [carTypes] => Array ( [1] => мотоместо [2] => малое машиноместо [3] => среднее машиноместо [4] => большое машиноместо ) [carTags] => Array ( ) [labelsColumn] => Array ( [price_mod] => Array ( [def] => Объект продается [nosale] => Нет в продаже [fromdev] => Скоро в продаже [requestprice] => Цена по запросу ) [ready_quarter] => Array ( [0] => Нет указан [1] => I Квартал [2] => II Квартал [3] => III Квартал [4] => IV Квартал ) [type] => Array ( [images] => Картинки [files] => Файлы ) [heating_type] => Array ( [yes] => Есть [gas] => Центральное газовое [coal] => Центральное угольное [oven] => Печь [fireplace] => Камин [gas_boiler] => Газовый котел [electric_boiler] => Электрический котел [no] => Нет отопления ) [common_state] => Array ( [5] => Отличное [4] => Хорошее [3] => Удовлетворительное ) [conditioning_type] => Array ( [person] => индивидуальное [central] => центральное ) [new_building_class] => Array ( [economy] => стандарт [bussiness] => бизнес [elite] => элит [comfort] => комфорт [premium] => премиум [deluxe] => делюкс [pragmatic] => прагматик [comfort_plus] => комфорт + [standart_plus] => стандарт + [bussiness_lite] => бизнес-лайт ) [parking_type] => Array ( [1] => наземная [2] => подземная [3] => стихийная ) [lift_label] => Array ( [kone] => Kone [otis] => OTIS ) [stage] => Array ( [pit] => котлован/фундамент [lower_floor] => монтаж нижних этажей [middle_floor] => монтаж средних этажей [high_floor] => монтаж верхних этажей [facade_decoration] => отделка фасада [facade] => отделка фасада и внутренние работы [gk] => сдан ГК [done] => выдача ключей + заселение [reconstruction] => реконструкция ) ) [virtualTourRooms] => Array ( [s] => Студия [1] => 1-к квартира [2] => 2-к квартира [3] => 3-к квартира [4] => 4-к квартира [showroom-s] => Студия — шоурум [showroom-1] => 1-к квартира — шоурум [showroom-2] => 2-к квартира — шоурум [showroom-3] => 3-к квартира — шоурум [showroom-4] => 4-к квартира — шоурум [3d-s] => Студия — 3D тур [3d-1] => 1-к квартира — 3D тур [3d-2] => 2-к квартира — 3D тур [3d-3] => 3-к квартира — 3D тур [3d-4] => 4-к квартира — 3D тур [saleoffice] => Офис продаж [yard] => Придомовая территория [a1] => 1-к апартамент [a2] => 2-к апартамент [a3] => 3-к апартамент [a4] => 4-к апартамент [showroom-a1] => 1-к апартамент — шоурум [showroom-a2] => 2-к апартамент — шоурум [showroom-a3] => 3-к апартамент — шоурум [showroom-a4] => 4-к апартамент — шоурум [3d-a1] => 1-к апартамент — 3D-тур [3d-a2] => 2-к апартамент — 3D-тур [3d-a3] => 3-к апартамент — 3D-тур [3d-a4] => 4-к апартамент — 3D-тур ) [spamWords] => Array ( [0] => сотрудничеств [1] => хром [2] => никель [3] => керамогранит [4] => hello [5] => invest [6] => partner ) [infrastructure] => Array ( [0] => Array ( [0] => Детский сад [1] => kinder [2] => Детские сады [3] => kindergarten ) [1] => Array ( [0] => Общеобразовательная школа [1] => school [2] => Школы [3] => shcool ) [2] => Array ( [0] => вуз [1] => university [2] => Высшие учебные заведения [3] => university ) [3] => Array ( [0] => поликлиника [1] => hospital [2] => Медицина [3] => hospital ) [4] => Array ( [0] => спорт [1] => sport [2] => Спорт [3] => sport ) [5] => Array ( [0] => торговый центр [1] => tc [2] => Торговые центры [3] => tc ) [6] => Array ( [0] => МФЦ [1] => mfc [2] => МФЦ [3] => mfc ) ) [ecologyRating] => Array ( [10] => Array ( [text] => наихудшая экологическая обстановка [color] => #FF0000 ) [9] => Array ( [text] => наихудшая экологическая обстановка [color] => #FF0000 ) [8] => Array ( [text] => удовлетворительная экологическая обстановка [color] => #FF8C00 ) [7] => Array ( [text] => удовлетворительная экологическая обстановка [color] => #FF8C00 ) [6] => Array ( [text] => приемлемая экологическая обстановка [color] => #ffcc00 ) [5] => Array ( [text] => приемлемая экологическая обстановка [color] => #ffcc00 ) [4] => Array ( [text] => благоприятная экологическая обстановка [color] => #90EE90 ) [3] => Array ( [text] => благоприятная экологическая обстановка [color] => #90EE90 ) [2] => Array ( [text] => оптимальная экологическая обстановка [color] => #008000 ) [1] => Array ( [text] => оптимальная экологическая обстановка [color] => #008000 ) [0] => Array ( [text] => оптимальная экологическая обстановка [color] => #008000 ) ) [listFirstWordsInCompanyName] => Array ( [cottage_poselok] => Array ( [0] => Коттеджный поселок [1] => Коттеджный посёлок [2] => Поселок таунхаусов [3] => Посёлок таунхаусов [4] => Поселок дуплексов [5] => Посёлок дуплексов [6] => Городская усадьба ) [commerce] => Array ( [0] => Деловой центр [1] => Бизнес-центр [2] => Архитектурный проект [3] => Бизнес-парк [4] => Бизнес-квартал [5] => Офисные виллы ) [novostroyki] => Array ( [0] => Жилой [1] => Клубный [2] => Квартал [3] => Миниполис [4] => Премиум-квартал [5] => Бизнес-квартал [6] => Бизнес-парк [7] => Смарт [8] => Комплекс [9] => Апарт- [10] => Сити [11] => Лофт [12] => Эксклюзивный ) ) [v3-recaptcha-key] => 6Ldpln0UAAAAADJSTsKMWEVW4TRVBi9H5_oyP55E [v3-recaptcha-secret] => 6Ldpln0UAAAAAG-5nleY551RR6w3Nt6qcyt8t-q4 [invisible-recaptcha-key] => 6LePsV8pAAAAAMTu36yZMs8eWJZ_5pueyh8g4V6L [invisible-recaptcha-secret] => 6LePsV8pAAAAAD7YbsELPQdwvLkyXr54HUXedGrR [google-api-key] => AIzaSyALrgW6k7TLEmFXdMLbNRXnyfZLiWtf3lc [MortgageProgramTypes] => Array ( [semeinaya] => Array ( [ru] => семейная [tagId] => 4 ) [gospodderzhka] => Array ( [ru] => с господдержкой [tagId] => 6 ) [it] => Array ( [ru] => для it специалистов [tagId] => 8 ) [voennaya] => Array ( [ru] => военная [tagId] => 3 ) [subsidirovannaya] => Array ( [ru] => субсидированная [tagId] => 7 ) ) [hideAdfoxAnother] => 0 [checkerBotParam] => [callCenter] => Array ( [url] => baza-call [h1] => База новостроек для работы КЦ ) [callCenterTokenAccessDev] => qfwjiJYYOlD20rhK5UFef043ZvvEIE4cIBCzNqT41ZGTKu [curlProxy] => Array ( [host] => 193.23.50.213 [port] => 10027 [user] => develop123 [pass] => 235cae ) [apiNovosBearerToken] => aB3nK9qW7vX2pLmR5tYz8UcE6sFgHjN4 [project_name] => spb [baseUrl] => https://www.novostroy-spb.ru [contactPhone] => +7 (812) 424-49-09 [microSeoPhone] => 8 (800) 333-15-33 [excludes] => Array ( [questions] => Array ( ) ) [showAdfox] => 1 [showNewAdfox] => 1 [bannersUrl] => banners.novostroy-spb.ru [defaultEmail] => noreply@novostroy-spb.ru [senderEmail] => noreply@novostroy--spb.ru [feedbackEmail] => p.veselov@novostroy-m.ru [companyEmails] => Array ( ) [whereBuyEmail] => Array ( ) [companyAdvertTitle] => Array ( ) [siteName] => Array ( [ru] => Новострой-СПб [en] => Novostroy-SPb ) [cities] => Array ( [0] => spb ) [domainMail] => novostroy-spb.ru [videoUrl] => video.novostroy-spb.ru [imageUrl] => www.novostroy-spb.ru [mediaUrl] => novostroy-spb.ru [fileUrl] => https://filestock-spb.ru [admin2Url] => https://mpn:jupiter@admin2.novostroy-spb.ru [devUrl] => https://mpn:sunshine@04t.novostroy-spb.ru [homeLink] => Array ( [label] => Novostroy-Spb.ru [url] => / ) [url] => Array ( [ads] => objyavleniya [reklama] => razmecshenie_reklamy [agreement] => pravila_foruma [discount] => skidki_i_akcii [company_system] => /novosti/peterburgsckih_zastroyschikov_podderjit_gosudarstvo [3d_flat_plan] => 3d-planirovki ) [images] => /images/site/spb [footer] => Array ( [metro] => Array ( [model] => \common\models\Metro [nested] => [titleTab] => Метро [active] => 1 [indexPage] => /po_metro [url] => /po_metro/{alias} [addSelect] => Array ( [0] => color [1] => build_year [2] => metro_line_id ) [sort] => 1 ) [district] => Array ( [model] => \common\models\Location2 [nested] => 1 [titleTab] => Районы [where] => Closure Object ( [parameter] => Array ( [$model] =>
) ) [indexPage] => /po_rajonam [url] => /po_rajonam/{alias} [sort] => 5 ) [highway] => Array ( [model] => \common\models\Highway [nested] => 1 [titleTab] => Шоссе [where] => level = 1 [indexPage] => /po_shosse [url] => /po_shosse/{alias} [addSelect] => direction [sort] => 4 ) [city] => Array ( [model] => \common\models\Location2 [nested] => 1 [titleTab] => Города [where] => Closure Object ( [parameter] => Array ( [$model] =>
) ) [indexPage] => /po_gorodam [url] => /po_gorodam/{alias} [sort] => 3 ) [railway] => Array ( [model] => \common\models\Railway [nested] => 1 [titleTab] => ЖД [where] => level = 2 [indexPage] => /po_zhd [url] => /po_zhd/{alias} [sort] => 2 ) [district_lo] => Array ( [model] => \common\models\Location2 [nested] => 1 [titleTab] => Районы ЛО [where] => Closure Object ( [parameter] => Array ( [$model] =>
) ) [indexPage] => /rayony_lenoblasti [url] => /rayony_lenoblasti/{alias} [sort] => 6 ) [company] => Array ( [model] => \common\models\Company [nested] => [titleTab] => Застройщик [active] => 1 [where] => Closure Object ( [parameter] => Array ( [$model] =>
) ) [indexPage] => /company [url] => /po_metro/{alias} [addSelect] => Array ( [0] => t.seller [1] => t.developer ) [sort] => 13 ) [companyAll] => Array ( [model] => \common\models\Company [nested] => [titleTab] => Застройщик [active] => 1 [where] => Closure Object ( [parameter] => Array ( [$model] =>
) ) [indexPage] => /company [url] => /po_metro/{alias} [addSelect] => Array ( [0] => t.seller [1] => t.developer ) [sort] => 13 ) ) [static_tag] => Array ( [baza] => Array ( ) [kvartiry] => Array ( ) [kompanii] => Array ( ) ) [aliasesUrlParam] => Array ( [priceAlias] => Array ( [0] => 1000000 [1] => 1500000 [2] => 2000000 [3] => 2500000 [4] => 3000000 [5] => 4000000 [6] => 5000000 [7] => 6000000 [8] => 7000000 ) [roomAlias] => Array ( [odnokomnatnye] => 1 [dvuhkomnatnye] => 2 [trehkomnatnye] => 3 [chetyrehkomnatnye] => 4 [studii] => s [aportamenty] => a [mnogokomnatnye] => 4+ [tanhouse] => t [odnokomnatnye_apartamenty] => a1 [dvuhkomnatnye_apartamenty] => a2 [trehkomnatnye_apartamenty] => a3 [chetyrehkomnatnye_apartamenty] => a4 [studii_apartamenty] => as [mnogokomnatnye_apartamenty] => a4+ ) [howBuyLink] => ) [topNovosList] => Array ( [0] => 336 [1] => 661 [2] => 93 [3] => 788 [4] => 279 [5] => 686 [6] => 555 [7] => 372 [8] => 600 [9] => 734 ) [socialLinks] => Array ( [0] => Array ( [link] => //vk.com/club47579439 [svg] => #vk-24 ) [1] => Array ( [link] => //www.youtube.com/user/novostroyspb [svg] => #youtube-24 ) [2] => Array ( [link] => //t.me/Novostroy_SPb [svg] => #telesymbolram-24 ) [3] => Array ( [link] => //zen.yandex.ru/novostroy-spb.ru [svg] => #zen-footer-24 ) ) [chatId] => rTAasxeqSP [map] => Array ( [coordsCenter] => 59.91, 30.04 [pointColor] => green [city] => Санкт-Петербург [lat] => 59.91 [long] => 30.04 ) [mapLegend] => Array ( [0] => Array ( [text] => строящаяся новостройка [class] => map_orange [color] => #ff931e ) [1] => Array ( [text] => готовая новостройка [class] => map_green [color] => #00c853 ) [2] => Array ( [text] => просмотренная новостройка [class] => map_gray [color] => #757575 ) ) [mapLegendCommerce] => Array ( [0] => Array ( [text] => продажа [class] => map_orange [color] => #ff931e ) [1] => Array ( [text] => аренда [class] => map_violet [color] => #b51eff ) [2] => Array ( [text] => аренда и продажа [class] => map_green [color] => #00c853 ) [3] => Array ( [text] => просмотрено [class] => map_gray [color] => #757575 ) ) [zoomChangeIconCommerce] => 16 [advertNovosHeader] => Скидки и акции на новостройки Ленинградской области [yandexWidget] => //www.yandex.ru/?add=94676&from=promocode [yandexCounterId] => 691626 [yandexCallbackEvent] => 0 [yandexMapKey] => 0e6be3b2-f09f-4440-969d-9fa3d8d04e54 [yandexSuggestApiKey] => 47e01696-0c96-4344-9808-ca57e9ed7362 [criteoAccountIds] => Array ( [0] => 38790 [1] => 38808 [2] => 40554 [3] => 41306 [4] => 41733 [5] => 41739 [6] => 43804 ) [solwaySid] => 218934 [logo] => Array ( [100x100] => spb_100.png [180x180] => spb_180.png ) [logoAlt] => Новострой-СПб – портал о новостройках Санкт-Петербурга и Ленинградской области [logoUrl] => https://www.novostroy-spb.ru/images/header/novostroy-spb.svg [logoSvg] => /images/header/novostroy-spb.svg [telegram] => Array ( [img] => /images/site/spb/t_chan.svg [text] => Хотите быть в курсе самых актуальных материалов о новостройках Санкт-Петербурга и Ленобласти? [link] => //t.me/Novostroy_SPb [linkSubscribe] => https://t.me/+fjta1Uze1AsxNTUy ) [max] => Array ( [linkSubscribe] => https://max.ru/id7734667834_biz [img] => /images/site/spb/m_chan.svg ) [youtube] => https://www.youtube.com/user/novostroyspb/ [zen] => Array ( [link] => https://zen.yandex.ru/novostroy-spb.ru [text] => Подпишитесь на наш канал: самые актуальные новости о недвижимости [icon] => /images/site/zen-footer-24.svg ) [rutube] => Array ( [link] => https://rutube.ru/u/novostroym/ [icon] => /images/site/rutube.svg ) [vk] => Array ( [link] => https://vk.com/novostroyspb_ru [icon] => /images/socials/vk.svg ) [specialCompany] => 758 [whereBuyFormCompany] => Array ( ) [rtb] => Array ( [enabled] => 1 [params] => Array ( [pr] => 2H93cdNT0mqjOuX4z3NL ) ) [highway] => КАД [removeSpecialHeader] => Array ( [0] => baza/jk_4you [1] => baza/jk_lirika [2] => baza/jk_solntsepark [3] => baza/jk_all_inclusive [4] => baza/jk_mendelson [5] => baza/zhk_ogni_zaliva [6] => baza/zhk_severnaya_dolina [7] => baza/zhk_yuntolovo [8] => baza/jk_dve_stolitsy [9] => baza/jk_dom_na_blyuhera [10] => baza/jk_dom_na_kosmonavtov [11] => baza/jk_dom_na_obruchevyh [12] => baza/zhk_moskovskie_vorota [13] => baza/zhk_kristall_polyustrovo [14] => baza/zhk_galaktika [15] => baza/jk_v_krapivnom_pereulke [16] => baza/zhk_carskaya_stolica [17] => baza/zhk_lastochkino_gnezdo [18] => baza/jk_aptekarskiy_prospekt [19] => baza/zhk_samocvety [20] => baza/jk_landyshi [21] => baza/jk_kirill_i_darya [22] => baza/finskiy_gorodok_yutteri [23] => baza/zhk_jaanila_country [24] => baza/jk_yanila_drayv [25] => baza/jk_tsvetnoy_gorod [26] => baza/jk_tsivilizatsiya [27] => baza/zhk_shuvalovskiy [28] => baza/zhk_novaya_ohta [29] => baza/jk_kaleydoskop [30] => baza/jk_parusa [31] => baza/zhk_evropa_siti [32] => baza/jk_neva_haus [33] => baza/jk_zvezdnyy_duet [34] => baza/jk_tsveta_radugi [35] => baza/zhk_na_peresechenii [36] => baza/jk_kudrovo [37] => baza/jk_zemlyanino [38] => baza/jk_kleny [39] => baza/jk_u_metro_devyatkino [40] => baza/jk_lomonosov [41] => baza/jk_severnyy_vals [42] => baza/jk_chistyy_ruchey [43] => baza/zhk_life_primorskij [44] => baza/jk_life_lesnaya [45] => baza/jk_dva_angela [46] => baza/zhk_petr_velikiy_i_ekaterina [47] => baza/jk_suvorov [48] => baza/jk_kremlevskie_zvezdy [49] => baza/jk_new_time [50] => baza/jk_murino_2019 [51] => baza/jk_novoe_kolpino [52] => baza/zhk_dom_u_razliva [53] => baza/zhk_v_kudrovo [54] => baza/zhk_shuvalovskij_dujet [55] => baza/zhk_newpiter [56] => baza/jk_premera2 [57] => baza/jk_dom_na_kievskoy [58] => baza/jk_magnifika_residence_magnifika [59] => baza/zhk_skandi_klubb [60] => baza/zhk_grona_lund [61] => baza/jk_ligovsky_city_ligovskiy [62] => baza/jk_ligovsky_city_ligovskiy [63] => baza/jk_angliyskaya_milya [64] => baza/zhk_petergof_park [65] => baza/jk_svetlyy_mir_vnutri [66] => baza/jk_svetlyy_mir_jizn [67] => baza/zhk_svetlyy_mir_ya_romantik [68] => baza/jk_svetlyy_mir_tihaya [69] => baza/zhk_duderhof_club [70] => baza/zhk_zhemchuzhnyy_fregat [71] => baza/jiloy_kvartal_jemchujnyy_bereg [72] => baza/jk_youpiter [73] => baza/jk_golfstrim [74] => baza/jk_enfild [75] => baza/zhiloy_kvartal_solnechnyy [76] => baza/jk_ariosto_ariosto [77] => baza/jk_magnifika ) [exludePhotoTags] => Array ( [0] => 17 [1] => 19 ) [watermark] => Array ( [file] => /images/watermarks/spb/logo_spb_35.png [opacity] => 0.5 ) [novosH2] => Array ( ) [novosUrbanAwards] => Array ( [winner] => Array ( ) [final] => Array ( ) ) [grandPrixAwards] => Array ( ) [redirectLocation] => Array ( ) [yandexCollectionOauthToken] => AgAAAAA9BsSLAAYivWGbDIu7y08shk6BozsFhEI [infocenter] => 832 [gkkDomen] => gdekupitkvartiru-spb.ru [facebookVerifyDomain] => 3v8vbaafakmj11tr7t6qn2o37pjfgi [adfoxId] => bdtw [adfoxBanners] => Array ( [C] => Array ( [count] => 150 [p2] => hcwa [template] => C ) [C_fixed] => Array ( [count] => 150 [p2] => hdqw [template] => C ) [C_loc_lo] => Array ( [count] => 150 [p2] => hcwa [template] => C ) [C_loc_spb] => Array ( [count] => 150 [p2] => hcwa [template] => C ) [C_business] => Array ( [count] => 100 [p2] => hdqv [template] => C ) [bb] => Array ( [count] => 1 [p2] => hdoh [template] => standart_top ) [bb_skvoznoi] => Array ( [count] => 1 [p2] => hbkr [template] => standart_top ) [bobber] => Array ( [count] => 1 [p2] => fkkp [template] => bobber ) [paralax] => Array ( [count] => 1 [p2] => hdoj [template] => standart_middle ) [paralax_large] => Array ( [count] => 0 [p2] => hdol [template] => standart_middle ) [peretyajka_desc] => Array ( [count] => 1 [p2] => ibpf [template] => peretyajka_desc ) [peretyajka_tablet] => Array ( [count] => 1 [p2] => ibpt [template] => peretyajka_tablet ) [peretyajka_mobile] => Array ( [count] => 1 [p2] => ibpu [template] => peretyajka_mobile ) [search] => Array ( [count] => 1 [p2] => hbkb [template] => standart_top ) [textline_2] => Array ( [count] => 1 [p2] => fmsm [template] => standart_middle ) [textline_2_1] => Array ( [count] => 1 [p2] => fmxv [template] => standart_middle ) [textline_2_2] => Array ( [count] => 1 [p2] => fmxw [template] => standart_middle ) [textline_2_3] => Array ( [count] => 1 [p2] => fmxz [template] => standart_middle ) [tizer_tme] => Array ( [count] => 1 [p2] => hbhs [template] => standart_middle ) [bank] => Array ( [count] => 1 [p2] => hdox [template] => standart_middle ) [secondary_housing] => Array ( [count] => 1 [p2] => hdoz [template] => standart_middle ) [secondary_2] => Array ( [count] => 1 [p2] => hdpd [template] => standart_middle ) [mortgage] => Array ( [count] => 1 [p2] => hdpb [template] => standart_middle ) [turbo] => Array ( [count] => 0 [p2] => hhxy [template] => standart_top ) [bookmark] => Array ( [count] => 1 [p2] => hunx [template] => bookmark ) ) [quizPhone] => 8-800-333-15-33 [listId] => 286 [queueMKParams] => Array ( [host] => 185.185.58.151 [port] => 5672 [user] => quizes [password] => F7IsZF8MALeBkYbD ) [videoPlatform] => youtube [telegramBotSubscription] => Array ( [botName] => NSPmail_Bot [token] => 8050705959:AAGmjytZE1xRZGPUb60lsr2uRJLomjk93h0 ) [uznaiMosRu] => [vkId] => Array ( [app] => 54169375 [redirectUrl] => https://www.novostroy-spb.ru/ ) [aiAssistantToken] => tvSXdHEJ9quMl8PIXQZaVTv6hlsNgSEER8pBx98kY20DF6r5aXIYOa7uXq1dAuM0 [aiIssuesToken] => dJwEjIwrJMMPIKNus9Tdo0rPIfhkv5Y6kTR7ybekvj9VbtG3VOiQMfz8SCOOtkMO [jivo] => Array ( [token] => [providerId] => [callbackSecret] => [ai] => Array ( [service] => openrouter [openrouterApiKey] => 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 [mcpServers] => Array ( [0] => novostroym ) [overmindToken] => ) ) [webivan@seomodule] => Array ( [filterTemplater] => Array ( [default] => default [twig] => twig ) ) [devicedetect] => Array ( [isMobile] => [isTablet] => [isDesktop] => 1 ) ) [id] => basic [module] => [controllerMap] => Array ( ) [_basePath:yii\base\Module:private] => /home/sites/novostroy/backend/common [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( [api] => Array ( [class] => api\Module ) [comments] => Array ( [class] => comments\Module ) [issues] => issues\Module Object ( [params] => Array ( ) [id] => issues [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => issues\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [votes] => votes\Module Object ( [params] => Array ( ) [id] => votes [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => votes\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [mortgage] => Array ( [class] => mortgage\Module ) [saveParam] => Array ( [class] => saveParam\Module ) [rates] => Array ( [class] => rates\Module ) [webpush] => webpush\Module Object ( [params] => Array ( ) [id] => webpush [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => webpush\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [panoram] => Array ( [class] => panoram\Module ) [seomodule] => webivan\seomodule\SeoModule Object ( [accessDoctype] => Closure Object ( ) [accessRulesAction] => [pathConnects] => @app/modules/seoConnects [actionIndex] => webivan\seomodule\actions\ActionIndex [actionCreate] => webivan\seomodule\actions\ActionCreate [actionUpdate] => webivan\seomodule\actions\ActionUpdate [actionDelete] => webivan\seomodule\actions\ActionDelete [modelConfig] => webivan\seomodule\models\ConfigMetaData [modelSeotext] => webivan\seomodule\models\Seotexts [filterTemplater] => Array ( [default] => default [twig] => twig ) [classMapTemplater] => Array ( [default] => webivan\seomodule\templaters\def\DefaultTemplater [twig] => webivan\seomodule\templaters\twig\TwigTemplater ) [params] => Array ( ) [id] => seomodule [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => webivan\seomodule\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [mydebug] => debug\ModuleDebug Object ( [accessHandler] => Closure Object ( ) [params] => Array ( ) [id] => mydebug [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => debug\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [showLogs] => showLogs\ModuleShowLogs Object ( [accessHandler] => Closure Object ( ) [layout] => @showLogs/views/layouts/main.php [pathLogs] => @runtime/logs [params] => Array ( ) [id] => showLogs [module] => common\components\Yii\Application Object *RECURSION* [controllerMap] => Array ( ) [controllerNamespace] => showLogs\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [companyPunctuality] => Array ( [class] => companyPunctuality\Module ) [landing] => landing\ModuleLanding Object *RECURSION* [floor-plan] => floorPlan\FloorPlanModule Object ( [params] => Array ( ) [id] => floor-plan [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => floorPlan\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [quiz] => quiz\QuizModule Object ( [params] => Array ( ) [id] => quiz [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => quiz\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [profile] => profile\ProfileModule Object ( [params] => Array ( ) [id] => profile [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => profile\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [viewApart] => Array ( [class] => viewApart\ViewApartModule ) [rcLanding] => rcLanding\RcLandingModule Object ( [params] => Array ( ) [id] => rcLanding [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => rcLanding\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [adfox] => Array ( [class] => adfox\Module ) [findLanding] => findLanding\FindLandingModule Object ( [params] => Array ( ) [id] => findLanding [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => findLanding\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [customLanding] => customLanding\CustomLandingModule Object ( [params] => Array ( ) [id] => customLanding [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => customLanding\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [ai-assistant] => Array ( [class] => \aiAssistant\Module ) [chatAssistant] => chatAssistant\Module Object ( [params] => Array ( ) [id] => chatAssistant [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => chatAssistant\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [landings] => landings\Module Object ( [params] => Array ( ) [id] => landings [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => landings\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [sitemapModule] => sitemap\SitemapModule Object ( [defaultSitemapUrl] => sitemap.xml [generateUrlParams] => Array ( [models] => Array ( [0] => Closure Object ( ) [1] => Closure Object ( ) [2] => Closure Object ( ) [3] => Closure Object ( ) [4] => Closure Object ( ) [5] => Closure Object ( ) [6] => Array ( [model] => common\models\LabelListings [select] => Array ( [0] => id [1] => url ) [orderBy] => Array ( [id] => 4 ) [where] => Array ( [0] => and [1] => state = 2 ) [urls] => Array ( [0] => Array ( [loc] => /{url} ) ) ) [7] => Array ( [model] => common\models\CompanyPerson [select] => Array ( [0] => id [1] => alias ) [orderBy] => Array ( [id] => 4 ) [where] => Array ( [0] => and [1] => state = 2 [2] => expert = 1 ) [urls] => Array ( [0] => Array ( [loc] => /person/{alias} ) ) ) [8] => Closure Object ( ) [9] => Closure Object ( ) [10] => Closure Object ( ) [11] => Closure Object ( ) ) ) [sitemapParams] => Array ( [domain] => https://www.novostroy-spb.ru [pathSitemapFiles] => @webroot/sitemaps/spb [tempDir] => @webroot/sitemaps/spb/temp ) [checkHttpStatus] => Array ( [domain] => https://admin2.novostroy-spb.ru ) [params] => Array ( ) [id] => sitemapModule [module] => common\components\Yii\Application Object *RECURSION* [layout] => [controllerMap] => Array ( ) [controllerNamespace] => sitemap\controllers [defaultRoute] => default [_basePath:yii\base\Module:private] => [_controllerPath:yii\base\Module:private] => [_viewPath:yii\base\Module:private] => [_layoutPath:yii\base\Module:private] => [_modules:yii\base\Module:private] => Array ( ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( ) [_definitions:yii\di\ServiceLocator:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) ) [_version:yii\base\Module:private] => [_components:yii\di\ServiceLocator:private] => Array ( [errorHandler] => yii\web\ErrorHandler Object ( [maxSourceLines] => 19 [maxTraceSourceLines] => 13 [errorAction] => main/error [errorView] => @yii/views/errorHandler/error.php [exceptionView] => @yii/views/errorHandler/exception.php [callStackItemView] => @yii/views/errorHandler/callStackItem.php [previousExceptionView] => @yii/views/errorHandler/previousException.php [displayVars] => Array ( [0] => _GET [1] => _POST [2] => _FILES [3] => _COOKIE [4] => _SESSION ) [traceLine] => {html} [discardExistingOutput] => 1 [memoryReserveSize] => 262144 [exception] => [silentExitOnException] => [_memoryReserve:yii\base\ErrorHandler:private] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [_hhvmException:yii\base\ErrorHandler:private] => [_registered:yii\base\ErrorHandler:private] => 1 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [request] => common\components\Request Object ( [enableCsrfValidation] => 1 [csrfParam] => _csrf [csrfCookie] => Array ( [httpOnly] => 1 ) [enableCsrfCookie] => 1 [enableCookieValidation] => 1 [cookieValidationKey] => W6JPTjdy4TDAVfTOf3FeumVYwXv-wA0a [methodParam] => _method [parsers] => Array ( [application/json] => yii\web\JsonParser ) [trustedHosts] => Array ( ) [secureHeaders] => Array ( [0] => X-Forwarded-For [1] => X-Forwarded-Host [2] => X-Forwarded-Proto [3] => Front-End-Https [4] => X-Rewrite-Url [5] => X-Original-Host ) [ipHeaders] => Array ( [0] => X-Forwarded-For ) [secureProtocolHeaders] => Array ( [X-Forwarded-Proto] => Array ( [0] => https ) [Front-End-Https] => Array ( [0] => on ) ) [_cookies:yii\web\Request:private] => yii\web\CookieCollection Object ( [readOnly] => 1 [_cookies:yii\web\CookieCollection:private] => Array ( ) ) [_headers:yii\web\Request:private] => yii\web\HeaderCollection Object ( [_headers:yii\web\HeaderCollection:private] => Array ( [host] => Array ( [0] => www.novostroy-spb.ru ) [x-real-ip] => Array ( [0] => 216.73.217.63 ) [x-real-uri] => Array ( [0] => /baza/mkr_yanino_park/domrf_promo ) [connection] => Array ( [0] => close ) [accept] => Array ( [0] => */* ) [user-agent] => Array ( [0] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) ) [accept-encoding] => Array ( [0] => gzip, br, zstd, deflate ) ) [_originalHeaderNames:yii\web\HeaderCollection:private] => Array ( [host] => Host [x-real-ip] => X-Real-IP [x-real-uri] => X-Real-URI [connection] => Connection [accept] => accept [user-agent] => user-agent [accept-encoding] => accept-encoding ) ) [_rawBody:yii\web\Request:private] => [_bodyParams:yii\web\Request:private] => [_queryParams:yii\web\Request:private] => [_hostInfo:yii\web\Request:private] => [_hostName:yii\web\Request:private] => [_baseUrl:yii\web\Request:private] => [_scriptUrl:yii\web\Request:private] => /index.php [_scriptFile:yii\web\Request:private] => [_pathInfo:yii\web\Request:private] => baza/mkr_yanino_park/domrf_promo [_url:yii\web\Request:private] => /baza/mkr_yanino_park/domrf_promo [_port:yii\web\Request:private] => [_securePort:yii\web\Request:private] => [_contentTypes:yii\web\Request:private] => [_languages:yii\web\Request:private] => [_csrfToken:yii\web\Request:private] => [_secureForwardedHeaderParts:yii\web\Request:private] => [_isConsoleRequest:yii\base\Request:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => [_scriptFile:yii\base\Request:private] => ) [log] => yii\log\Dispatcher Object ( [targets] => Array ( [0] => yii\log\FileTarget Object ( [logFile] => /home/sites/novostroy/backend/spb/runtime/logs/app.log [enableRotation] => 1 [maxFileSize] => 50240 [maxLogFiles] => 10 [fileMode] => [dirMode] => 509 [rotateByCopy] => 1 [categories] => Array ( ) [except] => Array ( [0] => yii\web\HttpException:404 ) [logVars] => Array ( ) [maskVars] => Array ( [0] => _SERVER.HTTP_AUTHORIZATION [1] => _SERVER.PHP_AUTH_USER [2] => _SERVER.PHP_AUTH_PW ) [prefix] => [exportInterval] => 1000 [messages] => Array ( ) [microtime] => [_levels:yii\log\Target:private] => 65 [_enabled:yii\log\Target:private] => 1 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [1] => yii\log\FileTarget Object ( [logFile] => /home/sites/novostroy/backend/spb/runtime/logs/jivo_log.log [enableRotation] => 1 [maxFileSize] => 10240 [maxLogFiles] => 5 [fileMode] => [dirMode] => 509 [rotateByCopy] => 1 [categories] => Array ( [0] => jivo ) [except] => Array ( ) [logVars] => Array ( ) [maskVars] => Array ( [0] => _SERVER.HTTP_AUTHORIZATION [1] => _SERVER.PHP_AUTH_USER [2] => _SERVER.PHP_AUTH_PW ) [prefix] => [exportInterval] => 1000 [messages] => Array ( ) [microtime] => [_levels:yii\log\Target:private] => 7 [_enabled:yii\log\Target:private] => 1 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) ) [_logger:yii\log\Dispatcher:private] => yii\log\Logger Object ( [messages] => Array ( [0] => Array ( [0] => [QueryCacheBootstrap]:set-redis-cache [1] => 80 [2] => application [3] => 1777913549.253 [4] => Array ( ) [5] => 1230352 ) [1] => Array ( [0] => [QueryCacheBootstrap]:set-redis-cache [1] => 96 [2] => application [3] => 1777913549.253 [4] => Array ( ) [5] => 1231104 ) [2] => Array ( [0] => SELECT `url`, `source`, `type`, `routing_mask` FROM `ads_search` WHERE `state`=2 [1] => 4 [2] => yii\db\Command::query [3] => 1777913549.2537 [4] => Array ( ) [5] => 1710648 ) [3] => Array ( [0] => [TraitCacheMemory]:get [1] => 80 [2] => application [3] => 1777913549.2538 [4] => Array ( ) [5] => 1717384 ) [4] => Array ( [0] => TraitCacheMemory:exists:get-time [1] => 80 [2] => application [3] => 1777913549.2541 [4] => Array ( ) [5] => 1727376 ) [5] => Array ( [0] => TraitCacheMemory:exists:get-time [1] => 96 [2] => application [3] => 1777913549.2542 [4] => Array ( ) [5] => 1728128 ) [6] => Array ( [0] => [TraitCacheMemory]:get [1] => 96 [2] => application [3] => 1777913549.2544 [4] => Array ( ) [5] => 1824304 ) [7] => Array ( [0] => Opening DB connection: mysql:host=dbread.spb;dbname=novostroyspb [1] => 4 [2] => yii\db\Connection::open [3] => 1777913549.2615 [4] => Array ( ) [5] => 3946568 ) [8] => Array ( [0] => Opening DB connection: mysql:host=dbread.spb;dbname=novostroyspb [1] => 80 [2] => yii\db\Connection::open [3] => 1777913549.2615 [4] => Array ( ) [5] => 3946944 ) [9] => Array ( [0] => Opening DB connection: mysql:host=dbread.spb;dbname=novostroyspb [1] => 96 [2] => yii\db\Connection::open [3] => 1777913549.2618 [4] => Array ( ) [5] => 3991408 ) [10] => Array ( [0] => SELECT * FROM `landings` WHERE (`url`='/baza/mkr_yanino_park/domrf_promo') AND (`status` IN ('active', 'moderate')) LIMIT 1 [1] => 4 [2] => yii\db\Command::query [3] => 1777913549.2619 [4] => Array ( ) [5] => 3989712 ) [11] => Array ( [0] => SELECT * FROM `landings` WHERE (`url`='/baza/mkr_yanino_park/domrf_promo') AND (`status` IN ('active', 'moderate')) LIMIT 1 [1] => 80 [2] => yii\db\Command::query [3] => 1777913549.2619 [4] => Array ( ) [5] => 3990336 ) [12] => Array ( [0] => SELECT * FROM `landings` WHERE (`url`='/baza/mkr_yanino_park/domrf_promo') AND (`status` IN ('active', 'moderate')) LIMIT 1 [1] => 96 [2] => yii\db\Command::query [3] => 1777913549.2621 [4] => Array ( ) [5] => 3995376 ) [13] => Array ( [0] => SELECT * FROM `counters_group` WHERE `source` IN ('countAds', 'countNovos', 'countSeller', 'countPanoram', 'countAerotour', 'countDiary', 'countParking', 'countNovosReview', 'countShowrooms', 'countApart') [1] => 4 [2] => yii\db\Command::query [3] => 1777913549.2627 [4] => Array ( ) [5] => 4141760 ) [14] => Array ( [0] => [TraitCacheMemory]:get [1] => 80 [2] => application [3] => 1777913549.2627 [4] => Array ( ) [5] => 4143144 ) [15] => Array ( [0] => TraitCacheMemory:exists:get-time [1] => 80 [2] => application [3] => 1777913549.2628 [4] => Array ( ) [5] => 4143600 ) [16] => Array ( [0] => TraitCacheMemory:exists:get-time [1] => 96 [2] => application [3] => 1777913549.2629 [4] => Array ( ) [5] => 4144352 ) [17] => Array ( [0] => [TraitCacheMemory]:get [1] => 96 [2] => application [3] => 1777913549.263 [4] => Array ( ) [5] => 4151256 ) [18] => Array ( [0] => SELECT * FROM `landing_tools` WHERE `landing_id`=166 LIMIT 1 [1] => 4 [2] => yii\db\Command::query [3] => 1777913549.2669 [4] => Array ( ) [5] => 4287480 ) [19] => Array ( [0] => SELECT * FROM `landing_tools` WHERE `landing_id`=166 LIMIT 1 [1] => 80 [2] => yii\db\Command::query [3] => 1777913549.2669 [4] => Array ( ) [5] => 4288584 ) [20] => Array ( [0] => SELECT * FROM `landing_tools` WHERE `landing_id`=166 LIMIT 1 [1] => 96 [2] => yii\db\Command::query [3] => 1777913549.2678 [4] => Array ( ) [5] => 4296144 ) ) [flushInterval] => 1000 [traceLevel] => 0 [dispatcher] => yii\log\Dispatcher Object *RECURSION* [dbEventNames] => Array ( [0] => yii\db\Command::query [1] => yii\db\Command::execute ) [profilingAware] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [user] => common\components\User Object ( [loginUrl] => [identityClass] => common\models\User [enableAutoLogin] => 1 [enableSession] => 1 [identityCookie] => Array ( [name] => _identity [httpOnly] => 1 ) [authTimeout] => [accessChecker] => [absoluteAuthTimeout] => [autoRenewCookie] => 1 [idParam] => __id [authKeyParam] => __authKey [authTimeoutParam] => __expire [absoluteAuthTimeoutParam] => __absoluteExpire [returnUrlParam] => __returnUrl [acceptableRedirectTypes] => Array ( [0] => text/html [1] => application/xhtml+xml ) [_access:yii\web\User:private] => Array ( ) [_identity:yii\web\User:private] => [_events:yii\base\Component:private] => Array ( [afterLogin] => Array ( [0] => Array ( [0] => Array ( [0] => common\events\AfterLoginEvent [1] => handle ) [1] => ) ) ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [redisSession] => common\components\RedisConnection Object ( [connectionTimeout] => 3 [hostname] => session.spb [redirectConnectionString] => [port] => 6379 [unixSocket] => [username] => [password] => [database] => 4 [dataTimeout] => [useSSL] => [contextOptions] => Array ( ) [socketClientFlags] => 4 [retries] => 0 [retryInterval] => 0 [redisCommands] => Array ( [0] => APPEND [1] => AUTH [2] => BGREWRITEAOF [3] => BGSAVE [4] => BITCOUNT [5] => BITFIELD [6] => BITOP [7] => BITPOS [8] => BLPOP [9] => BRPOP [10] => BRPOPLPUSH [11] => CLIENT KILL [12] => CLIENT LIST [13] => CLIENT GETNAME [14] => CLIENT PAUSE [15] => CLIENT REPLY [16] => CLIENT SETNAME [17] => CLUSTER ADDSLOTS [18] => CLUSTER COUNTKEYSINSLOT [19] => CLUSTER DELSLOTS [20] => CLUSTER FAILOVER [21] => CLUSTER FORGET [22] => CLUSTER GETKEYSINSLOT [23] => CLUSTER INFO [24] => CLUSTER KEYSLOT [25] => CLUSTER MEET [26] => CLUSTER NODES [27] => CLUSTER REPLICATE [28] => CLUSTER RESET [29] => CLUSTER SAVECONFIG [30] => CLUSTER SETSLOT [31] => CLUSTER SLAVES [32] => CLUSTER SLOTS [33] => COMMAND [34] => COMMAND COUNT [35] => COMMAND GETKEYS [36] => COMMAND INFO [37] => CONFIG GET [38] => CONFIG REWRITE [39] => CONFIG SET [40] => CONFIG RESETSTAT [41] => DBSIZE [42] => DEBUG OBJECT [43] => DEBUG SEGFAULT [44] => DECR [45] => DECRBY [46] => DEL [47] => DISCARD [48] => DUMP [49] => ECHO [50] => EVAL [51] => EVALSHA [52] => EXEC [53] => EXISTS [54] => EXPIRE [55] => EXPIREAT [56] => FLUSHALL [57] => FLUSHDB [58] => GEOADD [59] => GEOHASH [60] => GEOPOS [61] => GEODIST [62] => GEORADIUS [63] => GEORADIUSBYMEMBER [64] => GET [65] => GETBIT [66] => GETRANGE [67] => GETSET [68] => HDEL [69] => HEXISTS [70] => HGET [71] => HGETALL [72] => HINCRBY [73] => HINCRBYFLOAT [74] => HKEYS [75] => HLEN [76] => HMGET [77] => HMSET [78] => HSET [79] => HSETNX [80] => HSTRLEN [81] => HVALS [82] => INCR [83] => INCRBY [84] => INCRBYFLOAT [85] => INFO [86] => KEYS [87] => LASTSAVE [88] => LINDEX [89] => LINSERT [90] => LLEN [91] => LPOP [92] => LPUSH [93] => LPUSHX [94] => LRANGE [95] => LREM [96] => LSET [97] => LTRIM [98] => MGET [99] => MIGRATE [100] => MONITOR [101] => MOVE [102] => MSET [103] => MSETNX [104] => MULTI [105] => OBJECT [106] => PERSIST [107] => PEXPIRE [108] => PEXPIREAT [109] => PFADD [110] => PFCOUNT [111] => PFMERGE [112] => PING [113] => PSETEX [114] => PSUBSCRIBE [115] => PUBSUB [116] => PTTL [117] => PUBLISH [118] => PUNSUBSCRIBE [119] => QUIT [120] => RANDOMKEY [121] => READONLY [122] => READWRITE [123] => RENAME [124] => RENAMENX [125] => RESTORE [126] => ROLE [127] => RPOP [128] => RPOPLPUSH [129] => RPUSH [130] => RPUSHX [131] => SADD [132] => SAVE [133] => SCARD [134] => SCRIPT DEBUG [135] => SCRIPT EXISTS [136] => SCRIPT FLUSH [137] => SCRIPT KILL [138] => SCRIPT LOAD [139] => SDIFF [140] => SDIFFSTORE [141] => SELECT [142] => SET [143] => SETBIT [144] => SETEX [145] => SETNX [146] => SETRANGE [147] => SHUTDOWN [148] => SINTER [149] => SINTERSTORE [150] => SISMEMBER [151] => SLAVEOF [152] => SLOWLOG [153] => SMEMBERS [154] => SMOVE [155] => SORT [156] => SPOP [157] => SRANDMEMBER [158] => SREM [159] => STRLEN [160] => SUBSCRIBE [161] => SUNION [162] => SUNIONSTORE [163] => SWAPDB [164] => SYNC [165] => TIME [166] => TOUCH [167] => TTL [168] => TYPE [169] => UNSUBSCRIBE [170] => UNLINK [171] => UNWATCH [172] => WAIT [173] => WATCH [174] => XACK [175] => XADD [176] => XCLAIM [177] => XDEL [178] => XGROUP [179] => XINFO [180] => XLEN [181] => XPENDING [182] => XRANGE [183] => XREAD [184] => XREADGROUP [185] => XREVRANGE [186] => XTRIM [187] => ZADD [188] => ZCARD [189] => ZCOUNT [190] => ZINCRBY [191] => ZINTERSTORE [192] => ZLEXCOUNT [193] => ZRANGE [194] => ZRANGEBYLEX [195] => ZREVRANGEBYLEX [196] => ZRANGEBYSCORE [197] => ZRANK [198] => ZREM [199] => ZREMRANGEBYLEX [200] => ZREMRANGEBYRANK [201] => ZREMRANGEBYSCORE [202] => ZREVRANGE [203] => ZREVRANGEBYSCORE [204] => ZREVRANK [205] => ZSCORE [206] => ZUNIONSTORE [207] => SCAN [208] => SSCAN [209] => HSCAN [210] => ZSCAN ) [_pool:yii\redis\Connection:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [session] => yii\redis\Session Object ( [redis] => common\components\RedisConnection Object ( [connectionTimeout] => 3 [hostname] => session.spb [redirectConnectionString] => [port] => 6379 [unixSocket] => [username] => [password] => [database] => 4 [dataTimeout] => [useSSL] => [contextOptions] => Array ( ) [socketClientFlags] => 4 [retries] => 0 [retryInterval] => 0 [redisCommands] => Array ( [0] => APPEND [1] => AUTH [2] => BGREWRITEAOF [3] => BGSAVE [4] => BITCOUNT [5] => BITFIELD [6] => BITOP [7] => BITPOS [8] => BLPOP [9] => BRPOP [10] => BRPOPLPUSH [11] => CLIENT KILL [12] => CLIENT LIST [13] => CLIENT GETNAME [14] => CLIENT PAUSE [15] => CLIENT REPLY [16] => CLIENT SETNAME [17] => CLUSTER ADDSLOTS [18] => CLUSTER COUNTKEYSINSLOT [19] => CLUSTER DELSLOTS [20] => CLUSTER FAILOVER [21] => CLUSTER FORGET [22] => CLUSTER GETKEYSINSLOT [23] => CLUSTER INFO [24] => CLUSTER KEYSLOT [25] => CLUSTER MEET [26] => CLUSTER NODES [27] => CLUSTER REPLICATE [28] => CLUSTER RESET [29] => CLUSTER SAVECONFIG [30] => CLUSTER SETSLOT [31] => CLUSTER SLAVES [32] => CLUSTER SLOTS [33] => COMMAND [34] => COMMAND COUNT [35] => COMMAND GETKEYS [36] => COMMAND INFO [37] => CONFIG GET [38] => CONFIG REWRITE [39] => CONFIG SET [40] => CONFIG RESETSTAT [41] => DBSIZE [42] => DEBUG OBJECT [43] => DEBUG SEGFAULT [44] => DECR [45] => DECRBY [46] => DEL [47] => DISCARD [48] => DUMP [49] => ECHO [50] => EVAL [51] => EVALSHA [52] => EXEC [53] => EXISTS [54] => EXPIRE [55] => EXPIREAT [56] => FLUSHALL [57] => FLUSHDB [58] => GEOADD [59] => GEOHASH [60] => GEOPOS [61] => GEODIST [62] => GEORADIUS [63] => GEORADIUSBYMEMBER [64] => GET [65] => GETBIT [66] => GETRANGE [67] => GETSET [68] => HDEL [69] => HEXISTS [70] => HGET [71] => HGETALL [72] => HINCRBY [73] => HINCRBYFLOAT [74] => HKEYS [75] => HLEN [76] => HMGET [77] => HMSET [78] => HSET [79] => HSETNX [80] => HSTRLEN [81] => HVALS [82] => INCR [83] => INCRBY [84] => INCRBYFLOAT [85] => INFO [86] => KEYS [87] => LASTSAVE [88] => LINDEX [89] => LINSERT [90] => LLEN [91] => LPOP [92] => LPUSH [93] => LPUSHX [94] => LRANGE [95] => LREM [96] => LSET [97] => LTRIM [98] => MGET [99] => MIGRATE [100] => MONITOR [101] => MOVE [102] => MSET [103] => MSETNX [104] => MULTI [105] => OBJECT [106] => PERSIST [107] => PEXPIRE [108] => PEXPIREAT [109] => PFADD [110] => PFCOUNT [111] => PFMERGE [112] => PING [113] => PSETEX [114] => PSUBSCRIBE [115] => PUBSUB [116] => PTTL [117] => PUBLISH [118] => PUNSUBSCRIBE [119] => QUIT [120] => RANDOMKEY [121] => READONLY [122] => READWRITE [123] => RENAME [124] => RENAMENX [125] => RESTORE [126] => ROLE [127] => RPOP [128] => RPOPLPUSH [129] => RPUSH [130] => RPUSHX [131] => SADD [132] => SAVE [133] => SCARD [134] => SCRIPT DEBUG [135] => SCRIPT EXISTS [136] => SCRIPT FLUSH [137] => SCRIPT KILL [138] => SCRIPT LOAD [139] => SDIFF [140] => SDIFFSTORE [141] => SELECT [142] => SET [143] => SETBIT [144] => SETEX [145] => SETNX [146] => SETRANGE [147] => SHUTDOWN [148] => SINTER [149] => SINTERSTORE [150] => SISMEMBER [151] => SLAVEOF [152] => SLOWLOG [153] => SMEMBERS [154] => SMOVE [155] => SORT [156] => SPOP [157] => SRANDMEMBER [158] => SREM [159] => STRLEN [160] => SUBSCRIBE [161] => SUNION [162] => SUNIONSTORE [163] => SWAPDB [164] => SYNC [165] => TIME [166] => TOUCH [167] => TTL [168] => TYPE [169] => UNSUBSCRIBE [170] => UNLINK [171] => UNWATCH [172] => WAIT [173] => WATCH [174] => XACK [175] => XADD [176] => XCLAIM [177] => XDEL [178] => XGROUP [179] => XINFO [180] => XLEN [181] => XPENDING [182] => XRANGE [183] => XREAD [184] => XREADGROUP [185] => XREVRANGE [186] => XTRIM [187] => ZADD [188] => ZCARD [189] => ZCOUNT [190] => ZINCRBY [191] => ZINTERSTORE [192] => ZLEXCOUNT [193] => ZRANGE [194] => ZRANGEBYLEX [195] => ZREVRANGEBYLEX [196] => ZRANGEBYSCORE [197] => ZRANK [198] => ZREM [199] => ZREMRANGEBYLEX [200] => ZREMRANGEBYRANK [201] => ZREMRANGEBYSCORE [202] => ZREVRANGE [203] => ZREVRANGEBYSCORE [204] => ZREVRANK [205] => ZSCORE [206] => ZUNIONSTORE [207] => SCAN [208] => SSCAN [209] => HSCAN [210] => ZSCAN ) [_pool:yii\redis\Connection:private] => Array ( ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [keyPrefix] => web_spb_session_ [flashParam] => __flash [handler] => [_forceRegenerateId:protected] => [_cookieParams:yii\web\Session:private] => Array ( [httponly] => 1 ) [frozenSessionData:yii\web\Session:private] => [_hasSessionId:yii\web\Session:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [db] => yii\db\Connection Object ( [dsn] => mysql:host=dbwrite.spb;dbname=novostroyspb [username] => novostroyspb [password] => Je7cSp93Fn2Fe [attributes] => [pdo] => [enableSchemaCache] => 1 [schemaCacheDuration] => 10800 [schemaCacheExclude] => Array ( ) [schemaCache] => cache [enableQueryCache] => 1 [queryCacheDuration] => 1800 [queryCache] => queryCache [charset] => utf8mb4 [emulatePrepare] => [tablePrefix] => [schemaMap] => Array ( [pgsql] => yii\db\pgsql\Schema [mysqli] => yii\db\mysql\Schema [mysql] => yii\db\mysql\Schema [sqlite] => yii\db\sqlite\Schema [sqlite2] => yii\db\sqlite\Schema [sqlsrv] => yii\db\mssql\Schema [oci] => yii\db\oci\Schema [mssql] => yii\db\mssql\Schema [dblib] => yii\db\mssql\Schema [cubrid] => yii\db\cubrid\Schema ) [pdoClass] => [commandClass] => common\components\AR\Command [commandMap] => Array ( [pgsql] => yii\db\Command [mysqli] => yii\db\Command [mysql] => yii\db\Command [sqlite] => yii\db\sqlite\Command [sqlite2] => yii\db\sqlite\Command [sqlsrv] => yii\db\Command [oci] => yii\db\oci\Command [mssql] => yii\db\Command [dblib] => yii\db\Command [cubrid] => yii\db\Command ) [enableSavepoint] => 1 [serverStatusCache] => cache [serverRetryInterval] => 600 [enableSlaves] => 1 [slaves] => Array ( [0] => Array ( [dsn] => mysql:host=dbread.spb;dbname=novostroyspb [username] => novostroyspb [password] => Je7cSp93Fn2Fe ) ) [slaveConfig] => Array ( [charset] => utf8mb4 [enableQueryCache] => 1 [queryCacheDuration] => 1800 [enableSchemaCache] => 1 [schemaCacheDuration] => 10800 ) [masters] => Array ( ) [masterConfig] => Array ( ) [shuffleMasters] => 1 [enableLogging] => 1 [enableProfiling] => 1 [isSybase] => [_queryBuilderConfigurations:yii\db\Connection:private] => Array ( ) [_transaction:yii\db\Connection:private] => [_schema:yii\db\Connection:private] => yii\db\mysql\Schema Object ( [columnSchemaClass] => yii\db\mysql\ColumnSchema [_oldMysql:yii\db\mysql\Schema:private] => [typeMap] => Array ( [tinyint] => tinyint [bit] => integer [smallint] => smallint [mediumint] => integer [int] => integer [integer] => integer [bigint] => bigint [float] => float [double] => double [real] => float [decimal] => decimal [numeric] => decimal [tinytext] => text [mediumtext] => text [longtext] => text [longblob] => binary [blob] => binary [text] => text [varchar] => string [string] => string [char] => char [datetime] => datetime [year] => date [date] => date [time] => time [timestamp] => timestamp [enum] => string [varbinary] => binary [json] => json ) [tableQuoteCharacter:protected] => ` [columnQuoteCharacter:protected] => ` [db] => yii\db\Connection Object *RECURSION* [defaultSchema] => [exceptionMap] => Array ( [SQLSTATE[23] => yii\db\IntegrityException ) [_schemaNames:yii\db\Schema:private] => [_tableNames:yii\db\Schema:private] => Array ( ) [_tableMetadata:yii\db\Schema:private] => Array ( [ads_search] => Array ( [schema] => yii\db\TableSchema Object ( [schemaName] => [name] => ads_search [fullName] => ads_search [primaryKey] => Array ( [0] => id ) [sequenceName] => [foreignKeys] => Array ( ) [columns] => Array ( [id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => id [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => 1 [autoIncrement] => 1 [unsigned] => [comment] => ) [url] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => url [allowNull] => [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [filter_url] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => filter_url [allowNull] => [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [state] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => state [allowNull] => [type] => integer [phpType] => integer [dbType] => int(1) [defaultValue] => 2 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [type] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => type [allowNull] => [type] => string [phpType] => string [dbType] => varchar(128) [defaultValue] => static [enumValues] => [size] => 128 [precision] => 128 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [types_dynamic] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => types_dynamic [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => Типы динамического листинга ) [exceptions_listing] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => exceptions_listing [allowNull] => 1 [type] => text [phpType] => string [dbType] => mediumtext [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => Листинги исключенные из динамических ) [routing_mask] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => routing_mask [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => Маска динамического листинга в роутинге ) [bread_crumbs] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => bread_crumbs [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => Хлебные крошки ) [h1] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => h1 [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [title] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => title [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [description] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => description [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [source] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => source [allowNull] => [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => ads [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [seotext] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => seotext [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [adfox_c_type] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => adfox_c_type [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(128) [defaultValue] => [enumValues] => [size] => 128 [precision] => 128 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [source_seotexts] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => source_seotexts [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(150) [defaultValue] => [enumValues] => [size] => 150 [precision] => 150 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => теги из табл. seotexts ) [value] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => value [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(150) [defaultValue] => [enumValues] => [size] => 150 [precision] => 150 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [counters] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => counters [allowNull] => 1 [type] => text [phpType] => string [dbType] => mediumtext [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [updated_counters_date] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => updated_counters_date [allowNull] => 1 [type] => timestamp [phpType] => string [dbType] => timestamp [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [updated_date] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => updated_date [allowNull] => 1 [type] => timestamp [phpType] => string [dbType] => timestamp [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) ) ) ) [landings] => Array ( [schema] => yii\db\TableSchema Object ( [schemaName] => [name] => landings [fullName] => landings [primaryKey] => Array ( [0] => id ) [sequenceName] => [foreignKeys] => Array ( ) [columns] => Array ( [id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => id [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => 1 [autoIncrement] => 1 [unsigned] => [comment] => ) [source_id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => source_id [allowNull] => 1 [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [source] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => source [allowNull] => [type] => string [phpType] => string [dbType] => varchar(25) [defaultValue] => [enumValues] => [size] => 25 [precision] => 25 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [name] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => name [allowNull] => [type] => string [phpType] => string [dbType] => varchar(100) [defaultValue] => [enumValues] => [size] => 100 [precision] => 100 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [url] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => url [allowNull] => [type] => string [phpType] => string [dbType] => varchar(100) [defaultValue] => [enumValues] => [size] => 100 [precision] => 100 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [route] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => route [allowNull] => [type] => string [phpType] => string [dbType] => varchar(100) [defaultValue] => [enumValues] => [size] => 100 [precision] => 100 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [title] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => title [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [description] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => description [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [status] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => status [allowNull] => [type] => string [phpType] => string [dbType] => varchar(25) [defaultValue] => disabled [enumValues] => [size] => 25 [precision] => 25 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [client_url] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => client_url [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [redirect_to_client] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => redirect_to_client [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [phone] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => phone [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(50) [defaultValue] => [enumValues] => [size] => 50 [precision] => 50 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [rc_number] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => rc_number [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(10) [defaultValue] => [enumValues] => [size] => 10 [precision] => 10 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [logo] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => logo [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(200) [defaultValue] => [enumValues] => [size] => 200 [precision] => 200 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [content] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => content [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [brand_color_first] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => brand_color_first [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(10) [defaultValue] => [enumValues] => [size] => 10 [precision] => 10 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [brand_color_second] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => brand_color_second [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(10) [defaultValue] => [enumValues] => [size] => 10 [precision] => 10 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [theme] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => theme [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(100) [defaultValue] => [enumValues] => [size] => 100 [precision] => 100 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [theme_color] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => theme_color [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(16) [defaultValue] => [enumValues] => [size] => 16 [precision] => 16 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [work_time] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => work_time [allowNull] => [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [pattern_image] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => pattern_image [allowNull] => [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [discounts_till] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => discounts_till [allowNull] => 1 [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [company_id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => company_id [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [button_color] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => button_color [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(10) [defaultValue] => [enumValues] => [size] => 10 [precision] => 10 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [help_files] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => help_files [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ссылки на фото, разделенные вертикальной чертой ) ) ) ) [counters_group] => Array ( [schema] => yii\db\TableSchema Object ( [schemaName] => [name] => counters_group [fullName] => counters_group [primaryKey] => Array ( [0] => id ) [sequenceName] => [foreignKeys] => Array ( ) [columns] => Array ( [id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => id [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => 1 [autoIncrement] => 1 [unsigned] => [comment] => ) [source] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => source [allowNull] => [type] => string [phpType] => string [dbType] => varchar(80) [defaultValue] => [enumValues] => [size] => 80 [precision] => 80 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [items] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => items [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => 0 [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [created_at] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => created_at [allowNull] => [type] => timestamp [phpType] => string [dbType] => timestamp [defaultValue] => yii\db\Expression Object ( [expression] => CURRENT_TIMESTAMP [params] => Array ( ) ) [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [updated_at] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => updated_at [allowNull] => 1 [type] => timestamp [phpType] => string [dbType] => timestamp [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) ) ) ) [landing_tools] => Array ( [schema] => yii\db\TableSchema Object ( [schemaName] => [name] => landing_tools [fullName] => landing_tools [primaryKey] => Array ( [0] => id ) [sequenceName] => [foreignKeys] => Array ( ) [columns] => Array ( [id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => id [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => 1 [autoIncrement] => 1 [unsigned] => [comment] => ) [landing_id] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => landing_id [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [chart_rating] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => chart_rating [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [chart_built] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => chart_built [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [chart_build_info] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => chart_build_info [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [mortgage] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => mortgage [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [egrn] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => egrn [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [logo_point_map] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => logo_point_map [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(200) [defaultValue] => [enumValues] => [size] => 200 [precision] => 200 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [link_fb] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => link_fb [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [link_vk] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => link_vk [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [link_tw] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => link_tw [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [link_youtube] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => link_youtube [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [link_ig] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => link_ig [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [price] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => price [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_plan] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_plan [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [hide_apart] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => hide_apart [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [extra_rows] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => extra_rows [allowNull] => [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [logo_cluster] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => logo_cluster [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(200) [defaultValue] => [enumValues] => [size] => 200 [precision] => 200 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_flats] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_flats [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [html_text] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => html_text [allowNull] => 1 [type] => text [phpType] => string [dbType] => mediumtext [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [html_text_bottom] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => html_text_bottom [allowNull] => 1 [type] => text [phpType] => string [dbType] => mediumtext [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_developer] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_developer [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [sellers] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => sellers [allowNull] => [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [not_group_flats] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => not_group_flats [allowNull] => [type] => integer [phpType] => integer [dbType] => int(11) [defaultValue] => [enumValues] => [size] => 11 [precision] => 11 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [excluded_media] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => excluded_media [allowNull] => [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_panorams] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_panorams [allowNull] => 1 [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_houses_virtual_tours] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_houses_virtual_tours [allowNull] => 1 [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_aerotours] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_aerotours [allowNull] => 1 [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_video_reviews] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_video_reviews [allowNull] => 1 [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [redirectable] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => redirectable [allowNull] => 1 [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [redirect_image] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => redirect_image [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [redirect_link] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => redirect_link [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [redirect_title] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => redirect_title [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [callback_image] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => callback_image [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(200) [defaultValue] => [enumValues] => [size] => 200 [precision] => 200 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [callback_emails] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => callback_emails [allowNull] => 1 [type] => text [phpType] => string [dbType] => text [defaultValue] => [enumValues] => [size] => [precision] => [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [callback_send_rc] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => callback_send_rc [allowNull] => 1 [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [show_media] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => show_media [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 1 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [hide_filter] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => hide_filter [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [callback_text] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => callback_text [allowNull] => 1 [type] => string [phpType] => string [dbType] => varchar(255) [defaultValue] => [enumValues] => [size] => 255 [precision] => 255 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [hide_build] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => hide_build [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [hide_ads] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => hide_ads [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [hide_callback] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => hide_callback [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) [hide_map] => yii\db\mysql\ColumnSchema Object ( [disableJsonSupport] => [name] => hide_map [allowNull] => [type] => tinyint [phpType] => integer [dbType] => tinyint(1) [defaultValue] => 0 [enumValues] => [size] => 1 [precision] => 1 [scale] => [isPrimaryKey] => [autoIncrement] => [unsigned] => [comment] => ) ) ) ) ) [_builder:yii\db\Schema:private] => yii\db\mysql\QueryBuilder Object ( [typeMap] => Array ( [pk] => int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY [upk] => int(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY [bigpk] => bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY [ubigpk] => bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY [char] => char(1) [string] => varchar(255) [text] => text [tinyint] => tinyint(3) [smallint] => smallint(6) [integer] => int(11) [bigint] => bigint(20) [float] => float [double] => double [decimal] => decimal(10,0) [date] => date [binary] => blob [boolean] => tinyint(1) [money] => decimal(19,4) [json] => json [datetime] => datetime(0) [timestamp] => timestamp(0) [time] => time(0) ) [db] => yii\db\Connection Object *RECURSION* [separator] => [conditionBuilders:protected] => Array ( ) [conditionClasses:protected] => Array ( [NOT] => yii\db\conditions\NotCondition [AND] => yii\db\conditions\AndCondition [OR] => yii\db\conditions\OrCondition [BETWEEN] => yii\db\conditions\BetweenCondition [NOT BETWEEN] => yii\db\conditions\BetweenCondition [IN] => yii\db\conditions\InCondition [NOT IN] => yii\db\conditions\InCondition [LIKE] => yii\db\conditions\LikeCondition [NOT LIKE] => yii\db\conditions\LikeCondition [OR LIKE] => yii\db\conditions\LikeCondition [OR NOT LIKE] => yii\db\conditions\LikeCondition [EXISTS] => yii\db\conditions\ExistsCondition [NOT EXISTS] => yii\db\conditions\ExistsCondition ) [expressionBuilders:protected] => Array ( [yii\db\Query] => yii\db\QueryExpressionBuilder [yii\db\PdoValue] => yii\db\PdoValueBuilder [yii\db\Expression] => yii\db\ExpressionBuilder [yii\db\conditions\ConjunctionCondition] => yii\db\conditions\ConjunctionConditionBuilder [yii\db\conditions\NotCondition] => yii\db\conditions\NotConditionBuilder [yii\db\conditions\AndCondition] => yii\db\conditions\ConjunctionConditionBuilder Object ( [queryBuilder:protected] => yii\db\mysql\QueryBuilder Object *RECURSION* ) [yii\db\conditions\OrCondition] => yii\db\conditions\ConjunctionConditionBuilder [yii\db\conditions\BetweenCondition] => yii\db\conditions\BetweenConditionBuilder [yii\db\conditions\InCondition] => yii\db\conditions\InConditionBuilder Object ( [queryBuilder:protected] => yii\db\mysql\QueryBuilder Object *RECURSION* ) [yii\db\conditions\LikeCondition] => yii\db\conditions\LikeConditionBuilder [yii\db\conditions\ExistsCondition] => yii\db\conditions\ExistsConditionBuilder [yii\db\conditions\SimpleCondition] => yii\db\conditions\SimpleConditionBuilder [yii\db\conditions\HashCondition] => yii\db\conditions\HashConditionBuilder Object ( [queryBuilder:protected] => yii\db\mysql\QueryBuilder Object *RECURSION* ) [yii\db\conditions\BetweenColumnsCondition] => yii\db\conditions\BetweenColumnsConditionBuilder [yii\db\JsonExpression] => yii\db\mysql\JsonExpressionBuilder ) ) [_serverVersion:yii\db\Schema:private] => ) [_driverName:yii\db\Connection:private] => mysql [_master:yii\db\Connection:private] => [_slave:yii\db\Connection:private] => yii\db\Connection Object ( [dsn] => mysql:host=dbread.spb;dbname=novostroyspb [username] => novostroyspb [password] => Je7cSp93Fn2Fe [attributes] => [pdo] => PDO Object ( ) [enableSchemaCache] => 1 [schemaCacheDuration] => 10800 [schemaCacheExclude] => Array ( ) [schemaCache] => cache [enableQueryCache] => 1 [queryCacheDuration] => 1800 [queryCache] => cache [charset] => utf8mb4 [emulatePrepare] => [tablePrefix] => [schemaMap] => Array ( [pgsql] => yii\db\pgsql\Schema [mysqli] => yii\db\mysql\Schema [mysql] => yii\db\mysql\Schema [sqlite] => yii\db\sqlite\Schema [sqlite2] => yii\db\sqlite\Schema [sqlsrv] => yii\db\mssql\Schema [oci] => yii\db\oci\Schema [mssql] => yii\db\mssql\Schema [dblib] => yii\db\mssql\Schema [cubrid] => yii\db\cubrid\Schema ) [pdoClass] => [commandClass] => yii\db\Command [commandMap] => Array ( [pgsql] => yii\db\Command [mysqli] => yii\db\Command [mysql] => yii\db\Command [sqlite] => yii\db\sqlite\Command [sqlite2] => yii\db\sqlite\Command [sqlsrv] => yii\db\Command [oci] => yii\db\oci\Command [mssql] => yii\db\Command [dblib] => yii\db\Command [cubrid] => yii\db\Command ) [enableSavepoint] => 1 [serverStatusCache] => cache [serverRetryInterval] => 600 [enableSlaves] => 1 [slaves] => Array ( ) [slaveConfig] => Array ( ) [masters] => Array ( ) [masterConfig] => Array ( ) [shuffleMasters] => 1 [enableLogging] => 1 [enableProfiling] => 1 [isSybase] => [_queryBuilderConfigurations:yii\db\Connection:private] => Array ( ) [_transaction:yii\db\Connection:private] => [_schema:yii\db\Connection:private] => [_driverName:yii\db\Connection:private] => mysql [_master:yii\db\Connection:private] => [_slave:yii\db\Connection:private] => [_queryCacheInfo:yii\db\Connection:private] => Array ( ) [_quotedTableNames:yii\db\Connection:private] => [_quotedColumnNames:yii\db\Connection:private] => [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [_queryCacheInfo:yii\db\Connection:private] => Array ( ) [_quotedTableNames:yii\db\Connection:private] => Array ( [ads_search] => `ads_search` [landings] => `landings` [counters_group] => `counters_group` [landing_tools] => `landing_tools` ) [_quotedColumnNames:yii\db\Connection:private] => Array ( [url] => `url` [source] => `source` [type] => `type` [routing_mask] => `routing_mask` [state] => `state` [status] => `status` [landing_id] => `landing_id` ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [cache] => yii\redis\Cache Object ( [redis] => yii\redis\Connection Object ( [hostname] => cache.spb [redirectConnectionString] => [port] => 6379 [unixSocket] => [username] => [password] => [database] => 7 [connectionTimeout] => [dataTimeout] => [useSSL] => [contextOptions] => Array ( ) [socketClientFlags] => 4 [retries] => 0 [retryInterval] => 0 [redisCommands] => Array ( [0] => APPEND [1] => AUTH [2] => BGREWRITEAOF [3] => BGSAVE [4] => BITCOUNT [5] => BITFIELD [6] => BITOP [7] => BITPOS [8] => BLPOP [9] => BRPOP [10] => BRPOPLPUSH [11] => CLIENT KILL [12] => CLIENT LIST [13] => CLIENT GETNAME [14] => CLIENT PAUSE [15] => CLIENT REPLY [16] => CLIENT SETNAME [17] => CLUSTER ADDSLOTS [18] => CLUSTER COUNTKEYSINSLOT [19] => CLUSTER DELSLOTS [20] => CLUSTER FAILOVER [21] => CLUSTER FORGET [22] => CLUSTER GETKEYSINSLOT [23] => CLUSTER INFO [24] => CLUSTER KEYSLOT [25] => CLUSTER MEET [26] => CLUSTER NODES [27] => CLUSTER REPLICATE [28] => CLUSTER RESET [29] => CLUSTER SAVECONFIG [30] => CLUSTER SETSLOT [31] => CLUSTER SLAVES [32] => CLUSTER SLOTS [33] => COMMAND [34] => COMMAND COUNT [35] => COMMAND GETKEYS [36] => COMMAND INFO [37] => CONFIG GET [38] => CONFIG REWRITE [39] => CONFIG SET [40] => CONFIG RESETSTAT [41] => DBSIZE [42] => DEBUG OBJECT [43] => DEBUG SEGFAULT [44] => DECR [45] => DECRBY [46] => DEL [47] => DISCARD [48] => DUMP [49] => ECHO [50] => EVAL [51] => EVALSHA [52] => EXEC [53] => EXISTS [54] => EXPIRE [55] => EXPIREAT [56] => FLUSHALL [57] => FLUSHDB [58] => GEOADD [59] => GEOHASH [60] => GEOPOS [61] => GEODIST [62] => GEORADIUS [63] => GEORADIUSBYMEMBER [64] => GET [65] => GETBIT [66] => GETRANGE [67] => GETSET [68] => HDEL [69] => HEXISTS [70] => HGET [71] => HGETALL [72] => HINCRBY [73] => HINCRBYFLOAT [74] => HKEYS [75] => HLEN [76] => HMGET [77] => HMSET [78] => HSET [79] => HSETNX [80] => HSTRLEN [81] => HVALS [82] => INCR [83] => INCRBY [84] => INCRBYFLOAT [85] => INFO [86] => KEYS [87] => LASTSAVE [88] => LINDEX [89] => LINSERT [90] => LLEN [91] => LPOP [92] => LPUSH [93] => LPUSHX [94] => LRANGE [95] => LREM [96] => LSET [97] => LTRIM [98] => MGET [99] => MIGRATE [100] => MONITOR [101] => MOVE [102] => MSET [103] => MSETNX [104] => MULTI [105] => OBJECT [106] => PERSIST [107] => PEXPIRE [108] => PEXPIREAT [109] => PFADD [110] => PFCOUNT [111] => PFMERGE [112] => PING [113] => PSETEX [114] => PSUBSCRIBE [115] => PUBSUB [116] => PTTL [117] => PUBLISH [118] => PUNSUBSCRIBE [119] => QUIT [120] => RANDOMKEY [121] => READONLY [122] => READWRITE [123] => RENAME [124] => RENAMENX [125] => RESTORE [126] => ROLE [127] => RPOP [128] => RPOPLPUSH [129] => RPUSH [130] => RPUSHX [131] => SADD [132] => SAVE [133] => SCARD [134] => SCRIPT DEBUG [135] => SCRIPT EXISTS [136] => SCRIPT FLUSH [137] => SCRIPT KILL [138] => SCRIPT LOAD [139] => SDIFF [140] => SDIFFSTORE [141] => SELECT [142] => SET [143] => SETBIT [144] => SETEX [145] => SETNX [146] => SETRANGE [147] => SHUTDOWN [148] => SINTER [149] => SINTERSTORE [150] => SISMEMBER [151] => SLAVEOF [152] => SLOWLOG [153] => SMEMBERS [154] => SMOVE [155] => SORT [156] => SPOP [157] => SRANDMEMBER [158] => SREM [159] => STRLEN [160] => SUBSCRIBE [161] => SUNION [162] => SUNIONSTORE [163] => SWAPDB [164] => SYNC [165] => TIME [166] => TOUCH [167] => TTL [168] => TYPE [169] => UNSUBSCRIBE [170] => UNLINK [171] => UNWATCH [172] => WAIT [173] => WATCH [174] => XACK [175] => XADD [176] => XCLAIM [177] => XDEL [178] => XGROUP [179] => XINFO [180] => XLEN [181] => XPENDING [182] => XRANGE [183] => XREAD [184] => XREADGROUP [185] => XREVRANGE [186] => XTRIM [187] => ZADD [188] => ZCARD [189] => ZCOUNT [190] => ZINCRBY [191] => ZINTERSTORE [192] => ZLEXCOUNT [193] => ZRANGE [194] => ZRANGEBYLEX [195] => ZREVRANGEBYLEX [196] => ZRANGEBYSCORE [197] => ZRANK [198] => ZREM [199] => ZREMRANGEBYLEX [200] => ZREMRANGEBYRANK [201] => ZREMRANGEBYSCORE [202] => ZREVRANGE [203] => ZREVRANGEBYSCORE [204] => ZREVRANK [205] => ZSCORE [206] => ZUNIONSTORE [207] => SCAN [208] => SSCAN [209] => HSCAN [210] => ZSCAN ) [_pool:yii\redis\Connection:private] => Array ( [tcp://cache.spb:6379] => Resource id #3 ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [enableReplicas] => [replicas] => Array ( ) [forceClusterMode] => [shareDatabase] => [_replica:yii\redis\Cache:private] => [_isCluster:yii\redis\Cache:private] => [_hashTagAvailable:yii\redis\Cache:private] => [keyPrefix] => web_spb_7_ [serializer] => [defaultDuration] => 0 [_igbinaryAvailable:yii\caching\Cache:private] => 1 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) [queryRedis] => common\components\RedisConnection Object ( [connectionTimeout] => 3 [hostname] => cache.spb [redirectConnectionString] => [port] => 6379 [unixSocket] => [username] => [password] => [database] => 7 [dataTimeout] => [useSSL] => [contextOptions] => Array ( ) [socketClientFlags] => 4 [retries] => 0 [retryInterval] => 0 [redisCommands] => Array ( [0] => APPEND [1] => AUTH [2] => BGREWRITEAOF [3] => BGSAVE [4] => BITCOUNT [5] => BITFIELD [6] => BITOP [7] => BITPOS [8] => BLPOP [9] => BRPOP [10] => BRPOPLPUSH [11] => CLIENT KILL [12] => CLIENT LIST [13] => CLIENT GETNAME [14] => CLIENT PAUSE [15] => CLIENT REPLY [16] => CLIENT SETNAME [17] => CLUSTER ADDSLOTS [18] => CLUSTER COUNTKEYSINSLOT [19] => CLUSTER DELSLOTS [20] => CLUSTER FAILOVER [21] => CLUSTER FORGET [22] => CLUSTER GETKEYSINSLOT [23] => CLUSTER INFO [24] => CLUSTER KEYSLOT [25] => CLUSTER MEET [26] => CLUSTER NODES [27] => CLUSTER REPLICATE [28] => CLUSTER RESET [29] => CLUSTER SAVECONFIG [30] => CLUSTER SETSLOT [31] => CLUSTER SLAVES [32] => CLUSTER SLOTS [33] => COMMAND [34] => COMMAND COUNT [35] => COMMAND GETKEYS [36] => COMMAND INFO [37] => CONFIG GET [38] => CONFIG REWRITE [39] => CONFIG SET [40] => CONFIG RESETSTAT [41] => DBSIZE [42] => DEBUG OBJECT [43] => DEBUG SEGFAULT [44] => DECR [45] => DECRBY [46] => DEL [47] => DISCARD [48] => DUMP [49] => ECHO [50] => EVAL [51] => EVALSHA [52] => EXEC [53] => EXISTS [54] => EXPIRE [55] => EXPIREAT [56] => FLUSHALL [57] => FLUSHDB [58] => GEOADD [59] => GEOHASH [60] => GEOPOS [61] => GEODIST [62] => GEORADIUS [63] => GEORADIUSBYMEMBER [64] => GET [65] => GETBIT [66] => GETRANGE [67] => GETSET [68] => HDEL [69] => HEXISTS [70] => HGET [71] => HGETALL [72] => HINCRBY [73] => HINCRBYFLOAT [74] => HKEYS [75] => HLEN [76] => HMGET [77] => HMSET [78] => HSET [79] => HSETNX [80] => HSTRLEN [81] => HVALS [82] => INCR [83] => INCRBY [84] => INCRBYFLOAT [85] => INFO [86] => KEYS [87] => LASTSAVE [88] => LINDEX [89] => LINSERT [90] => LLEN [91] => LPOP [92] => LPUSH [93] => LPUSHX [94] => LRANGE [95] => LREM [96] => LSET [97] => LTRIM [98] => MGET [99] => MIGRATE [100] => MONITOR [101] => MOVE [102] => MSET [103] => MSETNX [104] => MULTI [105] => OBJECT [106] => PERSIST [107] => PEXPIRE [108] => PEXPIREAT [109] => PFADD [110] => PFCOUNT [111] => PFMERGE [112] => PING [113] => PSETEX [114] => PSUBSCRIBE [115] => PUBSUB [116] => PTTL [117] => PUBLISH [118] => PUNSUBSCRIBE [119] => QUIT [120] => RANDOMKEY [121] => READONLY [122] => READWRITE [123] => RENAME [124] => RENAMENX [125] => RESTORE [126] => ROLE [127] => RPOP [128] => RPOPLPUSH [129] => RPUSH [130] => RPUSHX [131] => SADD [132] => SAVE [133] => SCARD [134] => SCRIPT DEBUG [135] => SCRIPT EXISTS [136] => SCRIPT FLUSH [137] => SCRIPT KILL [138] => SCRIPT LOAD [139] => SDIFF [140] => SDIFFSTORE [141] => SELECT [142] => SET [143] => SETBIT [144] => SETEX [145] => SETNX [146] => SETRANGE [147] => SHUTDOWN [148] => SINTER [149] => SINTERSTORE [150] => SISMEMBER [151] => SLAVEOF [152] => SLOWLOG [153] => SMEMBERS [154] => SMOVE [155] => SORT [156] => SPOP [157] => SRANDMEMBER [158] => SREM [159] => STRLEN [160] => SUBSCRIBE [161] => SUNION [162] => SUNIONSTORE [163] => SWAPDB [164] => SYNC [165] => TIME [166] => TOUCH [167] => TTL [168] => TYPE [169] => UNSUBSCRIBE [170] => UNLINK [171] => UNWATCH [172] => WAIT [173] => WATCH [174] => XACK [175] => XADD [176] => XCLAIM [177] => XDEL [178] => XGROUP [179] => XINFO [180] => XLEN [181] => XPENDING [182] => XRANGE [183] => XREAD [184] => XREADGROUP [185] => XREVRANGE [186] => XTRIM [187] => ZADD [188] => ZCARD [189] => ZCOUNT [190] => ZINCRBY [191] => ZINTERSTORE [192] => ZLEXCOUNT [193] => ZRANGE [194] => ZRANGEBYLEX [195] => ZREVRANGEBYLEX [196] => ZRANGEBYSCORE [197] => ZRANK [198] => ZREM [199] => ZREMRANGEBYLEX [200] => ZREMRANGEBYRANK [201] => ZREMRANGEBYSCORE [202] => ZREVRANGE [203] => ZREVRANGEBYSCORE [204] => ZREVRANK [205] => ZSCORE [206] => ZUNIONSTORE [207] => SCAN [208] => SSCAN [209] => HSCAN [210] => ZSCAN ) [_pool:yii\redis\Connection:private] => Array ( [tcp://cache.spb:6379] => Resource id #5 ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [queryCache] => common\components\CacheRedis Object ( [forceClusterMode] => [redis] => common\components\RedisConnection Object ( [connectionTimeout] => 3 [hostname] => cache.spb [redirectConnectionString] => [port] => 6379 [unixSocket] => [username] => [password] => [database] => 7 [dataTimeout] => [useSSL] => [contextOptions] => Array ( ) [socketClientFlags] => 4 [retries] => 0 [retryInterval] => 0 [redisCommands] => Array ( [0] => APPEND [1] => AUTH [2] => BGREWRITEAOF [3] => BGSAVE [4] => BITCOUNT [5] => BITFIELD [6] => BITOP [7] => BITPOS [8] => BLPOP [9] => BRPOP [10] => BRPOPLPUSH [11] => CLIENT KILL [12] => CLIENT LIST [13] => CLIENT GETNAME [14] => CLIENT PAUSE [15] => CLIENT REPLY [16] => CLIENT SETNAME [17] => CLUSTER ADDSLOTS [18] => CLUSTER COUNTKEYSINSLOT [19] => CLUSTER DELSLOTS [20] => CLUSTER FAILOVER [21] => CLUSTER FORGET [22] => CLUSTER GETKEYSINSLOT [23] => CLUSTER INFO [24] => CLUSTER KEYSLOT [25] => CLUSTER MEET [26] => CLUSTER NODES [27] => CLUSTER REPLICATE [28] => CLUSTER RESET [29] => CLUSTER SAVECONFIG [30] => CLUSTER SETSLOT [31] => CLUSTER SLAVES [32] => CLUSTER SLOTS [33] => COMMAND [34] => COMMAND COUNT [35] => COMMAND GETKEYS [36] => COMMAND INFO [37] => CONFIG GET [38] => CONFIG REWRITE [39] => CONFIG SET [40] => CONFIG RESETSTAT [41] => DBSIZE [42] => DEBUG OBJECT [43] => DEBUG SEGFAULT [44] => DECR [45] => DECRBY [46] => DEL [47] => DISCARD [48] => DUMP [49] => ECHO [50] => EVAL [51] => EVALSHA [52] => EXEC [53] => EXISTS [54] => EXPIRE [55] => EXPIREAT [56] => FLUSHALL [57] => FLUSHDB [58] => GEOADD [59] => GEOHASH [60] => GEOPOS [61] => GEODIST [62] => GEORADIUS [63] => GEORADIUSBYMEMBER [64] => GET [65] => GETBIT [66] => GETRANGE [67] => GETSET [68] => HDEL [69] => HEXISTS [70] => HGET [71] => HGETALL [72] => HINCRBY [73] => HINCRBYFLOAT [74] => HKEYS [75] => HLEN [76] => HMGET [77] => HMSET [78] => HSET [79] => HSETNX [80] => HSTRLEN [81] => HVALS [82] => INCR [83] => INCRBY [84] => INCRBYFLOAT [85] => INFO [86] => KEYS [87] => LASTSAVE [88] => LINDEX [89] => LINSERT [90] => LLEN [91] => LPOP [92] => LPUSH [93] => LPUSHX [94] => LRANGE [95] => LREM [96] => LSET [97] => LTRIM [98] => MGET [99] => MIGRATE [100] => MONITOR [101] => MOVE [102] => MSET [103] => MSETNX [104] => MULTI [105] => OBJECT [106] => PERSIST [107] => PEXPIRE [108] => PEXPIREAT [109] => PFADD [110] => PFCOUNT [111] => PFMERGE [112] => PING [113] => PSETEX [114] => PSUBSCRIBE [115] => PUBSUB [116] => PTTL [117] => PUBLISH [118] => PUNSUBSCRIBE [119] => QUIT [120] => RANDOMKEY [121] => READONLY [122] => READWRITE [123] => RENAME [124] => RENAMENX [125] => RESTORE [126] => ROLE [127] => RPOP [128] => RPOPLPUSH [129] => RPUSH [130] => RPUSHX [131] => SADD [132] => SAVE [133] => SCARD [134] => SCRIPT DEBUG [135] => SCRIPT EXISTS [136] => SCRIPT FLUSH [137] => SCRIPT KILL [138] => SCRIPT LOAD [139] => SDIFF [140] => SDIFFSTORE [141] => SELECT [142] => SET [143] => SETBIT [144] => SETEX [145] => SETNX [146] => SETRANGE [147] => SHUTDOWN [148] => SINTER [149] => SINTERSTORE [150] => SISMEMBER [151] => SLAVEOF [152] => SLOWLOG [153] => SMEMBERS [154] => SMOVE [155] => SORT [156] => SPOP [157] => SRANDMEMBER [158] => SREM [159] => STRLEN [160] => SUBSCRIBE [161] => SUNION [162] => SUNIONSTORE [163] => SWAPDB [164] => SYNC [165] => TIME [166] => TOUCH [167] => TTL [168] => TYPE [169] => UNSUBSCRIBE [170] => UNLINK [171] => UNWATCH [172] => WAIT [173] => WATCH [174] => XACK [175] => XADD [176] => XCLAIM [177] => XDEL [178] => XGROUP [179] => XINFO [180] => XLEN [181] => XPENDING [182] => XRANGE [183] => XREAD [184] => XREADGROUP [185] => XREVRANGE [186] => XTRIM [187] => ZADD [188] => ZCARD [189] => ZCOUNT [190] => ZINCRBY [191] => ZINTERSTORE [192] => ZLEXCOUNT [193] => ZRANGE [194] => ZRANGEBYLEX [195] => ZREVRANGEBYLEX [196] => ZRANGEBYSCORE [197] => ZRANK [198] => ZREM [199] => ZREMRANGEBYLEX [200] => ZREMRANGEBYRANK [201] => ZREMRANGEBYSCORE [202] => ZREVRANGE [203] => ZREVRANGEBYSCORE [204] => ZREVRANK [205] => ZSCORE [206] => ZUNIONSTORE [207] => SCAN [208] => SSCAN [209] => HSCAN [210] => ZSCAN ) [_pool:yii\redis\Connection:private] => Array ( [tcp://cache.spb:6379] => Resource id #5 ) [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => Array ( ) ) [enableReplicas] => [replicas] => Array ( ) [shareDatabase] => [_replica:yii\redis\Cache:private] => [_isCluster:yii\redis\Cache:private] => [_hashTagAvailable:yii\redis\Cache:private] => [keyPrefix] => cache_spb_query_ [serializer] => [defaultDuration] => 0 [_igbinaryAvailable:yii\caching\Cache:private] => 1 [_events:yii\base\Component:private] => Array ( ) [_eventWildcards:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => [isKeyCacheTime:common\components\CacheRedis:private] => 1 ) [urlManager] => yii\web\UrlManager Object ( [enablePrettyUrl] => 1 [enableStrictParsing] => 1 [rules] => Array ( [0] => yii\web\UrlRule Object ( [name] => sitemap.xml [pattern] => #^sitemap\.xml$#u [host] => [route] => sitemapModule/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /sitemap.xml/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [1] => yii\web\UrlRule Object ( [name] => /call_3898_1 [pattern] => #^call_3898_1$#u [host] => [route] => rcLanding/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /call_3898_1/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [2] => yii\web\UrlRule Object ( [name] => /call_477_2 [pattern] => #^call_477_2$#u [host] => [route] => rcLanding/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /call_477_2/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [3] => yii\web\UrlRule Object ( [name] => /lsr [pattern] => #^lsr$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /lsr/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [4] => yii\web\UrlRule Object ( [name] => /spbrealty/elite [pattern] => #^spbrealty/elite$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /spbrealty/elite/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [5] => yii\web\UrlRule Object ( [name] => /spbrealty [pattern] => #^spbrealty$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /spbrealty/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [6] => yii\web\UrlRule Object ( [name] => /arsenal_nedvizhimost [pattern] => #^arsenal_nedvizhimost$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /arsenal_nedvizhimost/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [7] => yii\web\UrlRule Object ( [name] => /test-evrostroy [pattern] => #^test-evrostroy$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /test-evrostroy/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [8] => yii\web\UrlRule Object ( [name] => /bonava [pattern] => #^bonava$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /bonava/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [9] => yii\web\UrlRule Object ( [name] => /akviloninvest [pattern] => #^akviloninvest$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /akviloninvest/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [10] => yii\web\UrlRule Object ( [name] => /sevgorod [pattern] => #^sevgorod$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /sevgorod/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [11] => yii\web\UrlRule Object ( [name] => /rbi [pattern] => #^rbi$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /rbi/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [12] => yii\web\UrlRule Object ( [name] => /lenspecsmu [pattern] => #^lenspecsmu$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /lenspecsmu/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [13] => yii\web\UrlRule Object ( [name] => /lsr/premium [pattern] => #^lsr/premium$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /lsr/premium/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [14] => yii\web\UrlRule Object ( [name] => /glorax_development [pattern] => #^glorax_development$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /glorax_development/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [15] => yii\web\UrlRule Object ( [name] => /seven_suns [pattern] => #^seven_suns$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /seven_suns/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [16] => yii\web\UrlRule Object ( [name] => /gk_polis [pattern] => #^gk_polis$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /gk_polis/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [17] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_nautilus/promo [pattern] => #^baza/jiloy_kvartal_nautilus/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_nautilus/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [18] => yii\web\UrlRule Object ( [name] => /baza/klubnyy_dom_g9/promo [pattern] => #^baza/klubnyy_dom_g9/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/klubnyy_dom_g9/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [19] => yii\web\UrlRule Object ( [name] => /baza/jk_krylya/promo [pattern] => #^baza/jk_krylya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_krylya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [20] => yii\web\UrlRule Object ( [name] => /baza/jk_solntsepark/promo [pattern] => #^baza/jk_solntsepark/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_solntsepark/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [21] => yii\web\UrlRule Object ( [name] => /baza/jk_4you/promo [pattern] => #^baza/jk_4you/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_4you/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [22] => yii\web\UrlRule Object ( [name] => /baza/jk_lirika/promo [pattern] => #^baza/jk_lirika/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_lirika/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [23] => yii\web\UrlRule Object ( [name] => /baza/jk_all_inclusive/promo [pattern] => #^baza/jk_all_inclusive/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_all_inclusive/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [24] => yii\web\UrlRule Object ( [name] => /baza/jk_qmir/promo [pattern] => #^baza/jk_qmir/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_qmir/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [25] => yii\web\UrlRule Object ( [name] => /baza/mkr_los_sertolovo/promo [pattern] => #^baza/mkr_los_sertolovo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/mkr_los_sertolovo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [26] => yii\web\UrlRule Object ( [name] => /baza/jk_zvezdnyy_duet/promo [pattern] => #^baza/jk_zvezdnyy_duet/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_zvezdnyy_duet/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [27] => yii\web\UrlRule Object ( [name] => /baza/jk_riviere_noire_river/promo [pattern] => #^baza/jk_riviere_noire_river/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_riviere_noire_river/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [28] => yii\web\UrlRule Object ( [name] => /baza/jk_polis_na_komendantskom/promo [pattern] => #^baza/jk_polis_na_komendantskom/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_polis_na_komendantskom/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [29] => yii\web\UrlRule Object ( [name] => /baza/jk_murino_2020/promo [pattern] => #^baza/jk_murino_2020/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_murino_2020/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [30] => yii\web\UrlRule Object ( [name] => /baza/zhk_kraski_leta/promo [pattern] => #^baza/zhk_kraski_leta/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_kraski_leta/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [31] => yii\web\UrlRule Object ( [name] => /baza/zhk_yuntolovo/promo [pattern] => #^baza/zhk_yuntolovo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_yuntolovo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [32] => yii\web\UrlRule Object ( [name] => /baza/zhk_svetlyy_mir_ya_romantik/promo [pattern] => #^baza/zhk_svetlyy_mir_ya_romantik/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_svetlyy_mir_ya_romantik/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [33] => yii\web\UrlRule Object ( [name] => /baza/jk_legenda_geroev/promo [pattern] => #^baza/jk_legenda_geroev/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_legenda_geroev/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [34] => yii\web\UrlRule Object ( [name] => /baza/jk_novoe_kolpino/promo [pattern] => #^baza/jk_novoe_kolpino/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_novoe_kolpino/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [35] => yii\web\UrlRule Object ( [name] => /baza/jk_kleny/promo [pattern] => #^baza/jk_kleny/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_kleny/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [36] => yii\web\UrlRule Object ( [name] => /baza/jk_svetlyy_mir_jizn/promo [pattern] => #^baza/jk_svetlyy_mir_jizn/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_svetlyy_mir_jizn/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [37] => yii\web\UrlRule Object ( [name] => /baza/jk_yanila_drayv/promo [pattern] => #^baza/jk_yanila_drayv/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_yanila_drayv/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [38] => yii\web\UrlRule Object ( [name] => /baza/jk_dom_na_blyuhera/promo [pattern] => #^baza/jk_dom_na_blyuhera/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_dom_na_blyuhera/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [39] => yii\web\UrlRule Object ( [name] => /baza/jk_tsvetnoy_gorod/promo [pattern] => #^baza/jk_tsvetnoy_gorod/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsvetnoy_gorod/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [40] => yii\web\UrlRule Object ( [name] => /baza/jk_russkiy_dom/promo [pattern] => #^baza/jk_russkiy_dom/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_russkiy_dom/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [41] => yii\web\UrlRule Object ( [name] => /baza/jk_kontinenty/promo [pattern] => #^baza/jk_kontinenty/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_kontinenty/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [42] => yii\web\UrlRule Object ( [name] => /baza/jk_id_murino_aydi/promo [pattern] => #^baza/jk_id_murino_aydi/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_id_murino_aydi/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [43] => yii\web\UrlRule Object ( [name] => /baza/zhk_grona_lund/promo [pattern] => #^baza/zhk_grona_lund/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_grona_lund/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [44] => yii\web\UrlRule Object ( [name] => /baza/jk_magnifika_residence_magnifika/promo [pattern] => #^baza/jk_magnifika_residence_magnifika/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_magnifika_residence_magnifika/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [45] => yii\web\UrlRule Object ( [name] => /baza/zhk_skandi_klubb/promo [pattern] => #^baza/zhk_skandi_klubb/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_skandi_klubb/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [46] => yii\web\UrlRule Object ( [name] => /baza/jk_magnifika/promo [pattern] => #^baza/jk_magnifika/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_magnifika/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [47] => yii\web\UrlRule Object ( [name] => /baza/zhk_severnaya_dolina/promo [pattern] => #^baza/zhk_severnaya_dolina/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_severnaya_dolina/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [48] => yii\web\UrlRule Object ( [name] => /m2market [pattern] => #^m2market$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /m2market/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [49] => yii\web\UrlRule Object ( [name] => /baza/jk_ligovsky_city_ligovskiy/promo2 [pattern] => #^baza/jk_ligovsky_city_ligovskiy/promo2$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_ligovsky_city_ligovskiy/promo2/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [50] => yii\web\UrlRule Object ( [name] => /baza/zhk_shuvalovskiy/promo [pattern] => #^baza/zhk_shuvalovskiy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_shuvalovskiy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [51] => yii\web\UrlRule Object ( [name] => /baza/jk_tsivilizatsiya/promo [pattern] => #^baza/jk_tsivilizatsiya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsivilizatsiya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [52] => yii\web\UrlRule Object ( [name] => /baza/jk_parusa/promo [pattern] => #^baza/jk_parusa/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_parusa/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [53] => yii\web\UrlRule Object ( [name] => /baza/zhk_novaya_ohta/promo [pattern] => #^baza/zhk_novaya_ohta/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_novaya_ohta/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [54] => yii\web\UrlRule Object ( [name] => /baza/jk_ruchi/promo [pattern] => #^baza/jk_ruchi/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_ruchi/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [55] => yii\web\UrlRule Object ( [name] => /baza/jk_nevskie_panoramy/promo [pattern] => #^baza/jk_nevskie_panoramy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_nevskie_panoramy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [56] => yii\web\UrlRule Object ( [name] => /baza/jk_bogatyr3/promo_trend [pattern] => #^baza/jk_bogatyr3/promo_trend$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_bogatyr3/promo_trend/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [57] => yii\web\UrlRule Object ( [name] => /baza/jk_svetlyy_mir_tihaya/promo [pattern] => #^baza/jk_svetlyy_mir_tihaya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_svetlyy_mir_tihaya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [58] => yii\web\UrlRule Object ( [name] => /baza/jk_na_barochnoy_ulitse/promo [pattern] => #^baza/jk_na_barochnoy_ulitse/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_na_barochnoy_ulitse/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [59] => yii\web\UrlRule Object ( [name] => /baza/jk_russkie_sezony/promo [pattern] => #^baza/jk_russkie_sezony/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_russkie_sezony/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [60] => yii\web\UrlRule Object ( [name] => /baza/apartotel_studio_moskovsky/promo [pattern] => #^baza/apartotel_studio_moskovsky/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/apartotel_studio_moskovsky/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [61] => yii\web\UrlRule Object ( [name] => /baza/dom_na_naberejnoy_obschestvennyy/promo [pattern] => #^baza/dom_na_naberejnoy_obschestvennyy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/dom_na_naberejnoy_obschestvennyy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [62] => yii\web\UrlRule Object ( [name] => /baza/zhk_ultracity_ultra_siti/promo [pattern] => #^baza/zhk_ultracity_ultra_siti/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_ultracity_ultra_siti/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [63] => yii\web\UrlRule Object ( [name] => /baza/jk_angliyskaya_milya/promo [pattern] => #^baza/jk_angliyskaya_milya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_angliyskaya_milya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [64] => yii\web\UrlRule Object ( [name] => /patriot_neva [pattern] => #^patriot_neva$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /patriot_neva/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [65] => yii\web\UrlRule Object ( [name] => /baza/jk_kudrovo/promo [pattern] => #^baza/jk_kudrovo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_kudrovo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [66] => yii\web\UrlRule Object ( [name] => /lidergroup [pattern] => #^lidergroup$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /lidergroup/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [67] => yii\web\UrlRule Object ( [name] => /rosstroyinvest [pattern] => #^rosstroyinvest$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /rosstroyinvest/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [68] => yii\web\UrlRule Object ( [name] => /baza/jk_promenad_promenade/promo [pattern] => #^baza/jk_promenad_promenade/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_promenad_promenade/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [69] => yii\web\UrlRule Object ( [name] => /baza/jk_dom_na_obruchevyh/promo [pattern] => #^baza/jk_dom_na_obruchevyh/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_dom_na_obruchevyh/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [70] => yii\web\UrlRule Object ( [name] => /baza/zhk_kristall_polyustrovo/promo [pattern] => #^baza/zhk_kristall_polyustrovo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_kristall_polyustrovo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [71] => yii\web\UrlRule Object ( [name] => /baza/jk_dom_na_kosmonavtov/promo [pattern] => #^baza/jk_dom_na_kosmonavtov/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_dom_na_kosmonavtov/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [72] => yii\web\UrlRule Object ( [name] => /baza/jk_etalon_na_neve/promo [pattern] => #^baza/jk_etalon_na_neve/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_etalon_na_neve/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [73] => yii\web\UrlRule Object ( [name] => /baza/jk_galaktika_premium/promo [pattern] => #^baza/jk_galaktika_premium/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_galaktika_premium/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [74] => yii\web\UrlRule Object ( [name] => /baza/zhk_samocvety/promo [pattern] => #^baza/zhk_samocvety/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_samocvety/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [75] => yii\web\UrlRule Object ( [name] => /baza/jk_neva_haus/promo [pattern] => #^baza/jk_neva_haus/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_neva_haus/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [76] => yii\web\UrlRule Object ( [name] => /baza/jk_dom_u_karetnogo/promo [pattern] => #^baza/jk_dom_u_karetnogo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_dom_u_karetnogo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [77] => yii\web\UrlRule Object ( [name] => /baza/jk_tsivilizatsiya_na_neve/promo [pattern] => #^baza/jk_tsivilizatsiya_na_neve/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsivilizatsiya_na_neve/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [78] => yii\web\UrlRule Object ( [name] => /baza/jk_zapovednyy_park/promo [pattern] => #^baza/jk_zapovednyy_park/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_zapovednyy_park/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [79] => yii\web\UrlRule Object ( [name] => /baza/jk_grand_house/promo [pattern] => #^baza/jk_grand_house/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_grand_house/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [80] => yii\web\UrlRule Object ( [name] => /baza/morskoy_prospekt_29/promo [pattern] => #^baza/morskoy_prospekt_29/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/morskoy_prospekt_29/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [81] => yii\web\UrlRule Object ( [name] => /baza/zhk_smolnyy_park/promo [pattern] => #^baza/zhk_smolnyy_park/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_smolnyy_park/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [82] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_elizarovskiy/m2market/promo [pattern] => #^baza/jiloy_kvartal_tsds_elizarovskiy/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_elizarovskiy/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [83] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_severnyy/m2market/promo [pattern] => #^baza/jiloy_kvartal_tsds_severnyy/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_severnyy/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [84] => yii\web\UrlRule Object ( [name] => /baza/zhk_novoe_yanino/m2market/promo [pattern] => #^baza/zhk_novoe_yanino/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_novoe_yanino/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [85] => yii\web\UrlRule Object ( [name] => /baza/zhk_kraski_leta/m2market/promo [pattern] => #^baza/zhk_kraski_leta/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_kraski_leta/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [86] => yii\web\UrlRule Object ( [name] => /baza/jk_parklend/m2market/promo [pattern] => #^baza/jk_parklend/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_parklend/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [87] => yii\web\UrlRule Object ( [name] => /baza/jk_polis_na_moskovskoy/m2market/promo [pattern] => #^baza/jk_polis_na_moskovskoy/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_polis_na_moskovskoy/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [88] => yii\web\UrlRule Object ( [name] => /baza/zhk_shuvalovskiy/m2market/promo [pattern] => #^baza/zhk_shuvalovskiy/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_shuvalovskiy/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [89] => yii\web\UrlRule Object ( [name] => /baza/jk_tsvetnoy_gorod/m2market/promo [pattern] => #^baza/jk_tsvetnoy_gorod/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsvetnoy_gorod/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [90] => yii\web\UrlRule Object ( [name] => /baza/jk_ruchi/m2market/promo [pattern] => #^baza/jk_ruchi/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_ruchi/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [91] => yii\web\UrlRule Object ( [name] => /baza/jk_tsivilizatsiya/m2market/promo [pattern] => #^baza/jk_tsivilizatsiya/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsivilizatsiya/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [92] => yii\web\UrlRule Object ( [name] => /baza/jk_morskaya_naberejnaya/m2market/promo [pattern] => #^baza/jk_morskaya_naberejnaya/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_morskaya_naberejnaya/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [93] => yii\web\UrlRule Object ( [name] => /baza/zhk_novaya_ohta/m2market/promo [pattern] => #^baza/zhk_novaya_ohta/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_novaya_ohta/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [94] => yii\web\UrlRule Object ( [name] => /baza/jk_zvezdnyy_duet/m2market/promo [pattern] => #^baza/jk_zvezdnyy_duet/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_zvezdnyy_duet/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [95] => yii\web\UrlRule Object ( [name] => /baza/jk_riviere_noire_river/m2market/promo [pattern] => #^baza/jk_riviere_noire_river/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_riviere_noire_river/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [96] => yii\web\UrlRule Object ( [name] => /baza/jk_zapovednyy_park/m2market/promo [pattern] => #^baza/jk_zapovednyy_park/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_zapovednyy_park/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [97] => yii\web\UrlRule Object ( [name] => /baza/jk_polis_na_neve/m2market/promo [pattern] => #^baza/jk_polis_na_neve/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_polis_na_neve/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [98] => yii\web\UrlRule Object ( [name] => /baza/jk_polis_na_komendantskom/m2market/promo [pattern] => #^baza/jk_polis_na_komendantskom/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_polis_na_komendantskom/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [99] => yii\web\UrlRule Object ( [name] => /baza/jk_moy_mir/m2market/promo [pattern] => #^baza/jk_moy_mir/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_moy_mir/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [100] => yii\web\UrlRule Object ( [name] => /baza/zhk_v_nevskom_rayone/m2market/promo [pattern] => #^baza/zhk_v_nevskom_rayone/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_v_nevskom_rayone/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [101] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_polyustrovo/m2market/promo [pattern] => #^baza/jiloy_kvartal_tsds_polyustrovo/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_polyustrovo/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [102] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_moskovskiy/m2market/promo [pattern] => #^baza/jiloy_kvartal_tsds_moskovskiy/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_moskovskiy/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [103] => yii\web\UrlRule Object ( [name] => /baza/jk_zemlyanino/promo [pattern] => #^baza/jk_zemlyanino/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_zemlyanino/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [104] => yii\web\UrlRule Object ( [name] => /an_quattro_kvatro [pattern] => #^an_quattro_kvatro$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /an_quattro_kvatro/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [105] => yii\web\UrlRule Object ( [name] => /baza/jk_new_time/an_quattro_kvatro/promo [pattern] => #^baza/jk_new_time/an_quattro_kvatro/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_new_time/an_quattro_kvatro/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [106] => yii\web\UrlRule Object ( [name] => /baza/zhk_solnechnyy_gorod/an_quattro_kvatro/promo [pattern] => #^baza/zhk_solnechnyy_gorod/an_quattro_kvatro/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_solnechnyy_gorod/an_quattro_kvatro/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [107] => yii\web\UrlRule Object ( [name] => /baza/jk_id_kudrovo_aydi/an_quattro_kvatro/promo [pattern] => #^baza/jk_id_kudrovo_aydi/an_quattro_kvatro/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_id_kudrovo_aydi/an_quattro_kvatro/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [108] => yii\web\UrlRule Object ( [name] => /baza/mfk_artline/an_quattro_kvatro/promo [pattern] => #^baza/mfk_artline/an_quattro_kvatro/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/mfk_artline/an_quattro_kvatro/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [109] => yii\web\UrlRule Object ( [name] => /baza/jk_pulse_na_naberejnoy/an_quattro_kvatro/promo [pattern] => #^baza/jk_pulse_na_naberejnoy/an_quattro_kvatro/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_pulse_na_naberejnoy/an_quattro_kvatro/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [110] => yii\web\UrlRule Object ( [name] => /baza/jk_ohta_haus/promo [pattern] => #^baza/jk_ohta_haus/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_ohta_haus/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [111] => yii\web\UrlRule Object ( [name] => /baza/jk_v_krapivnom_pereulke/promo [pattern] => #^baza/jk_v_krapivnom_pereulke/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_v_krapivnom_pereulke/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [112] => yii\web\UrlRule Object ( [name] => /baza/zhk_dom_u_razliva/promo [pattern] => #^baza/zhk_dom_u_razliva/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_dom_u_razliva/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [113] => yii\web\UrlRule Object ( [name] => /baza/zhk_morskaya_zvezda/promo [pattern] => #^baza/zhk_morskaya_zvezda/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_morskaya_zvezda/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [114] => yii\web\UrlRule Object ( [name] => /baza/apartotel_yes_na_sotsialisticheskoy/promo [pattern] => #^baza/apartotel_yes_na_sotsialisticheskoy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/apartotel_yes_na_sotsialisticheskoy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [115] => yii\web\UrlRule Object ( [name] => /baza/jk_id_kudrovo_aydi/promo [pattern] => #^baza/jk_id_kudrovo_aydi/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_id_kudrovo_aydi/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [116] => yii\web\UrlRule Object ( [name] => /baza/jk_life_lesnaya/promo [pattern] => #^baza/jk_life_lesnaya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_life_lesnaya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [117] => yii\web\UrlRule Object ( [name] => /baza/investotel_promolodost/promo [pattern] => #^baza/investotel_promolodost/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/investotel_promolodost/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [118] => yii\web\UrlRule Object ( [name] => /cds [pattern] => #^cds$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /cds/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [119] => yii\web\UrlRule Object ( [name] => /baza/jk_novyy_lessner/promo [pattern] => #^baza/jk_novyy_lessner/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_novyy_lessner/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [120] => yii\web\UrlRule Object ( [name] => /baza/jk_next/promo [pattern] => #^baza/jk_next/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_next/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [121] => yii\web\UrlRule Object ( [name] => /lsr/business-class [pattern] => #^lsr/business-class$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /lsr/business-class/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [122] => yii\web\UrlRule Object ( [name] => /baza/jk_morskaya_naberejnaya_sea/promo [pattern] => #^baza/jk_morskaya_naberejnaya_sea/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_morskaya_naberejnaya_sea/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [123] => yii\web\UrlRule Object ( [name] => /baza/jk_morskaya_naberejnaya/promo [pattern] => #^baza/jk_morskaya_naberejnaya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_morskaya_naberejnaya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [124] => yii\web\UrlRule Object ( [name] => /baza/jk_bogemiya/promo [pattern] => #^baza/jk_bogemiya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_bogemiya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [125] => yii\web\UrlRule Object ( [name] => /baza/jiloy_dom_na_moskovskom/promo [pattern] => #^baza/jiloy_dom_na_moskovskom/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_dom_na_moskovskom/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [126] => yii\web\UrlRule Object ( [name] => /baza/jk_tri_vetra/promo [pattern] => #^baza/jk_tri_vetra/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tri_vetra/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [127] => yii\web\UrlRule Object ( [name] => /baza/apartotel_neopark_neopark/promo [pattern] => #^baza/apartotel_neopark_neopark/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/apartotel_neopark_neopark/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [128] => yii\web\UrlRule Object ( [name] => /baza/jk_na_chernigovskoy_15v/m2market/promo [pattern] => #^baza/jk_na_chernigovskoy_15v/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_na_chernigovskoy_15v/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [129] => yii\web\UrlRule Object ( [name] => /baza/apartotel_neopark_neopark/m2market/promo [pattern] => #^baza/apartotel_neopark_neopark/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/apartotel_neopark_neopark/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [130] => yii\web\UrlRule Object ( [name] => /baza/jk_galaktika_pro_galaktika/m2market/promo [pattern] => #^baza/jk_galaktika_pro_galaktika/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_galaktika_pro_galaktika/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [131] => yii\web\UrlRule Object ( [name] => /baza/jk_familia_familiya/promo [pattern] => #^baza/jk_familia_familiya/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_familia_familiya/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [132] => yii\web\UrlRule Object ( [name] => /baza/jk_terra/promo [pattern] => #^baza/jk_terra/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_terra/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [133] => yii\web\UrlRule Object ( [name] => /baza/jk_romashki/promo [pattern] => #^baza/jk_romashki/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_romashki/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [134] => yii\web\UrlRule Object ( [name] => /baza/zhiloy_kvartal_murinskiy_posad/m2market/promo [pattern] => #^baza/zhiloy_kvartal_murinskiy_posad/m2market/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhiloy_kvartal_murinskiy_posad/m2market/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [135] => yii\web\UrlRule Object ( [name] => /baza/zhk_galaktika/promo [pattern] => #^baza/zhk_galaktika/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_galaktika/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [136] => yii\web\UrlRule Object ( [name] => /trend [pattern] => #^trend$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /trend/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [137] => yii\web\UrlRule Object ( [name] => /baza/zhk_na_peresechenii/promo [pattern] => #^baza/zhk_na_peresechenii/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_na_peresechenii/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [138] => yii\web\UrlRule Object ( [name] => /baza/jk_dom_na_lvovskoy/promo [pattern] => #^baza/jk_dom_na_lvovskoy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_dom_na_lvovskoy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [139] => yii\web\UrlRule Object ( [name] => /baza/jk_galaktika_pro_galaktika/promo [pattern] => #^baza/jk_galaktika_pro_galaktika/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_galaktika_pro_galaktika/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [140] => yii\web\UrlRule Object ( [name] => /baza/jk_na_chernigovskoy_15v/promo [pattern] => #^baza/jk_na_chernigovskoy_15v/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_na_chernigovskoy_15v/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [141] => yii\web\UrlRule Object ( [name] => /baza/jk_renessans/promo [pattern] => #^baza/jk_renessans/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_renessans/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [142] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_elizarovskiy/promo [pattern] => #^baza/jiloy_kvartal_tsds_elizarovskiy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_elizarovskiy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [143] => yii\web\UrlRule Object ( [name] => /baza/zhiloy_kvartal_murinskiy_posad/promo [pattern] => #^baza/zhiloy_kvartal_murinskiy_posad/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhiloy_kvartal_murinskiy_posad/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [144] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_moskovskiy/promo [pattern] => #^baza/jiloy_kvartal_tsds_moskovskiy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_moskovskiy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [145] => yii\web\UrlRule Object ( [name] => /baza/zhk_v_nevskom_rayone/promo [pattern] => #^baza/zhk_v_nevskom_rayone/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_v_nevskom_rayone/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [146] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_polyustrovo/promo [pattern] => #^baza/jiloy_kvartal_tsds_polyustrovo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_polyustrovo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [147] => yii\web\UrlRule Object ( [name] => /baza/zhk_novyy_okkervil/promo [pattern] => #^baza/zhk_novyy_okkervil/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_novyy_okkervil/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [148] => yii\web\UrlRule Object ( [name] => /baza/jk_orlovskiy_park/promo [pattern] => #^baza/jk_orlovskiy_park/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_orlovskiy_park/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [149] => yii\web\UrlRule Object ( [name] => /baza/jk_dalnevostochnyy_15/promo [pattern] => #^baza/jk_dalnevostochnyy_15/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_dalnevostochnyy_15/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [150] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_severnyy/trend/promo [pattern] => #^baza/jiloy_kvartal_tsds_severnyy/trend/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_severnyy/trend/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [151] => yii\web\UrlRule Object ( [name] => /baza/jk_oykumena/promo [pattern] => #^baza/jk_oykumena/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_oykumena/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [152] => yii\web\UrlRule Object ( [name] => /baza/jk_moy_mir/promo [pattern] => #^baza/jk_moy_mir/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_moy_mir/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [153] => yii\web\UrlRule Object ( [name] => /spbrenovazia [pattern] => #^spbrenovazia$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /spbrenovazia/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [154] => yii\web\UrlRule Object ( [name] => /baza/jk_tsds_chyornaya_rechka/promo [pattern] => #^baza/jk_tsds_chyornaya_rechka/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsds_chyornaya_rechka/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [155] => yii\web\UrlRule Object ( [name] => /baza/jk_tsds_volkovskiy/promo [pattern] => #^baza/jk_tsds_volkovskiy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_tsds_volkovskiy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [156] => yii\web\UrlRule Object ( [name] => /baza/mkr_yanino_park/domrf_promo [pattern] => #^baza/mkr_yanino_park/domrf_promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/mkr_yanino_park/domrf_promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [157] => yii\web\UrlRule Object ( [name] => /baza/jk_admiral_ushakov/domrf_promo [pattern] => #^baza/jk_admiral_ushakov/domrf_promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_admiral_ushakov/domrf_promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [158] => yii\web\UrlRule Object ( [name] => /baza/jk_magellan/trend/promo [pattern] => #^baza/jk_magellan/trend/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_magellan/trend/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [159] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_polyustrovo/trend/promo [pattern] => #^baza/jiloy_kvartal_tsds_polyustrovo/trend/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_polyustrovo/trend/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [160] => yii\web\UrlRule Object ( [name] => /baza/jiloy_kvartal_tsds_moskovskiy/trend/promo [pattern] => #^baza/jiloy_kvartal_tsds_moskovskiy/trend/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jiloy_kvartal_tsds_moskovskiy/trend/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [161] => yii\web\UrlRule Object ( [name] => /baza/jk_id_murino_aydi/trend/promo [pattern] => #^baza/jk_id_murino_aydi/trend/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_id_murino_aydi/trend/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [162] => yii\web\UrlRule Object ( [name] => /pik [pattern] => #^pik$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /pik/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [163] => yii\web\UrlRule Object ( [name] => /baza/jk_domino/promo [pattern] => #^baza/jk_domino/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_domino/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [164] => yii\web\UrlRule Object ( [name] => /baza/jk_moskovskie_vorota_ii/promo [pattern] => #^baza/jk_moskovskie_vorota_ii/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_moskovskie_vorota_ii/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [165] => yii\web\UrlRule Object ( [name] => /baza/jk_legenda_na_moskovskom/promo [pattern] => #^baza/jk_legenda_na_moskovskom/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_legenda_na_moskovskom/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [166] => yii\web\UrlRule Object ( [name] => /baza/jk_stranapeterburg/promo [pattern] => #^baza/jk_stranapeterburg/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_stranapeterburg/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [167] => yii\web\UrlRule Object ( [name] => /baza/zhk_astrid/promo [pattern] => #^baza/zhk_astrid/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/zhk_astrid/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [168] => yii\web\UrlRule Object ( [name] => /baza/apartamentkompleks_wings_apartamenty_na/promo [pattern] => #^baza/apartamentkompleks_wings_apartamenty_na/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/apartamentkompleks_wings_apartamenty_na/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [169] => yii\web\UrlRule Object ( [name] => /baza/apartkompleks_valo/promo [pattern] => #^baza/apartkompleks_valo/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/apartkompleks_valo/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [170] => yii\web\UrlRule Object ( [name] => /baza/jk_evropeyskiy_park/promo [pattern] => #^baza/jk_evropeyskiy_park/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_evropeyskiy_park/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [171] => yii\web\UrlRule Object ( [name] => /baza/jk_id_park_pobedy/promo [pattern] => #^baza/jk_id_park_pobedy/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_id_park_pobedy/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [172] => yii\web\UrlRule Object ( [name] => /kvs [pattern] => #^kvs$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /kvs/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [173] => yii\web\UrlRule Object ( [name] => /etalon [pattern] => #^etalon$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /etalon/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [174] => yii\web\UrlRule Object ( [name] => /baza/jk_yanila_forest/promo [pattern] => #^baza/jk_yanila_forest/promo$#u [host] => [route] => landing/default/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /baza/jk_yanila_forest/promo/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [175] => yii\web\UrlRule Object ( [name] => manifest.json [pattern] => #^manifest\.json$#u [host] => [route] => webpush/config/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /manifest.json/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [176] => yii\web\UrlRule Object ( [name] => webpush/set/user [pattern] => #^webpush/set/user$#u [host] => [route] => webpush/create/user [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /webpush/set/user/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [177] => yii\web\UrlRule Object ( [name] => [pattern] => #^$#u [host] => [route] => site/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [178] => yii\web\UrlRule Object ( [name] => news.rss [pattern] => #^news\.rss$#u [host] => [route] => rss/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /news.rss/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [179] => yii\web\UrlRule Object ( [name] => turbo.rss [pattern] => #^turbo\.rss$#u [host] => [route] => rss/turbo [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /turbo.rss/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [180] => yii\web\UrlRule Object ( [name] => test [pattern] => #^test$#u [host] => [route] => test/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /test/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [181] => yii\web\UrlRule Object ( [name] => video/get-cam-video/
[pattern] => #^video/get-cam-video/(?P
\d+)$#u [host] => [route] => video/get-cam-video [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [abf396750] => id ) [_template:yii\web\UrlRule:private] => /video/get-cam-video/
/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [id] => #^\d+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [182] => yii\web\UrlRule Object ( [name] => news_zen.rss [pattern] => #^news_zen\.rss$#u [host] => [route] => zen/feed [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /news_zen.rss/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [183] => yii\web\UrlRule Object ( [name] => video_zen.rss [pattern] => #^video_zen\.rss$#u [host] => [route] => zen/video [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /video_zen.rss/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [184] => yii\web\UrlRule Object ( [name] => subscribe-update/
[pattern] => #^subscribe-update/(?P
([A-z0-9]+))$#u [host] => [route] => site/subscribe-update [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [ad1b862b8] => hash ) [_template:yii\web\UrlRule:private] => /subscribe-update/
/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [hash] => #^([A-z0-9]+)$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [185] => yii\web\UrlRule Object ( [name] =>
/get-chart/ [pattern] => #^(?P
egrn)/get-chart$#u [host] => [route] =>
/get-chart [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/get-chart/ [_routeRule:yii\web\UrlRule:private] => #^(?P
egrn)/get-chart$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [186] => yii\web\UrlRule Object ( [name] =>
/sales-leaders/ [pattern] => #^(?P
egrn)/sales-leaders$#u [host] => [route] =>
/sales-leaders [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/sales-leaders/ [_routeRule:yii\web\UrlRule:private] => #^(?P
egrn)/sales-leaders$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [187] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
egrn)/(?P
[^\/]+)$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
egrn)/(?P
[^\/]+)$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [188] => yii\web\UrlRule Object ( [name] =>
/telegram/ [pattern] => #^(?P
ads-telegram-subscribe)/telegram$#u [host] => [route] =>
/telegram [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/telegram/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/telegram$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [189] => yii\web\UrlRule Object ( [name] =>
/set-webhook/ [pattern] => #^(?P
ads-telegram-subscribe)/set-webhook$#u [host] => [route] =>
/set-webhook [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/set-webhook/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/set-webhook$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [190] => yii\web\UrlRule Object ( [name] =>
/delete-webhook/ [pattern] => #^(?P
ads-telegram-subscribe)/delete-webhook$#u [host] => [route] =>
/delete-webhook [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/delete-webhook/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/delete-webhook$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [191] => yii\web\UrlRule Object ( [name] =>
/info-webhook/ [pattern] => #^(?P
ads-telegram-subscribe)/info-webhook$#u [host] => [route] =>
/info-webhook [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/info-webhook/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/info-webhook$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [192] => yii\web\UrlRule Object ( [name] =>
/telegram-list-subscribe/ [pattern] => #^(?P
ads-telegram-subscribe)/telegram-list-subscribe$#u [host] => [route] =>
/telegram-list-subscribe [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/telegram-list-subscribe/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/telegram-list-subscribe$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [193] => yii\web\UrlRule Object ( [name] =>
/send-message-with-plans/ [pattern] => #^(?P
ads-telegram-subscribe)/send-message-with-plans$#u [host] => [route] =>
/send-message-with-plans [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/send-message-with-plans/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/send-message-with-plans$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [194] => yii\web\UrlRule Object ( [name] =>
/send-message-photo/ [pattern] => #^(?P
ads-telegram-subscribe)/send-message-photo$#u [host] => [route] =>
/send-message-photo [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/send-message-photo/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/send-message-photo$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [195] => yii\web\UrlRule Object ( [name] =>
/delete-all-subscribers/ [pattern] => #^(?P
ads-telegram-subscribe)/delete-all-subscribers$#u [host] => [route] =>
/delete-all-subscribers [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/delete-all-subscribers/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ads-telegram-subscribe)/delete-all-subscribers$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [196] => yii\web\UrlRule Object ( [name] =>
[pattern] => #^(?P
html)$#u [host] => [route] =>
/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
html)/index$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [197] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
html)/(?P
\w+)$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
html)/(?P
\w+)$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [198] => yii\web\UrlRule Object ( [name] => robots.txt [pattern] => #^robots\.txt$#u [host] => [route] => robots/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /robots.txt/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [199] => yii\web\UrlRule Object ( [name] => notification/company/
/unsubscribe [pattern] => #^notification/company/(?P
[A-z0-9-_]+)/unsubscribe$#u [host] => [route] => notification-company/unsubscribe [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a5f37a13b] => token ) [_template:yii\web\UrlRule:private] => /notification/company/
/unsubscribe/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [token] => #^[A-z0-9-_]+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [200] => yii\web\UrlRule Object ( [name] => notification/company/
/subscribe [pattern] => #^notification/company/(?P
[A-z0-9-_]+)/subscribe$#u [host] => [route] => notification-company/subscribe [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a5f37a13b] => token ) [_template:yii\web\UrlRule:private] => /notification/company/
/subscribe/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [token] => #^[A-z0-9-_]+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [201] => yii\web\UrlRule Object ( [name] => notification/company/
/form [pattern] => #^notification/company/(?P
[A-z0-9-_]+)/form$#u [host] => [route] => notification-company/form [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => GET ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a5f37a13b] => token ) [_template:yii\web\UrlRule:private] => /notification/company/
/form/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [token] => #^[A-z0-9-_]+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [202] => yii\web\UrlRule Object ( [name] => notification/company/
/create [pattern] => #^notification/company/(?P
[A-z0-9-_]+)/create$#u [host] => [route] => notification-company/create [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a5f37a13b] => token ) [_template:yii\web\UrlRule:private] => /notification/company/
/create/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [token] => #^[A-z0-9-_]+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [203] => yii\web\UrlRule Object ( [name] => notification/company/
/unsubscribe-notification [pattern] => #^notification/company/(?P
[A-z0-9-_]+)/unsubscribe-notification$#u [host] => [route] => notification-company/unsubscribe-notification [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a5f37a13b] => token ) [_template:yii\web\UrlRule:private] => /notification/company/
/unsubscribe-notification/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( [token] => #^[A-z0-9-_]+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [204] => yii\web\UrlRule Object ( [name] =>
[pattern] => #^(?P
ajax-template)$#u [host] => [route] =>
/index [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ajax-template)/index$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [205] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
ajax-template)/(?P
[A-z0-9\-_]+)$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ajax-template)/(?P
[A-z0-9\-_]+)$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [206] => yii\web\UrlRule Object ( [name] =>
/
/
[pattern] => #^(?P
ajax-template)/(?P
[A-z0-9\-_]+)/(?P
[A-z0-9\-_]+)$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action [aa4fa7c89] => param ) [_template:yii\web\UrlRule:private] => /
/
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
ajax-template)/(?P
[A-z0-9\-_]+)$#u [_paramRules:yii\web\UrlRule:private] => Array ( [param] => #^[A-z0-9\-_]+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [207] => yii\web\UrlRule Object ( [name] => quiz-job [pattern] => #^quiz-job$#u [host] => [route] => quiz-job/filter [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /quiz-job/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [208] => yii\web\UrlRule Object ( [name] => faq [pattern] => #^faq$#u [host] => [route] => faq/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( ) [_template:yii\web\UrlRule:private] => /faq/ [_routeRule:yii\web\UrlRule:private] => [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( ) ) [209] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
auth)/(?P
(login|reg|restore|logout|activation|restore-complete))$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => GET ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/(?P
(login|reg|restore|logout|activation|restore-complete))$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [210] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
auth)/(?P
logout)$#u [host] => [route] =>
/logout [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/logout$#u [_paramRules:yii\web\UrlRule:private] => Array ( [action] => #^logout$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [211] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
auth)/(?P
login)$#u [host] => [route] =>
/login-up [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/login-up$#u [_paramRules:yii\web\UrlRule:private] => Array ( [action] => #^login$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [212] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
auth)/(?P
reg)$#u [host] => [route] =>
/reg-up [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/reg-up$#u [_paramRules:yii\web\UrlRule:private] => Array ( [action] => #^reg$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [213] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
auth)/(?P
restore)$#u [host] => [route] =>
/restore-up [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/restore-up$#u [_paramRules:yii\web\UrlRule:private] => Array ( [action] => #^restore$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [214] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
auth)/(?P
restore-form)$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/(?P
restore-form)$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [215] => yii\web\UrlRule Object ( [name] =>
/
/
[pattern] => #^(?P
auth)/(?P
login-provider)/(?P
\w+)$#u [host] => [route] =>
/
[defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => GET ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action [ae19d9ad2] => service ) [_template:yii\web\UrlRule:private] => /
/
/
/ [_routeRule:yii\web\UrlRule:private] => #^(?P
auth)/(?P
login-provider)$#u [_paramRules:yii\web\UrlRule:private] => Array ( [service] => #^\w+$#u ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
[action] =>
) ) [216] => yii\web\UrlRule Object ( [name] =>
[pattern] => #^(?P
(po_metro|po_gorodam|po_rajonam|po_shosse|po_zhd|mck|mcd|po_okrugam))$#u [host] => [route] => novosListing/
/index [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/ [_routeRule:yii\web\UrlRule:private] => #^novosListing/(?P
(po_metro|po_gorodam|po_rajonam|po_shosse|po_zhd|mck|mcd|po_okrugam))/index$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [217] => yii\web\UrlRule Object ( [name] =>
[pattern] => #^(?P
ipoteka)$#u [host] => [route] => novosListing/
/index [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => GET ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/ [_routeRule:yii\web\UrlRule:private] => #^novosListing/(?P
ipoteka)/index$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [218] => yii\web\UrlRule Object ( [name] =>
[pattern] => #^(?P
ipoteka)$#u [host] => [route] => novosListing/
/novos-list [defaults] => Array ( ) [suffix] => [verb] => Array ( [0] => POST ) [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller ) [_template:yii\web\UrlRule:private] => /
/ [_routeRule:yii\web\UrlRule:private] => #^novosListing/(?P
ipoteka)/novos-list$#u [_paramRules:yii\web\UrlRule:private] => Array ( ) [_routeParams:yii\web\UrlRule:private] => Array ( [controller] =>
) ) [219] => yii\web\UrlRule Object ( [name] =>
/
[pattern] => #^(?P
ipoteka)/(?P
voennaya_ipoteka)$#u [host] => [route] => novosListing/
/war [defaults] => Array ( ) [suffix] => [verb] => [mode] => [encodeParams] => 1 [normalizer] => [createStatus:protected] => [placeholders:protected] => Array ( [a4cf2669a] => controller [a47cc8c92] => action ) [_template:yii\web\UrlRule:private] => /
/
/ [_routeRule:yii\web\UrlRule:private] => #^novosListing/(?P