packages feed

bz2 0.1.0.1 → 0.1.1.0

raw patch · 16 files changed

+30388/−20 lines, 16 filesdep +bz2dep +criteriondep +filepathdep ~basebinary-addedPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: bz2, criterion, filepath, tasty, tasty-golden, tasty-hunit

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Codec.Compression.BZip: compress :: ByteString -> ByteString
+ Codec.Compression.BZip: compressWith :: CInt -> CInt -> ByteString -> ByteString
+ Codec.Compression.BZip: decompress :: ByteString -> ByteString
- Codec.Compression.BZip.Foreign: bZ2BzlibVersion :: IO String
+ Codec.Compression.BZip.Foreign: bZ2BzlibVersion :: String

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # bz2 +## 0.1.1.0++  * Change type signature of `bZ2BzlibVersion`+  * Add `Codec.Compression.BZip` module+ ## 0.1.0.1    * Fix distribution
README.md view
@@ -1,4 +1,13 @@ # bz2 -Low-level bindings to [bzip2](https://www.sourceware.org/bzip2/). Bundles a copy-of `bzlib` 1.0.8+High-level bindings to [bzip2](https://www.sourceware.org/bzip2/). ++## Comparison++Compared to [bzlib](http://hackage.haskell.org/package/bzlib):++  * Bundles `bzip2` 1.0.8.+  * Compatible with GHC 8.8.2+  * Uses [c2hs](https://github.com/haskell/c2hs) rather than+    [hsc2hs](https://hackage.haskell.org/package/hsc2hs) and thus has a larger+    dependency footprint
+ bench/Bench.hs view
@@ -0,0 +1,25 @@+module Main (main) where++import qualified Codec.Compression.BZip as BZ2+import           Criterion.Main+import qualified Data.ByteString.Lazy   as BSL++decompressFile :: FilePath -> IO BSL.ByteString+decompressFile = fmap BZ2.decompress . BSL.readFile++compressFile :: FilePath -> IO BSL.ByteString+compressFile = fmap BZ2.compress . BSL.readFile++main :: IO ()+main =+    defaultMain [ bgroup "decompress"+                      [ bench "decompress file" $ nfIO (decompressFile "test/data/sample1.bz2")+                      , bench "decompress file" $ nfIO (decompressFile "test/data/sample2.bz2")+                      , bench "decompress file" $ nfIO (decompressFile "test/data/sample3.bz2")+                      ]+                , bgroup "compress"+                      [ bench "compress file" $ nfIO (compressFile "test/data/sample1.ref")+                      , bench "compress file" $ nfIO (compressFile "test/data/sample2.ref")+                      , bench "compress file" $ nfIO (compressFile "test/data/sample3.ref")+                      ]+                ]
bz2.cabal view
@@ -1,19 +1,25 @@-cabal-version:   1.18-name:            bz2-version:         0.1.0.1-license:         BSD3-license-file:    LICENSE-copyright:       Copyright: (c) 2020 Vanessa McHale-maintainer:      vamchale@gmail.com-author:          Vanessa McHale-bug-reports:     https://hub.darcs.net/vmchale/bz2/issues-synopsis:        Bindings to libbz2-description:     Low-level bindings to libbz2 using c2hs-category:        Compression-build-type:      Simple+cabal-version:      1.18+name:               bz2+version:            0.1.1.0+license:            BSD3+license-file:       LICENSE+copyright:          Copyright: (c) 2020 Vanessa McHale+maintainer:         vamchale@gmail.com+author:             Vanessa McHale+bug-reports:        https://hub.darcs.net/vmchale/bz2/issues+synopsis:           Bindings to libbz2+description:        High-level bindings to libbz2 using c2hs and ByteString+category:           Compression+build-type:         Simple+data-files:+    test/data/sample1.ref+    test/data/sample2.ref+    test/data/sample3.ref+    test/data/sample1.bz2+    test/data/sample2.bz2+    test/data/sample3.bz2 -extra-source-files:-  cbits/bzlib_private.h+extra-source-files: cbits/bzlib_private.h extra-doc-files:     README.md     CHANGELOG.md@@ -29,6 +35,7 @@  library     exposed-modules:+        Codec.Compression.BZip         Codec.Compression.BZip.Foreign      c-sources:@@ -41,8 +48,13 @@         cbits/decompress.c      hs-source-dirs:   src+    other-modules:+        Codec.Compression.BZip.Common+        Codec.Compression.BZip.Unpack+        Codec.Compression.BZip.Pack      default-language: Haskell2010+    other-extensions: DeriveDataTypeable     include-dirs:     cbits     install-includes: cbits/bzlib.h     ghc-options:      -Wall@@ -51,7 +63,7 @@         bytestring -any      if !flag(cross)-        build-tool-depends: c2hs:c2hs >=0.28+        build-tool-depends: c2hs:c2hs >=0.26.1      if impl(ghc >=8.0)         ghc-options:@@ -60,3 +72,52 @@      if impl(ghc >=8.4)         ghc-options: -Wmissing-export-lists++test-suite bz2-test+    type:             exitcode-stdio-1.0+    main-is:          Spec.hs+    hs-source-dirs:   test+    default-language: Haskell2010+    ghc-options:      -threaded -rtsopts -with-rtsopts=-N -Wall+    build-depends:+        base -any,+        bz2 -any,+        bytestring -any,+        filepath >=1.4.0.0,+        tasty -any,+        tasty-golden -any,+        tasty-hunit -any++    if impl(ghc >=8.0)+        ghc-options:+            -Wincomplete-uni-patterns -Wincomplete-record-updates+            -Wredundant-constraints -Widentities++    if impl(ghc >=8.4)+        ghc-options: -Wmissing-export-lists++    if impl(ghc >=8.2)+        ghc-options: -Wcpp-undef++benchmark bz2-bench+    type:             exitcode-stdio-1.0+    main-is:          Bench.hs+    hs-source-dirs:   bench+    default-language: Haskell2010+    ghc-options:      -threaded -rtsopts -with-rtsopts=-N -O3 -Wall+    build-depends:+        base -any,+        bz2 -any,+        criterion -any,+        bytestring -any++    if impl(ghc >=8.0)+        ghc-options:+            -Wincomplete-uni-patterns -Wincomplete-record-updates+            -Wredundant-constraints -Widentities++    if impl(ghc >=8.4)+        ghc-options: -Wmissing-export-lists++    if impl(ghc >=8.2)+        ghc-options: -Wcpp-undef
+ src/Codec/Compression/BZip.hs view
@@ -0,0 +1,11 @@+module Codec.Compression.BZip ( -- * High-level functions+                                compress+                              , compressWith+                              , decompress+                              -- * Low-level bindings+                              , module Codec.Compression.BZip.Foreign+                              ) where++import           Codec.Compression.BZip.Foreign+import           Codec.Compression.BZip.Pack+import           Codec.Compression.BZip.Unpack
+ src/Codec/Compression/BZip/Common.chs view
@@ -0,0 +1,16 @@+module Codec.Compression.BZip.Common ( bzStreamInit ) where++import Codec.Compression.BZip.Foreign (BzStream)+import Control.Applicative+import Foreign.Ptr (nullFunPtr, nullPtr, Ptr)+import Foreign.Marshal (mallocBytes)++#include <bzlib.h>++bzStreamInit :: IO (Ptr BzStream)+bzStreamInit = do+    p <- mallocBytes {# sizeof bz_stream #}+    {# set bz_stream.bzalloc #} p nullFunPtr+    {# set bz_stream.bzfree #} p nullFunPtr+    {# set bz_stream.opaque #} p nullPtr+    pure p
src/Codec/Compression/BZip/Foreign.chs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveDataTypeable #-}+ -- | This module uses exceptions behind the scenes -- -- Consult the upstream [documentation](https://www.sourceware.org/bzip2/docs.html) for how to use this library.@@ -39,6 +41,7 @@ import Control.Applicative import Control.Exception (Exception, throw) import Control.Monad ((<=<))+import Data.Typeable (Typeable) import Foreign.C.Types (CInt, CUInt) import Foreign.Marshal (alloca) import Foreign.Ptr (castPtr, Ptr)@@ -66,7 +69,7 @@                        , BZ_UNEXPECTED_EOF as BzUnexpectedEof                        , BZ_OUTBUFF_FULL as BzOutbuffFull                        , BZ_CONFIG_ERROR as BzConfigError-                       } deriving (Eq, Show)+                       } deriving (Eq, Show, Typeable)   #}  instance Exception BZError where@@ -109,7 +112,7 @@ {# fun BZ2_bzBuffToBuffDecompress as ^ { castPtr `Ptr a', alloca- `CUInt' peek*, castPtr `Ptr a', `CUInt', `Bool', `CInt' } -> `BZError' bzWrap* #}  -- Contributed functions-{# fun BZ2_bzlibVersion as ^ { } -> `String' #}+{# fun pure BZ2_bzlibVersion as ^ { } -> `String' #}  peekVoidPtr :: Ptr (Ptr ()) -> IO (Ptr a) peekVoidPtr = fmap castPtr . peek
+ src/Codec/Compression/BZip/Pack.chs view
@@ -0,0 +1,105 @@+module Codec.Compression.BZip.Pack ( compress+                                   , compressWith+                                   ) where++import Codec.Compression.BZip.Foreign+import Codec.Compression.BZip.Common+import Control.Applicative+import Control.Arrow (second)+import Control.Exception (bracket)+import qualified Data.ByteString as BS+import qualified Data.ByteString.Lazy as BSL+import qualified Data.ByteString.Unsafe as BS+import Foreign.C.Types (CInt)+import Foreign.Ptr (Ptr, castPtr, nullPtr)+import Foreign.Marshal.Alloc (free, mallocBytes)+import System.IO.Unsafe (unsafeDupablePerformIO)++#include <bzlib.h>++{-# NOINLINE compress #-}+-- | @since 0.1.1.0+compress :: BSL.ByteString -> BSL.ByteString+compress = compressWith 9 30++{-# NOINLINE compressWith #-}+-- | See [bzlib manual](https://www.sourceware.org/bzip2/manual/manual.html#bzcompress-init)+-- for information on compression parameters.+--+-- @since 0.1.1.0+compressWith :: CInt -- ^ Block size (@1-9@)+             -> CInt -- ^ Work factor (@0-250@)+             -> BSL.ByteString+             -> BSL.ByteString+compressWith blkSize wf bsl = unsafeDupablePerformIO $+    let bss = BSL.toChunks bsl in+    BSL.fromChunks <$> bracket+        (do { p <- bzStreamInit ; bzCompressInit blkSize wf p ; pure p })+        bZ2BzCompressEnd+        (\p -> bzCompressChunks p bss)++bzCompressChunks :: Ptr BzStream -> [BS.ByteString] -> IO [BS.ByteString]+bzCompressChunks p bs =++    bracket+        (mallocBytes bufSz)+        free+        (fmap snd . extractBuf bs)++    where++        -- corresponds to inner loop in zlib example+        fillBuf :: [BS.ByteString] -> BZAction -> Ptr a -> IO (BZError, [BS.ByteString])+        fillBuf bs' f bufOut = do++            {# set bz_stream.avail_out #} p bufSz+            {# set bz_stream.next_out #} p (castPtr bufOut)++            ret <- bZ2BzCompress p f++            szOut <- fromIntegral <$> {# get bz_stream->avail_out #} p++            let bytesAvail = bufSz - szOut++            newBSAp <- if bytesAvail /= 0+                then (:) <$> BS.packCStringLen (castPtr bufOut, bytesAvail)+                else pure id++            if ret == BzStreamEnd+                then pure (ret, newBSAp [])+                else if szOut == 0+                    then second newBSAp <$> fillBuf bs' f bufOut+                    else second newBSAp <$> extractBuf bs' bufOut++        -- corresponds to outer loop in zlib example+        extractBuf :: [BS.ByteString] -> Ptr a -> IO (BZError, [BS.ByteString])+        extractBuf [] bufOut = do++            (res, blocks) <- fillBuf [] BzFinish bufOut++            if res == BzStreamEnd+                then pure (BzStreamEnd, blocks)+                else extractBuf [] bufOut++        extractBuf (b:bs') bufOut =+            BS.unsafeUseAsCStringLen b $ \(buf, sz) -> do++                {# set bz_stream.avail_in #} p (fromIntegral sz)+                {# set bz_stream.next_in #} p buf++                (res, blocks) <- fillBuf bs' BzRun bufOut++                if res == BzStreamEnd+                    then pure (BzStreamEnd, blocks)+                    else extractBuf bs' bufOut++        bufSz :: Integral a => a+        bufSz = 32 * 1024++bzCompressInit :: CInt -> CInt -> Ptr BzStream -> IO ()+bzCompressInit blkSize wf p = do++    {# set bz_stream.next_in #} p nullPtr+    {# set bz_stream.avail_in #} p 0++    bZ2BzCompressInit p blkSize 0 wf
+ src/Codec/Compression/BZip/Unpack.chs view
@@ -0,0 +1,94 @@+module Codec.Compression.BZip.Unpack ( decompress+                                     ) where++import Codec.Compression.BZip.Foreign+import Codec.Compression.BZip.Common+import Control.Applicative+import Control.Arrow (second)+import Control.Exception (bracket)+import qualified Data.ByteString as BS+import qualified Data.ByteString.Lazy as BSL+import qualified Data.ByteString.Unsafe as BS+import Foreign.Ptr (Ptr, castPtr, nullPtr)+import Foreign.Marshal.Alloc (free, mallocBytes)+import System.IO.Unsafe (unsafeDupablePerformIO)++#include <bzlib.h>++{-# NOINLINE decompress #-}+-- | Don't use this on pathological input; it may not be secure+--+-- @since 0.1.1.0+decompress :: BSL.ByteString -> BSL.ByteString+decompress bsl = unsafeDupablePerformIO $+    let bss = BSL.toChunks bsl in+    BSL.fromChunks <$> bracket+        (do { p <- bzStreamInit ; bzDecompressInit p ; pure p })+        bZ2BzDecompressEnd+        (\p -> bzDecompressChunks p bss)++bzDecompressChunks :: Ptr BzStream -> [BS.ByteString] -> IO [BS.ByteString]+bzDecompressChunks p bs =++    bracket+        (mallocBytes bufSz)+        free+        (fmap snd . extractBuf bs)++    where++        -- corresponds to inner loop in zlib example+        fillBuf :: [BS.ByteString] -> Ptr a -> IO (BZError, [BS.ByteString])+        fillBuf bs' bufOut = do++            {# set bz_stream.avail_out #} p bufSz+            {# set bz_stream.next_out #} p (castPtr bufOut)++            ret <- bZ2BzDecompress p++            szOut <- fromIntegral <$> {# get bz_stream->avail_out #} p++            let bytesAvail = bufSz - szOut++            newBSAp <- if bytesAvail /= 0+                then (:) <$> BS.packCStringLen (castPtr bufOut, bytesAvail)+                else pure id++            if ret == BzStreamEnd+                then pure (ret, newBSAp [])+                else if szOut == 0+                    then second newBSAp <$> fillBuf bs' bufOut+                    else second newBSAp <$> extractBuf bs' bufOut++        -- corresponds to outer loop in zlib example+        extractBuf :: [BS.ByteString] -> Ptr a -> IO (BZError, [BS.ByteString])+        extractBuf [] bufOut = do++            (res, blocks) <- fillBuf [] bufOut++            if res == BzStreamEnd+                then pure (BzStreamEnd, blocks)+                else extractBuf [] bufOut++        extractBuf (b:bs') bufOut =+            BS.unsafeUseAsCStringLen b $ \(buf, sz) -> do++                {# set bz_stream.avail_in #} p (fromIntegral sz)+                {# set bz_stream.next_in #} p buf++                (res, blocks) <- fillBuf bs' bufOut++                if res == BzStreamEnd+                    then pure (BzStreamEnd, blocks)+                    else extractBuf bs' bufOut++        bufSz :: Integral a => a+        bufSz = 32 * 1024++bzDecompressInit :: Ptr BzStream -> IO ()+bzDecompressInit p = do++    {# set bz_stream.next_in #} p nullPtr+    {# set bz_stream.avail_in #} p 0++    bZ2BzDecompressInit p 0 False
+ test/Spec.hs view
@@ -0,0 +1,32 @@+module Main (main) where++import           Codec.Compression.BZip+import qualified Data.ByteString.Lazy   as BSL+import           System.FilePath        ((-<.>))+import           Test.Tasty+import           Test.Tasty.Golden+import           Test.Tasty.HUnit++testDecompress :: FilePath -> TestTree+testDecompress fp =+    goldenVsString ("Decompress " ++ fp) (fp -<.> ".ref") (decompress <$> BSL.readFile fp)++testCompress :: FilePath -> TestTree+testCompress fp = testCase ("Roundtrip " ++ fp) $ do+    contents <- BSL.readFile fp+    let actual = decompress (compress contents)+    actual @?= contents++main :: IO ()+main = defaultMain (testGroup "bz2" [testDecompression, testCompression])+    where+        testDecompression = testGroup "Decompress"+            [ testDecompress "test/data/sample1.bz2"+            , testDecompress "test/data/sample2.bz2"+            , testDecompress "test/data/sample3.bz2"+            ]+        testCompression = testGroup "Compress"+            [ testCompress "test/data/sample1.ref"+            , testCompress "test/data/sample2.ref"+            , testCompress "test/data/sample3.ref"+            ]
+ test/data/sample1.bz2 view

binary file changed (absent → 32348 bytes)

+ test/data/sample1.ref view

binary file changed (absent → 98696 bytes)

+ test/data/sample2.bz2 view

binary file changed (absent → 73732 bytes)

+ test/data/sample2.ref view

binary file changed (absent → 212340 bytes)

+ test/data/sample3.bz2 view

binary file changed (absent → 235 bytes)

+ test/data/sample3.ref view
@@ -0,0 +1,30007 @@+This file is exceedingly boring.  If you find yourself+reading it, please (1) take it from me that you can safely+guess what the rest of the file says, and (2) seek professional+help.++ps.  there are no further sarcastic remarks in this file.++ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh+ugh