summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-11-10libva-intel-driver 1.7.31.7.3v1.7-branchXiang, Haihao2-4/+4
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2016-11-10Add the missing filename to the listXiang, Haihao1-0/+1
Otherwise the package created by 'make dist' doesn't include the missing file Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
2016-10-31Update NEWS1.7.3.pre1Xiang, Haihao1-1/+12
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2016-10-31test: use YUVImage in JPEG encode testsU. Artie Eoff3-271/+86
The YUVImage class allows for more efficient (faster) operations on the YUV input/output of these tests. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 77ff763fa44c36d3154ee9267e9eb940dd4c10fc)
2016-10-31test: streamable valarrayU. Artie Eoff1-0/+25
Add stream operators for std::valarray. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 2bbdc90be2f41198619c073ce1409dc5c64334dc)
2016-10-31test: add YUVImage classU. Artie Eoff3-0/+815
Add a class that employs std::valarray and std::slice to manage YUV input/output data. Using valarray's and slice's are generally more efficient than std::vector in most test use cases where YUV data is needed. Current test cases that are using different (yet similar) code to manage it's own YUV input/output data can eventually converge onto use of this common class instead. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit fd26aa497dff3361e31e3d99066915a34a67ae64)
2016-10-31test: use C random library for random numbersU. Artie Eoff3-12/+18
The speed of random number generation can have a significant impact on test execution time when initializing large arrays of random values. The C++ random number engines and generators are much slower than std::rand. Thus, use C's rand() to generate pseudo-random values within a given [min,max] range. For testing purposes, deterministic sequences would be preferable anyway. That is, if a particular sequence exposes a test failure, then we can reproduce it later. Also, we seed the pseudo-random number generator with the current time so that the sequence is not always the same across executions. The seed is then recorded in the test results so that the sequence can be reproduced if needed. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 9edf73284039f31720eb03f4c2196bb7c4dd033f)
2016-10-31test: add a timer classU. Artie Eoff1-0/+26
The timer is useful to quickly instrument various sections of code during test development optimization tasks or other timing needs. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 1eae2167650c5159b510534d022cf79e38c9799c)
2016-10-31vdenc: Always use the 1st VCS ringXiang, Haihao1-1/+2
VDEnc/HuC only works with the 1st VCS ring, however SKL GT3+ has 2 VCS rings. To avoid executing the corresponding batch buffer from the 2nd VCS ring in i915, we have to specify the 1st ring in the driver. SKL GT1/GT2 has only one VCS ring, so specifying the 1st ring in the driver has no any impact to GT1/GT2 v2: Use the right bug URL Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97872 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 63b98a529522385254c0f50dfb8e566679017c89)
2016-10-31svct: hrd check per layerXiang, Haihao3-37/+42
Hence we can use separate parameters to estimate QP per layer and get more accurate QP for next frame in the same layer. Tested-by: Wang, Fei W <fei.w.wang@intel.com> Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 972c1c67fbfb83f37a6aef7af7be32ffbdc7f7f8)
2016-10-31svct: Adjust the estimated frame size for QP=1Xiang, Haihao1-2/+6
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit f4656a78b80d9cf402ddc86b2d0261359623e180)
2016-10-31svct: Save the frame numbers for each frame type in a GOP per layerXiang, Haihao3-18/+27
Use the right frame numbers in a GOP to estimate a QP for next frame Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 218cca1856bfae6090a842342522a9018d6a328a)
2016-10-31svct: Save the current slice type per layerXiang, Haihao2-0/+4
Use the right previous slice type to estimate a QP for next frame in the same layer Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 36003e66b46bdb740813c021fe61dcd5538f1e11)
2016-10-31svct: Save the current frame size per layerXiang, Haihao2-0/+8
Use the the right previous frame size to estimate a QP for next frame in the same layer Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 495e905a7c6e05c3b6a9c0c81f153f56aafcb759)
2016-10-31svct: Usa an array to store QP rounding accumulatorXiang, Haihao3-11/+11
We can do QP compensation per layer. Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 755bed214e30b1ea96f88f3f5011bdff228ee3c8)
2016-10-31Use Media Read message if possible on Gen8+Xiang, Haihao16-2/+563
AVS can't gurantee bit-match for a large surface. This fixes the failure reported by gtest case Common/JPEGEncodeInputTest.Full/95. before: [ FAILED ] Common/JPEGEncodeInputTest.Full/95, where GetParam() = (Fixed Size 7680x4320, 0x501176 pointing to "I420") (9239 ms) [----------] 1 test from Common/JPEGEncodeInputTest (9239 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (9361 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] Common/JPEGEncodeInputTest.Full/95, where GetParam() = (Fixed Size 7680x4320, 0x501176 pointing to "I420") after: [ OK ] Common/JPEGEncodeInputTest.Full/95 (15250 ms) [----------] 1 test from Common/JPEGEncodeInputTest (15250 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (15365 ms total) [ PASSED ] 1 test. Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> Tested-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 78b6841fa3e247f15005ea3450d8404c59938ac3)
2016-10-31test: use valarray for raw image comparisonScott D Phillips1-16/+13
std::valarray can fuse elementwise operations across arrays for more efficient comparison. Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> Reviewed-by: U. Artie Eoff <ullysses.a.eoff@intel.com> (cherry picked from commit 852cea1cdfc83e0b6531dfefda14badafc9ee206)
2016-10-31vpp chroma-formats: report supported chroma formats for vppDaniel Charles1-1/+4
vpp to report the chroma formats according to what's allowed by vaCreateSurfaces2 Signed-off-by: Daniel Charles <daniel.charles@intel.com> Reviewed-by: Xiang, Haihao <haihao.xiang@intel.com> (cherry picked from commit e748bc7f0565d59a7ec2ba038e76a0a1de19c15c)
2016-10-31test: add some avce context testsU. Artie Eoff5-0/+385
Add some simple avce context tests to verify various encode context fields are appropriately configured. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit fc7bd0639a83b182b6e8a02217b22fd544253e08)
2016-10-31test: allow default attribs param for create configU. Artie Eoff2-3/+5
Driver does not require config attributes to create a config. Thus, allow I965TestFixture::createConfig to be called without specifying ConfigAttribs. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 31d499ebdd0fe080d8e3654ab90fede155b148fe)
2016-10-31test: allow default surface param for create contextU. Artie Eoff2-3/+5
The driver does not require surfaces to create a context. That is, i965_CreateContext can accept an empty render_targets list. Thus, make Surfaces an optional parameter to I965TestFixture::createContext so that simple tests don't have to bother with Surfaces if they are irrelevant to the test case. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 5c013c55e458a7f476f600e7ff78f59f3246168f)
2016-10-31ConfigAttribEncROI: check entrypoint on VAGetConfigAttribDaniel Charles1-15/+22
The attribute VAConfigAttribEncROI has to check that the entrypoint is actually a VAEntrypointEncSlice or VAEntrypointEncSliceLP Signed-off-by: Daniel Charles <daniel.charles@intel.com> Reviewed-by: Xiang, Haihao <haihao.xiang@intel.com> (cherry picked from commit 8652f05e834bf2c0bbd8a324ee7d2040e1c0cc77)
2016-10-31Add support for IYUV in vaCreateSurfaces()Xiang, Haihao1-0/+1
Actually IYUV is indentical to I420. This fixes the failue reported by CreateSurfacesTest.SupportedPixelFormats in gtest before: [ FAILED ] CreateSurfacesTest.SupportedPixelFormats (0 ms) [----------] 1 test from CreateSurfacesTest (0 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (2 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] CreateSurfacesTest.SupportedPixelFormats after: [----------] 1 test from CreateSurfacesTest [ RUN ] CreateSurfacesTest.SupportedPixelFormats [ OK ] CreateSurfacesTest.SupportedPixelFormats (1 ms) [----------] 1 test from CreateSurfacesTest (1 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (4 ms total) [ PASSED ] 1 test. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98033 Tested-by: Eoff, Ullysses A <ullysses.a.eoff@intel.com> Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Eoff, Ullysses A <ullysses.a.eoff@intel.com> (cherry picked from commit 7ef5135054a3f6c6baff9c6dca4383079ff5f072)
2016-10-31test: use common I965ConfigTest fixture for jpeg enc/decU. Artie Eoff5-40/+109
Instantiate the JPEG encode/decode Entrypoint tests from the common I965ConfigTest fixture with additional test inputs. Also, separate them into their own files. This changes their test case names, too. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit dd73514209d7942f2d8c8b0bbb541fe6884ea1bc)
2016-10-31test: add avce/avcd create config testsU. Artie Eoff5-0/+304
Add a common I965ConfigTest parameterized test fixture with a i965_CreateConfig test case and add the AVC encode/decode create config test instantiations with associated profile and entrypoint inputs. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 91caa8167d5b6b16ee8c58bd238f8a4773a4707a)
2016-10-31test: add ostream operators for VAProfile and VAEntrypointU. Artie Eoff1-0/+84
Add ostream operators for VAProfile and VAEntrypoint so the testing framework and tests can log them by name. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit d36e351ef5d073f24aca0e0fb6dd3171d9b1914c)
2016-10-31test: move vaInitialize/vaTerminate to a global test environmentU. Artie Eoff6-158/+202
Move the VADisplay, vaInitialize and vaTerminate responsibility out of the I965TestFixture class and into a global I965TestEnvironment (::testing::Environment) singleton. The I965TestEnvironment singleton instance is registered with the gtest framework at startup and it's SetUp and TearDown routines are executed before and after all tests are executed. This allows all tests to obtain access to the VADisplay et. al. outside of an I965TestFixture instance. Essentially, this results in only one VADisplay being shared between all executed test cases and one init/term sequence for the entire test program execution. This more closely resembles how several real-world programs would use the driver (i.e. init driver once, encode/decode multiple streams and terminate driver once). Prior to this, each test case had it's own VADisplay instance and init/term sequence. That behavior can still be achieved by executing one test case at a time via the --gtest_filter option. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 8fb4dd957ff1db28c54430a47b5305a4e05f1e1d)
2016-10-31Set default framerate to 30fps if user doesn't set the corresponding ↵Xiang, Haihao1-1/+6
sequence parameter User can update framerate using VAEncMiscParameterTypeFrameRate buffer later Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 464d36dda586addb32379b8c74b2055da73783d3)
2016-10-31test: add create surface testU. Artie Eoff3-0/+122
Add test to verify correct result for create surfaces with supported and unsupported pixel formats. Currently the IYUV pixel format case fails... see https://bugs.freedesktop.org/show_bug.cgi?id=98033 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 0c5176a46e329e3d95f14f998b75a320621c769e)
2016-10-31jpeg/dec: gen8+ set correct fourcc for monochrome decodeU. Artie Eoff1-2/+3
When the jpeg picture params have 1 component the fourcc needs to be set to VA_FOURCC_Y800. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 0287ca6f3871d202624ddbea97a4b3771e982e68)
2016-10-31test: jpeg/enc: add tests for Y800 inputsU. Artie Eoff3-5/+25
Add support for Y800 input data for jpeg encode tests. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit fa21a443ae83eb90bef041b114c4308f5d0e3847)
2016-10-31test: jpeg/enc: add tests for YUY2 and UYVY inputsU. Artie Eoff3-19/+104
...plus optimize TestInput::toOutputFourcc() Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 2d0bb8fbdc15c0323fdbee2dfb5f10e7226fcb1b)
2016-10-31test: jpeg/enc: return empty TestInput::Shared if fourcc not handledU. Artie Eoff2-41/+48
Move JPEG::Encode::TestInput member initialization to its static "create" routine so that an empty/invalid Shared can be returned if the input fourcc is not handled/implemented. This will allow a caller/test to react appropriately. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 9dd60d7fc73e35207d629519102afdc4f6ff668d)
2016-10-31test: jpeg/enc: improve random YUV data initializationU. Artie Eoff2-9/+10
Make initialization of YUV input for jpeg encode a little faster, esp. for larger resolution. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 6bf510f54b41dc9a4aca3d3ad921ec47d5fbfafe)
2016-10-31test: jpeg/enc: move YUV conversion to TestInput classU. Artie Eoff3-24/+28
Let the ::JPEG::Encode::TestInput class deal with converting from its input fourcc to its expected output fourcc. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 37a15c1e9e6bf67a37c8d664f93d5946ff2819ce)
2016-10-31test: jpeg/enc: enable shared_from_this on TestInputU. Artie Eoff3-3/+13
...and make the constructor private so that only Shared instances can be created. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit f6ee6933a9d1e7d922817dd1ef770e8939bdedb9)
2016-10-31test: jpeg/enc: move input creators to data fileU. Artie Eoff3-80/+110
Move the ::JPEG::Encode::TestInputCreator's to the i965_jpeg_test_data[.h|.cpp] files. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit b3a8049d5cd9e44daa255173f9783cd4f4b2fa55)
2016-10-31test: jpeg/enc: move TestInput impl to compilation unitU. Artie Eoff4-95/+98
Move the implementation of JPEG::Encode::TestInput to the compilation unit file (.cpp). This helps reduce the number of include headers needed in the header file. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 034440cd4cee59f76ad211cb80108c1566561d10)
2016-10-31test: jpeg/enc: fix TestInput::SharedConst typedefU. Artie Eoff1-1/+1
The ::JPEG::Encode::TestInput::SharedConst typedef should actually use a 'const TestInput' template parameter for the std::shared_ptr. Hence, the name. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 393019134cfe9bde212b87f04362be4ad649e42c)
2016-10-31test: move generic toString to i965_streamable.hU. Artie Eoff2-10/+9
The toString template is generic and should be part of the i965_streamable.h header. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 0442e739adc068ad86f084fb8582297fccb4117e)
2016-10-31test: move ASSERT_NO_FAILURE macro to test.hU. Artie Eoff3-8/+4
Both jpeg decode and encode test files use this macro. So move it to the common test.h header to avoid duplicating it. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Sean V Kelley <seanvk@posteo.de> (cherry picked from commit 8b876d6cd7ae8911bef38de673731556e300999f)
2016-10-31Move the sharpening into the whole virtual VEBOX processpeng.chen4-38/+43
V2: add vpp_sharpness_filtering() in gen75&gen8_vebox_process_picture() It fixes below issues: https://bugs.freedesktop.org/show_bug.cgi?id=96987 https://bugs.freedesktop.org/show_bug.cgi?id=96988 Signed-off-by: peng.chen <peng.c.chen@intel.com> (cherry picked from commit fa3d1c3799c2633ff49fffb9dc6fc684e2db6565)
2016-10-31The {width, height} in VEBOX_SURFACE_STATE is in unit of pixelXiang, Haihao1-6/+16
v2: The ending position in VEB_DI_IECP must be within the surface region Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> (cherry picked from commit 20edbb18570d5ec5e87906d87afa98885c12fac7)
2016-10-31Add CBR and VBR bitrate control flags for low power encode if possibleXiang, Haihao1-0/+11
CBR and VBR for low power encode depend on the fully loaded HuC firmware. Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit f3d975c39ad1b63a3afa8cf1534e7a508deb2625)
2016-10-31Check whether there is a fully loaded HuC firmwareXiang, Haihao2-0/+13
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 60a27d6bf7bf69accabe5b783000eb7aebbb2ed7)
2016-10-31test: add some jpeg encode testsU. Artie Eoff4-4/+895
Add JPEG encode tests that encode raw I420 and NV12 data at quality 100 and then decodes them to verify proper encoding. Currently, the 7680x4320 I420 test fails because ~40-60 Y-values (i.e. plane 0) in each line from the decoded bitstream are off by more than 2 of the original raw I420 values. It is not clear why only this resolution exhibits this problem. v2: don't create any input data in test fixture if jpeg encoding is not supported. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 6ee403d2576d85c62a51ce291a1e37ef14858d1a)
2016-10-31test: add common test utilsU. Artie Eoff2-0/+50
Common utilities and functions that may be useful for multiple tests. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 1c1e91cb597910111c5acea238d68d666c515655)
2016-10-31test: add wrapper for SyncSurfaceU. Artie Eoff3-0/+15
Add a wrapper that calls the driver i965_SyncSurface. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 0f8dc3d11e470747a1b90fe9c2eea5c8070893a5)
2016-10-31test: add streamable operators for VA structs and otherU. Artie Eoff2-0/+362
Add convenience streamable operators for VA and other common data structures so that tests can log them as needed. v2: put std::array stream operators into the std namespace otherwise gcc 5.x complains. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit d41af8d42e6f3522d7a1af40cae7232c52d47d9c)
2016-10-31test: add wrapper for CreateSurfaces2U. Artie Eoff2-7/+23
Add support for calling i965_CreateSurfaces2 so that we can pass VASurfaceAttributes. This is needed to set a particular surface pixel format in some tests. We must call i965_CreateSurfaces2 via the vtable since it is a static function within the i965_drv_video.c file... thus hidden. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit f4adf3fe4d9bfa2fc8675abf73f6e3ad28881b7c)