private function fillDefaults($default, &$data)
{
$changed = 0;
foreach ($default as $k => $v) {
if (is_array($v)) {
if (!isset($data[$k]) or !is_array($data[$k])) {
$data[$k] = [];
}
$changed += $this->fillDefaults($v, $data[$k]);
} elseif (!isset($data[$k])) {
$data[$k] = $v;
++$changed;
}
}
return $changed;
}