(List (= scope= flags=0 words=[] bindings=[('HELPERTOOLS', {[LIT_CHARS /Library/PrivilegedHelperTools]})]) (= scope= flags=0 words=[] bindings=[('SERVICE_NAME', {[LIT_CHARS org.chromium.chromoting]})]) (= scope= flags=0 words=[] bindings=[('CONFIG_FILE', {[DQ [VarSub HELPERTOOLS][LIT_CHARS /][VarSub SERVICE_NAME][LIT_CHARS .json]]})]) (= scope= flags=0 words=[] bindings=[('SCRIPT_FILE', {[DQ [VarSub HELPERTOOLS][LIT_CHARS /][VarSub SERVICE_NAME][LIT_CHARS .me2me.sh]]})]) (= scope= flags=0 words=[] bindings=[('USERS_TMP_FILE', {[DQ [VarSub SCRIPT_FILE][LIT_CHARS .users]]})]) (= scope= flags=0 words=[] bindings=[('PLIST', {[LIT_CHARS /Library/LaunchAgents/org.chromium.chromoting.plist]})]) (= scope= flags=0 words=[] bindings=[('ENABLED_FILE', {[DQ [VarSub HELPERTOOLS][LIT_CHARS /][VarSub SERVICE_NAME][LIT_CHARS .me2me_enabled]]})]) (= scope= flags=0 words=[] bindings=[('ENABLED_FILE_BACKUP', {[DQ [VarSub ENABLED_FILE][LIT_CHARS .backup]]})]) (FunctionDef on_error [] (Com {[LIT_CHARS logger]} {[LIT_CHARS An]} {[LIT_CHARS error]} {[LIT_CHARS occurred]} {[LIT_CHARS during]} {[LIT_CHARS Chrome]} {[LIT_CHARS Remote]} {[LIT_CHARS Desktop]} {[LIT_CHARS setup.]}) ) (FunctionDef find_users_with_active_hosts [] (Pipeline (Com {[LIT_CHARS ps]} {[LIT_CHARS -eo]} {[LIT_CHARS uid] [LIT_COMMA ","] [LIT_CHARS command]}) (Com {[LIT_CHARS awk]} {[LIT_CHARS -v]} {[LIT_VAR_LIKE "script="] [DQ [VarSub SCRIPT_FILE]] =} {[SQ ]}) ) ) (FunctionDef find_login_window_for_user [] (List (= scope= flags=0 words=[] bindings=[('user', {[VarSub 1]})]) (Pipeline (Com {[LIT_CHARS ps]} {[LIT_CHARS -ec]} {[LIT_CHARS -u]} {[DQ [VarSub user]]} {[LIT_CHARS -o]} {[LIT_CHARS comm] [LIT_COMMA ","] [LIT_CHARS pid]}) (Com {[LIT_CHARS awk]} {[SQ ]}) ) ) ) (Com {[LIT_CHARS trap]} {[LIT_CHARS on_error]} {[LIT_CHARS ERR]}) (Com {[LIT_CHARS logger]} {[LIT_CHARS Running]} {[LIT_CHARS Chrome]} {[LIT_CHARS Remote]} {[LIT_CHARS Desktop]} {[LIT_CHARS preflight]} {[LIT_CHARS script]} {[LIT_OTHER "@"] [LIT_OTHER "@"] [LIT_CHARS VERSION] [LIT_OTHER "@"] [LIT_OTHER "@"]}) (If (DBracket {B1 UNARY_FILE_f {[DQ [VarSub ENABLED_FILE]]}}) (Com {[LIT_CHARS mv]} {[DQ [VarSub ENABLED_FILE]]} {[DQ [VarSub ENABLED_FILE_BACKUP]]}) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub USERS_TMP_FILE]]}) (For uid [{[ComSub (Com {[LIT_CHARS find_users_with_active_hosts]})]}]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub uid]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub uid]]} < (FilenameRedirectNode filename={[DQ [VarSub USERS_TMP_FILE]]} >"> 1), > ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub uid]]} {[DQ [LIT_CHARS 0]]}}) (= scope= flags=0 words=[] bindings=[('context', {[DQ [LIT_CHARS LoginWindow]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('context', {[DQ [LIT_CHARS Aqua]]})]) ) (= scope= flags=0 words=[] bindings=[('pid', {[DQ [ComSub (Com {[LIT_CHARS find_login_window_for_user]} {[DQ [VarSub uid]]})]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub pid]]}}) (List (Com {[LIT_CHARS launchctl]} {[LIT_CHARS bsexec]} {[DQ [VarSub pid]]} {[LIT_CHARS sudo]} {[LIT_CHARS -u]} {[DQ [LIT_CHARS "#"][VarSub uid]]} {[LIT_CHARS launchctl]} {[LIT_CHARS stop]} {[DQ [VarSub SERVICE_NAME]]}) (Com {[LIT_CHARS launchctl]} {[LIT_CHARS bsexec]} {[DQ [VarSub pid]]} {[LIT_CHARS sudo]} {[LIT_CHARS -u]} {[DQ [LIT_CHARS "#"][VarSub uid]]} {[LIT_CHARS launchctl]} {[LIT_CHARS unload]} {[LIT_CHARS -w]} {[LIT_CHARS -S]} {[DQ [VarSub context]]} {[DQ [VarSub PLIST]]}) ) ) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) )