[
	[ "case", "ACTION", {
		"add": [
			[ "if",
				[ "and",
					[ "has", "MAJOR" ],
					[ "has", "MINOR" ],
				],
				[
					[ "if",
						[ "or",
							[ "eq", "DEVNAME",
								[ "null", "full", "ptmx", "zero" ],
							],
							[ "regex", "DEVNAME",
								[ "^gpio", "^hvc" ],
							],
						],
						[
							[ "makedev", "/dev/%DEVNAME%", "0666" ],
							[ "return" ],
						]
					],
					[ "if",
						[ "or",
							[ "eq", "DEVNAME", "mapper/control" ],
							[ "regex", "DEVPATH", "^ppp" ],
						],
						[
							[ "makedev", "/dev/%DEVNAME%", "0600" ],
							[ "return" ],
						],
					],
					[ "if",
						[ "has", "DEVNAME" ],
						[ "makedev", "/dev/%DEVNAME%", "0644" ],
					],
				],
			],
			[ "if",
				[ "has", "FIRMWARE" ],
				[
					[ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ],
					[ "load-firmware", "/lib/firmware" ],
					[ "return" ]
				]
			],
		],
		"remove" : [
			[ "if",
				[ "and",
					[ "has", "DEVNAME" ],
					[ "has", "MAJOR" ],
					[ "has", "MINOR" ],
				],
				[ "rm", "/dev/%DEVNAME%" ]
			]
		]
	} ],
	[ "if",
		[ "eq", "SUBSYSTEM", "platform" ],
		[ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ]
	],
	[ "if",
		[ "and",
			[ "has", "BUTTON" ],
			[ "eq", "SUBSYSTEM", "button" ],
		],
		[ "exec", "/etc/rc.button/%BUTTON%" ]
	],
	[ "if",
		[ "eq", "SUBSYSTEM",
			[ "net", "input", "usb", "usbmisc", "ieee1394", "block", "atm", "zaptel", "tty", "button", "dump", "mhi_uci", "dump_q6v5", "devcoredump", "minidump" ]
		],
		[ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ]
	],
	[ "if",
		[ "and",
			[ "eq", "SUBSYSTEM", "usb-serial" ],
			[ "regex", "DEVNAME",
				[ "^ttyUSB", "^ttyACM" ]
			],
		],
		[ "exec", "/sbin/hotplug-call", "tty" ]
	],
]
