{
	"1": {
		"0": {
			"unit_index": 0,
			"line_task_name": "인스타그램_자동로그인_인스타아이디"
		},
		"1": {
			"unit_index": 1,
			"combo_search_site": "https://instagram.com",
			"check_auto_paste": false
		},
		"2": {
			"unit_index": 9,
			"line_time_break": "1",
			"line_time_script": "# 이미 로그인이 되어 있는지 확인하기",
			"check_endof_task": false
		},
		"3": {
			"unit_index": 2,
			"line_filter_type": 0,
			"combo_filter_tag": "span",
			"combo_filter_attr": "class",
			"combo_filter_op": "EQ",
			"combo_filter_item": "_aa8h _aa8i"
		},
		"4": {
			"unit_index": 5,
			"combo_key_click_key": "Mouse.CLICK",
			"line_offset_xpos": "0",
			"line_offset_ypos": "0",
			"line_key_wait": "2",
			"line_key_repeat": "1"
		},
		"5": {
			"unit_index": 9,
			"line_time_break": "2",
			"line_time_script": "",
			"check_endof_task": false
		},
		"6": {
			"unit_index": 2,
			"line_filter_type": 0,
			"combo_filter_tag": "div",
			"combo_filter_attr": "class",
			"combo_filter_op": "EQ",
			"combo_filter_item": "_abm4"
		},
		"7": {
			"unit_index": 11,
			"plain_scripts": "# 첫번째 엘러먼트(계정 전환) 필터링하고 로그아웃 엘러먼트만 남김\nif len(u6.el) == 2:\n\tu6.el.pop(0)\nelse:\n\t@CURNO = 10",
			"dynamic_plain_scripts_vscroll": 1
		},
		"8": {
			"unit_index": 5,
			"combo_key_click_key": "Mouse.CLICK",
			"line_offset_xpos": "0",
			"line_offset_ypos": "0",
			"line_key_wait": "2",
			"line_key_repeat": "1"
		},
		"9": {
			"unit_index": 9,
			"line_time_break": "5",
			"line_time_script": "# 인스타에 로그인 아이디 비번 임력 후 오토마우스 클릭",
			"check_endof_task": false
		},
		"10": {
			"unit_index": 1,
			"combo_search_site": "https://instagram.com",
			"check_auto_paste": false
		},
		"11": {
			"unit_index": 2,
			"line_filter_type": 0,
			"combo_filter_tag": "input",
			"combo_filter_attr": "name",
			"combo_filter_op": "EQ",
			"combo_filter_item": "username"
		},
		"12": {
			"unit_index": 11,
			"plain_scripts": "# 기존 아이디가 있는 경우 겹치므로 강제로 클리어 함\nfrom selenium.webdriver.common.keys import Keys\nu11.el[0].send_keys(Keys.CONTROL + \"a\")\nu11.el[0].send_keys(Keys.DELETE)\n",
			"dynamic_plain_scripts_vscroll": 1
		},
		"13": {
			"unit_index": 4,
			"check_auto_peste": false,
			"plain_keywords": "kyss5531@gmail.com",
			"combo_keyword_type": "첫항목만 선택",
			"general_unit_widget_height": 100,
			"general_plain_keywords_height": 56
		},
		"14": {
			"unit_index": 2,
			"line_filter_type": 0,
			"combo_filter_tag": "input",
			"combo_filter_attr": "name",
			"combo_filter_op": "EQ",
			"combo_filter_item": "password"
		},
		"15": {
			"unit_index": 11,
			"plain_scripts": "# 기존 비번이 있는 경우 겹치므로 강제로 클리어 함\nfrom selenium.webdriver.common.keys import Keys\nu14.el[0].send_keys(Keys.CONTROL + \"a\")\nu14.el[0].send_keys(Keys.DELETE)",
			"dynamic_plain_scripts_vscroll": 1
		},
		"16": {
			"unit_index": 4,
			"check_auto_peste": false,
			"plain_keywords": "xxxxxxxx",
			"combo_keyword_type": "첫항목만 선택",
			"general_unit_widget_height": 100,
			"general_plain_keywords_height": 56
		},
		"17": {
			"unit_index": 2,
			"line_filter_type": 0,
			"combo_filter_tag": "button",
			"combo_filter_attr": "type",
			"combo_filter_op": "EQ",
			"combo_filter_item": "submit"
		},
		"18": {
			"unit_index": 11,
			"plain_scripts": "# 오토마우스에 의한 로그인 버튼 클릭\nimport pyautogui\n\n# 화면상에서 크롬창 시작위치\nscreen_pos= @BROWSER.get_window_position()\nprint('screen_pos', screen_pos['x'], screen_pos['y'])\n\n# Window 영역\nouterWidth= @BROWSER.execute_script('return window.outerWidth;')\nouterHeight= @BROWSER.execute_script('return window.outerHeight;')\nprint('Window Dimensions', outerWidth, outerHeight)\n\n# Client 영역\ninnerWidth= @BROWSER.execute_script('return window.innerWidth;')\ninnerHeight= @BROWSER.execute_script('return window.innerHeight;')\nprint('Client Dimensions', innerWidth, innerHeight)\n\n# 경계선과 헤더(부라우저메뉴, 툴바)\nborder= (outerWidth-innerWidth) / 2\nheader= (outerHeight-innerHeight) - border\nprint('border', border, 'header', header)\n\n# Scroll된 값\nscrollX= @BROWSER.execute_script('return window.scrollX;')\nscrollY= @BROWSER.execute_script('return window.scrollY;')\nprint('Scroll X, Y', scrollX, scrollY)\n\n# 크롬창시작위치+경계및헤더+엘러먼트시작위치+얼러먼트크기중간위치-스크롤된값\nxx = screen_pos['x']+border+u17.el[0].rect['x']+u17.el[0].rect['width']/2 - scrollX\nyy = screen_pos['y']+header+u17.el[0].rect['y']+u17.el[0].rect['height']/2 - scrollY\nprint('xx', xx, 'yy', yy)\n\n# 현재 마우스 포지션 저장해 놓음\nprv_pos= pyautogui.position()\n\n# 마우스 이동 및 클릭\npyautogui.moveTo(xx, yy)\npyautogui.click()\n\n# 마우스를 원래의 위치로 가져다 놓음\npyautogui.moveTo(prv_pos[0],prv_pos[1])",
			"dynamic_plain_scripts_vscroll": 31
		},
		"19": {
			"unit_index": 9,
			"line_time_break": "1",
			"line_time_script": "# 팝업창 해제",
			"check_endof_task": false
		},
		"20": {
			"unit_index": 2,
			"line_filter_type": 0,
			"combo_filter_tag": "button",
			"combo_filter_attr": "class",
			"combo_filter_op": "EQ",
			"combo_filter_item": "_a9-- _a9_1"
		},
		"21": {
			"unit_index": 5,
			"combo_key_click_key": "Mouse.CLICK",
			"line_offset_xpos": "0",
			"line_offset_ypos": "0",
			"line_key_wait": "2",
			"line_key_repeat": "1"
		},
		"22": {
			"unit_index": 9,
			"line_time_break": "10",
			"line_time_script": "# 인스타 클리커 로그인 끝",
			"check_endof_task": true
		},
		"23": {
			"unit_index": 11,
			"plain_scripts": "",
			"dynamic_plain_scripts_vscroll": 1
		}
	}
}