Directory listing for /qip-ask-qien/.pnpm-store/v10/files/43/
00cbff7d7bedfc1c748b9daa6d3edee8dd6ddc4972d758e3f0fc63773b0eb5474f8ffcf5bf996b9bd551904600f2d81cd21ff3135981a094c5b04f8f69f912
01e79a1c674fa8e536834bf3b8da8bc9a5b01ec98f9b6fba4100772a823fb99a3b81f16ebdf04004e7c9f7feb1eb3d3e297234dd225a9bae541849bc3669bb
041b1172c903d8d6b9b918f03f9050ce78b4e37911a79e736030403d9a8ce608596fcf8455be0dc31abf5754cc6e88d9c64f941d56ca45dea853afc65e7d48
058da63440717f86d8c804403626ae4f7706c8dfb6c482ecf8b6afff786a434a76f9f04c66f8e502f131f3f7c509ec002b4521b40fee8c61723767b0e29048
05e12cb8994d4af5f3da6df2f045b488813d567df4c79cd67b61d22fea7a82c4bfeaa437b208e73eeadb600b26c7529294a53e7a02ad7ecd2a0be4c399693b
08f52b9b33bcabd5722835694515505bb3c355260281963e081835c6f7022a0dd2a85fc36c82aa957a57408fd0c8c0ad56895583ecabdf5192b01a4610aa10
099ed60b3f615109e7f59ea7e10b309b811512705ea69df74d4db86c7e342c3b66f215791cc111e0dac704a90be30e122b5d931567d687a30d29f00da3ed2f
0d960b83379f0e86aebe5451733f330909fa4528951b78a3fc735421c7876946519a6bb2a75dfd8606bd3afd9e624d997db0412701f2092a2cba9205928902
0f8232b304164aac1bbe501778ade259c78f54064e4c50fbe580967a99c4a09ec414c334f9c092e2261871cfdeea01f58d86bec44527f2f7c31aa839d67c33
12261ff216f0355f9636f61de5a3a287ab671c6f6ce0ff79454418f661e47c0b1be375940920a4c3c792f1708eda283d354534b4c7bf3015ab81e607f9971d
13180355818c44cdfa19b126c3c6957bec21fc023bb7a158ccc59308e066be24c86e4fa7ff01dc33ae99f0bc31609eb81fd30be769b3d160398f3cd18ab7f8
1588e3144a15d66dc675fd7fb7606fc447a8e3fe488150e61c61108bdc82e19f62b5b0e7390a76c6151f95e859ad201f950524da763db5fa9de0f4456296f4
159a860d29c46efcd1ca8502c8f59bf2244a3cc9c5d959c62de83cd96d44e8228105ddf8212fdfbc2d8bb6f034b6567ec9334bccdedba1998596de91d1dd88
15c4dd99a93461da974572c098d446d96b9497a11f98e6f390c9d529e86853cb0a21e7df6b85d27e2fb33c0e5125b677ce60be707c1c4fdfa7237a4d701cc5
166a10e054d292bf805b9463a804d9992fa95e1580ba9286e0e43d20862fac1f57e61249d58c7559b3a82c6dd920ae4b364493725d75bcf4374d94124d8ff0
1768cd6e179f9e8d2147f3b6e7d8ccfcb2ef905583accd209765a165cf3f6ba2f7a806b9cb7248e05115925bea6275be031aebf011738bf19b37688ff90e89
1c3ae4f431b22e69cb695a2831881c398a2e26abf2cb892294513b51874a019812a9e00d74f4fabe5108d03aaff0ce03b2d998302efd4634293341be581d03
1ee1958134b774d7d78c0d3dd96decd4757b32be6579b1bdf80f6309ec45c73abb09cea7c725cc3b82683e8ed1fabaed3357477dacbbcefc0af50e9068725d
207c544cb32e3874e2ed2f23d411365bf21e04a4f71fc322bbdbfafd866105941d98d744b567b93652d94c5d6121a6f2b6acc76c9014f450b7e987051cf4b9
23461d0bb0be7c4af32228a203f4552ad7556d671117059c41e38ed77012b234147082283c85b59579b4b5bce3c31cd1524d1d48cb368785a62544f5fbd1b5
31401d8f32a955e169374732a15036b1f2a2452e2ee641f3502f8ebf50108bbc565a809b1c72b44a30903e2edbef5c0c3ff7aad926879da00fcdb978093d4d
34da9eef8434d8a5766d70e8f1971e66b637326ef95bb932fa7e493acd3f30e47715de78cf0f2769d52fb0364f5aedc39bace5391bdcd10536a68ee131d623
392f8df958fecfb79efb21e41c36de3098b530ef66d7c28e8198c2631627a77ecb35f1eaac5ada794d3f4fb133104b9573978b525d4da50bd2c51959938156
39620d5bff92a5d59df13622bb1a389c89828eea9347d6fd1674bcb642597ff9f90e19ce28416cdbe94aaeb3db6b4f60cd9cb1047c9dce0b93db130c78a885
3a906a1e09a21763f041e19801e0f04ff26fa89517ddd26993847f3b13f30a7d99e148eb645c230ea2abb8cc676ddf25fa3b0d59acb4d13caef9bb3749b324
3d12aa63e8dda4b2bea3085cd63a892a0a4de6ffaa8bd448c691d436f3112edf27ac947f2f23fbe3c4750bbaa891d239296506d8abd8c2ad152c9a20ead108
4059460e3c7faaaefb6fe40cb10ed57dcfbe4bace2e5bbc34295163b6ce1beee97bb86d2bad2558c561cbd17c43e0e8c963c7de390567db976a03ce36b2396
4059f54d946ab38c222ebfb612f3181b3f21f9a4a1e128c6ad08bc292ca558e5f6d937868a69db2210376fb0c004e7085de9b9f672102bea7d081bc3916ac0
432488468da8c22eb0547b51c6039786685dd05259853e026b431d39032ed7bced5b4d8be328d959c1f9899fc3eb329afad590245f025fe366f383547ff3ce
445cd8714d704735f0db27d4bb9102e8160282c63cc0fb73bbe3cb2bc112026548e6813f909a94bd73c5531df727294932b5c019400048d042acd7aa5dc6d4
450f04326495c76ba7b76d2091cb1257af214738fa89d48a70776ffecdb9601ed2b8b497950f554b3acc29e8aa81823686cd776d7b9863a9efcde2a5fab233
460f50bf7923d1dd0ec448fc46d7e030db439f7d765a93ffde8204a8c6e10cbd1244805bf1cee0eddde95a32dede64ff9c6d2fd829bdf207bd80697c2d01b2
4667194e95b34adbb12b6097007a49d19b8afd354f98510db6c00ca49995288367472b876a1cb68b2b2dabe8b6efefc93b0fc399c287f624a8dd26a57a5e83
4c06756655d5d71c4ea72d03b9690cbedfb7bc19aba95a0bd3ac5831b006cac5c3e5701900b13bba65d9d96bb0d81f36306424a80a515b579663e156810229
4c3b0209acc4010999066b005e6d391fb6da05a66385152ee27ec5acbd36f5d1d9f76a2cda039a85a0d3947891ce491936616ff8d470631fe9d6102079b085
502ba8432f107da1739507077cd50e54bb11a3cde833b0d369bd36677b4db3d538160d5dbd3a002eacc8d79e2ee074dad03fff93110b2427b5ddda204a2554
50dc9350ca3bc074161688b7b4105e400f97594a7e01bed5c1a9770a8a20df6aa0cb307946716b1828bfed147d8c311667102c5a8eeb6896f5da42f6235a19
529607830ec7496e069efd8d17d88954a2538aa0b02c1090a4adb814ec0603005953dd946e47ee71835545ff30fea9b11bc261d6db54330fa8181d03fd9f01
5a1697dfe2eb67fcde166065f213e54f231c4930509592a1410982decb4fbbcce8b0717539c948a3c0df451927160429482d5b569d6462aef0c27d277a85cd
5a45a755a83afc38184db8a237da8d617f357711c4d6d98f6ec222fbe48e6c4bd97370e5b9208a3e1323ec45c21556d203a2b8d31bd72bb99730d9d8699a4b
5c03bd9a47adb37242419b9292db34b0c162d16bb62846c3c5d8d3aa0af98ddf7ece7ada59badf8d20897aa9f99d0f26fdf3dac7429edfcd7d9b05d8d31d60
5c06bdec70aab73dabcaa104989145a014d5719e7c9f4a51309985b721e230dfbb7add743935ba5b1c5a8304cd2f70b788122265c2f32d75fc79a728cfb999
5c6c1116c7f1b833214795e2a36c429cdc0ec2a5275b4ff31fb2e4f6b8ec40e3ba6c7dfb38d17febe7e473cccd89d0c19ee0cd9acc444cad05e78ac49bf45d
5cedc6ff0919888877e78b1387ad73a5ec2a6e8c4be50c0ce83667e1f48afcab41248113c41c2eb777b697b34b0d96d8c3cb22da676a86d41c8480c20a16c9
5d9775b3f56efb9d61e33f2a93afcbce0264d1a977814227fd1478f742576192b045d59150185d30be67d1f818abcefa93bde700a5a2a2f4d7cfb793758a6e
5eb090d10dd13d383cb0e63ccff45442824e6f08c986fd358271129b2a055881d672831809e7a7d667a185c8093a317d2abc2f6baf86c9988835a50c111b12
6076d6bf0bd047af14c7504a82159de30150bd2b547b04b88b7fe1c68e5b5c42d554b7dc24c70c6b3c6a8cb30547fa78558da65a2084362ef63f36f48367cf
62c5d5bf9d47eb59e557e8f87a7f59746440a48aa1cdaf95445ff732a243a32d7fcc1a6b2548affc1002d536990792cbce136e49b1532fc24ee21cd9bb3e65
68b4753af2650ca8099422c7909cba4436c4d72903d35552906ac62fcf4dbe19ef4d5da9081456ec5cb8da0351518b6b9cc2078d9592d4d95bdc44f49d475e
6bb13fa51f89e8db0bbde869d712507731d8d834dabe23052297ac60d5ed3ce57e5593f2077a56e2996f73438ac25ec313060e233a12291d2d6f54ec6bde8c
6bd39925754f39473a5bc66e8e836f291e04ef2644fc9b6caa8ec692d8e95ecfa424c2d9e0971ea1551614cc9214205cd89d5e8c44dd31f8bd689179d1f87a
6ea03e7528f7a198e8fe61fc0df6b854c3e103492aa1b348ee1f40dc74cd67e42f0f48998601b06760978dee534ffb0d5640eab648bd3343f1c20e11e80fe6
6ef9f0a3d8f4be94b258b8257698b9b41a1febb80458e0e368b6826895e039939d9c372b67c9e8463a3e42470be9d05f68f45424bc870b344a0dd1ef957ec0
7644b5b2e833fa4ce0b7e77c195178d5fa8f46f5b40d44689bbd6fbaf4bcdf706f2f15a146bf703713d6e958a30f10fb6a86c55c89763be2c50273fe587cb0
79e3921aa9a969576163d4a7a62610ce6f678add84b09a4eced285beec84da0ca663c6a8d56e48535f7d9a7cddc8e077c5d050227d7f9c15671f5282f796bb
7c803a927bd6ad57434c65f1a2cb43aa5e6ecc5fab7b425fb5091f4ccd3fefbb689676558739fdd5ac9bb1de275ff581344416d0157cd80a31c3cc9766a05c
7cfa7f509d3c543b3bb7236e4788629ef83dae5b22fff958408f19b5b806e2f4e57af409e268945b4f965784b489e7b0155b3ada0dee6cf58846c6eb3b60e8
8384a4e35e825d42631bc265f093c05d458e766c6b7e6e68a3b0079d73b886be8bf4da9d459267097012583e17c8f5f5ba5ecaa34944a30ed4641916eeecc3
839fe3d67974e961f15bbb72170fddd0fa11ea93f563f7e5ea936875d6dddfdb15b69bcfea4aa070bfe4003fc103642f2e422cab2d34f2771cbd671bf8402e
846cdf6d8fb1aed7aef293fa96440f332dc28d31b0e1fc2aa4e2e103193ac36956d2f13e986b90ad7fac6594ff9dd8c9b42fac30b46bd6f78f99d0e40e0644
85690fd8390cd17a3e7a8a8d01e923ca82ecdd5c085e713fb688f7786443130bb81a48a1336cc8f8a3ab01bf127a2f2044a849afc025736df711f5d517c5be
85ceb10f36ae0715332bf83f7a0804f53dc10754ff1d9a3449f1d5f21e7c8e897a4dc731b8f500f450650421ec5c5240d9aeab5078637e9b5d9fc7b68b9899
8649ea4daf0b7414b750e53e12a5115fe26b1eb9d926f6937a5de6063b40314521a4ceda72e5d9c1c338b9d9776d0c06bf0a6cac7f26dea98e7134430ffd4e
8806ca4e2316b0db1b773cb8c2298c56f7e479812e71d5b7a7c1b598f2d9b531e1c8009663c8224684f2779ad05af2f1f8b97f832928f81be2cbecaf251323
8cbfa12d5549b6d0eb9ac407c835396b447609cfb490196daf482a924aff9ef5123191ff1ef1f7fc55ad79d10540e4eec027fb45219de0e5cda7db5688c601
908580c500c7856175f7bcd0e85c86d4cdbb12d6ee6ec05b84fcb8776f5f3a79fc2cf5f12eebf67624930a139d483d99e79db9bfd6dca7b07e703186a334a4
93c1da6d98a4284b2210f748e684cd07faa66234cc6881cb1ee0677984019ea697e371123e6151c85cb99f6d370068d6e302d1cf585c07a6e11f30f17653a3
94552c02d7b28acf273696874c7c8cc2053bba8334b9dec4a43522e92f8f084c65b86000126536d5d75a5158b551ea08efd309bedccab548a94ab52ffefce1
9533ea054d0778f6dd745fbf119de30543f452275a619e1e77a6438b3bb6d878d074ed4ec6ed1ff79d2cfef6f56c205d633544a98fbc28bf4e73041f04dca9
959b963ab40018f063575fdcfa3c0e62e4a9d5fc88e6fce50a39ce71480330848d68fa12197da5337eaa2fcd7f89ef72b6a4aa38c0c0c9a02eea0e72d1ac25
9a7717573b18a12002b266aebaa08963e5c834c720d7a2b27e76dd97ee450ea7d124a7ba1b4e1def1f3791c2689499e632f767e821f3435a052b4cf40831b7
9a9061360cc18785d355bb18f07e186c55d114358b0d13b92ad479e826b0664021dfa1328613dfe9743ca528c79812e40d4f8594b26c09a04e7dc37d557d14
9c60cc6550e4d1dcdfbe9918458c2c4e3dcd8a3a4fa514ba3a0c8fa7e4454e722660b25b1b13e6c4a4daf5b07b51de3b11e86a5c9b2ab91c05242ac0fa7082
9ce774d47637a32675ed0284dd7ce1a5580b5e61443a8c926b6bc6af1eb2a0e25b2fbce7acd7bf2efdcd71f6212f99ea4bbf64ae1ef034ffd342b68cb46056
9e09ea4e60fc400de18e0a3367431e75a798bdb3a5a4196d4e96e2cd8287281aa2273b22899b1715fe533a346c919e211bfd446cbaa17b9b04b3edb616efe0
a31da72188f19a8e3fb24d6c15616622c31eefd616039abe62311f54c03530570c821100fe3a41d63bddc8ab91ea8747e689ad6ca5d1ac6b64d54e15c9afdf
a71b5e06102f75ecb50a1a3b821e3628e924784df92b49116aa2b9a4ec6093a37885296e64ef04aff2454fb33128cf31d7e18d41984a80b405755c1431abee
a7dece199d7e8f4510a6046a26a4d15b77708249c659d6617a776bdd6759f0b85c21d37a972a83ddcb643a43c9a5e2a5b53caa17ae401aa867a4cd9c43ba9a
a8020907a2dfae42d8ba2162b3cd9395987e94e759bf33a86866692b1ef65cd69deca9309cb567d3097906d0eba5b1ffbc0855ddac727f8bad2ae8f8b93016
a948e3921e2d0029e4a4d03b2f1a741621ff17ed0f8c56438397a79475f07615126d4640b9af942bb7c9bec5cd6bcb96e3b51d658fec7f54b083d870dfba51
b08a2f0e04be290590e28cdb9b7e4411d668adde1295136a0131d05ce858e5ce50c076741a17b8bb06cc5ee567b7e282ca05db2e957f2e6686b1503680a481
b427f54bbd0b61e1f69bc8cf92076489b420ba8a934352aa9f7793fb6da27f4f240758b53de81e907934ca60fb657ffb6838217a4fb4dc66771f4528cdf55c
b4346187c6404abc7e7d0caaa062284ddaa4110c86ad997aea0ceb4bf0bccd701a49e5bda24be18d082e1b2c59f224e78d86bdde50aa56c41414bac896059d
b4cc9d26d52788f114218e58e12d7bc68927861b9af3543cc2742fc2c24772453fb11df4f34c9fb69b3116035def69c052c56e7e3f6fe1aea1437e8bab29ec
b5002e963b956a8db200a96d48cf764443e8e368446029b5c3e0e983fea37f38c3c2664053db5871fe7de67cb310e1eef579a67418ad52ac83b1b5c22922c6
b6aa8c4f50e5a10b243e7b20022795a4fd463b0dca1624058fe29a2534ab8023a79268b08a4be652d0cb0baa70b01aae1911135b1c8b440a7f9b13fc944e5e
b6ee459b018d5e29e2ffd930993e2abb423b115f4199a144c25ca05e352491ae4ce5c970be1571c083f39aa8ab71812d2a8da08de660f43a946afb193ca65e
ba8425be6f69a226e5ab9effdf79545958cc108384cabedc5b81141019b21aa17f211a03f4b4f9f8cc8aee0493ffec0268ee78821bf474d65522497116f68d
bb30824b08067dad40f714e0bc53d558e66d502217e7b401945dd3d427ff12d7ceb3285d6dda2b40bc070e806f48373c15063f77b2c8a265c35167098c0597
bbb4e1f8a2ba373c4a9ed45d2ef1ba1c70af23297f88fad8557aceb3a85e889344f2f40e2f0598a4f9db6acd1e580c50b08ba211480dd67f8378310e407e61
bdf279eecb7c2e392b5924082be68467002a157114afab8ae7375eaa00db6644df4f9807f7f0cb7d4632b6ccd5d7e42d3b28fd81db6e5fd1905a37466fb59c
bea9fe0f92b88a1072612d9f4f4eed76b0e7734ecdb5b6c87b61cb54cd03e68ffb7f46d263271f4f7da6ddec21d111aae009b3410654d814c7278de9c6ca76
bfaa73aae7679f3bfacdd2920d0ecc2f795ee4c26e581af9cd5741d64f47164b0ea5fbb895e64bd1b6084cc98c4e543c19720efa2c31acc0ad8b1f103edf24
c0b3f08a77fb09adf0acd5d74f8c1ab5dd94edcd58649921b772794ff384427ffe9a80d4782ef50a406bdd14e97b740dfe29889bd47b784a60d6325ece0538
c24e114dabf01fbf1642670bcd59e7c21c80058297f6ac6d93e4387243d87b6742d58b7368744104ff54809e0e5550d3e754f98455bd7d28f171f2f68902c0
c95e55ffb493bcc82184264e7de39a7fb30adf128c7ea272e405f792bcb2c8777936741c680ad42ec800f621482de6b5e24891797c667d873c4f58955bada4
c99072b9ec542e3cb5323cb89571cb7b7b62a1a1d5af09eed6a6f4f3ce4f39b31f167d5f2074a0ee57576a4ad010e4437c731ac9e5dfe6466be1751ef356c6
cdbc6c3e2ca567b3f49aa5044c9cae244930eca5f8649d72ee6cd71df896edf71ceee5d94f5ee0d16dc1b35387728aa5391ddb22056f2d3bbb96b456537080
cfc84815fed1179937bfc34ed08eac4a9af9d8cac918d7f3a705cfedc1b6fc2036660dcb315a66ab361aa83b235e8b222985d4b7231a2f1653adb38e70409f
d0487f2127f7eab6bdd1879b909a324b67c094e5cac4f37270ca574161d29a2c58bf1a75d8d508aefc50ad02d5506ac2b855c4dad852f933919434b67abc71
d2b5d89e45c540247fb9459c939da57a0019c19d5d044093ebb159cb5f62114d01c900c7375ae957af843ad6620221ee75ac3742665dcf2f1c77c7661f6538
d2c56d5b2f8c9628ecae2389557572adc8d6a71e111099e618b1c268fe4f2853176282b8c3a07151f958b46e325d0a561a3a0c907d654de18dfd16a35a709b
d3f783c752a62de9df13867ff028950c252ca4d370ed76170ca12f494cba4893baa2f6918923efc5519b96136ccf73ffda2e85a1981708f61e379faed74358
d53fc90a65d25fd0fd9ba3465e9693085ecc2a9bbb13a09e298a55bae709f5d238dac67578fed32ec5adaced0122c67e7307721712354bf0f8df8f498f945b
d55b8ace018e8be37c3b0f30f8f0dc3df38318d9f0f908d9b17966b38b39b86ea835673ee1896cef834a74e0fae8a146da04122443b40cf8676781d801bb40
d6089a511bdad14a9107b57d14c9bb1806bb603b3c9e1d7a1aabee78c19191472f5b56437954768238e898a74151a67ff1915f1ee922f8e383021c45cfdcf4
d811391fac7e50a9f11dfa0a34baf2769df80a7cb34a146c2ec78c3029aed52b16c728e0ffcb643d7c4ac0029e809f151322c5c7e7172473d28fcda18074a9
dbda6e06b6189031ce1e262456cff87f240a17124b624ad8d9ceb7770643c0c8f196ec53df57e86220ebd4828ea91a886b4ccfbed87577bbcdcd00b60ca628
dfb629e21a198e51bca44b00ac3a4220e6edd60f57e9ba203d6d439f1013b21ab04386697c439a2bb473911eb1d6ce947f3c2a384367118093ff0f8cf208b0
e0cdd7200b563d19b17e99cac9796112399cab3061294a60c9b62a24976e9f75ef764c4dad7ffd2bfa3cea61401b1e18fa4c976e2816d19c7e2a8661e54f49
e0d2d664051649a325dd271b15ce4bf9fb52a72ef3fbe1506e86198515bad18f8f19c6c6633425e3f5cbd5f41de7c67e8eda894dd8e6b45b4224239dd5312f
e4624b5c2c1617b5f30199544b3d07768d8ce2478ddc43dbffe12a1ee63ae349f2adc0bb0e282f9a78e74ceb757f94a424290f0b06e9c8df493264e5a4afce
e4628cd01160517a2cd99262437ffd0560356e36f3d5f708eb1dd8ed96da6f1bcb9e439ab017e7700427e96e0c7b43f618e45196566369285c134238fb2c8f
e554167e916c47730757e6816a318bcd4be1918e943adf67abe04b1043a56bbaddaa2d20ef8e53ecc3df4ec36b2c42c788b6e5a7f48bc8a1b4ec5f9e9b9b1e
e6219394854d9bc2b06c2dc8f4e9c817a81ed99a19d295cce65a5818305ebf8055cd87f5ae3f440053b0a94538425e2a62204d25dd9cd858238706a6670544
e879cb243002f5bcc54c1a71874cb138652703c5b88d941d25be08f270a43768ae1e5d47d90babb8ec6c2539b69eeb289978657a41da838dc966ccf2626558
ebc31ef93e908e71024dc02198e30848ea7b62be2b90135ddffad058f7233fcd598c6c40b38905adf7df0a482d7b3f4d34b2eedd17f30759c092b89223f224
ec237fb95ca4fe43c0a96f368882a38956f1f193bcca9cd1169651e9050614d88344b7b045e0d417b249fe96ef9de36c21f9085d28eaf1c026fc13a9ce7c73
ec6c987529f80f48e3f9a95e6566118105d2be781262d70de6f65fc08f30b1b7b5913296134872e4f4540f1d610441d070bc3047384136250759fbeae0efdd
f0f70a6a218233e512246415d7562d7ca766989ede015a3835d5767a2b61b135b206d1d134a8eac84f8a661cd36b12dd8da96e572f968875cf9b39b6a525e1
f87e4669d270b6da58c7207addfd969e88290f65291b2abb55049efd4286a21c4dea8b1b235f47ff0232be0b551e0697ffd73e0a73e13032098f8471828ebe
fc999fff0768fd35c811f2e13d074e51319ee5f160293b80bfa63c8fbde2d8aeb49a73b5c022bfcdb07fc54c9257f3f2f41e0c3a8fb791bade156128b9b0c2
fd0a4af340a9c6ee8ab2deecf2e43d04bef0433236a27e0ae4a5da61ea791bea77a0e726f1fc74e27eb6bcffa4fd4e3475e7a9c4a0d9ac13f1c3932bfe16ef