691{
692 static const unsigned char asso_values[] =
693 {
694 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
695 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
696 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
697 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
698 49, 49, 49, 49, 49, 49, 49, 49, 49, 5,
699 5, 30, 0, 49, 25, 49, 10, 49, 49, 49,
700 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
701 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
702 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
703 49, 49, 49, 49, 49, 0, 49, 0, 5, 49,
704 15, 0, 49, 10, 49, 30, 49, 49, 0, 20,
705 0, 49, 15, 49, 5, 10, 0, 49, 49, 49,
706 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
707 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
708 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
709 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
710 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
711 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
712 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
713 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
714 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
715 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
716 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
717 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
718 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
719 49, 49, 49, 49, 49, 49
720 };
721 size_t hval = len;
722
723 switch (hval)
724 {
725 default:
726 hval += asso_values[static_cast<unsigned char>(str[4])];
727
728 case 4:
729 hval += asso_values[static_cast<unsigned char>(str[3])];
730
731 case 3:
732 break;
733 }
734 return hval;
735}