1 00:00:00,000 --> 00:00:09,500 >> [Музыка гуляе] 2 00:00:09,500 --> 00:00:12,350 >> ZAMYLA Чан: Гэта была міс Скарлет з падсвечнікам. 3 00:00:12,350 --> 00:00:13,560 Дэтэктыўны раман? 4 00:00:13,560 --> 00:00:15,030 Ну, мы збіраемся высветліць. 5 00:00:15,030 --> 00:00:20,870 У настольнай гульні Clue, вы, магчыма, быць нададзена фізічнай чырвоны малюнак. 6 00:00:20,870 --> 00:00:24,120 І, што выява вельмі чырвоны і плямістыя, і ваша задача, каб 7 00:00:24,120 --> 00:00:25,490 выявіць схаваныя паведамленні. 8 00:00:25,490 --> 00:00:29,740 І, як правіла, вы забяспечаны чырвоны павелічальнае шкло, ці чырвоны экран 9 00:00:29,740 --> 00:00:31,410 паказваюць, што схаванае пасланне. 10 00:00:31,410 --> 00:00:33,340 Ну, мы збіраемся, каб імітаваць, што. 11 00:00:33,340 --> 00:00:37,960 >> У дэтэктыўны раман, вам даюць растравы малюнак , Які выглядае вельмі плямістым і чырвоны, 12 00:00:37,960 --> 00:00:43,430 а затым запусціць праграму дэтэктыўны раман выявіць схаванае паведамленне. 13 00:00:43,430 --> 00:00:45,650 >> Так давайце разбярэм гэта ў крокаў. 14 00:00:45,650 --> 00:00:50,390 Па-першае, вы хочаце, каб адкрыць файл - прыкмета таго, што вы атрымалі. 15 00:00:50,390 --> 00:00:53,880 А потым яшчэ і стварыць Прысуд растравы файл. 16 00:00:53,880 --> 00:00:58,240 Тады вы хочаце абнавіць растравы малюнак загаловак інфармацыю для Прысуд OUTFILE. 17 00:00:58,240 --> 00:00:59,920 Больш падрабязна аб гэтым пазней. 18 00:00:59,920 --> 00:01:04,319 А потым вы збіраецеся чытаць у ключ, Scanline, піксель за пікселем, 19 00:01:04,319 --> 00:01:07,320 змены колеру пікселяў, як неабходна, і ліст 20 00:01:07,320 --> 00:01:08,960 тыя, у прысудзе - 21 00:01:08,960 --> 00:01:12,000 піксель за пікселем ў Прысуд Scanline. 22 00:01:12,000 --> 00:01:13,780 >> Як мы пачынаем ісці з гэтай нагоды? 23 00:01:13,780 --> 00:01:16,940 Ну, на шчасце, у нас ёсць copy.c у кодзе размеркавання. 24 00:01:16,940 --> 00:01:21,240 І гэта збіраецца даказаць вельмі карысныя для нас. 25 00:01:21,240 --> 00:01:29,700 Copy.c адкрывае файл, счытвае, што Загаловак INFILE, а затым абнаўляе 26 00:01:29,700 --> 00:01:31,070 Загаловак OUTFILE ст. 27 00:01:31,070 --> 00:01:37,010 А потым ён чытае кожны піксель ў Scanline, піксель за пікселем, а затым 28 00:01:37,010 --> 00:01:42,390 піша, што піксель ў выходны файл. 29 00:01:42,390 --> 00:01:45,020 >> Такім чынам, ваш першы крок мог бы у тым, каб запусціць наступнае 30 00:01:45,020 --> 00:01:46,420 Каманда ў тэрмінале - 31 00:01:46,420 --> 00:01:50,270 ча copy.c whodunit.c. 32 00:01:50,270 --> 00:01:55,320 Гэта створыць копію copy.c імя whodunit.c. 33 00:01:55,320 --> 00:01:58,320 Такім чынам, наш першы крок, каб адкрыць файл, ну, ёсць дакладная 34 00:01:58,320 --> 00:02:00,070 копія, што ў copy.c. 35 00:02:00,070 --> 00:02:03,360 Таму я пакідаю вас паглядзець на гэта. 36 00:02:03,360 --> 00:02:07,860 >> Тое, што мы маем справу з такім PSET будзе файлавы ўвод / выснова, у асноўным прымаючы файлы, 37 00:02:07,860 --> 00:02:10,229 чытанне, пісьмо, іх рэдагавання. 38 00:02:10,229 --> 00:02:12,650 Як вы ўпершыню адкрываеце файл? 39 00:02:12,650 --> 00:02:16,800 Ну, вы збіраецеся абвясціць файл паказальнік, а затым вы называеце 40 00:02:16,800 --> 00:02:18,670 Функцыя Еореп. 41 00:02:18,670 --> 00:02:23,150 Перайдзіце ў шляху, або імя, што файл, а затым рэжым, які вы хочаце 42 00:02:23,150 --> 00:02:24,700 для адкрыцця гэтага файла цалі 43 00:02:24,700 --> 00:02:28,620 Пас у г адкрые foo.bmp для чытання. 44 00:02:28,620 --> 00:02:35,670 У той час як Еореп з праходжаннем ў З будуць адкрыты bar.bmp, для запісу файла і 45 00:02:35,670 --> 00:02:37,020 на самай справе рэдагавання. 46 00:02:37,020 --> 00:02:41,970 >> Так што цяпер мы адкрылі файл, наш Наступным крокам з'яўляецца абнаўленне інфармацыі загалоўка 47 00:02:41,970 --> 00:02:43,230 для OUTFILE. 48 00:02:43,230 --> 00:02:44,610 Што такое інфармацыйная загаловак? 49 00:02:44,610 --> 00:02:48,160 Ну, па-першае, мы павінны ведаць, што растравы малюнак. 50 00:02:48,160 --> 00:02:51,000 Растравы малюнак просты размяшчэнне байтаў. 51 00:02:51,000 --> 00:02:55,480 І яны абвешчаныя ў гэтым файле тут, bmp.h, з кучай 52 00:02:55,480 --> 00:02:58,610 Інфармацыя пра тое, што растравы малюнак на самой справе складаецца з. 53 00:02:58,610 --> 00:03:05,730 Але тое, што мы сапраўды клапоцімся аб тым, загаловак графічнага файла, прама тут, і 54 00:03:05,730 --> 00:03:08,460 растравы інфармацыі загалоўка, тут. 55 00:03:08,460 --> 00:03:13,170 Загаловак складаецца з некалькіх зменныя, якія апынуцца вельмі карыснымі. 56 00:03:13,170 --> 00:03:18,400 Існуе biSizeImage, якая з'яўляецца Агульны памер выявы ў байтах. 57 00:03:18,400 --> 00:03:20,890 І гэта ўключае ў сябе пікселяў і водступы. 58 00:03:20,890 --> 00:03:24,210 Запаўненне вельмі важна, але мы вернемся да гэтага пазней. 59 00:03:24,210 --> 00:03:30,000 >> BiWidth ўяўляе шырыню выявы ў пікселях мінус запаўнення. 60 00:03:30,000 --> 00:03:34,220 BiHeight затым таксама вышыня выявы ў пікселях. 61 00:03:34,220 --> 00:03:38,240 І тады BITMAPFILEHEADER і BITMAPINFOHEADER, як я ўжо казаў 62 00:03:38,240 --> 00:03:40,900 раней, тых, прадстаўлены як структуры. 63 00:03:40,900 --> 00:03:45,410 Такім чынам, вы не можаце атрымаць доступ загаловак файла Сам, але вы хочаце, каб дабрацца да 64 00:03:45,410 --> 00:03:47,370 гэтыя зменныя ўнутры. 65 00:03:47,370 --> 00:03:48,170 >> ОК. 66 00:03:48,170 --> 00:03:50,600 Так як жа мы абнаўляем інфармацыю загалоўка? 67 00:03:50,600 --> 00:03:54,020 Ну, па-першае, мы павінны бачыць ці мы трэба змяніць любую інфармацыю ад 68 00:03:54,020 --> 00:03:58,480 входной_файл, ключ, каб выходной_файл, прысуд. 69 00:03:58,480 --> 00:04:00,250 Што-небудзь змяняецца ў гэтым выпадку? 70 00:04:00,250 --> 00:04:04,320 Ну, на самай справе не, таму што мы збіраемся быць толькі змяняючы колеру. 71 00:04:04,320 --> 00:04:07,550 Мы не збіраемся быць змены файла памер, памер малюнка, шырыня, 72 00:04:07,550 --> 00:04:08,310 або вышыня. 73 00:04:08,310 --> 00:04:14,010 Так што ты ў парадку на дадзены момант па проста капіраванне кожнага пікселя. 74 00:04:14,010 --> 00:04:14,840 >> ОК. 75 00:04:14,840 --> 00:04:20,720 А цяпер давайце паглядзім, як мы на самай справе можаце прачытаць кожны піксель з файла. 76 00:04:20,720 --> 00:04:23,640 Яшчэ адзін файл функцыя ўводу / вываду ўступіць у гульню - 77 00:04:23,640 --> 00:04:24,700 FREAD. 78 00:04:24,700 --> 00:04:28,440 Яна займае ў паказальнік на структуры , Які будзе ўтрымліваць байты, 79 00:04:28,440 --> 00:04:30,110 вы чытаеце. 80 00:04:30,110 --> 00:04:31,890 Такім чынам, вы чытаеце ў гэта. 81 00:04:31,890 --> 00:04:36,090 А потым вы праходзіце ў памеры, які з'яўляецца памер кожнага элемента, які вы 82 00:04:36,090 --> 00:04:37,360 хочаце чытаць. 83 00:04:37,360 --> 00:04:40,640 Тут функцыя SizeOf спатрэбіцца. 84 00:04:40,640 --> 00:04:45,570 Затым праходзьце ў колькасці, якія азначае колькасць элементаў 85 00:04:45,570 --> 00:04:47,480 Памер чытаць. 86 00:04:47,480 --> 00:04:51,180 І, нарэшце, inptr, які файл паказальнік, які вы 87 00:04:51,180 --> 00:04:52,530 буду чытаць з. 88 00:04:52,530 --> 00:04:58,650 Так усе гэтыя элементы знаходзяцца ўнутры inptr і яны збіраюцца дадзеных. 89 00:04:58,650 --> 00:05:01,660 >> Давайце паглядзім на невялікі прыклад. 90 00:05:01,660 --> 00:05:07,590 Калі я хачу прачытаць у дадзеных двух сабак, ну, я магу зрабіць гэта адным з двух спосабаў. 91 00:05:07,590 --> 00:05:15,250 Я магу альбо чытаць у двух аб'ектаў памерам сабака з маёй inptr, ці я магу чытаць 92 00:05:15,250 --> 00:05:19,280 ў адным аб'екце памер двух сабак. 93 00:05:19,280 --> 00:05:23,580 Такім чынам, вы бачыце, што ў залежнасці ад спосабу што вы наладжваеце памер і колькасць, вам 94 00:05:23,580 --> 00:05:25,840 можна прачытаць у той жа лік байтаў. 95 00:05:25,840 --> 00:05:28,720 96 00:05:28,720 --> 00:05:33,020 >> Так што цяпер, давайце зменім колеру кропак, як нам трэба. 97 00:05:33,020 --> 00:05:37,320 Калі вы паглядзіце на bmp.h зноў, то вы ўбачыце, што на дне 98 00:05:37,320 --> 00:05:42,920 RGBTRIPLEs з'яўляюцца яшчэ адным структура, дзе яны складаюцца з трох байтаў. 99 00:05:42,920 --> 00:05:49,220 Адзін з іх, rgbtBlue, rgbtGreen і rgbtRed. 100 00:05:49,220 --> 00:05:52,480 Такім чынам, кожны з іх уяўляе сабой суму з блакітнай, колькасць зялёным, а 101 00:05:52,480 --> 00:05:57,250 колькасць чырвонага ўнутры гэтага пікселя, дзе кожная сума прадстаўлена 102 00:05:57,250 --> 00:05:58,670 шаснаццатковы лік. 103 00:05:58,670 --> 00:06:04,370 >> Так ff0000 будзе сіні колер, таму што ён ідзе ад сіняга, 104 00:06:04,370 --> 00:06:05,850 на зялёны, на чырвоны. 105 00:06:05,850 --> 00:06:09,300 А потым усё е будзе белы. 106 00:06:09,300 --> 00:06:13,440 Давайце зірнем на smiley.bmp, які у вас ёсць у вашым кодзе размеркавання. 107 00:06:13,440 --> 00:06:15,690 Калі вы адкрыеце яго ў проста малюнак глядач, то вы будзеце 108 00:06:15,690 --> 00:06:17,080 проста бачыце чырвоны смайлік. 109 00:06:17,080 --> 00:06:20,380 Але, прымаючы больш глыбокае апусканне ў, мы будзем бачыць, што структура 110 00:06:20,380 --> 00:06:22,340 з гэта ўсяго толькі пікселяў. 111 00:06:22,340 --> 00:06:25,880 У нас ёсць белыя пікселі, а затым чырвоныя пікселяў. 112 00:06:25,880 --> 00:06:31,000 Белы, FFFFFF, а затым усё чырвоныя пікселяў Я пафарбаваны ў для вас 113 00:06:31,000 --> 00:06:35,440 тут, і вы бачыце, што яны 0000ff. 114 00:06:35,440 --> 00:06:39,760 Нулявы сіні, нулявы зялёны і поўны чырвоны. 115 00:06:39,760 --> 00:06:45,350 А так як смайлік ў восем пікселяў у шырыню, мы не маем ніякага запаўнення. 116 00:06:45,350 --> 00:06:47,360 Добра. 117 00:06:47,360 --> 00:06:53,310 >> Так што, калі б я павінен быў прызначыць розныя значэнні да RGBTRIPLE, і я хацеў 118 00:06:53,310 --> 00:06:58,350 зрабіць яго зялёным, тое, што я хацеў бы зрабіць гэта Я б аб'явіць RGBTRIPLE, названы 119 00:06:58,350 --> 00:07:02,660 патройны, а затым, каб атрымаць доступ кожны байт у межах гэтай структуры I 120 00:07:02,660 --> 00:07:04,030 будзе выкарыстоўваць аператар кропкі. 121 00:07:04,030 --> 00:07:08,430 Так triple.rgbtBlue, я магу прызначаць што ў 0. 122 00:07:08,430 --> 00:07:13,460 Зялёны я магу прызначыць яго на поўны - любы лік, сапраўды, ад 0 да FF. 123 00:07:13,460 --> 00:07:15,470 А потым чырвоны, я таксама збіраюся сказаць 0. 124 00:07:15,470 --> 00:07:19,160 Такім чынам, што дае мне зялёны піксель. 125 00:07:19,160 --> 00:07:23,030 >> Далей, то, што, калі я хачу, каб праверыць значэнне чагосьці? 126 00:07:23,030 --> 00:07:27,250 Я мог мець тое, што правярае Ці значэнне rgbtBlue патройны з'яўляецца 127 00:07:27,250 --> 00:07:31,080 і далей, а затым раздрукаваць, "Я адчуваю сябе сіні ", у якасці выніку. 128 00:07:31,080 --> 00:07:35,640 Цяпер, гэта не абавязкова азначае, што піксель сіняга колеру, ці не так? 129 00:07:35,640 --> 00:07:40,060 Таму што зялёныя і чырвоныя значэнні пікселя таксама можа мець не-0 значэння. 130 00:07:40,060 --> 00:07:43,470 Усё, што гэта значыць, і ўсё, што гэта праверка на гэта 131 00:07:43,470 --> 00:07:45,610 для поўнага сіняга колеру. 132 00:07:45,610 --> 00:07:50,050 Але ўсё пікселі таксама можа мець частковае каляровыя значэнні, як гэта 133 00:07:50,050 --> 00:07:52,180 Наступны прыклад тут. 134 00:07:52,180 --> 00:07:55,400 >> Гэта крыху больш складана ўбачыць што гэты вобраз цяпер. 135 00:07:55,400 --> 00:08:00,320 Гэта выглядае крыху больш, як clue.bmp, што вам будзе прадастаўлена. 136 00:08:00,320 --> 00:08:03,600 Цяпер, фізічна, вы можаце вырашыць гэтую праблему, таму што ёсць шмат чырвонага, па 137 00:08:03,600 --> 00:08:07,040 падняўшы чырвоны экран з выявай так якія могуць з'явіцца іншыя колеры. 138 00:08:07,040 --> 00:08:10,968 Так як жа нам імітаваць гэта з с? 139 00:08:10,968 --> 00:08:15,640 Ну, мы маглі б выдаліць усе чырвоныя з малюнка цалкам. 140 00:08:15,640 --> 00:08:21,870 І так рабіць, што мы кожны набор чырвоны значэнне пікселя ў 0. 141 00:08:21,870 --> 00:08:25,020 І таму малюнак будзе выглядаць трохі трохі, як гэта, дзе нас няма ніякай чырвоны 142 00:08:25,020 --> 00:08:26,300 б там ні было. 143 00:08:26,300 --> 00:08:29,390 >> Мы можам убачыць схаваны паведамленне пра трохі больш ясна цяпер. 144 00:08:29,390 --> 00:08:31,730 Гэта яшчэ адзін смайлік. 145 00:08:31,730 --> 00:08:33,870 Ці, можа быць, мы маглі б выкарыстоўваць іншы метад. 146 00:08:33,870 --> 00:08:36,480 Можа быць, мы маглі б вызначыць усе чырвоныя пікселяў - 147 00:08:36,480 --> 00:08:41,100 гэта значыць, усе пікселі з 0 сіні, 0 зялёны, і 0 чырвоны - 148 00:08:41,100 --> 00:08:43,169 і змяніць тыя на белы. 149 00:08:43,169 --> 00:08:45,470 І наша малюнак можа выглядаць нешта накшталт гэтага. 150 00:08:45,470 --> 00:08:48,250 Крыху лягчэй ўбачыць. 151 00:08:48,250 --> 00:08:51,170 >> Ёсць шмат іншых спосабаў раскрыць Сакрэтнае паведамленне, а таксама, 152 00:08:51,170 --> 00:08:53,730 справу з каляровай маніпуляцыі. 153 00:08:53,730 --> 00:08:57,050 Можа быць, вы маглі б выкарыстоўваць адзін з метадаў што я ўжо згадваў вышэй. 154 00:08:57,050 --> 00:08:59,600 І акрамя таго, вы можаце для павышэння некаторых кветак 155 00:08:59,600 --> 00:09:02,620 і прыцягнуць вінаватых па-за. 156 00:09:02,620 --> 00:09:06,190 >> Так што цяпер мы змянілі піксель колер, затым мы проста трэба запісаць іх 157 00:09:06,190 --> 00:09:08,500 ў да радкі разгорткі, піксель за пікселем. 158 00:09:08,500 --> 00:09:11,860 І яшчэ раз, вы хочаце, каб азірнуцца назад каб copy.c, калі вы не скапіявалі 159 00:09:11,860 --> 00:09:18,170 гэта ўжо, і паглядзець на FWRITE Функцыя, якая прымае дадзеныя, паказальнік 160 00:09:18,170 --> 00:09:23,230 да структуры, якая змяшчае байт што вы чытаеце з, памеру 161 00:09:23,230 --> 00:09:26,610 элементы, колькасць элементаў, а затым outptr - 162 00:09:26,610 --> 00:09:29,450 прызначэнне гэтых файлаў. 163 00:09:29,450 --> 00:09:34,010 >> Пасля напісання ў пікселях, вы будзеце таксама павінны напісаць у абіўцы. 164 00:09:34,010 --> 00:09:34,970 Што такое абіўка? 165 00:09:34,970 --> 00:09:38,670 Ну, кожны rgbt пікселяў тры байта. 166 00:09:38,670 --> 00:09:43,670 Але, Scanline для растравага малюнка Павінна быць кратна чатыром байтах. 167 00:09:43,670 --> 00:09:47,650 І калі колькасць пікселяў ня кратна чатыром, то нам трэба дадаць 168 00:09:47,650 --> 00:09:48,880 гэта абіўка. 169 00:09:48,880 --> 00:09:51,420 Запаўненне проста прадстаўлена 0s. 170 00:09:51,420 --> 00:09:54,380 Такім чынам, як мы пішам, або чытаць гэта? 171 00:09:54,380 --> 00:09:59,280 Ну, атрымліваецца, што вы не можаце фактычна FREAD абіўка, але вы можаце 172 00:09:59,280 --> 00:10:00,970 вылічыць яго. 173 00:10:00,970 --> 00:10:04,400 >> У гэтым выпадку, ключ і прысуд маюць аднолькавую шырыню, так 174 00:10:04,400 --> 00:10:05,910 абіўка тое ж самае. 175 00:10:05,910 --> 00:10:09,370 І абіўка, як вы ўбачыце у copy.c, разлічваецца 176 00:10:09,370 --> 00:10:11,790 з прыведзенай ніжэй формуле - 177 00:10:11,790 --> 00:10:16,690 bi.biWidth раз SizeOf (RGBTRIPLE) будзе даць нам, колькі байтаў BMP 178 00:10:16,690 --> 00:10:18,280 мае ў кожнай радку. 179 00:10:18,280 --> 00:10:21,890 Адтуль, модуляў і вылікі з 4 можна разлічыць як 180 00:10:21,890 --> 00:10:25,610 колькасць байтаў павінны быць дададзены так, каб кратным байт на 181 00:10:25,610 --> 00:10:27,250 кожны радок з'яўляецца чатыры. 182 00:10:27,250 --> 00:10:30,490 >> Цяпер, калі ў нас ёсць формула для колькі абіўка нам трэба, цяпер 183 00:10:30,490 --> 00:10:31,610 мы можам запісаць яго. 184 00:10:31,610 --> 00:10:34,080 Зараз, я ўжо казаў, абіўка знаходзіцца ўсяго 0s. 185 00:10:34,080 --> 00:10:39,730 Так што ў гэтым выпадку мы проста пакласці сімвал, у дадзеным выпадку 0, у нашай 186 00:10:39,730 --> 00:10:41,710 outptr - наш выхадны файл. 187 00:10:41,710 --> 00:10:47,530 Так што можа быць проста fputc 0, коска outptr. 188 00:10:47,530 --> 00:10:52,400 >> Так, у той час як мы чыталі ў нашых , Файл уводу / высновы сачыў за нашай 189 00:10:52,400 --> 00:10:57,440 Становішча ў гэтых файлах з чымсьці называецца індыкатар пазіцыі файла. 190 00:10:57,440 --> 00:10:59,350 Думайце пра яго, як курсор. 191 00:10:59,350 --> 00:11:03,550 У асноўным, гэта сродкі, кожны раз, калі што мы FREAD, але ў нас ёсць 192 00:11:03,550 --> 00:11:05,671 кантроль над ім, таксама. 193 00:11:05,671 --> 00:11:11,030 >> Для перамяшчэння індыкатар пазіцыі файла, Вы можаце выкарыстоўваць функцыю FSEEK. 194 00:11:11,030 --> 00:11:15,600 Дзе inptr ўяўляе файл паказальнік, які вы шукаеце ў, 195 00:11:15,600 --> 00:11:20,370 сума колькасць байт, што вы хочаце, каб перамясціць курсор, а затым з 196 00:11:20,370 --> 00:11:23,470 ставіцца да апорнай кропцы адкуль курсор знаходзіцца. 197 00:11:23,470 --> 00:11:26,770 Калі вы перадаеце ў SEEK_CUR, што ўяўляе сабой ток 198 00:11:26,770 --> 00:11:28,100 становішча ў файле. 199 00:11:28,100 --> 00:11:31,020 Ці вы можаце выкарыстоўваць некаторыя іншыя параметры. 200 00:11:31,020 --> 00:11:35,400 Такім чынам, мы, магчыма, захочаце выкарыстоўваць FSEEK прапусціць над пракладкай файла ст. 201 00:11:35,400 --> 00:11:39,410 І зноў жа, калі вы затрымаліся, ёсць прыклад, што ў copy.c. 202 00:11:39,410 --> 00:11:43,260 >> Так што цяпер мы адкрылі файл, разгадка, і прысуд. 203 00:11:43,260 --> 00:11:46,450 Мы абнавілі інфармацыю загалоўка для наш вердыкт, таму што кожны 204 00:11:46,450 --> 00:11:48,730 бітаў карта мае патрэбу ў загаловак. 205 00:11:48,730 --> 00:11:52,280 Мы то чытайце ў разгадка'S Scanline, піксель за пікселем, змяненне 206 00:11:52,280 --> 00:11:55,210 кожны колер па меры неабходнасці, і пісаць тыя, у 207 00:11:55,210 --> 00:11:57,340 Прысуд, піксель за пікселем. 208 00:11:57,340 --> 00:12:01,550 Як толькі вы адкрываеце прысуд, вы можаце бачыць, хто злачынец, або ў чым сакрэт 209 00:12:01,550 --> 00:12:02,850 паведамленне. 210 00:12:02,850 --> 00:12:05,550 Мяне клічуць Zamyla, і гэта было дэтэктыўны раман. 211 00:12:05,550 --> 00:12:12,864