#include <algorithm>
#include <iostream>
#include <memory>
#include <sstream>
#include <string>
#include <string_view>
#include <vector>
#include "base/base_paths.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/i18n/icu_util.h"
#include "base/logging.h"
#include "base/numerics/safe_conversions.h"
#include "base/path_service.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "components/lookalikes/core/lookalike_url_util.h"
#include "components/url_formatter/spoof_checks/skeleton_generator.h"
#include "third_party/icu/source/common/unicode/unistr.h"
#include "third_party/icu/source/common/unicode/utypes.h"
#include "third_party/icu/source/i18n/unicode/uspoof.h"
const char* kTopBucketSeparator = …;
base::FilePath GetPath(std::string_view basename) { … }
bool WriteToFile(const std::string& content, std::string_view basename) { … }
std::string GenerateTopBucketOutputLine(
const Skeletons& skeletons,
const Skeletons& no_separators_skeletons,
const std::string& domain) { … }
std::string GenerateNormalOutputLine(const Skeletons& skeletons,
const std::string& domain) { … }
int GenerateSkeletons(const char* input_file_name,
const char* output_file_name,
const USpoofChecker* spoof_checker) { … }
int main(int argc, const char** argv) { … }