--------------------------------------------------------------------------------------------------------------- INITIALIZING VIDBOT, v1.7.1... --------------------------------------------------------------------------------------------------------------- [14:07:55.505] Vidbot :: start() [14:07:55.506] Vidbot :: _next(), _stepIndex:0 of 4 [14:07:55.506] index :: _onStepStarted_vidbot(), step: 1 [14:07:55.508] Vidbot :: step[0], label:Initializing Core [14:07:55.518] index :: _onStepProgress_vidbot(), percent: 20 [14:07:55.518] Vidbot :: _parse() [14:07:55.519] index :: _onStepProgress_vidbot(), percent: 40 [14:07:55.520] Vidbot :: _validate() [14:07:55.520] index :: _onStepProgress_vidbot(), percent: 60 [14:07:55.521] Vidbot :: _fonts() [14:07:55.521] FabricFontManager :: add(), id: SourceSansPro-Bold [14:07:55.521] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Bold.ttf [14:07:55.530] FabricFontManager :: add(), id: SourceSansPro-Light [14:07:55.531] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Light.ttf [14:07:55.532] FabricFontManager :: add(), id: DINOT-Bold [14:07:55.532] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Bold.otf [14:07:55.532] FabricFontManager :: add(), id: DINOT-Light [14:07:55.533] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Light.otf [14:07:55.533] FabricFontManager :: add(), id: TradeGothicLTStd-Regular [14:07:55.534] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Regular.otf [14:07:55.534] FabricFontManager :: add(), id: TradeGothicLTStd-Bold [14:07:55.534] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Bold.otf [14:07:55.536] index :: _onStepProgress_vidbot(), percent: 80 [14:07:55.536] Vidbot :: _clips() [14:07:55.536] StreamManager :: add(), id:audio_vo, type:audio [14:07:55.537] AudioClip[audio_vo] :: constructor() [14:07:55.537] InputStream[audio_vo] :: constructor() [14:07:55.537] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'audio_vo', clipId: null } [14:07:55.540] StreamManager :: add(), id:bg_music, type:audio [14:07:55.540] AudioClip[bg_music] :: constructor() [14:07:55.540] InputStream[bg_music] :: constructor() [14:07:55.540] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'bg_music', clipId: null } [14:07:55.541] StreamManager :: add(), id:simplefadedisplay, type:canvas [14:07:55.541] CanvasStream[canvas_866475458294] :: constructor() [14:07:55.541] InputStream[canvas_866475458294] :: constructor() [14:07:55.630] KenBurnsSlideshow[simplefadedisplay] :: constructor() [14:07:55.630] Overlay[simplefadedisplay] :: constructor() [14:07:55.630] CanvasClip[simplefadedisplay] :: constructor() [14:07:55.631] Clip[simplefadedisplay] :: constructor() [14:07:55.631] clip:"simplefadedisplay" added to stream:"canvas_866475458294" [14:07:55.631] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_866475458294', clipId: 'simplefadedisplay' } [14:07:55.631] StreamManager :: add(), id:caption, type:canvas [14:07:55.631] RenCaption[caption] :: constructor() [14:07:55.632] Ren[caption] :: constructor() [14:07:55.632] Overlay[caption] :: constructor() [14:07:55.632] CanvasClip[caption] :: constructor() [14:07:55.632] Clip[caption] :: constructor() [14:07:55.632] clip:"caption" added to stream:"canvas_866475458294" [14:07:55.632] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_866475458294', clipId: 'caption' } [14:07:55.632] all added... [14:07:55.632] Vidbot :: _next(), _stepIndex:1 of 4 [14:07:55.633] index :: _onStepCompleted_vidbot(), step: 1 [14:07:55.633] index :: _onStepStarted_vidbot(), step: 2 [14:07:55.633] Vidbot :: step[1], label:Initializing Input Streams [14:07:55.634] StreamManager :: init() [14:07:55.634] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'audio_vo', progress: 0.3333333333333333 } [14:07:55.634] index :: _onStepProgress_vidbot(), percent: 33 [14:07:55.634] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'bg_music', progress: 0.6666666666666666 } [14:07:55.635] index :: _onStepProgress_vidbot(), percent: 67 [14:07:55.635] CanvasStream[canvas_866475458294] :: _init(), BEGIN [14:07:55.635] i:0, c.id:simplefadedisplay [14:07:55.635] KenBurnsSlideshow[simplefadedisplay] :: _init(), BEGIN [14:07:55.636] KenBurnsSlideshow[simplefadedisplay] :: _validate() [14:07:55.636] KenBurnsSlideshow[undefined] :: _validateAnim() [14:07:55.637] KenBurnsSlideshow[undefined] :: _validateTheme() [14:07:55.638] i:1, c.id:caption [14:07:55.639] RenCaption[caption] :: _init() [14:07:55.639] RenCaption[caption] :: _validate() [14:07:55.640] KenBurnsSlideshow[simplefadedisplay] :: _build() [14:07:55.647] AnimatedImageFrame[aif] :: constructor() [14:07:55.649] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.649] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_1.jpg [14:07:55.662] RenCaption[caption] :: _build() [14:07:55.681] Overlay[caption] :: _animate() [14:07:55.684] CanvasStream[caption] :: _init(), p.then() [14:07:55.701] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.705] AnimatedImageFrame[aif] :: _init(), END [14:07:55.707] AnimatedImageFrame[aif] :: constructor() [14:07:55.707] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.707] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_2.jpg [14:07:55.721] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.723] AnimatedImageFrame[aif] :: _init(), END [14:07:55.724] AnimatedImageFrame[aif] :: constructor() [14:07:55.724] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.724] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_3.jpg [14:07:55.745] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.746] AnimatedImageFrame[aif] :: _init(), END [14:07:55.747] AnimatedImageFrame[aif] :: constructor() [14:07:55.747] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.747] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_4.jpg [14:07:55.761] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.763] AnimatedImageFrame[aif] :: _init(), END [14:07:55.763] AnimatedImageFrame[aif] :: constructor() [14:07:55.763] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.763] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_1.jpg [14:07:55.776] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.777] AnimatedImageFrame[aif] :: _init(), END [14:07:55.778] AnimatedImageFrame[aif] :: constructor() [14:07:55.778] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.778] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_2.jpg [14:07:55.790] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.792] AnimatedImageFrame[aif] :: _init(), END [14:07:55.792] AnimatedImageFrame[aif] :: constructor() [14:07:55.792] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.793] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_3.jpg [14:07:55.805] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.806] AnimatedImageFrame[aif] :: _init(), END [14:07:55.807] AnimatedImageFrame[aif] :: constructor() [14:07:55.807] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.807] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_4.jpg [14:07:55.819] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.820] AnimatedImageFrame[aif] :: _init(), END [14:07:55.821] AnimatedImageFrame[aif] :: constructor() [14:07:55.821] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.821] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_1.jpg [14:07:55.833] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.835] AnimatedImageFrame[aif] :: _init(), END [14:07:55.835] AnimatedImageFrame[aif] :: constructor() [14:07:55.835] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.836] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_2.jpg [14:07:55.848] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.849] AnimatedImageFrame[aif] :: _init(), END [14:07:55.849] AnimatedImageFrame[aif] :: constructor() [14:07:55.850] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.850] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_3.jpg [14:07:55.862] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.863] AnimatedImageFrame[aif] :: _init(), END [14:07:55.864] AnimatedImageFrame[aif] :: constructor() [14:07:55.864] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.864] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_4.jpg [14:07:55.876] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.877] AnimatedImageFrame[aif] :: _init(), END [14:07:55.878] AnimatedImageFrame[aif] :: constructor() [14:07:55.878] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.878] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_1.jpg [14:07:55.891] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.892] AnimatedImageFrame[aif] :: _init(), END [14:07:55.892] AnimatedImageFrame[aif] :: constructor() [14:07:55.893] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.893] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_2.jpg [14:07:55.905] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.906] AnimatedImageFrame[aif] :: _init(), END [14:07:55.907] AnimatedImageFrame[aif] :: constructor() [14:07:55.907] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.907] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_3.jpg [14:07:55.920] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.921] AnimatedImageFrame[aif] :: _init(), END [14:07:55.922] AnimatedImageFrame[aif] :: constructor() [14:07:55.922] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.922] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_4.jpg [14:07:55.935] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.936] AnimatedImageFrame[aif] :: _init(), END [14:07:55.937] AnimatedImageFrame[aif] :: constructor() [14:07:55.937] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.937] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_1.jpg [14:07:55.949] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.950] AnimatedImageFrame[aif] :: _init(), END [14:07:55.951] AnimatedImageFrame[aif] :: constructor() [14:07:55.951] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.951] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_2.jpg [14:07:55.964] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.965] AnimatedImageFrame[aif] :: _init(), END [14:07:55.965] AnimatedImageFrame[aif] :: constructor() [14:07:55.965] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.966] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_3.jpg [14:07:55.991] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:55.993] AnimatedImageFrame[aif] :: _init(), END [14:07:55.993] AnimatedImageFrame[aif] :: constructor() [14:07:55.993] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:55.994] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_4.jpg [14:07:56.005] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:56.006] AnimatedImageFrame[aif] :: _init(), END [14:07:56.007] AnimatedImageFrame[aif] :: constructor() [14:07:56.007] AnimatedImageFrame[aif] :: _init(), BEGIN [14:07:56.007] CanvasClip :: LoadImageWithPromise(), src: 94469CAE-A0D2-76B7-5E0A-1F75A743B25B_1.jpg [14:07:56.018] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [14:07:56.019] AnimatedImageFrame[aif] :: _init(), END [14:07:56.020] Overlay[simplefadedisplay] :: _animate() [14:07:56.021] KenBurnsSlideshow[simplefadedisplay] :: _init(), END [14:07:56.021] CanvasStream[simplefadedisplay] :: _init(), p.then() [14:07:56.021] CanvasStream[canvas_866475458294] :: _init(), promise.all.then() [14:07:56.023] CanvasStream[canvas_866475458294] :: _init(), END [14:07:56.023] StreamMangaer :: init(), stream[canvas_866475458294].then() [14:07:56.023] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'canvas_866475458294', progress: 1 } [14:07:56.024] index :: _onStepProgress_vidbot(), percent: 100 [14:07:56.024] StreamManager :: init(), promise.all.then... [14:07:56.024] Vidbot :: StreamMgr.on( 'INITED' ) [14:07:56.024] Vidbot :: _next(), _stepIndex:2 of 4 [14:07:56.024] index :: _onStepCompleted_vidbot(), step: 2 [14:07:56.024] index :: _onStepStarted_vidbot(), step: 3 [14:07:56.025] Vidbot :: step[2], label:Rendering Canvas Streams [14:07:56.025] Vidbot :: StreamMgr.on( 'RENDER_STARTED' ), data: undefined [14:07:56.025] StreamManager :: render() [14:07:56.026] CanvasStream[canvas_866475458294] :: render() [14:07:56.063] index :: _onStepProgress_vidbot(), percent: 0 [14:08:05.618] index :: _onStepProgress_vidbot(), percent: 5 [14:08:16.274] index :: _onStepProgress_vidbot(), percent: 10 [14:08:26.179] index :: _onStepProgress_vidbot(), percent: 15 [14:08:37.019] index :: _onStepProgress_vidbot(), percent: 20 [14:08:48.316] index :: _onStepProgress_vidbot(), percent: 25 [14:08:59.369] index :: _onStepProgress_vidbot(), percent: 30 [14:09:10.303] index :: _onStepProgress_vidbot(), percent: 35 [14:09:21.071] index :: _onStepProgress_vidbot(), percent: 40 [14:09:31.962] index :: _onStepProgress_vidbot(), percent: 45 [14:09:43.065] index :: _onStepProgress_vidbot(), percent: 50 [14:09:53.545] index :: _onStepProgress_vidbot(), percent: 55 [14:10:04.555] index :: _onStepProgress_vidbot(), percent: 60 [14:10:15.454] index :: _onStepProgress_vidbot(), percent: 65 [14:10:26.326] index :: _onStepProgress_vidbot(), percent: 70 [14:10:37.466] index :: _onStepProgress_vidbot(), percent: 75 [14:10:47.953] index :: _onStepProgress_vidbot(), percent: 80 [14:10:58.907] index :: _onStepProgress_vidbot(), percent: 85 [14:11:10.000] index :: _onStepProgress_vidbot(), percent: 90 [14:11:20.837] index :: _onStepProgress_vidbot(), percent: 95 [14:11:31.919] index :: _onStepProgress_vidbot(), percent: 100 [14:11:32.863] StreamManager :: render(), Promise.all.then... [14:11:32.864] Vidbot :: StreamMgr.on( 'RENDER_COMPLETED' ), data: undefined [14:11:32.864] Vidbot :: _next(), _stepIndex:3 of 4 [14:11:32.864] index :: _onStepCompleted_vidbot(), step: 3 [14:11:32.865] index :: _onStepStarted_vidbot(), step: 4 [14:11:32.866] Vidbot :: step[3], label:Encoding Media [14:11:32.869] CanvasFilters :: Overlay() [14:11:32.869] AudioStream[audio_vo] :: inputOptions() [14:11:32.869] AudioFilters :: Volume() [14:11:32.869] filter: [2:a]volume=1[2_vol] [14:11:32.870] AudioFilters :: Delay() [14:11:32.870] filter: [2_vol]adelay=0|0[2_del] [14:11:32.870] AudioStream[bg_music] :: inputOptions() [14:11:32.870] AudioFilters :: Volume() [14:11:32.870] filter: [3:a]volume=0.25[3_vol] [14:11:32.870] AudioFilters :: FadeOut() [14:11:32.870] filter: [3_vol]afade=t=out:st=61.85:d=1[3_fadeout] [14:11:32.870] AudioFilters :: Delay() [14:11:32.870] filter: [3_fadeout]adelay=0|0[3_del] [14:11:32.871] AudioFilters :: Mix() [14:11:32.871] filter: [2_del][3_del]amix=inputs=2:duration=longest[a_out] [14:11:32.871] mixed filter: [2_del][3_del]amix=inputs=2:duration=longest[a_out] [14:11:32.873] hang.time: 60 [14:11:32.967] Vidbot :: ffmpeg.on( 'start' ) [14:11:32.968] ffmpeg -f lavfi -i color=c=000000:s=640x360:r=30:duration=61.85 -r 30 -i ./tmp/canvas_866475458294_%05d.png -to 00:01:01.850 -i file:///var/www/html/c [14:11:32.968] lients/3493/audio/94469CAE-A0D2-76B7-5E0A-1F75A743B25B.mp3 -to 00:01:01.850 -i file:///var/app/video_pre_processor/assets/vidbot/_files/audio/Jazz-2.m [14:11:32.968] p3 -y -filter_complex [0:v][1:v]overlay=x=0:y=0[1_out];[2:a]volume=1[2_vol];[2_vol]adelay=0|0[2_del];[3:a]volume=0.25[3_vol];[3_vol]afade=t=out:st=61. [14:11:32.968] 85:d=1[3_fadeout];[3_fadeout]adelay=0|0[3_del];[2_del][3_del]amix=inputs=2:duration=longest[a_out] -acodec aac -vcodec libx264 -r 30 -f mp4 -map [a_ou [14:11:32.968] t] -map [1_out] -preset veryfast -crf 18 -movflags frag_keyframe+empty_moov -pix_fmt yuv420p /var/www/html/clients/3493/video/94469CAE-A0D2-76B7-5E0A- [14:11:32.968] 1F75A743B25B.mp4 [14:11:33.101] index :: _onStepProgress_vidbot(), percent: -3358526204 [14:11:33.545] index :: _onStepProgress_vidbot(), percent: 2 [14:11:34.551] index :: _onStepProgress_vidbot(), percent: 9 [14:11:35.052] index :: _onStepProgress_vidbot(), percent: 13 [14:11:35.553] index :: _onStepProgress_vidbot(), percent: 17 [14:11:36.056] index :: _onStepProgress_vidbot(), percent: 21 [14:11:36.556] index :: _onStepProgress_vidbot(), percent: 26 [14:11:37.062] index :: _onStepProgress_vidbot(), percent: 30 [14:11:38.067] index :: _onStepProgress_vidbot(), percent: 38 [14:11:38.578] index :: _onStepProgress_vidbot(), percent: 42 [14:11:39.079] index :: _onStepProgress_vidbot(), percent: 46 [14:11:40.092] index :: _onStepProgress_vidbot(), percent: 53 [14:11:40.592] index :: _onStepProgress_vidbot(), percent: 58 [14:11:41.097] index :: _onStepProgress_vidbot(), percent: 61 [14:11:41.605] index :: _onStepProgress_vidbot(), percent: 66 [14:11:42.100] index :: _onStepProgress_vidbot(), percent: 71 [14:11:42.601] index :: _onStepProgress_vidbot(), percent: 76 [14:11:43.108] index :: _onStepProgress_vidbot(), percent: 81 [14:11:44.113] index :: _onStepProgress_vidbot(), percent: 88 [14:11:44.614] index :: _onStepProgress_vidbot(), percent: 91 [14:11:45.621] index :: _onStepProgress_vidbot(), percent: 98 [14:11:45.813] index :: _onStepProgress_vidbot(), percent: 100 [14:11:45.836] Vidbot :: ffmpeg.on( 'end' ), Done! [14:11:45.836] StreamManager :: dispose() [14:11:45.836] CanvasStream[canvas_866475458294] :: dispose() [14:11:45.856] Vidbot :: fflog.on( 'finish' ) [14:11:45.856] fflog.path: /var/www/html/clients/3493/video/94469CAE-A0D2-76B7-5E0A-1F75A743B25B.mp4.fflog [14:11:45.856] Vidbot :: _next(), _stepIndex:4 of 4 [14:11:45.856] index :: _onStepCompleted_vidbot(), step: 4 [14:11:45.856] index :: _onComplete_vidbot(), data: { stepTime: 0, appTime: 230.372, output: '/var/www/html/clients/3493/video/94469CAE-A0D2-76B7-5E0A-1F75A743B25B.mp4', duration: 61.85 } --------------------------------------------------------------------------------------------------------------- Output File : /var/app/video_pre_processor/jobs/postp//var/www/html/clients/3493/video/94469CAE-A0D2-76B7-5E0A-1F75A743B25B.mp4 Media Duration : 00:01:01.850 Generation Time : 00:03:50.372 ---------------------------------------------------------------------------------------------------------------