// Copyright 2021 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.

// AUTOGENERATED - DO NOT EDIT
//
// This file was generated by generate_hash_macro.py.
// To make changes, update the script and run it to regenerate the files.
#pragma once

#include <stdint.h>

// 80-character version of the tokenizer hash function.
//
// The argument must be a string literal. It is concatenated with "" to ensure
// that this is the case.
//
// clang-format off

#define PW_TOKENIZER_65599_FIXED_LENGTH_80_HASH(str)                           \
  (uint32_t)(sizeof(str "") - 1 + /* The argument must be a string literal. */ \
             0x0001003fu * (uint8_t)str[0] +                                   \
             0x007e0f81u * (uint8_t)( 1 < sizeof(str) ? str[ 1] : 0) +         \
             0x2e86d0bfu * (uint8_t)( 2 < sizeof(str) ? str[ 2] : 0) +         \
             0x43ec5f01u * (uint8_t)( 3 < sizeof(str) ? str[ 3] : 0) +         \
             0x162c613fu * (uint8_t)( 4 < sizeof(str) ? str[ 4] : 0) +         \
             0xd62aee81u * (uint8_t)( 5 < sizeof(str) ? str[ 5] : 0) +         \
             0xa311b1bfu * (uint8_t)( 6 < sizeof(str) ? str[ 6] : 0) +         \
             0xd319be01u * (uint8_t)( 7 < sizeof(str) ? str[ 7] : 0) +         \
             0xb156c23fu * (uint8_t)( 8 < sizeof(str) ? str[ 8] : 0) +         \
             0x6698cd81u * (uint8_t)( 9 < sizeof(str) ? str[ 9] : 0) +         \
             0x0d1b92bfu * (uint8_t)(10 < sizeof(str) ? str[10] : 0) +         \
             0xcc881d01u * (uint8_t)(11 < sizeof(str) ? str[11] : 0) +         \
             0x7280233fu * (uint8_t)(12 < sizeof(str) ? str[12] : 0) +         \
             0x50c7ac81u * (uint8_t)(13 < sizeof(str) ? str[13] : 0) +         \
             0x8da473bfu * (uint8_t)(14 < sizeof(str) ? str[14] : 0) +         \
             0x4f377c01u * (uint8_t)(15 < sizeof(str) ? str[15] : 0) +         \
             0xfaa8843fu * (uint8_t)(16 < sizeof(str) ? str[16] : 0) +         \
             0x33b78b81u * (uint8_t)(17 < sizeof(str) ? str[17] : 0) +         \
             0x45ac54bfu * (uint8_t)(18 < sizeof(str) ? str[18] : 0) +         \
             0x7a27db01u * (uint8_t)(19 < sizeof(str) ? str[19] : 0) +         \
             0xeacfe53fu * (uint8_t)(20 < sizeof(str) ? str[20] : 0) +         \
             0xae686a81u * (uint8_t)(21 < sizeof(str) ? str[21] : 0) +         \
             0x563335bfu * (uint8_t)(22 < sizeof(str) ? str[22] : 0) +         \
             0x6c593a01u * (uint8_t)(23 < sizeof(str) ? str[23] : 0) +         \
             0xe3f6463fu * (uint8_t)(24 < sizeof(str) ? str[24] : 0) +         \
             0x5fda4981u * (uint8_t)(25 < sizeof(str) ? str[25] : 0) +         \
             0xe03916bfu * (uint8_t)(26 < sizeof(str) ? str[26] : 0) +         \
             0x44cb9901u * (uint8_t)(27 < sizeof(str) ? str[27] : 0) +         \
             0x871ba73fu * (uint8_t)(28 < sizeof(str) ? str[28] : 0) +         \
             0xe70d2881u * (uint8_t)(29 < sizeof(str) ? str[29] : 0) +         \
             0x04bdf7bfu * (uint8_t)(30 < sizeof(str) ? str[30] : 0) +         \
             0x227ef801u * (uint8_t)(31 < sizeof(str) ? str[31] : 0) +         \
             0x7540083fu * (uint8_t)(32 < sizeof(str) ? str[32] : 0) +         \
             0xe3010781u * (uint8_t)(33 < sizeof(str) ? str[33] : 0) +         \
             0xe4c1d8bfu * (uint8_t)(34 < sizeof(str) ? str[34] : 0) +         \
             0x24735701u * (uint8_t)(35 < sizeof(str) ? str[35] : 0) +         \
             0x4f63693fu * (uint8_t)(36 < sizeof(str) ? str[36] : 0) +         \
             0xf2b5e681u * (uint8_t)(37 < sizeof(str) ? str[37] : 0) +         \
             0xa144b9bfu * (uint8_t)(38 < sizeof(str) ? str[38] : 0) +         \
             0x69a8b601u * (uint8_t)(39 < sizeof(str) ? str[39] : 0) +         \
             0xb685ca3fu * (uint8_t)(40 < sizeof(str) ? str[40] : 0) +         \
             0xb52bc581u * (uint8_t)(41 < sizeof(str) ? str[41] : 0) +         \
             0x5b469abfu * (uint8_t)(42 < sizeof(str) ? str[42] : 0) +         \
             0x111f1501u * (uint8_t)(43 < sizeof(str) ? str[43] : 0) +         \
             0x4ba72b3fu * (uint8_t)(44 < sizeof(str) ? str[44] : 0) +         \
             0xc962a481u * (uint8_t)(45 < sizeof(str) ? str[45] : 0) +         \
             0x33c77bbfu * (uint8_t)(46 < sizeof(str) ? str[46] : 0) +         \
             0x39d67401u * (uint8_t)(47 < sizeof(str) ? str[47] : 0) +         \
             0xafc78c3fu * (uint8_t)(48 < sizeof(str) ? str[48] : 0) +         \
             0xce5a8381u * (uint8_t)(49 < sizeof(str) ? str[49] : 0) +         \
             0x4bc75cbfu * (uint8_t)(50 < sizeof(str) ? str[50] : 0) +         \
             0x02ced301u * (uint8_t)(51 < sizeof(str) ? str[51] : 0) +         \
             0x83e6ed3fu * (uint8_t)(52 < sizeof(str) ? str[52] : 0) +         \
             0x63136281u * (uint8_t)(53 < sizeof(str) ? str[53] : 0) +         \
             0xc4463dbfu * (uint8_t)(54 < sizeof(str) ? str[54] : 0) +         \
             0x8b083201u * (uint8_t)(55 < sizeof(str) ? str[55] : 0) +         \
             0x69054e3fu * (uint8_t)(56 < sizeof(str) ? str[56] : 0) +         \
             0x268d4181u * (uint8_t)(57 < sizeof(str) ? str[57] : 0) +         \
             0xbe441ebfu * (uint8_t)(58 < sizeof(str) ? str[58] : 0) +         \
             0xf1829101u * (uint8_t)(59 < sizeof(str) ? str[59] : 0) +         \
             0x0022af3fu * (uint8_t)(60 < sizeof(str) ? str[60] : 0) +         \
             0xb7c82081u * (uint8_t)(61 < sizeof(str) ? str[61] : 0) +         \
             0x5ac0ffbfu * (uint8_t)(62 < sizeof(str) ? str[62] : 0) +         \
             0x553df001u * (uint8_t)(63 < sizeof(str) ? str[63] : 0) +         \
             0xea3f103fu * (uint8_t)(64 < sizeof(str) ? str[64] : 0) +         \
             0xb5c3ff81u * (uint8_t)(65 < sizeof(str) ? str[65] : 0) +         \
             0xbabce0bfu * (uint8_t)(66 < sizeof(str) ? str[66] : 0) +         \
             0xd53a4f01u * (uint8_t)(67 < sizeof(str) ? str[67] : 0) +         \
             0xc85a713fu * (uint8_t)(68 < sizeof(str) ? str[68] : 0) +         \
             0xbf80de81u * (uint8_t)(69 < sizeof(str) ? str[69] : 0) +         \
             0xff37c1bfu * (uint8_t)(70 < sizeof(str) ? str[70] : 0) +         \
             0x9077ae01u * (uint8_t)(71 < sizeof(str) ? str[71] : 0) +         \
             0x3b74d23fu * (uint8_t)(72 < sizeof(str) ? str[72] : 0) +         \
             0x73febd81u * (uint8_t)(73 < sizeof(str) ? str[73] : 0) +         \
             0x4931a2bfu * (uint8_t)(74 < sizeof(str) ? str[74] : 0) +         \
             0xa5f60d01u * (uint8_t)(75 < sizeof(str) ? str[75] : 0) +         \
             0xe48e333fu * (uint8_t)(76 < sizeof(str) ? str[76] : 0) +         \
             0x723d9c81u * (uint8_t)(77 < sizeof(str) ? str[77] : 0) +         \
             0xb9aa83bfu * (uint8_t)(78 < sizeof(str) ? str[78] : 0) +         \
             0x34b56c01u * (uint8_t)(79 < sizeof(str) ? str[79] : 0))

// clang-format on
