³ò :]Dc@snddkZddkZdd d„ƒYZd„Zd„Zdd„Zdd„Zdd „Zd „ZdS( iÿÿÿÿNt ImagePalettecBsAeZdZddd„Zd„Zd„Zd„Zd„ZRS(s(Colour palette for palette mapped imagestRGBcCs{||_d|_|ptdƒt|iƒ|_h|_d|_t|iƒdt|iƒjo td‚ndS(Niswrong palette size( tmodetNonetrawmodetrangetlentpalettetcolorstdirtyt ValueError(tselfRR((sImagePalette.pyct__init__s  #  #cCs5|io|i|ifSn|id|iƒfS(Ns;L(RRRttostring(R ((sImagePalette.pyctgetdata%s cCsQ|iotdƒ‚nti|iƒo |iSntid|iƒiƒS(Ns!palette contains raw palette datatB(RR tImaget isStringTypeRtarrayR (R ((sImagePalette.pycR ,s   cCs|iotdƒ‚nti|ƒoÖy|i|SWqtj o´ti|iƒott |iƒ|_nt |iƒ}|djotdƒ‚n||i|<|d|i|<|d|i|d<|d|i|dqsii(trandomR.RRR(RR.R((sImagePalette.pycR1os cCst|tdƒt|ƒƒS(Ni(RRR(R((sImagePalette.pyctwedgeuscCsJt|dƒ}d}|pXy8ddk}|idƒ|i|ƒ}|iƒ}Wqtttfj oqtXn|pXy8ddk}|idƒ|i|ƒ}|iƒ}WqÓttfj oqÓXn|pXy8ddk}|idƒ|i|ƒ}|iƒ}Wq2ttfj oq2Xn|p t d‚n|S(Ntrbiÿÿÿÿiscannot load palette( RRtGimpPaletteFiletseekt getpalettet SyntaxErrorR tGimpGradientFilet PaletteFiletIOError(tfilenameR tlutR4tpR8R9((sImagePalette.pyctloadxs:          (( RRRR(R+R-R1R2R>(((sImagePalette.pycss  D