/*
***********************************************************************
* Copyright (C) 2016 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html#License
***********************************************************************
***********************************************************************
* Copyright (c) 2002-2010,International Business Machines
* Corporation and others.  All Rights Reserved.
***********************************************************************
***********************************************************************
*/


#include "unicode/ustring.h"

/*
 * Processed through '[^\u0000-\u007f] Any-Hex/C' and then \u -> \\\u
 */

UnicodeString collation_strings_escaped [] = {
    "Brenet, Nicolas-Guy",
    "Bresdin, Rodolphe",
    "Breton, Andr\\u00E9",
    "Breton, Jules",
    "Brett, John",
    "Breu the Elder, J\\u00F6rg",
    "Breu the Younger, J\\u00F6rg",
    "Brewster Jr., John",
    "Brewster, Anna Richards",
    "Brewtnall, Edward Frederick",
    "Bricher, Alfred Thompson",
    "Bridges, Fidelia",
    "Bridges, John",
    "Bridgewood, J.C.",
    "Brigden, F.H.",
    "Briggs, Henry Perronet",
    "Bright, Henry",
    "Bril, Paul",
    "Brion, Gustave",
    "Briosco, Benedetto",
    "Briscoe, Arthur",
    "Bristol, John Bunyan",
    "Broc, Jean",
    "Brock, Sir Thomas",
    "Brockhurst, Gerald Leslie",
    "Brodsky, Alexander",
    "Broederlam, Melchior",
    "Broer, Roger",
    "Broggini, Luigi",
    "Broghammer, Joseph",
    "Brogi, Giacomo",
    "Brompton, Richard",
    "Bronzino, Agnolo",
    "Brooke, William Henry",
    "Brooker, Bertram",
    "Brooking, Charles",
    "Brooks, Cora Smalley",
    "Brooks, Erica",
    "Brooks, Henry Jamyn",
    "Brooks, James",
    "Brooks, Nicholas Alden",
    "Brosamer, Hans",
    "Brouet, Auguste",
    "Brough, Robert",
    "Brouwer, Adriaen",
    "Brown, Bob",
    "Brown, Christopher",
    "Brown, Deborah",
    "Brown, Douglas",
    "Brown, Ford Madox",
    "Brown, Frederick James",
    "Brown, George Loring",
    "Brown, J. Appleton",
    "Brown, Joan",
    "Brown, John George",
    "Brown, John-Lewis",
    "Brown, Lucy Madox",
    "Brown, Mae Bennett",
    "Brown, Mather",
    "Brown, Mike",
    "Brown, Roger",
    "Brown, W.H.",
    "Brown, William Mason",
    "Browne, Archibald",
    "Browne, Belmore",
    "Browne, Byron",
    "Browne, Hablot Knight",
    "Browne, Henriette",
    "Browne, Margaret Fitzhugh",
    "Browne, Matilda",
    "Browne, Syd",
    "Brownell, Franklin",
    "Browning, Colleen",
    "Browning, Robert Barrett",
    "Brownscombe, Jennie Augusta",
    "Bruce, Patrick Henry",
    "Bruce, William Blair",
    "Bruch, Klaus von",
    "Bruegel the Elder, Jan",
    "Bruegel the Elder, Pieter",
    "Condo, George",
    "Cone, Marvin",
    "Conegliano, Giambattista Cima da",
    "Congdon, William",
    "Coninxloo, Gillis van",
    "Connah, John",
    "Connard, Philip",
    "Connell, Stephen",
    "Connell, Sybil",
    "Connelly, Brian",
    "Conrad, Cyril H.",
    "Conroy, Stephen",
    "Consagra, Pietro",
    "Constable, John",
    "Constable, Lionel Bicknell",
    "Constant, Benjamin",
    "Constantin, Dimitro",
    "Cook of Plymouth, William",
    "Cook, Ethel",
    "Cook, Gladys Emerson",
    "Haddock, A.",
    "Haden, Sir Francis Seymour",
    "Haes, Carlos de",
    "Hahn, Emanuel",
    "Hahn, Gustav",
    "Hahn, Herbert C.",
    "Hahn, William",
    "Haid, Johann Lorenz",
    "Haile, Samuel",
    "Hale, Edward Matthew",
    "Hale, Ellen Day",
    "Hale, Josephine",
    "Hale, Lilian Westcott",
    "Hale, Philip Leslie",
    "Hall 1739-1797, John",
    "Hall 1885, Douglas",
    "Hall, Ann",
    "Hall, Bernard",
    "Hall, Cyrenius",
    "Hall, Doug",
    "Hall, George Henry",
    "Hall, Harry",
    "Hall, John",
    "Hall, Pam",
    "Hall\\u00E9, Edward Charles",
    "Hallen, Ambrose",
    "Halley, Peter",
    "Halliday, Edward Irvine",
    "Hals, Dirk",
    "Hals, Frans",
    "Halsman, Philippe",
    "Halswelle, Keeley",
    "Hamblin, Sturtevant J.",
    "McMaster, Gerald",
    "McMillan, Leo",
    "McMillen, Michael",
    "McNeil, George",
    "McNicoll, Helen",
    "McSheehy, Cornelia",
    "McTaggart, William",
    "McVeigh, Blanche",
    "Mead, Mary",
    "Mead, Ray",
    "Meadows, Bernard",
    "Meatyard, Ralph Eugene",
    "Meckenem, Israhel van",
    "Meegan, Tim",
    "Mehoffer, J\\u00F3zef",
    "Meidias Painter, The",
    "Meidner, Ludwig",
    "Meireles de Lima, V\\u00EDtor",
    "Meissner, Leo J.",
    "Meissonier, Jean-Louis-Ernest",
    "Meistermann, Georg",
    "Meit, Conrad",
    "Melchers, Gari",
    "Meldrum, Max",
    "Meleager Painter, The",
    "Mel\\u00E9ndez, Luis Egidio",
    "Mellan, Claude",
    "Mellery, Xavier",
    "Melli, Roberto",
    "Mellis, Margaret",
    "Peale, Rembrandt",
    "Peale, Rubens",
    "Peale, Sarah Miriam",
    "Peale, Titian",
    "Pearce, Charles Sprague",
    "Pearce, Edward",
    "Pearce, Gary",
    "Pearlstein, Philip",
    "Pearson, Bruce",
    "Pearson, Marguerite Stuber",
    "Pearson, Mary Martha",
    "Pechstein, Max",
    "Pecht, August Friedrich",
    "Peck, Augustus H.",
    "Pedro de la Cuadra",
    "Pedro de Mena",
    "Peed, Michael",
    "Peel, Paul",
    "Peeters I, Bonaventura",
    "Peeters, Clara",
    "Pei, I.M.",
    "Pelham, Peter",
    "Pellan, Alfred",
    "Pellegrin, Honor\\u00E9",
    "Pellegrini, Domenico",
    "Pellegrini, Giovanni Antonio",
    "Pelouse, L\\u00E9on-Germain",
    "Pels, Marsha",
    "Pemberton, Sophie",
    "Pe\\u00F1a, Tonita",
    "Penck, A.R.",
    "Pencz, Georg",
    "P\\u00E8ne du Bois, Guy",
    "Penn, Irving",
    "Pennell, Joseph",
    "Rosso, Mino",
    "Roszak, Theodore",
    "Rotari, Pietro",
    "Rotella, Mimmo",
    "Roth, Ernest David",
    "Rothenberg, Susan",
    "Rothenstein, Michael",
    "Rothenstein, Sir William",
    "Rothermel, Peter Frederick",
    "Rothko, Mark",
    "Rothschild, Gail",
    "Rothstein, Arthur",
    "Rottenhammer, Hans",
    "Rouault, Georges",
    "Roubiliac, Louis-Fran\\u00E7ois",
    "Rouget, Georges",
    "Rousseau, Henri",
    "Rousseau, Th\\u00E9odore",
    "Roussel, Ker Xavier",
    "Roussel, Th\\u00E9odore",
    "Rousselet, Gilles",
    "Roux, Ange-Joseph Antoine",
    "Roux, Fran\\u00E7ois Geoffroi",
    "Roux, Fran\\u00E7ois Joseph Fr\\u00E9d\\u00E9ric",
    "Roux, Joseph",
    "Roux, Louis",
    "Roux, Mathieu Antoine",
    "Roux-Champion, Joseph Victor",
    "Rowan, Patrick",
    "Rowe, Sandra",
    "Rowlandson, Thomas",
    "Rowley, Reuben",
    "Royen, Willem Frederik van",
    "Rrap, Julie",
    "Rubens, Pete Paul",
    "Rubin, Reuven",
    "Rublev, Andrei",
    "Rude, Fran\\u00E7ois",
    "Rude, Olaf",
    "Ruelas, Julio",
    "Ruff, Thomas",
    "Schmidt, Katherine",
    "Schmidt-Rottluff, Karl",
    "Schmutzer, Ferdinand",
    "Schnabel, Julian",
    "Schneider, Bernhard",
    "Schnorr von Carolsfeld, Julius",
    "Scholder, Fritz",
    "Scholderer, Otto",
    "Schonfeld, Johann Heinrich",
    "Schongauer, Martin",
    "Schwieger, C. Robert"
};

