b5b6de9b94
Temporary suppression, pending bug fix. BUG=skia:5636 R=robertphillips@google.com,senorblanco@chromium.org GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2249763002 Review-Url: https://codereview.chromium.org/2249763002
656 lines
16 KiB
JSON
656 lines
16 KiB
JSON
[
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
|
"[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"name": "Get downloaded SKP VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
|
"42",
|
|
"[SLAVE_BUILD]\\tmp\\SKP_VERSION"
|
|
],
|
|
"name": "write SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
|
"[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"name": "Get downloaded skimage VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
|
"42",
|
|
"[SLAVE_BUILD]\\tmp\\SK_IMAGE_VERSION"
|
|
],
|
|
"name": "write SK_IMAGE_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
|
"[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"name": "Get downloaded SVG VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
|
"42",
|
|
"[SLAVE_BUILD]\\tmp\\SVG_VERSION"
|
|
],
|
|
"name": "write SVG_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
|
"[CUSTOM_[SWARM_OUT_DIR]]\\dm"
|
|
],
|
|
"env": {
|
|
"PYTHONPATH": "[SLAVE_BUILD]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
|
|
},
|
|
"name": "rmtree dm",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
|
"[CUSTOM_[SWARM_OUT_DIR]]\\dm",
|
|
"511"
|
|
],
|
|
"name": "makedirs dm",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
|
"[SLAVE_BUILD]\\tmp",
|
|
"511"
|
|
],
|
|
"name": "makedirs tmp_dir",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/_/hashes'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n",
|
|
"[SLAVE_BUILD]\\tmp\\uninteresting_hashes.txt"
|
|
],
|
|
"cwd": "[SLAVE_BUILD]\\skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug_x64",
|
|
"CHROME_HEADLESS": "1",
|
|
"SKIA_OUT": "[SLAVE_BUILD]\\out"
|
|
},
|
|
"name": "get uninteresting hashes",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import math@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import socket@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://gold.skia.org/_/hashes'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[1], 'w') as f:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print e@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"[SLAVE_BUILD]\\out\\Debug_x64\\dm",
|
|
"--undefok",
|
|
"--resourcePath",
|
|
"[SLAVE_BUILD]\\skia\\resources",
|
|
"--skps",
|
|
"[SLAVE_BUILD]\\skp",
|
|
"--images",
|
|
"[SLAVE_BUILD]\\skimage\\dm",
|
|
"--colorImages",
|
|
"[SLAVE_BUILD]\\skimage\\colorspace",
|
|
"--nameByHash",
|
|
"--properties",
|
|
"gitHash",
|
|
"abc123",
|
|
"master",
|
|
"client.skia",
|
|
"builder",
|
|
"Test-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE",
|
|
"build_number",
|
|
"5",
|
|
"--svgs",
|
|
"[SLAVE_BUILD]\\svg",
|
|
"--key",
|
|
"arch",
|
|
"x86_64",
|
|
"compiler",
|
|
"MSVC",
|
|
"configuration",
|
|
"Debug",
|
|
"cpu_or_gpu",
|
|
"GPU",
|
|
"cpu_or_gpu_value",
|
|
"GTX960",
|
|
"extra_config",
|
|
"ANGLE",
|
|
"model",
|
|
"ShuttleB",
|
|
"os",
|
|
"Win8",
|
|
"--uninterestingHashesFile",
|
|
"[SLAVE_BUILD]\\tmp\\uninteresting_hashes.txt",
|
|
"--writePath",
|
|
"[CUSTOM_[SWARM_OUT_DIR]]\\dm",
|
|
"--nocpu",
|
|
"--config",
|
|
"565",
|
|
"8888",
|
|
"gpu",
|
|
"gpusrgb",
|
|
"pdf",
|
|
"msaa16",
|
|
"serialize-8888",
|
|
"tiles_rt-8888",
|
|
"pic-8888",
|
|
"angle",
|
|
"--src",
|
|
"tests",
|
|
"gm",
|
|
"image",
|
|
"colorImage",
|
|
"svg",
|
|
"--blacklist",
|
|
"f16",
|
|
"_",
|
|
"_",
|
|
"dstreadshuffle",
|
|
"f16",
|
|
"image",
|
|
"_",
|
|
"_",
|
|
"srgb",
|
|
"image",
|
|
"_",
|
|
"_",
|
|
"gpusrgb",
|
|
"image",
|
|
"_",
|
|
"_",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"rle8-height-negative.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"rle4-height-negative.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"pal8os2v2.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"pal8os2v2-16.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"rgba32abf.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"rgb24prof.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"rgb24lprof.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"8bpp-pixeldata-cropped.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"4bpp-pixeldata-cropped.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"32bpp-pixeldata-cropped.bmp",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"24bpp-pixeldata-cropped.bmp",
|
|
"_",
|
|
"gm",
|
|
"_",
|
|
"fontscalerdistortable",
|
|
"_",
|
|
"svg",
|
|
"_",
|
|
"Nebraska-StateSeal.svg",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_image",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"c_gms",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"colortype",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"colortype_xfermodes",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_bounds_0.75_0",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_bounds_1_-0.25",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_bounds",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_match",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_iter",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bitmapfilters",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bitmapshaders",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_bmp",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_bmp_shader",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"convex_poly_clip",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"extractalpha",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"filterbitmap_checkerboard_32_32_g8",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"filterbitmap_image_mandrill_64",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"shadows",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"simpleaaclip_aaclip",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"composeshader_bitmap",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"scaled_tilemodes_npot",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"scaled_tilemodes",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_image",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_image_shader",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"verylargebitmap",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"verylarge_picture_image",
|
|
"sp-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"2ndpic-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"lite-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"sp-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-picture",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-picture",
|
|
"2ndpic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-picture",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-picture",
|
|
"sp-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-raster",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-raster",
|
|
"2ndpic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-raster",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-raster",
|
|
"sp-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-ctable",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-ctable",
|
|
"2ndpic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-ctable",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-ctable",
|
|
"sp-8888",
|
|
"svg",
|
|
"_",
|
|
"car.svg",
|
|
"pic-8888",
|
|
"svg",
|
|
"_",
|
|
"car.svg",
|
|
"2ndpic-8888",
|
|
"svg",
|
|
"_",
|
|
"car.svg",
|
|
"serialize-8888",
|
|
"svg",
|
|
"_",
|
|
"car.svg",
|
|
"sp-8888",
|
|
"svg",
|
|
"_",
|
|
"gallardo.svg",
|
|
"pic-8888",
|
|
"svg",
|
|
"_",
|
|
"gallardo.svg",
|
|
"2ndpic-8888",
|
|
"svg",
|
|
"_",
|
|
"gallardo.svg",
|
|
"serialize-8888",
|
|
"svg",
|
|
"_",
|
|
"gallardo.svg",
|
|
"sp-8888",
|
|
"svg",
|
|
"_",
|
|
"rg1024_green_grapes.svg",
|
|
"pic-8888",
|
|
"svg",
|
|
"_",
|
|
"rg1024_green_grapes.svg",
|
|
"2ndpic-8888",
|
|
"svg",
|
|
"_",
|
|
"rg1024_green_grapes.svg",
|
|
"serialize-8888",
|
|
"svg",
|
|
"_",
|
|
"rg1024_green_grapes.svg",
|
|
"sp-8888",
|
|
"svg",
|
|
"_",
|
|
"Seal_of_Kansas.svg",
|
|
"pic-8888",
|
|
"svg",
|
|
"_",
|
|
"Seal_of_Kansas.svg",
|
|
"2ndpic-8888",
|
|
"svg",
|
|
"_",
|
|
"Seal_of_Kansas.svg",
|
|
"serialize-8888",
|
|
"svg",
|
|
"_",
|
|
"Seal_of_Kansas.svg",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
"interlaced1.png",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
"interlaced2.png",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
"interlaced3.png",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".arw",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".cr2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".dng",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".nef",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".nrw",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".orf",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".raf",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".rw2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".pef",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".srw",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".ARW",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".CR2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".DNG",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".NEF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".NRW",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".ORF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".RAF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".RW2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".PEF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".SRW",
|
|
"--match",
|
|
"~GLPrograms",
|
|
"--noRAW_threading"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug_x64",
|
|
"CHROME_HEADLESS": "1",
|
|
"SKIA_OUT": "[SLAVE_BUILD]\\out"
|
|
},
|
|
"name": "dm"
|
|
},
|
|
{
|
|
"name": "$result",
|
|
"recipe_result": null,
|
|
"status_code": 0
|
|
}
|
|
] |