anchor.diff:    end;
   
   begin
  -  if Copy(URL, Length(URL), 1) = '*' then
  +  if Copy(URLPath, Length(URLPath), 1) = '*' then
       FCustomOptionPrefixes.Add(
  -      UpperCase(Copy(URL, 1, Length(URL) - 1)), GetOptionsValue)
  +      UpperCase(Copy(URLPath, 1, Length(URLPath) - 1)), GetOptionsValue)
     else
  -    FCustomOptions.Add(URL, GetOptionsValue);
  +    FCustomOptions.Add(URLPath, GetOptionsValue);
   end;
   
   procedure TBoilerplateHTTPServer.RegisterCustomOptions(
  -  const URLs: TRawUTF8DynArray; CustomOptions: TBoilerplateOptions);
  +  const URLParts: TRawUTF8DynArray; CustomOptions: TBoilerplateOptions);
   var
     Index: Integer;
   begin
  -  for Index := Low(URLs) to High(URLs) do
  -    RegisterCustomOptions(URLs[Index], CustomOptions);
  +  for Index := Low(URLParts) to High(URLParts) do
  +    RegisterCustomOptions(URLParts[Index], CustomOptions);
   end;
   
   function TBoilerplateHTTPServer.Request(Context: THttpServerRequest): Cardinal;
  
positive.code:   end;
  
  begin
    Index := FCustomOptions.Find(URL);
    if Index >= 0 then
    begin
      Result := StrToOptions(FCustomOptions.List[Index].Value);
      Exit;
    end;
  
    Index := FindPrefix(UpperCase(URL));
    if Index >= 0 then
    begin
      Result := StrToOptions(FCustomOptionPrefixes.List[Index].Value);
  
negative.code:   CreateGZippedAssets;
  end;
  
  procedure TBoilerplateHTTPServer.RegisterCustomOptions(const URLPath: RawUTF8;
    CustomOptions: TBoilerplateOptions);
  
    function GetOptionsValue: RawUTF8;
  