<config>
	<parent-provides>
		<service name="ROM"/>
		<service name="PD"/>
		<service name="CPU"/>
		<service name="LOG"/>
		<service name="Nitpicker"/>
		<service name="Timer"/>
		<service name="Report"/>
	</parent-provides>

	<default-route>
		<any-service> <parent/> <any-child/> </any-service>
	</default-route>

	<default caps="100"/>

	<service name="Nitpicker">
		<default-policy> <child name="wm"/> </default-policy>
	</service>

	<service name="Report"> <!-- for reporting 'shape' reports through the wm -->
		<default-policy> <child name="wm"/> </default-policy>
	</service>

	<start name="report_rom">
		<resource name="RAM" quantum="4M"/>
		<provides>
			<service name="Report"/>
			<service name="ROM"/>
		</provides>
		<config>
			<policy label="layouter -> window_list"       report="wm -> window_list"/>
			<policy label="layouter -> focus_request"     report="wm -> focus_request"/>
			<policy label="layouter -> rules"             report="layouter -> rules"/>
			<policy label="decorator -> window_layout"    report="layouter -> window_layout"/>
			<policy label="wm -> resize_request"          report="layouter -> resize_request"/>
			<policy label="decorator -> pointer"          report="wm -> pointer"/>
			<policy label="layouter -> hover"             report="decorator -> hover"/>
			<policy label="layouter -> decorator_margins" report="decorator -> decorator_margins"/>
			<policy label="wm -> focus"                   report="layouter -> focus"/>
		</config>
	</start>

	<start name="wm" caps="250">
		<resource name="RAM" quantum="6M"/>
		<provides>
			<service name="Nitpicker"/> <service name="Report"/>
		</provides>
		<config>
			<policy label_prefix="decorator" role="decorator"/>
			<policy label_prefix="layouter"  role="layouter"/>
			<default-policy/>
		</config>
		<route>
			<service name="ROM" label="resize_request"> <child name="report_rom"/> </service>
			<service name="ROM" label="focus">          <child name="report_rom"/> </service>
			<service name="Report" label_last="shape">  <parent/> </service>
			<service name="Report">                     <child name="report_rom"/> </service>
			<service name="Nitpicker" label=""> <parent label="focus"/> </service>
			<any-service>
				<child name="nitpicker"/> <parent/> <any-child/>
			</any-service>
		</route>
	</start>

	<start name="layouter">
		<binary name="window_layouter"/>
		<resource name="RAM" quantum="4M"/>
		<route>
			<service name="ROM" label="config"> <parent label="layouter.config"/> </service>
			<service name="ROM" label="window_list">       <child name="report_rom"/> </service>
			<service name="ROM" label="focus_request">     <child name="report_rom"/> </service>
			<service name="ROM" label="hover">             <child name="report_rom"/> </service>
			<service name="ROM" label="decorator_margins"> <child name="report_rom"/> </service>
			<service name="ROM" label="rules">             <child name="report_rom"/> </service>
			<service name="Report">                        <child name="report_rom"/> </service>
			<any-service>
				<child name="wm"/> <parent/> <any-child/>
			</any-service>
		</route>
	</start>

	<start name="decorator" caps="350">
		<binary name="init"/>
		<resource name="RAM" quantum="12M"/>
		<route>
			<service name="ROM" label="config">
				<parent label="decorator_init.config"/> </service>

			<service name="ROM"    label="window_layout">     <child name="report_rom"/> </service>
			<service name="ROM"    label="pointer">           <child name="report_rom"/> </service>
			<service name="Report" label="decorator_margins"> <child name="report_rom"/> </service>
			<service name="Report" label="hover">             <child name="report_rom"/> </service>

			<any-service>
				<child name="wm"/> <parent/> <any-child/>
			</any-service>
		</route>
	</start>
</config>