code: protected function getConfig($config = null)
      {
          // Create a new configuration object
          $configObject = HTMLPurifier_Config::createDefault();
  
          // Allow configuration to be modified
          if (! $this->config->get('purifier.finalize')) {
              $configObject->autoFinalize = false;
          }
  
          // Set default config
          $defaultConfig = [];
          $defaultConfig['Core.Encoding'] = $this->config->get('purifier.encoding');
          $defaultConfig['Cache.SerializerPath'] = $this->config->get('purifier.cachePath');
          $defaultConfig['Cache.SerializerPermissions'] = $this->config->get('purifier.cacheFileMode', 0755);
  
          if (! $config) {
              $config = $this->config->get('purifier.settings.default');
          } elseif (is_string($config)) {
              $config = $this->config->get('purifier.settings.' . $config);
          }
  
          if (! is_array($config)) {
              $config = [];
          }
  
          // Merge configurations
          $config = $defaultConfig + $config;
  
          // Load to Purifier config
          $configObject->loadArray($config);
  
          // Load custom definition if set
          if ($definitionConfig = $this->config->get('purifier.settings.custom_definition')) {
              $this->addCustomDefinition($definitionConfig, $configObject);
          }
  
          // Load custom elements if set
          if ($elements = $this->config->get('purifier.settings.custom_elements')) {
              if ($def = $configObject->maybeGetRawHTMLDefinition()) {
                  $this->addCustomElements($elements, $def);
              }
          }
  
          // Load custom attributes if set
          if ($attributes = $this->config->get('purifier.settings.custom_attributes')) {
              if ($def = $configObject->maybeGetRawHTMLDefinition()) {
                  $this->addCustomAttributes($attributes, $def);
              }
          }
  
          return $configObject;
      }
docs: @param null $config
  
  @return mixed|null